我有两个文件,应该从相同的源版本生成。 其中一个文件被剥离。 可以比较文件的原始可执行部分来确定它们是否相同? 也可以在目标文件(特别是.ko linux内核模块)上完成?
最好的祝福
我会尝试使用
objdump -d file1>a objdump -d file2>b diff ab
或者正如F.Hauri所建议的那样,
diff <(objdump -d file1) <(objdump -d file2)
-d选项反汇编文件的可执行部分。
但是,不同的编译器总是会产生不同的字节,因此也就是汇编,代码。 此外,我不确定可执行文件中的目标文件的顺序,如果有多个。 对于使用应该工作的相同编译器编译的目标文件。
您可以运行objdump -x <file>
来列出程序的各个部分,然后objcopy -j <section> <file> <out>
来提取这些部分并进行比较。
你会想要跳过调试部分,并检查喜欢.text
, .data
…
检查两个文件是否相同的简单方法是md5。 您可以通过执行以下操作检查文件的md5sum:
$ md5sum file.txt
对于许多文件,请执行:
$ md5sum *