欢迎来到天天文库
浏览记录
ID:14690226
大小:42.00 KB
页数:14页
时间:2018-07-29
《阻止加载驱动 方法》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
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
此文档下载收益归作者所有