有没有一种巧妙的方法来查看两个二进制文件之间的区别?它们大多相同,但更改了一些字节,并且其中一个文件在某些地方插入了序列。
xxd
如果仅更改字节而不插入字节,则区分 的输出将起作用。
有一些二进制编辑器可以显示文件之间的差异,但我尝试过的 (dhex
和vbindiff
) 似乎无法检测和显示插入或删除。
有许多二进制差异实用程序,例如rdiff
,xdelta
或者bsdiff
计算两个文件之间的差异。但目的是生成patch
稍后应用于原始文件的文件。您无法读取这些补丁文件来看到的差别是什么。
为了直观地看到差异,您可以做的事情是使用每行一个字节的 hexdump 文件和diff
结果。行号会告诉你文件中的偏移量(但要注意它从 1 开始,而不是 0):
diff -u <(od -w1 -vAn -tx1 file1) <(od -w1 -vAn -tx1 file2)
Run Code Online (Sandbox Code Playgroud)
(假设您od
支持非标准-w
选项)。