2009-02-26 153 views

回答

16

反射器有一个Diff工具。

+0

好东西,谢谢 – flesh 2009-02-26 16:23:48

+0

这是否仍然适用于最新的Reflector版本?我刚刚碰撞做差异。 – mkmurray 2010-04-12 19:36:09

+0

我无法使用最新版本(6.5),这太糟糕了,因为它听起来不错。 – theChrisKent 2010-12-17 20:28:16

4

为什么不先反汇编再比较?

+1

用Reflector导出,然后用Beyond Compare比较目录。太好了! :) – 2010-05-10 14:28:51

4

使用.NET Reflector(免费版是你所需要的),打开这些DLL,然后单击鼠标右键,选择导出到单独的目录。

然后使用ExamDiff Pro来比较目录(您可以获得30天的免费试用版)。您可以浏览子文件夹,并根据需要打开每个文件到一个新的比较窗口中(只需双击ExamDiff Pro窗口)。 作品太棒了!

ExamDiff Pro还有一个转储PE32插件,它将直接在.dll和.exe文件之间进行比较。这有助于查看标题更改并标记二进制差异,但不会为您反编译(所以使用上面的Reflector方法)。

17

dotPeek也可以使用JetBrains。它也是免费的。

  • 打开在dotPeek组装起来
  • 选择装配
  • 文件 - >导出项目
  • 在磁盘上选择一个位置

重复以上您要组装进行比较,然后在diff工具中打开这两个文件夹。我用WinMerge

你会注意到绝大多数文件都有差异。这是因为这些文件必须在像顶部评论此

// MVID: {some guid here} 

您可以的WinMerge创建过滤器忽略它

  • 工具 - >过滤器...
  • 转到了“行过滤器”选项卡
  • 添加以下过滤器^// MVID:

当你没关系的变化,它会重新扫描文件夹并忽略任何以该评论开头的行。现在您应该只看到您感兴趣的更改。