ZwQuerySystemInformation 用来枚举内核模块

来源:互联网 发布:算法导论英文第四版pdf 编辑:程序博客网 时间:2024/06/08 06:52

ZwQuerySystemInformation 函数可以用来枚举内核模块,使用ms 的隐藏功能即可


typedef NTSTATUS (WINAPI* PFN_ZwQuerySystemInformation)(_In_      SYSTEM_INFORMATION_CLASS SystemInformationClass,_Inout_   PVOID                    SystemInformation,_In_      ULONG                    SystemInformationLength,_Out_opt_ PULONG                   ReturnLength);

SystemInformationClass =11 的时候就是枚举内核模块
此时的数据结构定义如下

#pragma pack(push ,1)struct SYSTEM_MODULE_INFO_ENTRY{ULONG unk2;ULONG unk3;ULONG unk4;ULONG unk5;ULONGLONG base;ULONG mSize; ULONG Flags;USHORT Index;USHORT NameLen;USHORT LoadCnt;USHORT ModuleNameOffset;char ImageName[256];};typedef struct _SYSTEM_MODULE_INFO{ULONG count;ULONG unk1;SYSTEM_MODULE_INFO_ENTRY mods[1];} SYSTEM_MODULE_INFO,*PSYSTEM_MODULE_INFO;#pragma pack(pop)

返回
SYSTEM_MODULE_INFO 结构 如果接收缓冲区不足返回C0000004 需要调整缓冲区再使用


注意: 32位的和64位的结构体不一样

这里给的是64位的,而且程序也必须是64位的才行,否则地址会被截断



0 0
原创粉丝点击