阻止加载驱动 方法

阻止加载驱动 方法

ID:14690226

大小:42.00 KB

页数:14页

时间:2018-07-29

阻止加载驱动 方法_第1页
阻止加载驱动 方法_第2页
阻止加载驱动 方法_第3页
阻止加载驱动 方法_第4页
阻止加载驱动 方法_第5页
资源描述:

《阻止加载驱动 方法》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、阻止加载驱动方法阻止加载驱动方法http://www.sm998.com/read.php?tid=16关于驱动的加载大概有几种方法1在WINDOWS下动态加载2在WINDOWS启动的时候加载3感染系统文件对于在WINDOWS启动的时候加载和感染系统文件我们暂时不讨论,玩么只讨论动态加载一般的加载流程,是这样的:打开服务管理器->创建服务->启动服务->(系统加载驱动)这个过程系统最终会调用NtLoadDriver来加载驱动(也可以用Ntdll.dll里面的NtSetSystemInformation来加载)而N

2、tLoadDriver会向系统插入一个作业,然后等待另外一个系统线程来加载驱动,并等待驱动的加载完成(NtSetSystemInformation也是一样的),然后返回这样我们就可以HOOKNtLoadDriver和NtSetSystemInformation来阻止驱动加载,但是这个方法已经用烂了,这里我HOOKNtCreateSection来阻止驱动加载为什么HOOKNtCreateSection呢???因为在另外一个线程取得消息加载驱动的时候会调用NtCreateSection来映射驱动到内核内存空间(流程:

3、大概是这样IoCreateFile(打开驱动文件,将它的第二个参数设置为FILE_EXECUTE

4、SYNCHRONIZE)->NtCreateSection(为驱动在内核内存空间创建一个节)->NtMapViewOfSection(映射驱动到内核内存空间)->寻找驱动的DriverEntry,并调用->ZwClose(关闭文件句柄)->然后通知NtLoadDriver(或者NtSetSystemInformation)驱动加载完成->NtLoadDriver(或者NtSetSystemInformation)返回

5、用户层,并通知用户驱动加载完成)在驱动加载流程中,我们可以看到我们有很多机会劫持驱动的加载我们可以HOOKNtCreateSection或者NtMapViewOfSection来阻止驱动加载这里我采用HOOKNtCreateSection的办法阻止驱动加载以下为代码#include//声明用到的头文件和结构宏等#include"NtCreateSection.h"#ifDBG#defineDriversUnload(Address,p)Address->DriverUnload=p;#else

6、#defineDriversUnload(Address,p)Address->DriverUnload=NULL;#endiftypedefintBOOL;typedefunsignedintUINT;typedefunsignedlongDWORD;typedefunsignedshortWORD;typedefvoid*LPVOID;typedefunsignedcharBYTE;typedefDWORD*PDWORD;typedefBYTE*PBYTE;typedefWORD*PWORD;#define

7、PAGE_NOACCESS0x01#definePAGE_READONLY0x02#definePAGE_READWRITE0x04#definePAGE_WRITECOPY0x08#definePAGE_EXECUTE0x10#definePAGE_EXECUTE_READ0x20#definePAGE_EXECUTE_READWRITE0x40#definePAGE_EXECUTE_WRITECOPY0x80#definePAGE_GUARD0x100#definePAGE_NOCACHE0x200#defi

8、nePAGE_WRITECOMBINE0x400#defineMEM_COMMIT0x1000#defineMEM_RESERVE0x2000#defineMEM_DECOMMIT0x4000#defineMEM_RELEASE0x8000#defineMEM_FREE0x10000#defineMEM_PRIVATE0x20000#defineMEM_MAPPED0x40000#defineMEM_RESET0x80000#defineMEM_TOP_DOWN0x100000#defineMEM_4MB_PAG

9、ES0x80000000#defineSEC_FILE0x800000#defineSEC_IMAGE0x1000000#defineSEC_VLM0x2000000#defineSEC_RESERVE0x4000000#defineSEC_COMMIT0x8000000#defineSEC_NOCACHE0x10000000#defineMEM_IMAGESEC_IMA

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。