在R0下利用ZwQuerySystemInformation 查 SystemModuleInformation 来枚举驱动模块

代码如下:

////
//        rootkit.h
////
#define ULONG unsigned long
#define PULONG unsigned long *
#define PVOID void *
#define USHORT unsigned short#define SystemModuleInformationClass  11

typedef struct
{PVOID section;PVOID MappedBase;PVOID ImageBase;ULONG ImageSize;ULONG Flags;USHORT LoadOrderIndex;USHORT InitOrderIndex;USHORT LoadCount;USHORT PathLength;char ImageName[MAXIMUM_FILENAME_LENGTH];}SYSTEM_MODULE,*PSYSTEM_MODULE;typedef struct
{ULONG ModuleCount;SYSTEM_MODULE Module[0];
}SYSTEM_MODULE_INFORMATION,*PSYSTEM_MODULE_INFORMATION;NTKERNELAPI NTSTATUS ZwQuerySystemInformation(ULONG SystemInformationClass,PVOID SystemInformation,ULONG SystemInformationLength,PULONG ReturnLength OPTIONAL
);

#include "ntddk.h"
#include "rootkit.h"void OnUnload(PDRIVER_OBJECT pDriverObj)
{DbgPrint("Driver is Unload!\n");
}NTSTATUS DriverEntry(PDRIVER_OBJECT pRootkitObj,PUNICODE_STRING pRegistPath)
{NTSTATUS ntStatus;ULONG count;ULONG BufferSize=0;PSYSTEM_MODULE_INFORMATION pSystemModuleInformation=NULL;PSYSTEM_MODULE pSystemModule=NULL;pRootkitObj->DriverUnload=OnUnload;ZwQuerySystemInformation(SystemModuleInformationClass,NULL,0,&BufferSize);pSystemModuleInformation=(PSYSTEM_MODULE_INFORMATION) ExAllocatePool(PagedPool,BufferSize);if(pSystemModuleInformation==NULL){DbgPrint("ExAllocatePool failed!\n");return STATUS_UNSUCCESSFUL;}ntStatus=ZwQuerySystemInformation(SystemModuleInformationClass,pSystemModuleInformation,BufferSize,NULL);if(!NT_SUCCESS(ntStatus)){DbgPrint("ZwQuerySystemInformation failed!\n");ExFreePool(pSystemModuleInformation);return ntStatus;}pSystemModule=pSystemModuleInformation->Module;for(count=0;count<pSystemModuleInformation->ModuleCount;count++){DbgPrint("LoadIndex=%d        \tImageBase=0x%08X        \tImageSize=0x%08X        \tImageName=%s\n",pSystemModule[count].LoadOrderIndex,pSystemModule[count].ImageBase,pSystemModule[count].ImageSize,pSystemModule[count].ImageName);}return STATUS_SUCCESS;
}

转载于:https://www.cnblogs.com/ktr39/p/3494733.html

ZwQuerySystemInformation 枚举驱动模块相关推荐

  1. (转)ZwQuerySystemInformation枚举内核模块及简单应用

    http://hi.baidu.com/_achillis/item/8b33ead8ccac28ea3cc2cb17 简单说,即调用第11号功能,枚举一下内核中已加载的模块. 部分代码如下: //功 ...

  2. 隐藏驱动模块(源码)

    XP亲测有效,使用我们自己编写的枚举驱动模块会看不到.枚举驱动模块请看文章 http://blog.csdn.net/liujiayu2/article/details/72822478 但是使用AR ...

  3. 一款手工杀毒/Anti-rootkit工具-ixer 0.11开源版

    前言: 随着信息科技的迅速发展,Internet已经成为全球最重要的信息传播工具.当人们在享受网络为我们的工作.生活带来方便和效率的同时,但它们潜在地也带来了安全问题.据统计,凡是刚开始接触过互联网的 ...

  4. Win64 驱动内核编程-3.内核里使用内存

    内核里使用内存 内存使用,无非就是申请.复制.设置.释放.在 C 语言里,它们对应的函数是:malloc.memcpy.memset.free:在内核编程里,他们分别对应 ExAllocatePool ...

  5. 函数ZwQuerySystemInformation小结

    函数存在于NTDLL.DLL动态链接库中.NTDLL.DLL负责ring3与ring0之间的通信.当使用子系统方式进行系统调用的时候,ntdll.dll和SSDT会配合使用. 关于ZwQuerySys ...

  6. Win64 驱动内核编程-25.X64枚举和隐藏内核模块

    X64枚举和隐藏内核模块 在 WIN64 上枚举内核模块的人方法:使用 ZwQuerySystemInformation 的第 11 号功能和枚举 KLDR_DATA_TABLE_ENTRY 中的 I ...

  7. 内核下枚举进程 (二)ZwQuerySystemInformation

    说明: SYSTEM_INFORMATION_CLASS 的5号功能枚举进程信息.其是这个函数对应着ring3下的 NtQuerySystemInformation,但msdn上说win8以后ZwQu ...

  8. 通过ntdll.dll提供的API函数实现当前进程的枚举

    这种枚举的方法是通过ntdll.dll提供的API函数ZwQuery?SystemInformation()来实现,此方法比前面所提供的方法复杂一些, 下面提供实际的代码如下: #include &l ...

  9. gsm模块 java 录音_Android GSM驱动模块详细分析

    Android的RIL驱动模块, 在hardware/ril目录下,一共分rild,libril.so以及librefrence_ril.so三个部分,另有一 radiooptions可供自动或手动调 ...

  10. 【嵌入式开源库】MultiButton的使用,简单易用的事件驱动型按键驱动模块

    MultiButton 简介 下载 使用介绍 工程移植 代码分析 完整使用流程 实验效果 简介 MultiButton 是一个小巧简单易用的事件驱动型按键驱动模块,可无限量扩展按键,按键事件的回调异步 ...

最新文章

  1. 全球权威声纹识别竞赛斩获双料冠军 网易AI Lab智能技术领先国际
  2. PHP封装返回Ajax字符串和JSON数组
  3. swift SDWebImage 与 UIButton 出现的细节bug 不显示
  4. webstorm卡顿问题
  5. BC div2补题以及 复习模除 逆元__BestCoder Round #78 (div.2)
  6. bzoj千题计划282:bzoj4517: [Sdoi2016]排列计数
  7. hibernate自带的注解和jpa注解的冠希
  8. 树莓派raspbian OS 64位系统下载和更换源
  9. Instant Client 配置
  10. 计网学习第一章:概述
  11. java.lang.OutOfMemoryError内存溢出定位
  12. mysql8.0.13驱动包_MySQL ODBC驱动 V8.0.13 32/64位 官方版
  13. 拉格朗日插值法总结模板(1~n)
  14. 微信公众账号登陆授权开发——1
  15. [ajax] 基础 HTTP相关问题-GET-POST-XHR使用-jQuery中的ajax-跨域-同源-jsonp-cors
  16. TechParty Mini+4 logging
  17. Pytorch 深度学习入门与实践 第二章 pytorch快速入门 (1)
  18. 通达信手机版分时图指标大全_通达信精选指标——操盘手主图优化版
  19. 易语言lsp劫持_[原创]不用导出任何函数的DLL劫持注入,完美!
  20. STM32跑MicroPython的链接脚本分析

热门文章

  1. oss读取指定文件夹下所有图片
  2. python实践gcForest模型对鸢尾花数据集iris进行分类
  3. java io 创建临时文件,用Java创建一个指定的临时文件
  4. VHDL计算机硬件能直接执行吗,第5章 VHDL程序结构.ppt
  5. 长安链chainmaker 修改共识方法
  6. Ubuntu su root提示输入密码 怎么输入都不对
  7. 微信小程序云开发教程-WXML入门-常用组件和属性
  8. requests.exceptions.ConnectionError: (‘Connection aborted.’, RemoteDisconnected(‘Remote end closed c
  9. win10系统如何解除端口占用
  10. MySQL学习(一、概述和表的基本操作)