让 IDAPro 将部分内存分析为 PE 文件

逆向工程 艾达 部件 数据库 蟒蛇 视窗-8
2021-06-12 09:05:06

我使用 Qemu 及其内部 GDB 服务器将 IDA Pro 附加到 Windows 8 x64 实例。

有一些问题需要解决,因为当我连接到GDB服务器时,我只是看到一堆内存。

  • 检测ntoskrnl.exe基地址
  • 在这堆内存中查找所有加载的模块
  • 最后分析检测到的模块以获得导出的名称和类似的东西

我能够用这个脚本解决第一部分

该脚本尝试获取每个加载模块的 pdb 信息,但我想让 IDA 分析加载的模块本身,因为 PE 标头中已经有所有需要的信息(我认为)。这可以用 IDA 还是用 IDAPython 实现?

编辑:我能够使用以下命令为每个检测到的段设置一个模块:

from idaapi import module_info_t
current_module = module_info_t()
current_module.base = 0xFFFF...
current_module.size = 1234
current_module.name = "ntoskrnl.exe"
idaapi.add_virt_module(current_module)

但是如果我激活“分析模块”,什么也不会发生。是否有可能内存中的 PE 标头不完整?

1个回答

使用其部分标题从内存中提取图像,转储到文件,让 IDA 以批处理模式调用另一个版本的自身以重新设置转储、IDC 导出和退出,然后运行该 IDC 文件,数据应该覆盖得很好