通过不同版本/汇编函数的编译二进制功能比较

逆向工程 拆卸 吉德拉 bin-diffing
2021-06-12 14:42:21

再会!

我还没有找到一个解决方案来比较相同功能的不同编译二进制文件。

以 BusyBox 为例。一个非常常见的应用程序,具有丰富的历史和源代码。假设对编译后的二进制文件进行 3 或 4 个不同的“发布”,并通过 Ghidra 运行它们。许多未更改的功能应该/将是相同的。那些确实改变的人会。然而,偏移量、内存位置等会有所不同。重复汇编代码虽然应该很接近。

了解偏移量和内存位置可能会改变,但是代码中固有的功能在汇编中应该大部分相同 - 并且知道什么是相同的和什么被改变将有助于知道什么是存在的,什么不是。

但是,我目前找不到任何可以做到这一点的软件包——要么我没有找到正确的术语,要么没有提出正确的问题。两者都是可能的。

那么是否有“功能级别”反汇编比较工具?或者我只是还没有学会使用我面前的工具?

谢谢!

1个回答

Ghidra 版本跟踪工具正是您所需要的。有关介绍视频,请参见此处