feat: expand YARA condition engine, add binary parsers (PE, ELF, Mach-O, ZIP) and math/hash modules, upgrade CI with compatibility wrapper
MoonYara 是一个完全使用 MoonBit 语言原生开发的轻量级、高性能威胁特征匹配与恶意代码检测引擎(对标经典的 YARA 工具)。
该项目 100% 纯 MoonBit 实现,**零外部 FFI 依赖 (Zero-FFI)**,可编译为 WebAssembly、JavaScript 以及 Native 目标。 其核心价值在于支持在用户上传文件前,直接在浏览器端或边缘沙箱内运行 Wasm 离线扫描,有效阻断 Webshell、木马及恶意文件的上传,降低服务器防御开销。
{ E2 34 ?? 90 }
meta
strings
condition
+-----------------------+ | YARA Rule (String) | +-----------+-----------+ | v [Parser] +-----------+-----------+ | Rule AST | +-----------+-----------+ | v [Compiler] +-----------+-----------+ +-------------+ Compiled Rules +-------------+ | +-----------+-----------+ | | | | v v v +-----------+-----------+ +-----------+-----------+ +-----------+-----------+ | Aho-Corasick Trie | | Hex BytePattern | | Thompson NFA Graph | +-----------+-----------+ +-----------+-----------+ +-----------+-----------+ | | | +-------------------+ | +-------------------+ | | | v v v [Matcher Engines] +-----------+-----------+ | Pattern Matches | +-----------+-----------+ | v [Condition VM Evaluator] +-----------+-----------+ | Scan Verdict | +-----------------------+
以下展示了如何加载、编译 YARA 规则,并对输入数据进行匹配扫描:
test { // 1. 声明并定义规则 let rules_text = #|rule PHPWebShell { #| meta: #| description = "Detect simple PHP eval webshell" #| strings: #| $eval = "eval" #| $get = "$_GET" #| condition: #| $eval and $get #|} // 2. 编译规则 let compiled = try! @src.compile_rules(rules_text) // 3. 扫描恶意载荷 (Payload) let payload = b"<?php eval($_GET['cmd']); ?>" let matches = @src.scan_bytes(compiled, payload) // 4. 断言验证匹配结果 inspect(matches.length(), content="1") inspect(matches[0].rule_name, content="\"PHPWebShell\"") }
请遵循 CONTRIBUTING.md 的说明:
# 格式化代码 moon fmt # 运行类型检查 moon check # 执行单元与集成测试 moon test # 使用 JS 目标运行命令行工具 moon run --target js cmd/main -- -r test_rules/webshell.yara -f test_files/webshell.php
本项目遵循 Apache-2.0 开源许可证。
经典的主机安全/反病毒工具。根据 YARA 规则描述,扫描文件或进程内存,判断是否存在恶意代码、Webshell 或病毒特征。
版权所有:中国计算机学会技术支持:开源发展技术委员会 京ICP备13000930号-9 京公网安备 11010802047560号
🌕 MoonYara — 威胁特征匹配与恶意代码扫描引擎
MoonYara 是一个完全使用 MoonBit 语言原生开发的轻量级、高性能威胁特征匹配与恶意代码检测引擎(对标经典的 YARA 工具)。
该项目 100% 纯 MoonBit 实现,**零外部 FFI 依赖 (Zero-FFI)**,可编译为 WebAssembly、JavaScript 以及 Native 目标。 其核心价值在于支持在用户上传文件前,直接在浏览器端或边缘沙箱内运行 Wasm 离线扫描,有效阻断 Webshell、木马及恶意文件的上传,降低服务器防御开销。
✨ 核心特性
{ E2 34 ?? 90 })。meta元数据、strings声明、condition逻辑表达式),并在扫描时以轻量级布尔虚拟机评估匹配结果。📦 架构设计
🚀 快速开始 (Usage Example)
以下展示了如何加载、编译 YARA 规则,并对输入数据进行匹配扫描:
🛠️ 本地开发与贡献 (Development)
请遵循 CONTRIBUTING.md 的说明:
🛡️ 开源协议 (License)
本项目遵循 Apache-2.0 开源许可证。