1

有没有办法查看两个二进制 DLL 文件之间的差异?我对两者都有 PDB。

理想情况下,我希望看到:

  • 增加了哪些功能
  • 删除了哪些功能
  • 修改了哪些功能(有反汇编的差异)
  • 添加/删除/修改了哪些其他条目(静态变量、资源等)

注意:这与这个问题不同,因为我正在处理本机 DLL。

4

2 回答 2

3

如果你想比较可执行文件,你有几个选择:

  • Bindiff:它是商业反汇编程序 IDA Pro 的商业扩展。它是逆向工程的事实上的工具。根据供应商的描述,它允许您:
    • 识别不同二进制文件中相同和相似的函数
    • 端口功能名称、前后注释行、标准注释和本地名称从一个反汇编到另一个
    • 检测并突出显示同一函数的两个变体之间的变化

http://www.zynamics.com/bindiff.html

  • 您仍然有一个免费的替代方案:PatchDiff。作为 Bindiff,它也是 IDA Pro 的插件。根据开发人员的说法,Patchdiff 可以执行以下任务:
    • 显示相同功能的列表
    • 显示匹配函数列表
    • 显示不匹配函数的列表(带有 CRC)
    • 显示相同和匹配函数的流程图

http://cgi.tenablesecurity.com/tenable/patchdiff.php

于 2009-08-13T08:07:21.797 回答
0

“低技术”方法(不反汇编)是DUMPBIN /ALL在 DLL 上使用(或另一个开关,具体取决于您想知道的内容)并对结果进行文本比较。

于 2013-06-21T10:33:01.540 回答