您的位置:首页 > 产品设计 > UI/UE

ZwQuerySystemInformation函数查询SystemModuleInformation

2011-04-13 19:30 639 查看
使用ZwQuerySystemInformation函数查询SystemModuleInformation

在看到两种用法
第一种:
ZwQuerySystemInformation(SystemModuleInformation,&n,0,&n);
PULONG p=new ULONG
;

ZwQuerySystemInformation(SystemModuleInformation,p,n*sizeof*p,0);

第二种:
ZwQuerySystemInformation(SystemModuleInformation,&n,0,&n);
buf = (PULONG)ExAllocatePool(PagedPool,n);
ZwQuerySystemInformation(SystemModuleInformation,buf, n , 0);

如果n表示返回信息的字节数的话,
那么在第一种中分配的是n*4个字节的空间

PSYSTEM_MODULE_INFORMATION头4个字节dwNumberOfModules指示有多少个模块

( PULONG )buf + 1也没有指向第二个模块,只不过是指针向后移了4个字节

typedef struct _SYSTEM_MODULE_INFORMATION {//Information Class 11
ULONG Reserved [2];
PVOID Base;
ULONG Size;
ULONG Flags;
USHORT Index;
USHORT Unknown;
USHORT LoadCount;
USHORT ModuleNameOffset;
CHAR ImageName [256 ];
} SYSTEM_MODULE_INFORMATION, *PSYSTEM_MODULE_INFORMATION;

typedef struct {
ULONG dwNumberOfModules;
SYSTEM_MODULE_INFORMATION smi;
} MODULES, *PMODULES;

这里的PMODULES就是代码中的PSYSTEM_MODULE_INFORMATION
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: