binwalk常用命令


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

文章作者: LANVNAL
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 LANVNAL !
  目录