【问题标题】:Tool for analyse portable executable loaded into memory用于分析加载到内存中的可移植可执行文件的工具
【发布时间】:2015-10-10 20:20:27
【问题描述】:

有很多工具旨在帮助分析可移植的可执行文件。例如 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 进行比较,并检查它是否正确。我很惊讶我找不到为这样的提议设计的工具。

【问题讨论】:

    标签: security reverse-engineering portable-executable malware-detection


    【解决方案1】:

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

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

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

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

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

    【讨论】:

      猜你喜欢
      • 2013-10-07
      • 2012-07-15
      • 2014-09-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多