用CreateToolhelp32Snapshot传TH32CS_SNAPMODULE也可枚举模块信息,得到MODULEENTRY32 结构,但是MODULEENTRY32 比较简单,只有基地址和大小等信息,EntryPoint、LoadCount等信息都没有,这些信息在另一个结构LDR_DATA_TABLE_ENTRY中,wrk中多次引用了这个结构,并且用这种方法调试时也能手动遍历模块列表。
基本思路:用ntdll.dll的导出函数NtQueryInformationProcess查询进程的ProcessBasicInformation,获取PROCESS_BASIC_INFORMATION结构,
typedef struct _PROCESS_BASIC_INFORMATION {
NTSTATUS ExitStatus;
PPEB PebBaseAddress;//peb地址
ULONG_PTR AffinityMask;
KPRIORITY BasePriority;
U

通过调用ntdll.dll的NtQueryInformationProcess函数获取PROCESS_BASIC_INFORMATION结构,再利用PEB_LDR_DATA中的链表头遍历LDR_DATA_TABLE_ENTRY结构,从而得到进程模块的基地址、入口点、大小等详细信息。
最低0.47元/天 解锁文章
1234

被折叠的 条评论
为什么被折叠?



