r4ruk/mkYARA-Ghidra
GitHub: r4ruk/mkYARA-Ghidra
mkYARA-Ghidra 是一款 Ghidra 扩展,能够基于反汇编代码自动生成 YARA 规则,并对可变操作数进行智能通配处理。
Stars: 0 | Forks: 0
# mkYARA for Ghidra
这是 [fox-it/mkYARA](https://github.com/fox-it/mkYARA) IDA 扩展的 Ghidra 版本 —— 直接从反汇编列表中选定的字节生成 YARA 规则,并对可变操作数(如内存地址、栈偏移和调用目标)进行操作码感知的自动通配处理。
该插件最初由 Jelle Vergeer / Fox-IT 开发为 IDA Pro 插件,此移植版本将相同的功能原生引入 Ghidra,既可以作为可安装的扩展(右键上下文菜单),也可以作为独立脚本使用。
## 安装说明
### 扩展(推荐)
1. 从 [Releases](../../releases) 页面下载最新版本的 zip 文件
2. 在 Ghidra 的 **Project Window** 中:**File → Install Extensions → 绿色 + 按钮**
3. 选择下载的 zip 文件
4. 重启 Ghidra
5. 在 CodeBrowser 中:**File → Configure** → 找到并启用 **mkYARAPlugin**
现在,mkYARA 子菜单将永久出现在 Listing 视图的右键上下文菜单中。
### 独立脚本
如果你不想安装扩展,可以将 `script/mkYARA.java` 复制到你的 `~/ghidra_scripts/` 目录中。然后在 Ghidra 中:
1. **Window → Script Manager**
2. 在 **mkYARA** 类别下找到 **mkYARA**
3. 可选:勾选 **In Tool** 以将其添加到 Tools 菜单并绑定到 **Ctrl+Y**
脚本版本的功能完全相同,但每次都需要从 Script Manager 或 Tools 菜单手动运行。
## 使用方法
1. 在 **Listing** 中选择一段字节范围,或在 **Decompile** 视图中选择伪代码
2. 右键点击 → **mkYARA** → 选择一个模式(扩展方式),或者(如果仅添加了脚本)从 **Tools → mkYARA** / **Ctrl+Y** 运行(脚本方式)
3. 选择通配模式并输入规则名称
4. 查看、编辑、复制到剪贴板或保存生成的规则
## 通配模式
| 模式 | 行为 | 用例 |
|------------|-----------------------------------------------------|---------------------------------------|
| **Normal** | 对位移操作数和内存地址进行通配处理 | 通用代码签名 |
| **Loose** | 对所有操作数字节进行通配处理,仅保留操作码 | 最大灵活性,家族检测 |
| **Strict** | 仅对 call/jmp 目标地址进行通配处理 | 精确匹配特定常量|
| **Data** | 无通配处理 - 原始十六进制字节 | 数据模式、字符串、魔术字节 |
## 输出示例
```
rule emotet_payload
{
meta:
generated_by = "mkYARA-Ghidra"
date = "2025-06-15 10:30"
mode = "normal"
hash = "a1b2c3d4e5f6..."
strings:
$code = {
// 00401000 PUSH EBP
// 00401001 MOV EBP,ESP
// 00401003 SUB ESP,0x20
// 00401006 MOV EAX,dword ptr [EBP + 0x8]
// 00401009 CALL 0x00401100
55 8B EC 83 EC ?? 8B 45 ?? E8 ?? ?? ?? ??
}
condition:
$code
}
```
## 从源码构建
需要 Gradle 和 JDK 21+。
```
cd mkYARA-Ghidra
gradle -PGHIDRA_INSTALL_DIR=/path/to/ghidra_where_ghidraRun_is_located buildExtension
```
可安装的 zip 文件将位于 `dist/` 中。按照上述说明通过 **File → Install Extensions** 进行安装。
## 致谢
- 原版 [mkYARA](https://github.com/fox-it/mkYARA) 由 Jelle Vergeer / Fox-IT 开发
- 采用 GPLv3 许可,与原版相同
标签:AMSI绕过, Ghidra, IDA Pro, JS文件枚举, Wayback Machine, YARA, 二进制分析, 云安全监控, 云安全运维, 云资产可视化, 云资产清单, 代码片段识别, 反汇编, 后台面板检测, 域名枚举, 威胁情报, 威胁检测, 开发者工具, 恶意代码分析, 插件, 特征提取, 网络安全, 网络调试, 自动化, 规则生成, 逆向工程, 配置文件, 隐私保护, 静态分析