2012-09-03 84 views
0

所以我想比较一个二进制文件,当我用gcc编译到一个提供的示例可执行文件时。所以我用命令diff和去这样使用diff命令

差异asgn2样品asgn2 二进制文件asgn2和采样asgn2不同

有什么办法,看看他们有什么不同?而不是仅仅显示不同。

回答

1

使用hexdump对两个二进制文件执行十六进制转储。然后,您可以使用您喜欢的差异工具比较十六进制转储,如kdiff3,tkdiff,xxdiff等。

0

我正在使用Linux,在我的情况下,我需要一个-q选项来显示你所得到的。

diff -q file1 file2 

没有-q选项它会显示哪一行不同并显示该行。

您可以使用man diff检查以查看在UNIX中使用的正确选项。

+0

是的。我正在使用一台linux机器。我看了看那个男人,但是把它和-q一起使用,没有显示出来,它只是显示了完全一样的东西。 – courtney

+0

如果我理解正确,OP的文件是二进制文件而不是文本文件。 diff -q是否适用于这些? – thb

+0

@courtney我给出了另一个尝试,发现它在比较二进制文件和文本文件时是不同的。使用“-a”将强制比较将两个文件都视为文本文件,但结果在二进制文件中不可读。 – oyss

1

你为什么不试试Vbindiff?它可能是你想要的:

Visual Binary Diff(VBinDiff)以十六进制和ASCII(或EBCDIC)显示文件。它也可以一次显示两个文件,并突出显示它们之间的差异。与diff不同,它适用于大文件(高达4 GB)。

从哪里获得Vbindiff取决于您正在使用的操作系统。如果Ubuntu或其他Debian衍生产品,apt-get install vbindiff