专有的 ARM ELF 二进制文件

Proprietary ARM ELF binary

最近,我得到了一个 ELF executable,用于基于 ARM 的微控制器。令我惊讶的是,当我试图通过使用 arm-none-eabi-objdump 转储所有内容来检查它时,它一直失败并显示错误

File format not recognized

在询问提供二进制文件的人后,我了解到它是用专有工具链编译(和链接)的,我不会提及以避免给他们额外的宣传。随后,我被告知我需要上述专有工具链中的实用程序才能反汇编二进制文件。这就是让我感到好奇的原因。 GNU的objdump怎么可能不解析ELF文件呢?据我所知,ELF 是一种标准的免费文件格式。当然,即使无法识别指令集,也应该至少可以获得部分和符号table,以及符号的二进制反汇编。也许信息被加密了?

可能是 ELF header 以某种方式被破坏以强制执行反调试技术。您可以从 crackme 挑战中学到很多东西。 Jonathan Salwan 的 x86 crackme 似乎也是如此。您可以在他的博客文章 "A binary analysis, count me if you can" 中阅读更多相关信息:http://shell-storm.org/blog/A-binary-analysis-count-me-if-you-can/