Luchinkin/binja-patterns
GitHub: Luchinkin/binja-patterns
Binary Ninja 的 x86_64 字节特征码自动生成与查找插件,帮助逆向工程师快速定位和匹配二进制代码片段。
Stars: 0 | Forks: 0
# Binja Patterns
在 Binary Ninja 中查找并生成 x86_64 的字节特征码。
`Generate pattern`(右键点击函数中的地址)会每次扩展一条指令,
将操作数作为通配符,直到生成的特征码在可执行段中变得唯一,
然后将其复制到剪贴板。
`Find pattern`(Plugins 菜单)会在可执行段中搜索用户输入的
特征码。通配符接受 `??`(FlexHex,默认)或 `?`(旧版)。
## 环境要求
* Binary Ninja >= 5.0 (build 7648)。较旧的版本会回退到 Python 搜索。
* Binary Ninja 每个用户独立 `site-packages` 中的 `capstone`。`install.py` 会通过 pip 针对正确的 Python ABI 为你进行安装。
## 安装
```
git clone
cd binja-patterns
python install.py # link + pip install capstone into BN
python install.py --copy # snapshot copy + pip install
python install.py --no-deps # plugin only, install capstone yourself
python install.py --uninstall
```
该脚本会将插件写入标准的用户文件夹:
| 操作系统 | 路径 |
| ------- | ----------------------------------------------------- |
| Windows | `%APPDATA%\Binary Ninja\plugins\` |
| macOS | `~/Library/Application Support/Binary Ninja/plugins/` |
| Linux | `~/.binaryninja/plugins/` |
并将 pip 依赖项安装到 `/pythonXY/site-packages` 中,
同时根据 BN 的 Python 版本匹配相应的 wheel ABI(从现有的
`pythonXY/` 文件夹中自动检测)。
其他标志:
* `--user-folder PATH` —— 覆盖 BN 用户文件夹。
* `--name NAME` —— 覆盖插件目录名。
* `--bn-python-version 3.10` —— 覆盖 Python 版本检测。
如果要手动安装 `capstone`:打开 BN 的命令面板
(`Ctrl/Cmd+P`),运行 `Install python3 module`,然后输入 `capstone`。
## 设置
`Settings -> Plugins -> Patterns`:
* `Max instructions` —— 单个生成特征码的指令预算(默认 128)。
* `Wildcard token` —— `??`(FlexHex,默认)或 `?`(旧版)。
* `Search executable segments only` —— 取消勾选以扫描所有段。
## 许可证
MIT。
标签:Binary Ninja, Capstone, SOC Prime, x86_64, 云资产清单, 开发工具, 特征码提取, 特征码搜索, 逆向工具, 逆向工程