kirovgrad/swissfirm

GitHub: kirovgrad/swissfirm

一款用于在已解包固件文件系统中进行函数来源、字节模式、库依赖和汇编指令等多维度静态检索的逆向分析工具。

Stars: 0 | Forks: 0

# swissfirm 一个用于在固件文件系统目录中搜索以下内容的工具: - 函数来源 - 十六进制字节模式 - 所需库 - 函数子字符串 - 汇编指令助记符 ## 功能 - **查找来源**:定位特定函数在固件二进制文件中的定义位置。 - **查找字节**:搜索原始字节模式(例如 shellcode、magic numbers)。 - **查找所需依赖**:递归提取二进制文件所需的共享库。 - **查找子函数**:通过子字符串匹配函数以推断其关系。 - **查找指令**:检测包含特定 asm 指令的二进制文件。 ## 用法 ``` python swissfirm.py [OPTIONS] ``` ### 参数 * `fsdir`:已解压固件文件系统的路径。 ### 选项 * `-fo`, `--find_origin` 在固件文件系统中查找函数的原始二进制文件。 * `-fb`, `--find_bytes` 在固件文件系统的二进制文件中查找特定字节的位置。 * `-fn`, `--find_needed` 递归列出某个二进制文件所需的库。 * `-fs`, `--find_subfunc` 通过名称子字符串查找函数。 * `-fm`, `--find_mnemonic` 查找文件系统二进制文件中特定汇编指令的位置。 ## 示例 ``` # 查找函数定义 python swissfirm.py ./firmware_path -fo base64_parser # 搜索 byte pattern python swissfirm.py ./firmware_path -fb deadbeef # 列出 binary 所需的 shared libraries python swissfirm.py ./firmware_path -fn /bin/mybinary # 查找名称中包含 'init' 的函数 python swissfirm.py ./firmware_path -fs init # 在所有 binary 中搜索 asm 指令 python swissfirm.py ./firmware_path -fm "i386:mov eax, 1;sub eax, 1;push eax" ``` ## 环境要求 - Python 3.6+ - `binascii` - `argparse` - `keystone` 安装依赖: ``` pip install binascii argparse keystone ``` ## 📁 使用场景 适用于固件逆向、漏洞挖掘或自定义静态分析。
标签:云安全监控, 云资产清单, 固件分析, 嵌入式系统, 逆向工具, 逆向工程, 静态分析