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

news2025/1/10 12:15:12

一些相关报错:

  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的解压配置文件,可以在最底下发现unsquashfs是优先被调用的。但因为不知道什么原因,就算有squashfs-tools,但要是squashfs-tools解压失败会导致binwalk使用sasquatch相关的报错信息。(这里注释sasquatch后重新编译也可测试出unsquashfs实际上是会被识别的)

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

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1128518.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

旋转设备实施预测性维护面临的挑战及解决方案

旋转设备是工业领域中至关重要的一类设备,然而,它们常常面临着各种故障和损耗,给生产运行和设备维护带来了诸多挑战。为了应对这些挑战,越来越多的企业开始采用预测性维护技术,以提前发现故障迹象并采取相应措施。本文…

PS软件 点击 “另存为 Web 所用格式” ,提示错误 无法完成操作 系统找不到指定路径

软件:Adobe Photoshop 问题: PS 点击 另存为 Web 所用格式 ,提示错误 无法完成操作 系统找不到指定路径 解决: 如果是Win10以上的系统,出现这种情况基本就是被系统自带的杀毒软件阻止了,可以看一下电脑右…

嵌入式实时操作系统的设计与开发(互斥量学习)

一个无论多么小的系统,都会有大系统的缩影,就像俗话说“麻雀虽小五脏俱全”。 嵌入式实时操作系统中除了基本调度机制(创建线程、调度线程、挂起线程等),事件处理机制(中断管理、时钟管理)、内…

JOSEF约瑟 分合闸电源监视继电器 ZZS-7G/1 220VAC/3S 导轨式安装

系列型号: ZZS-7G/1分闸、合闸、电源监视综合控制装置; ZZS-7G/11分闸、合闸、电源监视综合控制装置; ZZS-7G/23分闸、合闸、电源监视综合控制装置; ZZS-7G/24分闸、合闸、电源监视综合控制装置; ZZS-7/1G11分闸、…

2023年中国电动升降诊疗台产业链及市场规模分析[图]

电动升降诊疗台是一种医疗设备,通常用于医疗机构中,可以通过电动驱动实现高度的升降调整,以便医护人员更好地进行诊断、治疗或手术等操作。这种诊疗台的高度可调节性能,能够适应不同的工作需求和患者情况,提供更舒适和…

自组织映射Python实现

自组织映射(Self-organizing map)Python实现。仅供学习。 #!/usr/bin/env python3""" Self-organizing map """from math import expimport toolzimport numpy as np import numpy.linalg as LAfrom sklearn.base import…

Elasticsearch快速入门及结合Next.js案例使用

文章目录 什么是Elasticsearch安装Elasticsearch索引文档节点分片 使用Elasticsearch进行全文搜索连接到Elasticsearch创建索引和插入数据创建全文搜索页面测试全文搜索 结语 🎉欢迎来到Java学习路线专栏~Elasticsearch快速入门及结合Next.js案例使用 ☆* o(≧▽≦)…

Hbuilder打包安卓H5-APP,APP与程序分离,更新无需重新打包

一、目标 使用Hbuilder打包H5-APP 两个方式: 1、将自己的H5页面以及js全部打包进apk程序,后续如果更新,只能迭代apk版本,来进行APP更新升级。 2、使用HBuilder打个空包,修改应用入口页面(首页)地址,这里默…

Centos使用tomcat部署jenkins

jenkins的最新版本已经不在支持jdk8,支持的jdk环境如下: 安装jdk环境 yum -y install java-11-openjdk.x86_64 java-11-openjdk-devel.x86_64安装tomcat tomcat官网 cd /optwget https://dlcdn.apache.org/tomcat/tomcat-9/v9.0.82/bin/apache-tomcat…

HarmonyOS DevEso环境搭建

DevEco Studio 3.1配套支持HarmonyOS 3.1版本及以上的应用及服务开发,提供了代码智能编辑、低代码开发、双向预览等功能,以及轻量构建工具DevEco Hvigor 、本地模拟器,持续提升应用及服务开发效率。 1.下载 官方网站: HUAWEI De…

基于Java的校园论坛管理系统设计与实现(源码+lw+部署文档+讲解等)

文章目录 前言具体实现截图论文参考详细视频演示为什么选择我自己的网站自己的小程序(小蔡coding) 代码参考数据库参考源码获取 前言 💗博主介绍:✌全网粉丝10W,CSDN特邀作者、博客专家、CSDN新星计划导师、全栈领域优质创作者&am…

【Docker从入门到入土 5】 使用Docker-compose一键部署Wordpress平台

Docker-compose 一、YAML 文件格式及编写注意事项(重要)1.1 简介1.2 yaml语法特性1.3 yaml文件格式1.4 json格式简介 二、Docker-compose2.1 简介2.2 docker-compose的三大概念2.3 docker-compose配置模板文件常用的字段2.4 docker-compose 常用命令 三、…

Java游戏修炼手册:2023 最新学习线路图

前言 有没有一种令人兴奋的学习方法?当然有!绝对有!而且我要告诉你,学习的快乐可以媲美游戏的刺激。 小学时代,我曾深陷于一款名为"八百万勇士的梦"的游戏。每当放学,我总是迫不及待地打开电脑&a…

【C刷题】day6

一、选择题 1、以下叙述中正确的是( ) A: 只能在循环体内和switch语句体内使用break语句 B: 当break出现在循环体中的switch语句体内时,其作用是跳出该switch语句体,并中止循环体的执行 C: continue语句的作用是:在…

党建展馆vr仿真解说员具有高质量的表现力和互动性

随着虚拟数字人应用渐成趋势,以虚拟数字人为核心的营销远比其他更能加速品牌年轻化进程和认识,助力企业在激烈的市场竞争中脱颖而出,那么企业虚拟IP代言人解决了哪些痛点? 解决品牌与代言人之间的风险问题 传统代言人在代言品牌时&#xff0…

使用SecScanC2构建P2P去中心化网络实现反溯源

个人博客: xzajyjs.cn 前言 这款工具是为了帮助安全研究人员在渗透测试过程中防止扫描被封禁、保护自己免溯源的一种新思路。其利用到了区块链中的p2p点对点去中心化技术构建以来构建代理池。 工具链接:https://github.com/xzajyjs/SecScanC2 实验过程 该工具分为…

前端跨域相关

注:前端配置跨域后服务器端(Nginx)也需要配置,否则接口无法访问 vue跨域 配置文件 /vue.config.js devServer: { port: 7100, proxy: { /api: { target: http://域名, changeOrigin: true, logLevel: debug, pathRewrite: { ^/…

提升MODBUS-RTU通信数据刷新速度的常用方法

SMART PLC的MODBUS-RTU通信请参考下面文章链接: 【精选】PLC MODBUS通信优化、提高通信效率避免权限冲突(程序+算法描述)-CSDN博客MODBUS通讯非常简单、应用也非常广泛,有些老生常谈的问题,这里不再赘述,感兴趣的可以参看我的其它博文:SMART200PLC MODBUS通讯专题_RXXW…

unity 一键替换 UI上所有字体,批量替换字体(包括:Text和Text (TMP))

前言:在开发中会遇到这种情况,开发完了,发现UI字体没有替换,特别是需要发布到WebGL端的同学,突然发现无法显示汉字了。下面一个非常方便的方法完美解决。 1.解压出来的脚本放在Edit文件下,没有的创建一个 2…

AI问诊逐渐取代医生是不是伪命题?实测国内外医疗专用大模型

随着贫富差距和人口老龄化的进程加速,以及区域医疗资源的不均衡,医疗成了最让人民群众头疼的事情。虽然互联网和云计算的普及,一定程度上的缓解了这些矛盾。例如:人们可以通过遇到简单的医疗问题的时候,可以去搜索引擎…