工具简介

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. 浅谈-动态路由之OSPF的理解

    路由 在网络中,路由相当于就是一张地图,让路由器知道这个对应的IP数据包应该往哪端口.网段走:而这个"地图"我们称之为路由表,不同的目的IP路由表的下一个跳也不同,其生成方式有又有 ...

  2. 撸了一个简易的配置中心,顺带整合到了SpringCloud

    大家好,我是三友~~ 最近突然心血来潮(就是闲的)就想着撸一个简单的配置中心,顺便也照葫芦画瓢给整合到SpringCloud. 本文大纲 配置中心的概述 随着历史的车轮不断的前进,技术不断的进步,单体 ...

  3. MyBatis的各种查询功能

    1.查询一个实体类对象 /** * 根据用户id查询用户信息 * @param id * @return */ User getUserById(@Param("id") int ...

  4. golang中的错误处理

    0.1.索引 https://waterflow.link/articles/1666716727236 1.panic 当我们执行panic的时候会结束下面的流程: package main imp ...

  5. letcode刷题记录-day02-回文数

    回文数 题目描述 给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target  的那 两个 整数,并返回它们的数组下标. 你可以假设每种输入只会对应一个答 ...

  6. 河北首家城商行传统核心业务国产化,TDSQL突破三“最”为秦皇岛银行保驾护航

    11 月 1 日,秦皇岛银行新一代分布式核心系统成功投产并稳定安全运行超过三个月,标志着秦皇岛银行数字化转型应用和服务水平登上了一个新台阶. 这是秦皇岛银行有史以来规模最大.范围最广.难度最高的一次系 ...

  7. 动态爱心-详细教程(小白也会)(HTML)

    动态爱心 超级超级超级简单!!!赶紧做给你们的"Ta"看吧! (最后有详细步骤) 视频效果: 话不多说直接上代码 点击查看代码 <!DOCTYPE HTML PUBLIC & ...

  8. redis的几个优化点

    1. redis读写速度慢 可以将redis单实例改为redis集群 2. redis报OOM redis内存溢出,调大redis内存:增加redis.conf中的maxmemory 的值.如果red ...

  9. JUnit 5 单元测试教程

    点赞再看,动力无限. 微信搜「程序猿阿朗 」. 本文 Github.com/niumoo/JavaNotes 和 未读代码博客 已经收录,有很多知识点和系列文章. 在软件开发过程中,我们通常都需要测试 ...

  10. qt quick工程升级,qmake工程升级至cmake

    升级原因 由于音视频工作需要,qt6比qt5的video相关更看重效率. 升级中遇到的问题 在开发的过程中,为了更快速的进行开发,对业务其他不需要代码运行效率的地方使用qml+js的方式进行编写.在升 ...