platinum2high/yara-studio
GitHub: platinum2high/yara-studio
一款 100% 本地离线的跨平台 YARA 规则编写、测试与管理桌面工作室,内嵌 YARA-X 引擎,让分析师无需上传样本即可完成规则开发与回归验证。
Stars: 0 | Forks: 0

# YARA Studio
**用于编写、测试和管理 YARA 规则的离线桌面工作室。**
编写一条规则,将样本拖放到上面,准确查看匹配了哪些字节——
无需将任何内容上传到任何地方。
[](https://github.com/platinum2high/yara-studio/actions/workflows/ci.yml)


[](LICENSE)
[**⬇️ 下载**](#-download--install) · [功能](#-features) · [工作原理](#-how-it-works) · [从源码构建](#-build-from-source) · [许可证](#-license)
## 为什么需要
分析师每天都在编写 YARA 规则,但这个过程很笨拙:在一个工具里编辑规则,
在终端运行 `yara`,肉眼查看输出,猜测是哪个 string 触发了匹配,
如此反复。在线沙箱简化了这个过程——但你必须**上传样本**,
这对于任何敏感数据来说都是不可接受的。
YARA Studio 将整个流程整合到一个 **100% 离线**的桌面应用中。没有 API,没有
遥测,没有云。你的规则和样本永远不会离开你的电脑。
## ⬇️ 下载与安装
**1. 从 [发布页面](https://github.com/platinum2high/yara-studio/releases/latest) 为你的系统下载相应文件**:
| 你的系统 | 下载此文件 |
|-------------|--------------------|
| 🍎 **macOS** (Apple Silicon *或* Intel) | `YARA.Studio_x.x.x_universal.dmg` |
| 🪟 **Windows 10 / 11** | `YARA.Studio_x.x.x_x64-setup.exe` 或 `.msi` |
| 🐧 **Linux** (大多数发行版) | `YARA.Studio_x.x.x_amd64.AppImage` |
| 🐧 **Debian / Ubuntu** | `YARA.Studio_x.x.x_amd64.deb` |
| 🐧 **Fedora / RHEL** | `YARA.Studio-x.x.x-1.x86_64.rpm` |
**2. 安装:**
🍎 macOS
1. 双击 `.dmg`,然后将 **YARA Studio** 拖入你的 **应用程序** 文件夹。
2. 首次打开时,macOS 可能会提示*“无法打开,因为无法验证开发者”*。这只是因为该应用尚未进行代码签名——它是安全的。
3. **右键点击**应用图标 → **打开** → **打开**。你只需执行一次此操作;之后即可正常打开。
🪟 Windows
1. 运行 `.exe`(或 `.msi`)安装程序并按照提示操作。
2. Windows SmartScreen 可能会显示*“Windows 已保护你的电脑”*——同样,这仅仅是因为它尚未签名。
3. 点击 **更多信息** → **仍要运行**。
🐧 Linux
**AppImage**(几乎适用于所有环境):
```
chmod +x yara-studio_*_amd64.AppImage
./yara-studio_*_amd64.AppImage
```
**Debian / Ubuntu** (`.deb`):
```
sudo apt install ./yara-studio_*_amd64.deb
```
**3. 打开并开始使用。** 编辑器启动时会自带一条示例规则——将任何文件
拖放到右侧面板即可进行扫描。就这么简单。
## ✨ 功能
- **规则编辑器** — 完整的 YARA 语法高亮、自动补全和实时
验证。输入时会为编译错误添加下划线,并提供直接来自编译器的准确行号
和错误信息。
- **拖放扫描** — 将文件*或整个目录*拖放到应用中。
递归遍历目录树,具有实时进度计数器和取消按钮。
- **精确的匹配显示** — 显示每个匹配的 string 及其偏移量、上下文中匹配的
字节(十六进制 + ASCII),以及在触发 `xor` 修饰符时的 XOR 密钥。
- **上下文十六进制视图** — 点击任何匹配项即可打开
周围文件区域的十六进制转储,并高亮显示匹配的字节。
- **规则库** — 将规则保存到可打标签的集合中,按名称 /
规则 / 标签 / 描述进行过滤。以普通的 `.yar` 文件形式存储,你可以将其保存在 git 中。
- **多规则扫描** — 勾选规则库中的规则,将其与编辑器中的规则一起编译到扫描
集合中;每次匹配都会显示该规则来自哪个文件。
- **回归测试** — 将*必须匹配*和*不得匹配*的样本附加到
规则上;一键重新运行整个规则库,并标记出任何发生偏离的规则。
- **规则向导** — 指向一个样本;它会根据 IOC
价值提取并对 string 进行排名,并根据你的选择起草一个起始规则。
- **报告** — 将任何扫描导出为 JSON、CSV(每次 string 匹配占一行,
方便导入 SIEM)或纯文本。提供每个文件的 SHA-256,点击即可复制。
- **深色主题**,可调整大小的面板,键盘优先(`⌘/Ctrl+S` 保存)。
### 在文件上下文中检查匹配的字节
### 从样本引导生成规则
## 🔬 工作原理
YARA Studio 内嵌了 [YARA-X](https://virustotal.github.io/yara-x/)——由 VirusTotal 开发的
官方 YARA Rust 实现——并静态编译到了
二进制文件中。所有标准模块都随附在内:`pe`、`elf`、`macho`、`dotnet`、
`math`、`hash`、`string`、`time`、`lnk`、`dex`、`zip` 等。
规则兼容性是该项目最大的风险所在,因此通过测试进行了固定:
[`src-tauri/tests/compat.rs`](src-tauri/tests/compat.rs) 对该应用所依赖的语言
表面进行了测试——string 修饰符、带有跳转和
备选项的十六进制模式、正则表达式、匹配计数器/偏移量以及模块函数。
| 层级 | 技术 |
|-------|------------|
| 扫描引擎 | [yara-x](https://crates.io/crates/yara-x) (Rust,静态链接) |
| 桌面外壳 | [Tauri 2](https://tauri.app/) |
| UI | Svelte 5 + TypeScript |
| 编辑器 | CodeMirror 6(带有手写的 YARA 语言模式) |
## 🛠 从源码构建
*仅在你想要对其进行修改时才需要——普通用户只需
[下载](#-download--install) 安装程序即可。*
前置条件:[Rust](https://rustup.rs/) 和 [Node.js](https://nodejs.org/) 22+。
```
npm install
npm run tauri dev # run the app in dev mode
npm run tauri build # build a release bundle for the current OS
```
测试:
```
cd src-tauri && cargo test # engine: compiler, scanner, library, export, tests, wizard, compat
npm test # frontend: YARA tokenizer + rule generator
```
跨平台 CI(fmt + clippy + tests + build)会在 **Ubuntu、macOS 和
Windows** 上针对每次推送运行。打上 `v*` 标签后会为这三种操作系统构建安装程序。
## 📜 许可证
YARA Studio 采用**双重许可**:
- **开源:** [GNU AGPL-3.0](LICENSE) — 免费使用、运行、学习、修改
和分享。如果你分发它或通过网络提供服务,你必须根据相同的许可证公开你的
源代码。对于日常使用——运行它、
在工作中使用它、为自己修改它——这没有任何影响。
- **商业:** 想要将 YARA Studio 嵌入到**闭源产品**中,或者
在没有 AGPL 传染性许可的情况下将其打包到专有设备/SaaS 中?可以获取商业
许可证——请参阅 [COMMERCIAL.md](COMMERCIAL.md)。
版权所有 © 2026 Artem Shymko。
标签:DAST, DNS 反向解析, Tauri, YARA, 云资产可视化, 恶意软件分析, 桌面应用, 通知系统