sondt99/firmvisor

GitHub: sondt99/firmvisor

一款用于 IoT 固件静态分析的 Python 工具,支持文件系统和 RTOS 固件的多维度信息提取与结构化报告生成。

Stars: 19 | Forks: 0

# firmvisor **firmvisor** 是一个基于 Python 的静态分析工具,用于检查 IoT 固件镜像。 它支持**基于文件系统**和**基于 RTOS**(例如 FreeRTOS、Zephyr)的固件,提供模块化分析功能,例如: - 二进制文件类型和头部解析 - 中断向量表分析 - 用于检测加密/压缩的熵扫描 - 字符串提取(ASCII、Unicode) - 编译器和架构推断 - 集成 Binwalk 用于提取嵌入式文件系统 ## 功能 | 功能 | 描述 | |----------------------------|---------------------------------------------------------------| | 文件类型检测 | 检测 ELF、PE、原始二进制、squashfs、压缩归档文件 | | 头部分析 | 解析 ELF/PE 头部:入口点、节、架构、字节序 | | 中断向量分析 | 提取并识别裸机固件中的向量表 | | 字符串提取 | 转储 ASCII 和 Unicode 字符串,支持过滤选项 | | 熵扫描 | 计算滑动窗口上的熵以检测加壳节区 | | 编译器信息 | 从头部、节区、元数据推断所使用的工具链 | | Binwalk 集成 | 利用 Binwalk 解包固件文件系统 | | JSON 输出 | 将分析结果导出为结构化 JSON 报告 | ## 安装 ### 🔹 1. 克隆仓库 ``` git clone https://github.com/sondt99/firmvisor.git cd firmvisor ``` ### 🔹 2. 创建虚拟环境(推荐) ``` python3 -m venv venv source venv/bin/activate # On Windows: venv\Scripts\activate ``` ### 🔹 3. 安装依赖包 ``` pip install -r requirements.txt ``` ### 🔹 4. (可选)安装 `binwalk` 用于文件系统提取 ``` sudo apt install binwalk ``` ### 🔹 5. 为 `python-magic` 安装 libmagic ``` # 在 Debian/Ubuntu 上: sudo apt install libmagic1 ``` ## 使用方法 ### 🔹 帮助: ``` python3 firmvisor.py -h ``` ### 🔹 基本用法: ``` python3 firmvisor.py firmware/firmware.bin ``` ### 🔹 运行特定模块: ``` python3 firmvisor.py firmware/firmware.bin --strings --entropy --arch --filetype ``` ### 🔹 完整分析并导出 JSON: ``` python3 firmvisor.py firmware/firmware.bin --all ``` ## 输出示例 ``` { "filetype": "ELF 32-bit LSB executable, ARM", "entry_point": "0x8000", "architecture": "ARM 32-bit", "endianness": "Little Endian", "entropy": [ {"offset": 0, "value": 7.91}, {"offset": 1024, "value": 3.20} ], "strings": [ "/etc/init.d/rcS", "admin:1234", "Firmware v1.2" ] ... } ``` ## 项目结构 ``` firmvisor/ ├── firmvisor.py ├── requirements.txt ├── modules/ │ ├── __init__.py │ ├── analysis.py | ├── binwalk_analysis.py │ ├── compiler.py │ ├── entropy.py │ ├── filetype.py │ ├── header.py │ ├── reporter.py │ ├── sections.py │ └── strings.py ├── report.json ``` ## 许可证 本项目基于 **MIT 许可证**授权。 有关详细信息,请参阅 [LICENSE](LICENSE) 文件。
标签:Binwalk, DNS枚举, ELF解析, FreeRTOS, IoT安全, PE解析, Python, RTOS, Zephyr, 中断向量表, 二进制分析, 二进制头解析, 云安全监控, 云安全运维, 云资产清单, 固件分析, 固件安全, 固件解包, 字符串提取, 嵌入式系统, 工具链推断, 文件系统提取, 无后门, 架构识别, 熵分析, 网络安全工具, 逆向工具, 逆向工程, 静态分析