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, 云资产清单, 开发工具, 特征码提取, 特征码搜索, 逆向工具, 逆向工程