我正在将Qemu及其内部GDB服务器用于将IDA Pro附加到Windows 8 x64实例。一堆内存。


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

我能够使用此脚本解决第一部分。可以分析加载的模块本身,因为PE标头中已经包含了所有需要的信息(我认为)。

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

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标头不完整?

评论

ou可以获取该区域的内存转储并检查标头是否格式错误吗?

#1 楼

使用其节标题从内存中提取图像,转储到文件中,让IDA以批处理模式调用其自身的另一个版本以对转储进行基准化,IDC导出并退出,然后运行该IDC文件,并且数据应该可以覆盖