我有一个固件映像,用于刷新要研究的BMW NBT导航系统。我对文件进行了binwalk(下面的转储)。

我想提取单个文件,尤其是ELF文件和LZMA压缩文件。可以使用objcopy和dd来完成吗?

一个小例子将是个很好的例子。

#1 楼

您可以使用-D选项根据签名添加部分。例如,要提取ELF部分,请执行以下操作:

binwalk -D "elf 32-bit lsb shared object":.so image.bin


请注意小写签名字符串。

您可以指定多个-D实例。

有关更多详细信息,请参见binwalk Wiki:
https:/ /github.com/devttys0/binwalk/wiki

评论


更具体地说,--dd选项记录在github.com/devttys0/binwalk/wiki/Usage#-d---ddtypeextcmd中

– Lekensteyn
16年5月20日在16:06

#2 楼

从版本0.50开始,binwalk具有-e选项以提取文件。不幸的是,手册没有告诉您,但是如果您调用binwalk -version,它会告诉您

-e, --extract=[file]          Automatically extract known file types. Load rules from file, if specified.


当然,您也可以使用dd。例如,如果要使可执行文件为68264,请首先计算其大小(105904-68264 = 37640),然后:

$ dd if=myfile.bin of=executable.so bs=1 skip=68264 count=37640


根据需要重复其他内容。