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
```
## 📁 使用场景
适用于固件逆向、漏洞挖掘或自定义静态分析。
标签:云安全监控, 云资产清单, 固件分析, 嵌入式系统, 逆向工具, 逆向工程, 静态分析