当前位置: 首页 > news >正文

【实战】如何优雅的在Win11/10系统下运行Rust编写的binwalk v3.1.1

【实战】如何优雅的在Win11/10系统下运行Rust编写的binwalk v3.1.1

  • 写在前面
    • binwalk For Win11
    • 主要改变
    • 纯净构建
    • 构建完成以后的文件列表
    • binwalk_for_Win_v3 可能遇到的几个问题
      • Fix 修复Win版本不能完美squashfs解压缩问题,本地需要WSL2 环境、docker环境或者qemu环境。
      • Fix 修复Win系统中“lZMA解压失败”
    • binwalk_for_WinGUI的问题
    • 路由器固件解包以后重新打包的问题
      • 重新LZMA压缩编辑过的固件
      • 使用DD工具重新和头文件固件合并 或者和原始固件合并
      • 完成打包就可以去虚拟机运行固件 通过就可以烧录了
    • 如何构建 dev-Win
      • Binwalk 构建脚本使用说明
        • 简介
        • 特性
        • 工作原理
        • 使用方法
          • Windows系统
          • Linux/macOS系统
      • 目录结构
      • 常见问题
        • 1. 下载依赖失败
        • 2. 权限不足
        • 3. 构建失败
      • 清理构建环境
      • 注意事项
      • 故障排除
        • 查看日志文件
      • 联系方式

写在前面

  • 昨天海鲜市场上有个客户,咨询一个binwalk程序,希望有个使用双击exe文件就能运行的binwalk v3.1.1版本,所以就有了这个项目

binwalk For Win11

  • V3 .x以后是用RUST完全重构的,基本上抛弃了win版本,主要部署在linux、docker环境中。
  • 但是我们总有客户喜欢“双击exe”就能执行
  • 项目源地址:https://github.com/ReFirmLabs/binwalk
  • devWinGUi项目地址:https://github.com/aspnmy/binwalk.git -b devWin
  • 如果没兴趣看文章就行自己构建win版本的v3.1.1可以拉这个版本的代码,我会持续更新的,因为有客户需要双击exe执行
git clone -b devWin https://github.com/aspnmy/binwalk.git

这个版本和源项目https://github.com/ReFirmLabs/binwalk代码有很多不同的地方,所以不能在源项目上构建,构建会失败,或者运行程序会各种报错。

主要改变

  • 由于原作者在v3.0以后的版本中完全去除了setup.py编译脚本,所以如果需要让v3.1.1能重新构建Win的版本,就要对rust的源码部分进行Win系统的代码适配:
  1. 主要影响到的代码 :main.rs 、squashfs.rs
  2. squashfs.rs是主要受影响代码,牵涉到squashfs解包LMZA文件格式
  3. 为了提供代码的粗壮性,我还在项目中塞了一个unsquashfs.exe 位于.\sqfs_for_win\sqfs_for_win.7z 压缩包中,是squashfs压缩独立解包组件,命令行执行,作为备用方案。

纯净构建

  • 纯净构建的意思是,运行项目下 python builder\build.py,会在此目录下自主安装构建程序用的依赖组件:Rust、mingwx64等,不需要依赖系统path环境,避免造成不必要的配置污染。
  • 为了小内存的设备需要,全程是用 mingwx64作为编译组件的比较少内存,如果需要使用vs作为构建组件,需要在build.py中修改对应代码。

构建完成以后的文件列表

  • readme.md 帮助文件
  • binwalk.exe binwalk编译在win11的命令行工具 建议在pwsh下 输入 .\binwalk --help 获得使用方法
  • binwalk_gui.exe binwalk.exe程序WinGUI文件,双击执行即可,需要和binwalk.exe在同个目录下
  • unsquashfs.exe 位于.\sqfs_for_win\sqfs_for_win.7z 压缩包中,是squashfs压缩独立解包组件,命令行执行,作为备用方案
  • Tests 中是测试解包的Dlink的固件例子

binwalk_for_Win_v3 可能遇到的几个问题

Fix 修复Win版本不能完美squashfs解压缩问题,本地需要WSL2 环境、docker环境或者qemu环境。

  • 下载 binwalk-devWin-v3.1.1-r4版本 ,解压后,首先运行Install.exe程序,安装本地Wsl/Wsl2环境(需要bios支持),
  • 然后完成安装后再运行binwalk_gui.exe文件就能用WinGUI文件正常解包squashfs文件了,原理就是再wsl环境中运行binwalk-docker版本,但是docker的虚拟宿主文件夹受binwalk_gui.exe文件夹管理,可以上传bin文件,解包后下载解包后的文件。
  • 本地设备没有wsl环境如何处理:运行Install.exe程序的时候,跳出提示,安装dockerdesktop版本、还是wsl版本,能用wsl用ws
http://www.dtcms.com/a/601086.html

相关文章:

  • 网站建设费可以计入管理费用吗手机网站开发利用流程
  • MySQL进阶学习笔记:从单表查询到多表关联的深度解析(万字详解)
  • docker一键部署PDF免费工具箱stirling-PDF
  • CI/CD工具Arbess,从安装到入门零基础教程
  • PG预写式日志解码的艺术与应用
  • 通过Swift CSP评估提高金融安全
  • 高可用与高性能数据库配置实践分析(pgSql clickhouse)
  • android sharepreference 的替代品
  • 网站流量分成营销型网站5要素
  • 科技向暖,银发无忧:十五五规划中智慧养老的温度革命
  • UE5 的 Waterline Pro 6的浮力作用机制解析
  • Selenium WebDriver的工作原理?
  • UE5 C++ 定时器 案例练习
  • 6 个成熟的 JS 开源视频编辑项目
  • 网站建设管理维护责任书格式怎样在网站做链接
  • Flutter---Stream
  • 佛山企业网站建设机构南明区住房和城乡建设局网站上
  • 仓颉三方库开发实战:Simple HTTP Server 实现详解
  • 做360网站官网还是百度济南有做五合一网站公司
  • 详细解读视频生成模型Wan2.1代码
  • Cortex-M3-STM32F1 开发:(二十二)HAL 库开发 ➤ STM32 中断逻辑优先级计算
  • THC63LVD1027D一款10位双链路LVDS信号中继器芯片,支持WUXGA分辨率视频数据传输THC63LVD1027支持30位数据通道方案
  • 考研规划手册
  • MongoDB中 client_connection和database和collection之间的关系
  • 建筑网站建设赏析外贸公司用什么建网站
  • [智能体设计模式] 第4章:反思(Reflection)
  • 系统架构设计师与考研408在IT基础设施能力考核上的全面对比研究
  • 饮用水品牌营销型网站手机网站主页
  • 亿网中国网站管理系统绍兴网站网站建设
  • 基于web宿舍管理系统的设计与实现