binwalk常用命令
- 简单列出文件
$ binwalk firmware.bin
- 扫描zlib压缩包
$ binwalk --enable-plugin=zlib firmware.bin
- 过滤
包含过滤器
-y选项仅包括指定的搜索文本匹配的结果。搜索字符串(文本)应当使用小写,包括正则表达式,并且可以指定多个-Y选项。 下列搜索结果只包含文本“文件系统”中搜索出来的结果。(也就说使用了 filesystem的Y选项的话结果中只包含文本字符结果)
$ binwalk -y filesystem firmware.bin
排除过滤器
-x选项是排除搜索结果中的指定符合规则的文本(或者字符串)。 搜索字符串(文本)应当使用小写,包括正则表达式,并且可以指定多个-X选项。 下列例子中搜索时将排除“jffs2”字符串:
$ binwalk -x jffs2 firmware.bin
高级过滤器
可以将包含和排除过滤两功能结合使用:
例子:下列搜索结果即包含文本“文件系统”中搜索出来的结果又排除jffs2字符串结果。
$ binwalk -y filesystem -x jffs2 firmware.bin
- 提取文件
-e选项可以用来执行自动数据提取的基础上提取规则中指定的默认的extract.conf文件:
$ binwalk -e firmware.bin
递归提取
很多次,提取的数据可能需要进一步binwalk的分析。为了帮助自动化,binwalk可以递归扫描提取的数据和由外部减压或提取工具创建的文件指定-M选项和-e选项一起使用:
$ binwalk -Me firmware.bin
请注意,-M选项将提取的文件8层递归,且忽略外部提取工具可以创建任何目录。
- 转换功能
binwalk使用 -C 选项来完成多个不用文件类型转换; 通常最好是使用-l选项来限制这种扫描:
$ binwalk -l 32 -C firmware.bin
- 比较功能
Binwalk可以生成一个或多个文件的十六进制转储和差别。在文件当中相同字节的是绿色显示,不同的是红色显示,蓝色表示只是有些文件当中的不同部分。
$ binwalk -W firmware1.bin firmware2.bin firmware3.bin
- 字符串
除了上述基于签名的扫描,binwalk可以对目标文件进行一个智能的字符串分析,虽然不是完全替代的Unix strings一样强大功能,但是binwalk通过应用一些非常简单的验证规则筛选出最“垃圾”的字符串,和忽略一些无顺序的数据块
$ binwalk -S firmware.bin
- 插件功能
插件列表
使用 –list-plugins选项能获得可使用的binwalk插件的名称和属性列表:
$ binwalk --list-plugins
启用插件功能
一些插件在默认情况下是禁用的。这些插件可以启用时用该选项 –enable-plugin选项
$ binwalk --enable-plugin=foo firmware.bin