当前位置:   article > 正文

ZwQuerySystemInformation函数查询SystemModuleInformation

systemmoduleinformation

使用ZwQuerySystemInformation函数查询SystemModuleInformation 

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


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

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Gausst松鼠会/article/detail/719825
推荐阅读
相关标签
  

闽ICP备14008679号