c++ - C++ PEB_LDR_DATA 访问模块列表
问题描述
我正在尝试访问和打印 PEB_LDR_DATA(InLoadOrderModuleList、InMemoryOrderModuleList、InInitializationOrderModuleList)中的 3 个模块列表。
我已经能够访问 InMemoryOrderModuleList 列表并打印它,但是当我尝试访问 InLoadOrderModuleList / InInitializationOrderModuleList 时出现无法识别的错误。
我是 C++ 和窗口 API 的新手,在阅读了一些网站中有关 PEB_LDR_DATA 结构的一些内容后,我看到了不同的结构。
例如:microsoft、sandsprite、nirsoft
哪一个是对的?为什么我无法访问它们或如何访问它们。
解决方案
看起来您的 nirsoft 链接具有最完整的定义。Microsoft 的文档将只提供某些“公共”字段,以便它可以在以后更改定义。
Terminus 项目提供了良好的定义(基于标头和符号数据),显示了结构在 OS 版本之间的变化。
当前 Win10 (x64) 时代版本:
0x0000 unsigned long Length
0x0004 uint8_t Initialized
0x0008 void * SsHandle
0x0010 struct _LIST_ENTRY InLoadOrderModuleList
0x0020 struct _LIST_ENTRY InMemoryOrderModuleList
0x0030 struct _LIST_ENTRY InInitializationOrderModuleList
0x0040 void * EntryInProgress
0x0048 uint8_t ShutdownInProgress
0x0050 void * ShutdownThreadId
推荐阅读
- java - Y轴在代码中倒置,应该形成一个矩形
- android - api 24 中未显示浮动操作按钮
- ios - Firebase Crashlytics 不会激活
- python - 如何在 PyTorch 中保存某个批号的训练进度?
- php - 如何使用codeigniter在ajax数据表中具体响应?
- python - pyautogui 和 pywinauto 结合在后台点击应用程序
- javascript - Redux、React 状态更新和重新渲染组件
- r - 一起洗衣服概率的模拟
- html - 如何在无序列表上设置点并将它们更改为悬停时的图像
- python - ' TypeError: Parser 必须是字符串或字符流,而不是列表' Python