Bri*_*acy 5 binary diff hex-editors filecompare three-way-merge
我有一组二进制配置文件,每个文件有三个版本 - 每个文件的原始版本和两个不同修改版本.我需要能够同时看到两个版本和原始版本之间的差异.
我需要的是一个二进制文件的三向差异工具.通过相当费力的谷歌搜索,我最终发现了一个应用程序的截图,它完全符合我的需要 - 不幸的是,包含图像的论坛帖子没有提到他们正在使用的应用程序:
http://www.xboxhacker.org/index.php?topic=15032.0
有人能指出我(Windows)应用程序的方向,提供三个二进制文件的二进制安全(十六进制)比较??
Vim有一个内置的差异工具,可以比较任意数量的文件.它也可以在Windows上运行.您可以在http://vim.org找到它.
vim for windows的标准安装包括xxd,它允许您将二进制文件视为文本:
例如,如果您尝试:
xxd xxd.exe
Run Code Online (Sandbox Code Playgroud)
你会得到:
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.../.../.../...
Run Code Online (Sandbox Code Playgroud)
等等...
因此,您可以使用xxd将二进制文件转储为文本文件:
xxd orig > orig.txt
xxd mod1 > mod1.txt
xxd mod2 > mod2.txt
Run Code Online (Sandbox Code Playgroud)
然后在diff模式下运行vim:
vim -d orig mod1 mod2
Run Code Online (Sandbox Code Playgroud)
这会给你这样的东西:

(此屏幕截图是从这里拍摄的,仅仅是一个3-way差异在VIM中的样子)
所有这些工具都可以在Windows中使用,因此它们可以解决您的问题.
编辑:
合并结果后xxd,可以使用以下命令将十六进制转储转换为二进制文件xxd -r:
xxd -r merged_xxd_file merged_binary_file
Run Code Online (Sandbox Code Playgroud)