使用binwalk进行二进制分析的简单教程(附kali中分离文件的简单实例)

使用binwalk进行二进制分析的简单教程(附kali中分离文件的简单实例)

这篇文章最早发布在CSDN上https://blog.csdn.net/ttovlove_/article/details/135070900?spm=1001.2014.3001.5502

一、引言

  1. 介绍binwalk的作用和应用场景

- 作为一款开源的二进制分析工具,binwalk可以帮助用户提取、识别和分析各种文件中的隐藏信息,如文件类型、字符串、关键字等。

  1. 为什么选择binwalk作为二进制分析工具

- binwalk具有强大的功能和灵活的参数设置,适用于多种操作系统和文件类型,且易于学习和使用。

二、安装binwalk

  1. 系统要求

- Windows、Linux和macOS系统均可使用。

  1. 下载binwalk安装包

- 访问binwalk官方网站(https://github.com/ReFirmLabs/binwalk)下载最新版本的安装包。

kali中使用apt命令来安装

$sudo apt-get install binwalk 
  1. 安装binwalk

- 对于Windows用户,运行安装包并按照提示进行操作;对于Linux和macOS用户,使用包管理器(如apt、yum或brew)进行安装。

  1. 验证安装是否成功

- 打开命令行或终端,输入“binwalk –version”并按回车键,若显示binwalk的版本信息,则表示安装成功。

binwalk --version

三、基本使用方法

  1. 获取待分析文件

- 从网络下载、从设备中提取或从其他来源获取待分析的二进制文件。

  1. 使用binwalk分析文件

- 在命令行或终端中输入“binwalk 文件路径”并按回车键,binwalk将自动开始分析文件。

- 常用选项说明:

- -e:指定文件扩展名,用于过滤分析结果。

- -M:指定最小文件大小,用于过滤分析结果。

- -A:指定文件类型,用于过滤分析结果。
  1. 查看分析结果

- 提取文件信息:使用

--dd

--disasm

选项查看文件的详细信息和汇编代码。

- 识别文件类型:使用

--file-type

选项查看文件的类型和格式。

- 查找特定字符串或关键字:使用

--string

--keyword

选项搜索文件中的特定内容。

- 提取隐藏信息(如密码、密钥等):使用

--entropy

--crc

选项检查文件中的加密和完整性信息。

四、高级功能与技巧

  1. 使用脚本自动化分析

- 编写自定义脚本,实现批量分析和处理二进制文件的功能。

  1. 与其他工具结合使用(如Wireshark、IDA Pro等)

- 将binwalk的分析结果导入到其他工具中,进行进一步的处理和分析。

  1. 自定义输出格式和报告生成

- 使用“–output”选项指定输出格式,如CSV、JSON等;使用“–report”选项生成详细的分析报告。

  1. 常见问题与解决方法

- 解决分析过程中遇到的各种问题,如错误提示、分析失败等。

五、实例演示

  1. 分析一个已知的恶意软件样本

- 使用binwalk提取恶意软件中的隐藏信息,如加密算法、通信协议等。

  1. 分析一个加密的文件或数据包

- 使用binwalk识别加密算法和密钥,辅助解密和破解工作。

  1. 分析一个包含隐藏信息的二进制文件

- 使用binwalk查找文件中的敏感信息,如用户名、密码等。

以下是分离图片中隐藏文件的一个简单实例:

题目:png食用

img

用010以及stegsolve查看过图片,没有异常,怀疑是图片中隐藏文件,使用binwalk分析

命令如下:

binwalk 图片路径

img

通过binwalk分析可以发现在70658字节有一个zip的文件,将它分离出来,使用–dd命令:

dd if ="文件路径"  of="输出文件" skip=从哪个字节开始 bs=1

img

在文件中找到分离出来的文件解压,得到隐藏内容。