软件名称:[B]Binwalk:后门(固件)解析利器[/B]
软件类型:国产软件
运行环境:Win9X/Win2000/WinXP/Win2003/
软件语言:简体中文
授权方式:共享版
软件大小:5.00 MB
官方主页:www.233122.com
更新时间:2013-11-20 22:25:00
软件简介:
近期网络上爆发的厂商固件后门漏洞,如D-LINK 腾达路由器后门时用到的解析工具是Binwalk,近来又更新到最新版本.周五抽空翻译了下工具利用办法和例子.
Binwalk介绍
Binwalk是一个固件的解析工具,旨在帮忙研究人员对固件非解析,提取及逆向工程用处.简单易用,完好自动化脚本,并通过自定义签名,提取法则和插件模块,还重要一点的是可以轻松地扩大.
最简单利用办法很直接; 供应固件文件途径和文件名便可:
$ binwalk firmware.bin
假如单单基于签名匹配的话有些文件范例是无法精确的辨认到.
所以检测这些范例签名的文件需求特定插件的配合(通过插件来实现),假如不启用将大大增添扫描时间和占用大量内存
比方,扫描zlib压缩包的时刻,得需利用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
提取文件
手动提取文件
Binwalk可以提取数据,发目前目标文件中指定提取法则利用 – dd选项.用于提取指定法则的格局是:
<type>:<extension>[:<command>]
从那边提取:
- type 是签名中描写的小写字符串(支持正则表达式)
- extension 是将数据保存到磁盘时利用的文件扩大名
- command 是当数据已保存到磁盘后可选的号令履行语句
默许情形下,除非备用文件名中指定签名情形不测,文件名是十六进制偏移签名被发现.
下面的例子演示若何利用 – dd选项,将提取任何包含字符串’zip归档文件扩大名的’zip’的签名,并随后履行“解压缩”号令指定提取法则.可指定多个–dd选项:
$ binwalk --dd='zip archive:zip:unzip %e' firmware.bin
要注意占位符的利用 如:“%e’”: 此占位符将被替换为所提取的文件的相对途径时,将履行号令.
自动化(自动)提取
-e选项可以用来履行自动数据提取的底子上提取法则中指定的默许的extract.conf文件:
$ binwalk -e firmware.bin
- 提取选项的工作原理相同,除了你必须指定一个自定义提取法则文件的途径:
$ binwalk -e firmware.bin $ binwalk --extract=./my_extract.conf firmware.bin
递归提取
很多次,提取的数据大概需求进一步binwalk的解析.为了帮忙自动化,binwalk可以递归扫描提取的数据和由外部减压或提取工具成立的文件指定-M选项和-e选项一同利用:
$ binwalk -Me firmware.bin
请注意,-M选项将提取的文件8层递归,且忽视外部提取工具可以成立任何目录.
操作码
$ binwalk -A firmware.bin
转换功效
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
熵解析
Binwalk 对目标文件可以举行熵解析目标文件,生成原始的熵数据和/或积表示的曲线图的数据:
$ binwalk -E firmware.bin
签名或字符串的解析,以及可以结合熵解析.比方,下面的号令将扫描目标文件,可履行代码和熵图上叠加的扫描后果:
$ binwalk -AE firmware.bin
启迪(大概指导式)
Binwalk的启迪式扫描作为加密或压缩的高熵的数据块举行分类的尝试.固然这种范例的扫描是不是100%精确.
在普通情形下,压缩的数据或已利用弱加密算法将有一个整体的高熵的加密,但小有呈现断块低熵的数据.已具有较强的熵算法加密的数据不会有这些小块的低熵的数据:
$ binwalk --heuristic firmware.bin DECIMAL HEX HEURISTIC ANALYSIS ------------------------------------------------------------------------------------------------------------------- 0 0x0 Compressed / moderate entropy data, 245 low entropy blocks 283648 0x45400 Compressed / moderate entropy data, 219 low entropy blocks 360448 0x58000 Compressed / moderate entropy data, 160 low entropy blocks 371712 0x5AC00 Compressed / moderate entropy data, 139 low entropy blocks 381952 0x5D400 Compressed / moderate entropy data, 57 low entropy blocks 384000 0x5DC00 Compressed / moderate entropy data, 40 low entropy blocks
请注意,此扫描需求两个周期(一个用于初始熵解析,以及第二更精密的启迪式解析),这需求一按时间来完成的,特别是目标文件分外打的话耗费更多的时间.
插件功效
插件列表
利用 –list-plugins选项能得到可以利用的binwalk插件的名称和属性列表:
$ binwalk --list-plugins
启用插件功效
一些插件在默许情形下是禁用的.这些插件可以启用时用该选项 –enable-plugin选项
$ binwalk --enable-plugin=foo firmware.bin
禁用插件功效
一些插件在默许情形下是启用的.这些插件可以禁用时用该选项 –diable-plugin选项
$ binwalk --disable-plugin=foo firmware.bin
大概,全部的插件可以禁用 ,利用该选项:–disable-plugins 选项:
$ binwalk --disable-plugins firmware.bin
日记记录功效
Binwalk日记输出普通是很大,所以它常常是文件保存方法记录
-f选项答应你指定一个日记文件.需求注意的是,假如没有指定-Q选项的话后果会打印到stdout以及日记文件.
$ binwalk -f binwalk.log firmware.bin
日记文件可以CSV格局保存
$ binwalk -f binwalk.log --csv firmware.bin
进级功效
通过 magic files和配置文件,加上利用 -u选项binwalk依靠svn check-in功效轻松进级到最新版本(需求root权限来更新)
$ sudo binwalk -u
假如利用http代理功效,在环境变量中设置http_proxy.
[url=http://www.xiamiku.com/soft/20704.html][B]Binwalk:后门(固件)解析利器[/B][/url]
普通下载
普通下载
普通下载