工具介绍:
Binwalk是用于搜索给定二进制镜像文件以获取嵌入的文件和代码的工具, 具体来说,它被设计用于识别嵌入固件镜像内的文件和代码。 Binwalk使用libmagic库,因此它与Unix文件实用程序创建的魔数签名兼容。 Binwalk还包括一个自定义魔数签名文件,其中包含常见的诸如压缩/存档文件,固件头,Linux内核,引导加载程序,文件系统等的固件映像中常见文件的改进魔数签名。
在CTF中Binwalk常用于分析隐藏文件
Windows下安装:
1.你需要先安装python
2.从github下载代码到本地 https://github.com/ReFirmLabs/binwalk
3.进入Binwalk所在文件夹 执行命令 程序将会自动安装
4.安装完成后在python安转目录下的Script目录里有个名字叫做binwalk的文件
然后在本文文件夹启动命令行就可以使用Binwalk了
这样每次使用都需要到这个文件夹比较麻烦 ,可以添加环境变量解决这个问题
Linux下安装:
linux下安装就比较简单了
Installation
Binwalk follows the standard Python installation procedure:
- $ sudo python setup.py install
复制代码 If you're running Python 2.x, installing the optional Python lzma module is strongly recommended (but not required):
- $ sudo apt-get install python-lzma
复制代码
Binwalk命令介绍
- 扫描选项:
- -B,-- signature 扫描目标文件的常见文件签名
- -R,--raw = <str>扫描目标文件的指定字符序列
- -A,--opcodes扫描目标文件中常见可执行代码
- -m,--magic = <file> 指定要使用的自定义魔数签名文件
- -b,--dumb 禁用智能签名关键字
- -I,--invalid显示结果标记为无效
- -x,--exclude = <str>排除与<str>匹配的结果
- -y,--include = <str>只显示匹配<str>的结果
- 提取选项:
- -e,--extract自动提取已知的文件类型
- -D,--dd = <type:ext:cmd>提取<type>签名,为文件扩展名为<ext>,然后执行<cmd>
- -M,--matryoshka 递归扫描提取的文件
- -d,--depth = <int>限制matryoshka递归深度(默认值:8级深)
- -C,--directory = <str>将文件/文件夹提取到自定义目录(默认值:当前工作目录)
- -j,--size = <int> 限制每个提取的文件的大小
- -n,--count = <int>限制提取文件的数量
- -r,--rm 提取后删除刻录文件
- -z,--carve从文件中读取数据,但不执行提取实用程序
- 熵分析选项:
- -E,--entropy 计算文件熵
- -F,--fast计算更快,但不太详细的熵分析
- -J,--save将熵图保存为PNG图像
- -Q,--nlegend 从熵图图中省略图例
- -N,--nplot 不生成熵图
- -H,--high = <float>设置上升沿熵触发阈值(默认值:0.95)
- -L,--low = <float> 设置下降沿熵触发阈值(默认值:0.85)
- 原始压缩选项:
- -X, --deflate扫描原始deflate压缩流
- -Z, --lzma 扫描原始LZMA压缩流
- -P, --partial浅度扫描,速度更快
- -S, --stop 找到第一个结果后停止扫描
- 二进制差异选项:
- -W,--hexdump 执行文件或文件的hexdump/diff
- -G,--green 只显示包含所有文件中相同字节的行
- -i,--red 仅显示包含所有文件中不同字节的行
- -U,--blue只显示一些文件中包含不同字节的行
- -w,--terse 只显示第一个文件的十六进制转储
- 一般选项:
- -l,--length = <int>要扫描的字节数
- -o,--offset = <int>以此偏移开始扫描
- -O,--base = <int>向所有打印的偏移量添加基址
- -K,--block = <int> 设置文件块大小
- -g,--swap = <int>扫描前每n个字节反转一次
- -f,--log = <file>将结果记录到文件
- -c,--csv 将结果记录到CSV格式的文件中
- -t,--term格式化输出以适合终端窗口
- -q,--quiet 禁止输出
- -v,--verbose 详细输出
- -h,--help显示帮助
- -a,--finclude = <str>只扫描名称与此正则表达式匹配的文件
- -p,--fexclude = <str>不扫描名称与此正则表达式匹配的文件
- -s,--status = <int>启用指定端口上的状态服务器
复制代码
|