Binwalk安装踩坑指南

打第五空间时有一道题需要binwalk提取文件系统中的文件,但是kali apt安装的binwalk无法提取jffs文件系统,导致我以为是这道题是别的方法,问了一下师傅们才知道需要按照github的步骤安装,还有很多依赖。自己安装的时候踩坑很多,记录一下

安装本体

直接在https://github.com/ReFirmLabs/binwalk clone源代码并python setup.py install

安装依赖

为ubuntu和kali提供的deps.sh已经老旧,无法一键安装

sudo apt install git locales build-essential qtbase5-dev mtd-utils gzip bzip2 tar arj lhasa p7zip p7zip-full cabextract util-linux firmware-mod-kit cramfsswap squashfs-tools zlib1g-dev liblzma-dev liblzo2-dev sleuthkit default-jdk lzop cpio

安装pip包

sudo pip install setuptools matplotlib capstone pycryptodome gnupg tk

安装sasquatch

这里有个大坑,首先需要在clone之后修改patch.txt,注释掉-Werror

git clone --quiet --depth 1 --branch "master" https://github.com/devttys0/sasquatch
-CFLAGS ?= -O2
+# CJH: Added -g, -Werror and -DSQUASHFS_TRACE
+CFLAGS ?= -g -O2
 CFLAGS += $(EXTRA_CFLAGS) $(INCLUDEDIR) -D_FILE_OFFSET_BITS=64 \
    -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DCOMP_DEFAULT=\"$(COMP_DEFAULT)\" \
-	-Wall
+	-Wall # -Werror #-DSQUASHFS_TRACE # -Werror前面多了一个#

编译时需要添加参数

CFLAGS=-fcommon ./build.sh

安装stuffit520

google搜索stuffit520.611linux-i386.tar.gz

得到下载链接之后下载并安装

wget -O - http://mirror.sobukus.de/files/grimoire/z-archive/stuffit520.611linux-i386.tar.gz | tar -zxv
sudo cp bin/unstuff /usr/local/bin/

安装其它依赖

git clone https://github.com/devttys0/yaffshiv
(cd yaffshiv && sudo python setup.py install)
sudo apt-get install liblzo2-dev python-lzo
git clone https://github.com/jrspruitt/ubi_reader
(cd ubi_reader && sudo python setup.py install)
sudo pip install cstruct
git clone https://github.com/sviehb/jefferson
(cd jefferson && sudo python setup.py install)

参考

https://github.com/ReFirmLabs/binwalk/blob/master/INSTALL.md