binwalk使用整理
入门指南
文章目录
- 常用参数
- 签名扫描
- 文件提取`-e`
- 提取特定的类型
- 熵分析
- 文件比较
常用参数
binwalk --help 显示binwalk帮助
签名扫描
Binwalk可以扫描固件映像以查找许多不同的嵌入式文件类型和文件系统。
根据特征头对文件进行解析
每行三个字段。十进制,十六进制,描述
╰──➤ binwalk R6700-V1.0.2.16_10.0.57.zip DECIMAL HEXADECIMAL DESCRIPTION
--------------------------------------------------------------------------------
0 0x0 Zip archive data, at least v1.0 to extract, compressed size: 31752250, uncompressed size: 31752250, name: R6700-V1.0.2.16_10.0.57.chk
31752307 0x1E48073 Zip archive data, at least v2.0 to extract, compressed size: 365, uncompressed size: 844, name: R6700-V1.0.2.16_10.0.57_Release_Notes.html
31752977 0x1E48311 End of Zip archive, footer length: 22
-M
递归扫描
-y filesystem
只扫描文件系统-y
选中
-x filesystem
不扫描文件系统-x
过滤
-a,-finclude = <str>
仅扫描名称与给定正则表达式字符串匹配的文件
-p,--fexclude = <str>
不扫描名称与给定正则表达式字符串匹配的文件```
文件提取-e
binwalk提取其在固件映像中找到的所有文件
binwalk -e firmware.bin╰──➤ binwalk -e R6700-V1.0.2.16_10.0.57.zip DECIMAL HEXADECIMAL DESCRIPTION
--------------------------------------------------------------------------------
0 0x0 Zip archive data, at least v1.0 to extract, compressed size: 31752250, uncompressed size: 31752250, name: R6700-V1.0.2.16_10.0.57.chk
31752307 0x1E48073 Zip archive data, at least v2.0 to extract, compressed size: 365, uncompressed size: 844, name: R6700-V1.0.2.16_10.0.57_Release_Notes.html
31752977 0x1E48311 End of Zip archive, footer length: 22
看到解压出来的还是压缩文件
指定-M选项,则Binwalk提取文件时递归扫描文件
$ binwalk -Me firmware.binbinwalk -Me R6700-V1.0.2.16_10.0.57.zip Scan Time: 2021-01-11 17:29:54
Target File: Desktop/firmware/R6700-V1.0.2.16_10.0.57.zip
MD5 Checksum: f14adae5a0af596cd3f8c702c0ce6d70
Signatures: 410
只解压出文件系统
binwalk -y filesystem -e arm-6.37.2.npkDECIMAL HEXADECIMAL DESCRIPTION
--------------------------------------------------------------------------------
4096 0x1000 Squashfs filesystem, little endian, version 4.0, compression:xz, size: 8091045 bytes, 1062 inodes, blocksize: 262144 bytes, created: 2016-11-08 13:40:54
附加
-a,-finclude = <str>
仅扫描名称与给定正则表达式字符串匹配的文件。
binwalk -M -e -a = ’ \ .bin $ ’ firmware.bin
附加
-C,--directory = <str>
选项
设置提取数据的输出目录(默认:当前工作目录)
binwalk -e --directory = /tmp firmware.bin
附加
-r
选项
清理大小为零的文件以及提取过程中提取实用程序无法处理的文件
附加
-d n
递归解压深度为n
附加
-f,-log = <文件>
将扫描结果记录到指定文件。
binwalk --log = binwalk.log firmware.bin
提取特定的类型
-D
选项-D, --dd=<type[:ext[:cmd]]>
- type是签名描述中包含的小写字符串(支持正则表达式)
- ext是保存数据磁盘时使用的文件扩展名(默认为none)
- cmd是在将数据保存到磁盘后执行的可选命令
binwalk -D 'zip archive:zip:unzip %e' -D 'png image:png' firmware.bin
该选项将提取包含字符串“zip archive”,文件扩展名为“zip”的文件,然后执行“unzip”命令。
此外,PNG图像按原样提取,带有’png’文件扩展名。
请注意使用’%e’占位符。执行unzip命令时,此占位符将替换为解压缩文件的相对路径
熵分析
熵是用于表达混乱程度的名词,熵值可以表达系统中蕴含的能量,也可用于表达信息中的不确定性。
信息熵
固件二进制文件信息熵属性值的计算方法
如果binwalk不报告任何签名怎么办?或者,您怎么知道binwalk没有错过任何有趣的事情?
熵分析可以帮助识别固件映像中数据的有趣部分
针对某个特定固件镜像进行熵分析,该操作能够帮助读者判断固件镜像是否进行了压缩或者加密。
加密的固件镜像熵值会出现大幅波动
binwalk -E firmware.bin对输入文件执行熵分析,打印原始熵数据并生成熵图。
熵分析可以与
–signature,
–raw
–opcodes结合使用,
以便更好地理解目标文件。--verbose选项结合使用时,
将打印为每个数据块计算的原始熵保存熵图为PNG文件并不显示(-J,--save)binwalk --save -E firmware.bin
文件比较
-W,–hexdump
对输入文件执行十六进制转储,并对字节进行颜色编码,如下所示:
绿色-所有文件中的字节均相同
红色 -所有文件中的字节均不同
蓝色 -这些字节仅在某些文件中有所不同
可以扩散任意数量的文件;有用的选项是--block,-- offset,-- length和--terse
$ binwalk -W --block=8 --length=64 1.bin 2.bin
binwalk使用整理相关推荐
- bugku:简单的套娃
下载得到一张图片,根据题目提示,猜测是图片里面套图片,使用binwalk打开发现,果然有两张图片, 接下来我们要进行图片提取,将图片拖到010editor中,将第二个JPG文件头后面的复制下来另存,得 ...
- MISC常见题型整理
题目打包在这里 提取码:fhkb MISC 流量包分析 流量包_1 流量包_2 流量包_3 图片隐写 图片隐写_1 图片隐写_2 图片隐写_3 图片隐写_4 图片隐写_5 图片隐写_6 音频隐写 音频 ...
- Binwalk工具的安装
https://blog.csdn.net/QQ1084283172/article/details/65441110 一.binwalk工具运行支持的平台 binwalk工具安装支持的平台的官方参考 ...
- 路由器逆向分析------binwalk工具的安装
本文博客链接:http://blog.csdn.net/qq1084283172/article/details/65441110 一.binwalk工具运行支持的平台 binwalk工具安装支持的平 ...
- Map再整理,从底层源码探究HashMap
前言 本文为对Map集合的再一次整理.内容包括:Map HashMap LinkedHashMap TreeHashMap HashTable ConcurrentHashMap Map Map< ...
- List再整理,从代码底层全面解析List(看完后保证收获满满)
前言 本文为对List集合的再一次整理,从父集接口Collection到顶级接口Iterable再到线程不安全实现类:ArrayList.LinkedList,再到线程安全实现类:Vector(被弃用 ...
- LeetCode简单题之整理字符串
题目 给你一个由大小写英文字母组成的字符串 s . 一个整理好的字符串中,两个相邻字符 s[i] 和 s[i+1],其中 0<= i <= s.length-2 ,要满足如下条件: 若 s ...
- TVM/Relay 的 PartitionGraph()(mod) 函数讨论整理
TVM/Relay 的 PartitionGraph()(mod) 函数讨论整理 TVM/Relay 的图形分区功能.以下简单示例,错误信息. PartitionGraph() 函数指定图形是用带有 ...
- AIFramework基本概念整理
AIFramework基本概念整理 本文介绍: • 对天元 MegEngine 框架中的 Tensor, Operator, GradManager 等基本概念有一定的了解: • 对深度学习中的前向传 ...
最新文章
- 2021年春季学期-信号与系统-第三次作业参考答案-第三道题
- 地图查询定位功能(Flex API)
- linux系统迁移的重要配置文件,mylinuxbackup
- 【读书笔记《Android游戏编程之从零开始》】6.Android 游戏开发常用的系统控件(TabHost、ListView)...
- Go -- log4go日志
- HashMap的结构及源码分析
- Gridview 单选效果实现,且用且珍惜
- C语言 指针+二维数组详解 (应付期末、考研的最强笔记,建议收藏)
- qemu debug linux内核,在QEMU环境中使用GDB调试Linux内核
- log4j记录日志到sqlserver数据库
- HDU-1358 Period KMP
- jQuery_层级选择器
- IT软件开发人员必去的10个社区
- java超市管理系统ppt_基于java-web的超市管理系统毕业答辩ppt课件
- 百度网络质量监控实战:猎鹰一战成名(下)
- Yann Lecun 纽约大学Spring2020深度学习课程,附66页PPT下载
- Xmas snow for Mac(圣诞桌面装饰软件)
- Webstrom取消下划线
- 企业怎样做好工厂生产人员管理?
- 前端_实现文本溢出显示三个小圆点“...“