从
objcopy manual page
objcopy可以用于通过使用二进制的输出目标来生成原始二进制文件(例如,使用-O二进制).当objcopy生成原始二进制文件时,它实际上会产生输入对象文件内容的内存转储.所有符号和重定位信息都将被丢弃.内存转储将从复制到输出文件中的最低部分的虚拟地址开始.
以下是可在PowerPC体系结构上使用的示例:
原来的vmlinux
bash-3.2$file vmlinux
vmlinux: ELF 32-bit MSB executable, PowerPC or cisco 4500, version 1 (SYSV), statically linked, not stripped
剥离的vmlinux被视为“数据”文件
bash-3.2$file vmlinux.bin
vmlinux.bin: data
将二进制转换为PowerPC的ELF格式
bash-3.2$powerpc-440fp-linux-objcopy -I binary vmlinux.bin -B powerpc -O elf32-powerpc vmlinux.bin.x
vmlinux的输出现在被视为ELF文件
bash-3.2$file vmlinux.bin.x
vmlinux.bin.x: ELF 32-bit MSB relocatable, PowerPC or cisco 4500, version 1 (SYSV), not stripped
您必须传递-I,-B和-O参数.您可以从objcopy文档中获取此参数.
但是由于你的二进制文件已被剥离,因此尝试反编译它可能不值得,因为部分信息不可用.文件中的所有数据都将被转储到.data secion中.