gpt4 book ai didi

binary - 三路二进制(十六进制)文件比较工具?

转载 作者:行者123 更新时间:2023-12-03 15:23:08 26 4
gpt4 key购买 nike

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

我需要的是一个二进制文件的三向差异工具。通过相当费力的谷歌搜索,我最终发现了一个应用程序的屏幕截图,它完全符合我的需要——不幸的是,包含该图像的论坛帖子没有提到他们正在使用的应用程序:

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

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

最佳答案

Vim 有一个内置的 diff 工具,可以比较任意数量的文件。它也可以在 Windows 上运行。您可以在 http://vim.org 找到它.

vim for windows 的标准安装包括 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.../.../.../...

等等...

所以你可以使用 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

(此屏幕截图取自 here,仅说明了 VIM 中的 3 向差异会是什么样子)

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

编辑:

合并 xxd 的结果后,您可以使用 xxd -r 将十六进制转储转换为二进制文件。 :
xxd -r merged_xxd_file merged_binary_file

您可以在 xxd 's manpage 中查看更多详细信息和选项

关于binary - 三路二进制(十六进制)文件比较工具?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4559677/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com