提取ELF内容并写入二进制文件

提取ELF内容并写入二进制文件

我一直尝试提取固件的内容并将其放入二进制文件中,但没有成功。

我看到了正确的十六进制内容,但不确定如何将它们按位放入文件中。

objdump -s -j .text firmware.ko | tail -n +5 | awk'{print"dd if='firmware.ko' of='content.bin' bs=1 count=$["$2 $3 $4 $5"]"}'

答案1

尝试这个:

objcopy -j .text -O binary firmware.ko firmware.text

该文件firmware.text应该包含您想要的内容。


更新: 如果固件文件采用的格式与您的机器(运行)使用的格式相同,则上述操作应该有效。objcopy如果不是这种情况,您将获得:

objcopy: Unable to recognise the format of the input file `firmware-arm.ko'

然后你必须自己用 指定格式-I。使用file将告诉你固件的格式,例如:

$ file firmware-arm.ko
firmware-arm.ko: ELF 32-bit LSB relocatable, ARM, version 1 (SYSV), BuildID[sha1]=0xec2e703615d915dd1cad09ecc12ff7d57ef186a5, not stripped

然后(在这种情况下,您有一个 ELF 32 小端序)您将需要:

objcopy -j .text -O binary -I elf32-little firmware-arm.ko firmware-arm.text

相关内容