工具简介

Binwalk 是一种快速、易于使用的工具,用于分析、逆向工程和提取固件映像。

工具环境

  • Linux

Linux环境下安装

  1. 直接使用apt/yum进行安装
apt install binwalk

根据文档进行安装 https://github.com/ReFirmLabs/binwalk/blob/master/INSTALL.md

  • Python3 (官方建议 Python3.6)

Python依赖

pip install nose coverage
pip install pycryptodome # 解密已知的加密固件映像
pip install pyqtgraph # 用于pyqtgraph生成可视化图形
pip install capstone # 用于--disasm选项

典型用法

  • 获取帮助
binwalk -h
binwalk --help

  

  • 固件扫描
binwalk firmware.bin
# 通过扫描能够智能的发现目标文件中包含的所有可识别的文件类型。
binwalk firmware.bin | head
binwalk -e pcat.bin
# 分解出文件,使用此命令,可以无视伪加密压缩包、多分割压缩包以及其他文件分解。
binwalk -D=jpeg pcat.bin
# 可以指定某种类型的文件进行分解。(--dd与此命令相同,并且均支持正则表达式)
binwalk -eM pcat.bin
# -M选项和--matroshak 为 递归提取,仅支持 “-e” 和 “--dd”,递归依据是根据magic签名。
binwalk --dd 'zip archive:zip:unzip %e' pcat.bin
# 指定文件分解 正则

 

  • 固件文件的比较

选项“-W”或“-hexdump”对给定文件进行字节比较,可以指定多个文件,这些文件的比较结果会按照hexdump方式显示,绿色表示在所有文件中这些字节都是相同的,红色表示在所有文件中这些字节都是不同的,蓝色表示这些字节仅在某些文件中是不同的。该选项可以与“--block”、“--length”、“--offset” 、“--terse”选项一起使用。

binwalk -W 1 2 3

1,2,3有两个文件内容相同,1个内容不同,所以是蓝色。

1,2,3三个文件都不相同,所以是红色。

  • 日志记录

选项“ -f ” 或 “ --log= ”可以将扫描的结果保存到一个指定的文件中,示例如下。(如果不与“ -q ” 或 “ --quit ”合用,会同时在stdout和文件中输出。如需要保存CSV格式的log文件,可使用 “--csv”选项。)

binwalk -f logs.log -q pcat.bin
binwalk -f binwalk.log --csv pcat.bin
  • 指令系统分析
  • 熵分析

选项“-E”、“--entropy”用于对输入文件执行熵分析,打印原始数据并生成熵图,可与“ --signature ”、“ --raw ”以及“--opcodes”选项合用,对分析更有利。

binwalk -E firmware.bin
# 注意要区别于“小e”的使用[提取文件]
  • 启发式分析

遇到的问题

  1. binwalk itself must be run as root

需要在binwalk命令后添加 --run-as=root

┌──(root㉿kali)-[~]
└─# binwalk -e 1.jpg --run-as=roo

工具归属

  • 项目地址:https://github.com/ReFirmLabs/binwalk

【CTF隐写工具】binwalk工具使用方法的更多相关文章

  1. [CTF隐写]png中CRC检验错误的分析

    [CTF隐写]png中CRC检验错误的分析 最近接连碰到了3道关于png中CRC检验错误的隐写题,查阅了相关资料后学到了不少姿势,在这里做一个总结 题目来源: bugku-MISC-隐写2 bugku ...

  2. 记一道CTF隐写题解答过程

      0x00 前言 由于我是这几天才开始接触隐写这种东西,所以作为新手我想记录一下刚刚所学.这道CTF所需的知识点包括了图片的内容隐藏,mp3隐写,base64解密,当铺解密,可能用到的工具包括bin ...

  3. 南邮CTF隐写之丘比龙的女神

    刚开始下载下图片来 习惯性的binwalk一下 没发现东西 formost一下也没分离出来 扔进c32asm中发现有nvshen.jpg 于是改后缀名字为.zip 解压nvshen.jpg发现无法解压 ...

  4. CTF隐写——越光宝盒

    0x题目 原题来自于实验吧:http://www.shiyanbar.com/ctf/1992 一句话,和一个PNG图片. 0x解题 1.下载图片以后,发现打不开. 首先想到的就是文件头可能被修改了, ...

  5. F5隐写工具使用

      0x00 前言 今天在实验吧看到一个图片隐写的题目,用了stegslove和winHex分析一通发现并没有什么有效信息.看了评论区大佬的提示说用到了F5隐写工具,所以百度教程用了一下,发现确实解决 ...

  6. 隐写工具zsteg安装及使用教程

    zsteg可以检测PNG和BMP图片里的隐写数据. 目前,zsteg支持检测: LSB steganography in PNG & BMP zlib-compressed data Open ...

  7. Linux性能分析工具与图形化方法

    欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~. 作者:赵坤|腾讯魔王工作室后台开发工程师 在项目开发中,经常会遇到程序启动时间过长.CPU使用率过高等问题,这个时候需要依靠性能分析工具来 ...

  8. CTF杂项之音频隐写

    题目来自bugku 二话不说,直接上图 由题目可以看出,这题需要用到一个KEY,加上又是一段音频,很容易联想到一个著名的音频隐写解密软件Mp3stego 直接上工具 ok,成功Get Flag

  9. Collections集合工具类常用的方法

    java.utils.Collections //是集合工具类,用来对集合进行操作.部分方法如下: public static <T> boolean addAll(Collection& ...

  10. 2020最新IDEA插件大集合,一款能帮助你写代码的工具是多么重要

    摘要 12款为用户精心打造的Idea插件,含盖前后端,另把使用小技巧分享给大家,提高大家的码率,希望对你们有帮助! Lombok Lombok为Java项目提供了非常有趣的附加功能,使用它的注解可以有 ...

随机推荐

  1. Idea运行支付宝网站支付demo踩坑解决及其测试注意事项

    一.前言 在一些商城网上中,必不可少的是支付,支付宝和微信比较常见,最近小编也是在研究这一块,看看支付宝怎么进行支付的,支付宝给我们提供了demo和沙箱测试.减少我们的申请的麻烦,公钥和秘钥也比之前方 ...

  2. day46-JDBC和连接池02

    JDBC和连接池02 3.ResultSet[结果集] 基本介绍 表示数据库结果集的数据表,通常通过执行查询数据库的语句生成 ResultSet对象保持一个光标指向其当前的数据行,最初,光标位于第一行 ...

  3. 20220728 - DP训练 #1

    20220728 - DP训练 #1 时间记录 \(8:00-9:00\) T1 尝试做 \(T1\),可惜并未做出,没有想到是资源分配 设置三维状态,初值一直不知道怎么设置 并且对于距离有一部分不会 ...

  4. 并发编程之 ThreadLocal

    前言 了解过 SimpleDateFormat 时间工具类的朋友都知道,该工具类非常好用,可以利用该类可以将日期转换成文本,或者将文本转换成日期,时间戳同样也可以. 以下代码,我们采用通用的 Simp ...

  5. RDF/RDFS/OWL

    RDF(Resource Description Framework 资源描述框架) 知识总是以三元组形式出现: (subject, predicate, object) 即 (主,谓,宾) 资源和属 ...

  6. disk磁盘分区软件使用教程,磁盘扩容无损备份

    前几天,因为我的笔记本电脑C盘D盘全红了,趁着双11固态降价,赶紧买了一张三星980 500g 给我的拯救者插上了,加上原来的500g,总共1T,已经够用了. 不得不说拯救者系列预留的1个M.2固态插 ...

  7. vue使用elementUI组件提交表单(带图片)到node后台

    1.方法一(图片与表单分开,请求2次) 1.1 前台代码 // elementUI表单 <el-form ref="form" class="forms" ...

  8. Oracle数据泵导入dmp文件,报ORA-39083、ORA-01917错误解决办法

    将10.16.23.111数据库服务器中的数据库名称为cwy_init1的数据导出,随后在10.16.23.112数据库服务器创建空库cwy_init2,将导出的cwy_init1数据文件(cwy_i ...

  9. 聊聊mysql的事务

    今天来聊聊事务的四大特性以及其实现原理,需结合之前写的mysql是如何实现mvcc的来理解,因为大多数的实现都是基于mvcc的,理论介绍完后会通过实例来演示mvcc又是如何实现这些隔离级别的 事务的四 ...

  10. 使用idea创建第一个Mybatis程序及可能遇到的问题

    第一个Mybatis程序 思路:搭建环境->导入Mybatis->编写代码->执行 搭建环境 创建数据库 CREATE DATABASE `mybatis` USE `mybatis ...