如何使用 Cutter 或 Radare2 比较两个 EXE 文件、查找差异并反编译它们?

Knu*_*rst 5 hexdump disassembly decompiler radare2 ghidra

经过几天的努力,我想向社区询问:)

我有两个exe文件。两者大小相同且相当大(约 80MB)。

  • 第一个exe是原始文件,是前段时间编译好的。我也有相应的PDB文件。
  • 第二个文件与第一个文件几乎相同,但已在多个位置进行了二进制修补。

我设法使用 Cutter (Radare2 GUI) 反编译这些文件,但考虑到文件大小,几乎不可能遍历每一种方法。

使用十六进制编辑器(Hex Fiend),我设法获得应用补丁的每个偏移位置。现在我试图用 Cutter 找到这些偏移量来反编译这些位置。

问题是:如何?当我在 Cutter 中打开 Hexdump 时,似乎一切都未就位,我可能需要偏移。在 Cutter 的加载屏幕上设置偏移量似乎没有做任何事情。难道是我用错了?

例子:

妖魔

Offset                Hex Data                                         Text
474942-474956         47 65 74 4D 6F 64 75 6C 65 48 61 6E 64 6C 65 41  GetModuleHandleA
Run Code Online (Sandbox Code Playgroud)

刀具

Offset                Hex Data                                         Text
0x0060713E-0x0060714D 47 65 74 4D 6F 64 75 6C 65 48 61 6E 64 6C 65 41  GetModuleHandleA
Run Code Online (Sandbox Code Playgroud)

474942是0x73F3E,但是距离0x0060713E很远

也许我需要其他工具?任何帮助表示赞赏!