有没有任何开源的二进制文件差异比较工具?

4

有时我需要进行二进制文件的比较,但是否有任何开源工具可以做到这一点呢?

UltraCompare 可以实现,但它是商业产品。


请看这里,这是一个类似的问题:https://dev59.com/y0XRa4cB1Zd3GeqPpzZd - Dan
谢谢大家,VBinDiff做得非常好。 - techolic
5个回答

4

我在搜索中发现了一个名为VBinDiff的开源产品,但我没有直接使用它的经验。该产品似乎跨平台(Linux和Windows),并且有针对二进制文件和源代码的软件包。祝好运!


4

在这种情况下,xdelta有什么用处?据说它不会生成可读的人类输出。 - Peter Mortensen
@PeterMortensen:你从哪里得到的这个想法,认为输出必须是人类可读的? - womble

4

GNU diffutils提供了一个名为cmp的程序,可以告诉你两个二进制文件第一次不同的偏移量。然而,它没有更多的功能。

或者,您可以将每个文件进行十六进制转储,并将其导入到您喜欢的文本差异工具中:

diff <(hexdump -v -e '1/1 "%02x\n"' binfile1) <(hexdump -v '1/1 "%02x\n"' binfile2)

谢谢这个 - 只是想补充一下,上面的 hexdump 表单会导致每行显示一个字节;如果您想在同一行上显示相同的字节作为字节值和字符,则应为每个 hexdump 包括一个额外的 -e 语句 - 因此... - sdaau
以上内容变为:diff <(hexdump -v -e '1/1 "%_p "' -e '1/1 "%02x\n"' binfile1) <(hexdump -v -e '1/1 "%_p "' -e '1/1 "%02x\n"' binfile2) - sdaau
1
非常感谢您的回答,我以前从未遇到过cmp或hexdump。 - BD at Rivenhill

2

Subversion必须了解的内容。它支持二进制对象的增量变更记录。

最坏的情况下,你可以查看他们的源代码库...


0

标准的GNU diff 显示两个文件之间的差异。你可能想了解一下xdelta,以跟踪更改(这可能是SCM工具使用的内容)。

为了查看文件中的更改,你可以hexdump两个文件,然后进行比较。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接