关于binwalk->sasquatch插件安装错误的缓解方案

一些相关报错:

  1. WARNING: Extractor.execute failed to run external extractor ‘sasquatch -p 1 -le -d ‘squashfs-root’ ‘%e’’: [Errno 2] No such file or directory: ‘sasquatch’, ‘sasquatch -p 1 -le -d ‘squashfs-root’ ‘%e’’ might not be installed correctly
  2. unsquashfs.c:1835:5: error: this ‘if’ clause does not guard… [-Werror=misleading-indentation] 1835 | if(swap)
  3. Filesystem uses lzma compression, this is unsupported by this version Decompressors available: gzip
  4. -bash: sasquashfs: command not found

缓解方案:

取消自动安装,改为手动安装squashfs-tools代替sasquashfs。

  1. 注释binwalk仓库里deps.sh的install_sasquatch后运行deps.sh
install_pip_package "setuptools matplotlib capstone pycryptodome gnupg tk"
#install_sasquatch
install_yaffshiv
install_jefferson
install_ubireader

if [ $distro_version = "18" ]
then
install_cramfstools
fi
  1. 获取4.5版本及以上的squashfs-tools,链接:https://github.com/plougher/squashfs-tools.git或https://sourceforge.net/projects/squashfs/files/squashfs/
git clone https://github.com/plougher/squashfs-tools.git
cd squashfs-tools
cd squashfs-tools
make # 可能需要再安装manpages和help2man,均包安装即可
sudo make install

此时,binwalk可正常使用squashfs-tools进行解压(-e).
若解压squashfs依旧error,请使用firmware-mod-kit的unsquashfs脚本

解释与补充

此时,虽然我们使用binwalk所报错的“sasquatch”命令会提示报错,但对于正常使用mksquashfs工具打包的squashfs系统已能正常解包。

题中这个问题的主要原因是,binwalk使用的sasquatch仓库所使用的squashfs工具并非是最新版。甚至是这个作者自己写了个patch folder给低版本的squashfs源码打补丁(但就算打了补丁,在高版本的kali和ubuntu20+的版本依旧很难编译)

并且,不仅是sasquatch这个仓库,binwalk自己对插件这类的支持也很怪。首先就是我们的报错1,相信那是大家搜到这个问题的直接原因。这个报错虽然指出了sasquatch,并且网上的博客都叫我们去安装就好了。但是,实际上:

  1. 这个sasquatch应该是squashfs-tools的过去时。我个人测试了4.2和4.5、4.6均不会使用sasquatch这个二进制文件。
  2. sasquatch实际上是binwalk的一个替代解压方案,当binwalk搜不到unsquashfs(squashfs-tools),才会使用sasquatch。请看源码:
    关于binwalk->sasquatch插件安装错误的缓解方案_第1张图片
    这是binwalk的解压配置文件,可以在最底下发现unsquashfs是优先被调用的。但因为不知道什么原因,就算有squashfs-tools,但要是squashfs-tools解压失败会导致binwalk使用sasquatch相关的报错信息。(这里注释sasquatch后重新编译也可测试出unsquashfs实际上是会被识别的)

那么这个问题的产生原因就如上所言,是binwalk和sasquatch的版本脱节所致。

而版本问题显然也有其它解决法,比如把sasquatch的build.sh的版本号改高,等等等等。

你可能感兴趣的:(嵌入式,编程,程序career,1024程序员节,binwalk,sasquatch,squashfs)