lightofbaldr/mojo-yara
GitHub: lightofbaldr/mojo-yara
用纯 Mojo 重新实现的 YARA 恶意软件模式匹配引擎,旨在通过 SIMD 和 GPU 加速在大规模规则集与扫描目标上获得性能优势,同时保持与 C 版本 libyara 的位级一致输出。
Stars: 0 | Forks: 0
# mojo-yara
[](LICENSE)
[](#status)
## 这是什么
一个使用纯 Mojo 对 YARA 恶意软件模式匹配引擎的重新实现。YARA 是用于表达恶意软件特征码和指标的默认开放标准;它被广泛应用于威胁情报平台、IR 工作流、EDR 规则包和取证工具链中。C 语言的参考实现(`libyara`)非常成熟,但在过去约 15 年里一直受限于其多模式匹配的性能瓶颈——而这正是 Mojo 的 SIMD 原语和 GPU 卸载有望占据主导地位的领域。
`mojo-yara` 旨在在其支持的 YARA 子集上实现与 C 参考实现**位级一致的输出**,并在大型规则集和大型扫描目标上获得可衡量的性能领先优势。
## 状态
**Pre-alpha — v0.1 构建中。** 请参阅 [`docs/PLAN.md`](docs/PLAN.md) 了解构建阶段和预计到达时间。目前尚无可发布的内容。
## 目标
- 为支持的规则子集提供与 `yara` **即插即用的 CLI 兼容性**,确保现有流水线无需更改即可工作。
- **可证明的正确性:** 每次发布都会在真实的规则和样本语料库上与 `libyara` 的输出进行对比。达到位级一致时才会发布。
- **可证明的性能:** SIMD 加速的字面字符串匹配器(Aho-Corasick 风格,向量化)。计划在 v0.2+ 版本中针对大型语料库扫描提供 GPU 卸载支持。
- **单一二进制部署:** 无需 Python 解释器,无需原生扩展 wheel。一次编译,即可部署到容器或 VM 中。
- **仅限经典模式。** 根据外部提供的规则进行模式匹配。任何层都不涉及机器学习。
## 范围 — v0.1
| | v0.1 中包含 | 排入 v0.2+ 计划 |
|---|---|---|
| 规则语法 | 字面 ASCII 字符串,带有 `??`/`?A` 通配符的十六进制字符串,常见条件(`all of them`、`any of them`、`N of (...)`、布尔运算) | 完整的 PCRE 正则表达式字符串 |
| 目标 | 文件扫描 | 进程内存扫描 |
| 模块 | 无 | `pe`、`elf`、`hash`、`cuckoo`、`math` |
| 加速 | CPU 上的 SIMD | GPU 卸载,分布式扫描 |
| 输出 | 纯文本(兼容 `yara`),JSON | YARA-X 序列化输出 |
## 构建
需要通过 [pixi](https://pixi.sh) 安装 Mojo 1.0+。借鉴了 [`mojo-http`](https://github.com/lightofbaldr/mojo-http) 的构建模式。
```
git clone https://github.com/lightofbaldr/mojo-yara
cd mojo-yara
pixi install # pulls Mojo + MAX
pixi run test # runs unit tests
pixi run build # produces build/mojo-yara
```
## 目录结构
```
src/
parser/ rule tokenizer + AST
matcher/ string and hex pattern matchers + Aho-Corasick
cli/ mojo-yara entrypoint
tests/
parser/ AST round-trip tests against curated rules
matcher/ targeted match tests
oracle/ bit-equal diff harness vs the C `yara` reference
corpora/
rules/ public YARA rules for testing (gitignored beyond a small fixture set)
samples/ small public test samples (de-fanged where applicable)
docs/
PLAN.md build phases and ETA
```
## 许可证
Apache-2.0。请参阅 `LICENSE`。
## 发布政策
本仓库是一个通用的、兼容经典 YARA 的模式扫描器,基于 Apache-2.0 协议发布。它不实现或描述任何由 Light of Baldr LLC 单独维护的专有技术。公开发布需经过专利顾问的审查。
标签:DNS 反向解析, Mojo, YARA, 云资产可视化, 动态分析, 模式匹配, 网络信息收集, 自动化资产收集, 高性能计算