有没有办法检测 ELF 二进制文件是否损坏/篡改?
如何以编程方式检测 ELF 二进制文件是否被篡改或损坏?
例如,如果我删除 ELF 二进制文件(或库共享对象)的后半部分并粘贴随机文本,这将损坏它并且之后将无法工作。我想检测 Unix ELF 32 二进制文件或 UNIX 共享 C 库对象是否受到此影响。
谢谢。
How do I programatically detect whether an ELF binary is tampered or broken?
For example, If I delete second half of an ELF binary (or a library shared object) and paste random text, this will corrupt it and it will not work after. I want to detect whether an Unix ELF 32 binary or UNIX shared C library object is subjected to this.
Thanks.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
我不确定你在想什么,但是验证 ELF 二进制文件的“正确方法”是使用 SHA-1、MD5 等哈希值。
当你创建 ELF 文件时,你还创建了“签名”文件”使用此 HASH 算法,即 MD5 并验证结果。
例如,在 Solaris 上,您可以使用命令创建 MD5、SHA1、SHA256 摘要。
因此,要验证“/bin/sh”以防止修改,您应该
在此处提供更多西班牙语示例 MD5 在 Solaris 中的位置以及如何使用它
如果散列不是解决方案,您可以使用(在Solaris上)命令来验证ELF为
elfdump 和 ldd
您可以将 ldd 与 -iv 一起使用来验证共享库初始化
要生成以下校验和ELF 你可以使用选项-k
但是,如果你没有可信的ELF来比较,我认为这有点困难。
我希望这就是你正在寻找的,
Urko,
I'm not sure what are you thinking about, but the "correct way" to validate a ELF binary is to use a HASH like SHA-1, MD5, etc.
When you create the ELF file, then you also create the "signature file" using this HASH algorithm, i.e. MD5 and validate the result.
For example on Solaris you can create a MD5, SHA1, SHA256 digest using the command
So, to validate the "/bin/sh" to prevent modifcations, you should make
Here you have more examples in spanish Where is MD5 in Solaris and HowTo Use it
If hashing is not the solution, you can use (on Solaris) commands to verify the ELF as
elfdump and ldd
You can use the ldd with -iv to verify the shared libraries initialization
To generate a checksum of ELF you can use the option -k
But, if you don't have a trusted ELF to compare, it's a bit dificult, I think.
I hope this is what you are looking for,
Urko,