0

有很多工具旨在帮助分析可移植的可执行文件。例如 PE 资源管理器。我们可以将.exe文件加载到其中并检查诸如节数、节对齐或特定节的虚拟地址之类的内容。

是否有任何类似的工具可以让我做同样的事情,但对于已经加载到内存中的可移植可执行文件?无法访问它的.exe文件?

编辑:

也许我会尝试澄清我想要实现的目标。可以说(就像@0x90 建议的那样)我有两个应用程序甚至三个应用程序。

app1.exe - 由用户执行,基于 app3.exe 创建新进程,并通过将 app2.exe 放入其中来修改其内存。

app2.exe - 由 app1.exe 注入 app3.exe 内存。

app3.exe - 用于创建新进程。

我有所有三个应用程序的来源。我只是想通过注入/P​​rocesses Hollowing 的实际练习来了解 Windows 内部结构。我在 app1.exe 中有一些错误,导致:

The application was unable to start correctly (0xc0000018).

我正在尝试找到一种方法来调试这种情况。我的想法是将磁盘上的 PE 与内存中的 PE 进行比较,并检查它是否正确。我很惊讶我找不到为这样的提议设计的工具。

4

1 回答 1

1

为清楚起见,您要检查的应用程序应称为 App1,而将 PE 文件内容加载到内存中的应用程序应称为 App2。

据我所知,所有主要的反汇编程序都处理文件。这是因为 App1 将被映射到 App2 的地址空间。

您最简单的解决方案是将可执行文件从内存转储到磁盘。

如果你控制了App2的来源,这一步很简单。

如果不这样做,您将需要攻击调试器,确定 PE 文件所在的确切内存范围,并使用调试器的功能将该内存范围转储到磁盘。

于 2015-07-21T13:21:36.693 回答