【问题标题】:Making space for added bytecode (machine code) in a Windows PE executable在 Windows PE 可执行文件中为添加的字节码(机器代码)腾出空间
【发布时间】:2011-08-02 22:50:54
【问题描述】:

这个问题与 Windows 上的逆向工程/二进制补丁有关。

我需要一个免费工具来允许我将汇编程序(或机器代码)添加到已构建的可执行文件中。我说的不是 Java 或 .NET,而是原生字节码(x86 机器码)。

另外,如果我需要更多空间怎么办?我必须添加另一个部分吗?有什么工具可以扩展PE exe?

【问题讨论】:

    标签: reverse-engineering exe assembly portable-executable disassembly


    【解决方案1】:

    如果您想实际编辑 PE 文件本身,Olly 必须使用可以运行进程并重建 PE 文件的工具来补充它,例如 LordPE。 LordPE 可能会为您添加部分,它是出于自己的目的。

    要编辑二进制文件以添加部分,您还可以尝试“Stud PE”工具,它可以为您添加部分,但您必须修改文件本身才能获得您想要的汇编字节二进制文件。

    手动执行此操作的最简单方法是增加二进制文件中最后一个部分的大小(PE 标头中该部分的 SizeOfRawData 字段),增加 PE 标头的 SizeOfImage 字段,并在末尾删除字节文件。您可能还需要为最后一段(在 PE 标头中)设置可执行标志。

    【讨论】:

      【解决方案2】:

      有几种方法可以将代码添加到现有的 pe 文件中。 一种方法是在代码段中找到一个洞穴,洞穴一般是一个用零填充的段。 另一种(更好的)方法是在 PE 文件中添加一个部分,以便您有空间用于代码。 这有点挑战性,因为您必须手动调整各种指针,例如 SizeOfImage、RawSize 等。

      您可以为此使用 LORDPE(google it)。

      【讨论】:

      • 不能像 OllyDbg 这样的调试器做到这一点吗?看起来很简单的附加功能?
      • 是的,OllyDbg 是最好的 Ring 3 调试器。你可以从中做任何事情。找个洞穴,在那里写下你的指示。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-03-01
      • 2011-11-09
      • 2012-12-16
      • 1970-01-01
      • 2018-12-01
      相关资源
      最近更新 更多