完整安装 binwalk
之前安装 binwalk 时都是 apt 一键安装, 后面使用时发现 apt 安装的 binwalk 会因为缺少一些命令行工具无法正常工作, 因此卸载掉了 apt 安装的 binwalk, 跟着官方文档手动安装 binwalk
然而官方文档都是基于 ubuntu 进行安装的, debian 下会缺少一些包。同时官方的依赖脚本也有些过时, 我根据自己机器的情况做了一些更改
我个人有一些强迫症, 不希望软件被装到 /usr/bin, 而是 ~/.local/bin, pip 安装时都加了 –user 参数
安装本体
pip 上的版本有点老旧, 这里直接从仓库安装
1 | pip3 install git+https://github.com/ReFirmLabs/binwalk.git --user |
crypto
pycrypto 已停止更新, 使用 pycryptodome
1 | pip3 install pycryptodome --user |
图片生成以及可视化
需要依赖 pyqtgraph 和 matplotlib
1 | pip3 install matplotlib PyQt5 pyqtgraph --user |
运行时报错
1 | qt.qpa.plugin: Could not load the Qt platform plugin "xcb" in "" even though it was found. |
这是因为 libqxcb.so
找不到 libxkbcommon-x11.so.0, libxkbcommon-x11.so.0, 在 pyqt5 的更新日志中有提及
1 | - [QTBUG-65503] Removed xkbcommon from bundled sources. This library is |
由于我是在 wsl 下安装的, 系统没有自带桌面环境, 是用 X11 转发到 vcxsrv 上是使用 GUI的, 因此没有带这个运行库
直接 apt 安装即可
1 | sudo apt install libxkbcommon-x11-0 |
反汇编
binwalk 使用 capstone 进行反汇编
1 | pip3 install capstone --user |
安装提取工具
binwalk 运行时会依赖一些命令行工具用于提取固件
APT 一键安装的命令行工具
1 | sudo apt install mtd-utils gzip bzip2 tar arj lhasa p7zip p7zip-full cabextract cramfsswap squashfs-tools sleuthkit default-jdk lzop srecord |
软件包 cramfsprogs 包含命令 cramfsck, 在新版 ubuntu 和 debian 中已被移除, 我直接下载了旧版的包然后使用 dpkg 安装
1 | wget http://mirrors.tuna.tsinghua.edu.cn/debian/pool/main/c/cramfs/cramfsprogs_1.1-6_amd64.deb |
安装 sasquatch
sasquatch 用于提取非标准的 SquashFS 镜像
编译时出现了同 #6 的报错, 这里使用了 @E3V3A 的解决方案, 使用 sed 修改了源码
1 | sudo apt install build-essential liblzma-dev liblzo2-dev zlib1g-dev |
安装 jefferson
jefferson 用于提取 JFFS2 文件系统
1 | sudo apt install liblzma-dev |
安装 ubi_reader
ubi_reader 用于提取 UBIFS 文件系统
ubi_reader 在更新后增加了错误检查, 有些 UBIFS 提取时会会因为 “Added fatal error check if UBI block extends beyond file size” 中断
commit:
https://github.com/jrspruitt/ubi_reader/commit/af678a5234dc891e8721ec985b1a6e74c77620b6)
由于本人有强迫症, 旧版 ubi_reader 不支持 python3, 因此直接安装的新版, 碰上问题再说吧
1 | sudo apt install liblzo2-dev |
安装 yaffshiv
安装 yaffshiv 用于提取 YAFFS 文件系统
1 | pip2 install git+https://github.com/devttys0/yaffshiv --user |
安装 unstuff 提取 StuffIt 档案文件
这玩意是闭源的, 没有 x64 版本
1 | mkdir -p /tmp/unstuff |