2009-08-13 38 views
1

有没有办法查看两个二进制DLL文件之间的区别?我有两个PDB。我如何查看两个DLL之间的差异?

理想我想看看:

  • 有哪些新增功能
  • 什么样的功能已被删除
  • 已被修改什么样的功能(与拆卸的差异)
  • 还有哪些其他条目(静态变量,资源等)已被添加/删除/修改

注意:这与this question不同,因为我正在处理本地DLL。

回答

3

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

  • Bindiff:它是商业反汇编IDA Pro的商业推广。这是反向工程的事实上的工具。据厂商介绍,它可以让你:
    • 找出相同和相似的功能在不同的二进制文件
    • 端口功能的名称,其前后的注释行,标准的意见和本地名称从一个拆卸到其他
    • 检测相同的功能

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

的两个变体之间&高亮变化
  • 您还有一个免费的替代方案:PatchDiff。作为Bindiff,它也是IDA Pro的插件。根据显影剂,Patchdiff可以执行以下任务:
    • 显示的相同功能的列表
    • 显示的匹配函数的列表
    • 显示器无可比拟的功能的列表(与CRC)
    • 显示一个流图对相同的,并且匹配函数

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

+0

IDA Pro + PatchDiff看起来很完美。 – pauldoo 2009-08-13 20:10:05

0

“低技术”的方法(无需反汇编)将使用DUMPBIN /ALL(或其他开关,具体取决于您想知道的内容)并对结果进行文本比较。