您知道 Unix/Linux diff(1) 工具的工作原理吗?它显示两个文本文件之间添加和删除了哪些行,并以人类可读的形式显示。我需要相同类型的二进制文件工具 - 除了处理字节序列而不是文本行。它仍然必须产生人类可读的输出(因此以十六进制表示)。
请注意,我不需要cmp -l
逐字节比较二进制文件,也无法检测插入和删除。请注意,我不需要xdelta
或bsdiff
产生非人类可读的输出。实际上,我有点惊讶,它们都没有xdelta
为bsdiff
它们生成的补丁提供某种人类可读的表示。恕我直言,这样的选项应该首先存在,然后才是生成高效二进制补丁的选项。毕竟,这些工具的作者如何验证它们是否正常工作?难道他们不认为用户也想验证它们,以确保它们确实生成了合理且最小的补丁吗?
答案1
我已经发现差分. 可能,这个工具就是你正在寻找的。
JDIFF 是一个输出两个二进制文件之间的差异的程序,可以以二进制格式或人类可读的格式(详细或摘要)输出。然后,JPATCH 允许从第一个文件重建第二个文件。
更新
看起来 jdiff 没有以人类可读的格式保存补丁。它仅以人类可读的格式显示摘要 :(
我研究了很多工具,发现只有破解工具才能达到这个目的:所以人类可读的格式是.XCK和.CRK文件扩展名。这些扩展名的工具:
使用补丁:
- Corner Crackers 的 Cracker.Exe
- 补丁-xck.rb
创建补丁:
- c2c(与破解相比)例如:Nimnull 的 C2C、SkullC0DEr 的 C2C/2、MaD k0DeR 的 MC2C。
- 足球俱乐部