关于binwalk

Binwalk是一款快速、易用,用于分析,逆向工程和提取固件映像的工具。简单易用,完全自动化脚本,并通过自定义签名,提取规则和插件模块,还重要一点的是可以轻松地扩展。

在CTF的MISC类题型和IOT安全的固件解包分析中广泛应用,可以大大提高效率。该工具对linux支持较好,对于windows功能支持较差,有条件的童鞋可以在linux上使用练习该神器。

本文旨在为想要在Windows系统下使用binwalk的同学提供安装参考。

环境要求

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

2、python3环境

3、注意事项(必看):

        (1)目前在github上binwalk的版本为2.3.3,但是在Windows平台下的python环境中对该版本并不支持,会遇到找不到pwd库的情况。如下图:

Windows平台下安装binwalk_Windows

        (2)因此,想要在Windows平台下使用binwalk,就要求binwalk的版本需要 <=2.3.2。

        (3)binwalk-v2.3.2版本下载传送门:https://github.com/ReFirmLabs/binwalk/archive/refs/tags/v2.3.2.zip

安装过程:

1、解压下载下来的源代码压缩包,并cmd到当前目录下

Windows平台下安装binwalk_Windows_02

2、执行命令:python3 setup.py install

Windows平台下安装binwalk_linux_03

3、待执行结束后,在python3安装目录下的Script文件夹下便可看到binwalk程序

Windows平台下安装binwalk_linux_04

4、cmd到Script目录下执行:python3 binwalk -h。出现如下页面,表示安装成功了。

Windows平台下安装binwalk_Windows_05

tips:如果提示ModuleNotFoundError: No module named 'pwd' 这个错误,需要注意一下本文章前面写到的关于binwalk版本的问题。

binwalk环境便捷化配置

通过上述过程安装后,每次用到binwalk程序需要cd到Script目录下,这样的话就不是很方便,因此我们可以通过一个python脚本将binwalk的执行封装到一个exe程序中,并配置到环境变量里就可以直接使用了。

写一个binwalk.py,代码如下:

# binwalk.py  
 
import os
 
import sys
  
 
file = ' '.join(sys.argv[1:])
 
command = "python3 D:\\Python\\Python38\\Scripts\\binwalk " + file
 
os.system(command)

 cmd命令行切换到binwalk.py所在文件夹,执行命令:

pyinstaller --onefile binwalk.py

命令会将binwalk.py打包生成binwalk.exe。

注意:

(1)如果执行pyinstaller --onefile binwalk.py报 “ 'pyinstaller' 不是内部或外部命令,也不是可运行的程序或批处理文件。”错的时候,可执行pip3 install pyinstaller安装即可。

(2)注意代码中的路径。

(3)生成的binwalk的位置,如下:

Windows平台下安装binwalk_github_06

 生成 binwalk.exe 后,测试:

Windows平台下安装binwalk_python_07

可以整成使用!

接下来,将binwalk.exe复制到 python安装目录下的Scripts目录下(前提是Scripts目录已配置到环境变量中)或复制到C:\Windows\System32目录下,便可直接在cmd命令行下使用Binwalk啦!