我有一组二进制配置文件,每个文件都有三个版本 - 一个原始版本,每个文件的两个不同的版本。我需要能够同时看到两个版本和原始版本之间的差异。

我需要的是用于二进制文件的三向差异工具。通过相当疲惫的Google搜索,我最终发生了 截屏 对于我所需要的应用程序的应用程序 - 不幸的是,包含图像的论坛帖子没有提及他们正在使用的应用程序:

http://www.xboxhacker.org/index.php?topic=15032.0

有人可以将我指向(Windows)应用程序的方向,该应用程序提供了三个二进制文件的二进制安全(十六进制)比较?

有帮助吗?

解决方案

屏幕截图来自 Araxis合并. 。他们的Pro Edition(270美元)支持3向比较。

其他提示

VIM具有一个内置的差异工具,可以比较任意数量的文件。它还在Windows上运行。你可以在 http://vim.org.

Windows VIM的标准安装包括 xxd, ,这使您可以将二进制文件视为文本:

因此,例如,如果您尝试:

xxd xxd.exe

你会得到:

0000000: 4d5a 9000 0300 0000 0400 0000 ffff 0000  MZ..............
0000010: b800 0000 0000 0000 4000 0000 0000 0000  ........@.......
0000020: 0000 0000 0000 0000 0000 0000 0000 0000  ................
0000030: 0000 0000 0000 0000 0000 0000 d800 0000  ................
0000040: 0e1f ba0e 00b4 09cd 21b8 014c cd21 5468  ........!..L.!Th
0000050: 6973 2070 726f 6772 616d 2063 616e 6e6f  is program canno
0000060: 7420 6265 2072 756e 2069 6e20 444f 5320  t be run in DOS 
0000070: 6d6f 6465 2e0d 0d0a 2400 0000 0000 0000  mode....$.......
0000080: 6ba7 bec3 2fc6 d090 2fc6 d090 2fc6 d090  k.../.../.../...

ETC...

所以你可以使用 xxd 将您的二进制文件转移到文本文件中:

xxd orig > orig.txt
xxd mod1 > mod1.txt 
xxd mod2 > mod2.txt

然后以DIFF模式运行VIM:

vim -d orig mod1 mod2

这将为您提供这样的东西:

example of 3-way vimdiff

(此屏幕截图取自 这里 只不过是一个说明3向差异在vim中的样子)

所有这些工具都可以在Windows中找到,因此它们应该解决您的问题。

编辑:

合并后 xxd, ,您可以使用十六进制转储转换为二进制文件 xxd -r:

xxd -r merged_xxd_file merged_binary_file

您可以在 xxd的manpage

你可以看 Ecmerge (我使用的工具),它具有2和3向二进制文件(HEX + ASCII)。没有合并功能。您可以轻松地从变化的区域移动到更改区域,并紧凑的长区域(长插入,更改或不变)。

最新版本的 超越比较 似乎支持 3向差异和合并. 。而且,它 功能列表 说它支持比较二进制文件。

请注意,这不是免费软件:-)

我最近被介绍给 P4Merge, ,这似乎也支持二进制文件。

它将3个文件作为输入:原始和两个衍生物。它并排显示了他们的第四个窗口,该窗口显示了合并的文件,并具有编辑功能和冲突解决方案。

我只是用它合并了一个大型代码库的两个分支,这非常方便。

p4merge example

现在,我没有使用它合并二进制文件,但是它确实支持扩散图片,因此,如果不支持二进制文件,我会感到惊讶。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top