我最感兴趣的是提取架构版本,即 v5、v5T 等。我一直在参考Elf 的 ARM 架构第 4.3.6 节构建属性,这对我了解这一点很有帮助。我可以找到 .ARM.attributes 部分的开头,并且可以解析信息的第一个关键部分:Format-version、Section-length 和 vendor-name + null 字节,没问题。在那之后我有点失落。下面是我在使用ARMv5T 架构hexdump -vC
编译的精灵上运行的快照。arm-linux-gnueabi-gcc -march=armv5t -O myprog.c -o myprog
该部分的开始是 77f0b。
我们可以看到: Format-version: A
节长:0x29
供应商名称:“aeabi”
显然,5T 在 77f1C 以 ASCII 形式提供,但我不确定如何解释我需要解析以获得该值的标签。
注意:是的,我知道我可以使用一些工具来执行此操作,但我需要在我正在编写的应用程序中提取信息。它已经解析了必要的信息以使其达到这一目标。
额外问题:PowerPC 有类似的标签吗?我找不到任何支持文件。