【问题标题】:Is there any open source binary differ? [closed]是否有任何开源二进制文件不同? [关闭]
【发布时间】:2010-10-06 20:09:44
【问题描述】:

有时,我需要对文件进行二进制比较,但有没有开源工具可以做到这一点?

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

【问题讨论】:

  • 查看here 的类似问题
  • 谢谢大家,VBinDiff 做得很好。

标签: diff


【解决方案1】:

我在搜索中找到了一个名为VBinDiff 的开源产品,但我没有任何直接的经验。它似乎是跨平台的(Linux 和 Windows),并且包含二进制文件和源代码包。祝你好运!

【讨论】:

    【解决方案2】:

    GNU diffutils 带有一个名为cmp 的程序,它会告诉你两个二进制文件不同的第一个偏移量。不幸的是,它的作用仅此而已。

    或者,您可以对每个文件进行 hexdump 并将其通过管道传输到您最喜欢的文本差异工具中:

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

    【讨论】:

    • 谢谢你——只是想补充一下,上面的hexdump 表单会导致每行显示一个字节;如果您想在一行中显示相同的字节作为字节值和字符,则应为每个 hexdump 包含一个额外的 -e 语句 - 所以 ...
    • ...上面变成:diff &lt;(hexdump -v -e '1/1 "%_p "' -e '1/1 "%02x\n"' binfile1) &lt;(hexdump -v -e '1/1 "%_p "' -e '1/1 "%02x\n"' binfile2)
    • 非常感谢您的回答,我以前从未遇到过 cmp 或 hexdump。
    【解决方案3】:

    bsdiffxdelta 是立即浮现在脑海中的两个。

    【讨论】:

    • xdelta 在这种情况下有什么用处?据说它不会产生人类可读的输出。
    • @PeterMortensen:你从哪里得到输出必须是人类可读的想法?
    【解决方案4】:

    Subversion 必须知道如何。它支持二进制对象的增量更改记录。

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

    【讨论】:

      【解决方案5】:

      标准 GNU diff 显示两个文件是否不同。您可能需要查看 xdelta 以跟踪更改(可能是 SCM 工具使用的)。

      我想,要查看文件中的更改,您可以 hexdump 两个文件并进行比较。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2010-10-09
        • 2023-03-10
        • 2011-06-10
        • 2011-01-11
        • 1970-01-01
        • 1970-01-01
        • 2010-12-26
        相关资源
        最近更新 更多