如何查看两个DLL之间的差异?

如何查看两个DLL之间的差异?,dll,diff,visual-c++,disassembly,Dll,Diff,Visual C++,Disassembly,有没有办法查看两个二进制DLL文件之间的差异?我两个都有PDB 理想情况下,我希望看到: 增加了哪些功能 删除了哪些功能 修改了哪些功能(与拆卸不同) 添加/删除/修改了哪些其他条目(静态变量、资源等) 注意:这与我处理本机DLL时的情况不同。如果要比较可执行文件,有两种选择: 宾迪夫:这是商业反汇编程序IDA Pro的商业扩展。这是一个事实上的逆向工程工具。根据供应商说明,它允许您: 在不同的二进制文件中识别相同和相似的函数 从一个反汇编到另一个反汇编的端口函数名称、前后注释行、标准

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

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

  • 增加了哪些功能
  • 删除了哪些功能
  • 修改了哪些功能(与拆卸不同)
  • 添加/删除/修改了哪些其他条目(静态变量、资源等)


注意:这与我处理本机DLL时的情况不同。

如果要比较可执行文件,有两种选择:

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

  • 你还有一个免费的选择:PatchDiff。作为Bindiff,它也是IDA Pro的一个插件。据开发人员介绍,Patchdiff可以执行以下任务:
    • 显示相同功能的列表
    • 显示匹配函数的列表
    • 显示不匹配功能的列表(使用CRC)
    • 显示相同和匹配功能的流程图

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

IDA Pro+PatchDiff看起来很完美。