比较可执行文件或目标文件
问题描述:
我有两个文件应该从相同的源版本生成。其中一个文件被剥离。 可以比较文件的原始可执行部分以确定它们是否相同? 也可以在目标文件上完成(特别是在.ko linux内核模块上)?比较可执行文件或目标文件
问候
答
您可以运行objdump -x <file>
列出计划的部分,然后objcopy -j <section> <file> <out>
提取的部分并加以比较。
你想跳过调试节和检查.text
喜欢,.data
...
答
我会尝试使用
objdump -d file1>a
objdump -d file2>b
diff a b
,或者如F.Hauri建议,
diff <(objdump -d file1) <(objdump -d file2)
-d选项反汇编文件的可执行部分。
但是,不同的编译器总是会生成不同的字节,因此也就是汇编,代码。 此外,我不确定可执行文件中的目标文件的顺序,如果有多个。 对于使用应该工作的相同编译器编译的目标文件。
答
检查两个文件是否相同的简单方法是md5。您可以通过检查文件的md5sum:
$ md5sum file.txt
对于许多文件,这样做:
$ md5sum *
使用[标签:庆典],你coud写:'DIFF 2015-03-02 11:08:12
试一下'diff -y ... |在一个宽广的控制台中减少“S” – 2015-03-02 11:10:28