ChristianGLucas/yara-tools
GitHub: ChristianGLucas/yara-tools
封装 yara-python 与 libyara 的 YARA 规则编译、匹配和检查工具,以无状态 API 节点形式部署于 Axiom marketplace 上供 agent 或代码直接调用。
Stars: 0 | Forks: 0
# yara-tools
为 Axiom marketplace 提供的 YARA 恶意软件/模式规则编译、匹配和检查功能 — 封装了 [`yara-python`](https://github.com/VirusTotal/yara-python)(VirusTotal 为 [YARA](https://github.com/VirusTotal/yara) 提供的官方 Python 绑定,Apache-2.0),底层链接了 `libyara` (BSD-3-Clause)。
## 在您的 agent 或应用中使用它
此包中的每个节点都是
[Axiom](https://axiomide.com) marketplace 上的一个**实时、自动伸缩的 API endpoint** —
AI agent 或您自己的代码可以直接调用它,
无需自行托管。
**📦 在 marketplace 上查看:**
https://dev.axiomide.com/marketplace/christiangeorgelucas/yara-tools@0.1.0
**将其连接到 AI agent (MCP)。** 将 Axiom 托管的 MCP server 添加到任何 MCP
客户端中,每个节点都会变成您的 agent 可以调用的强类型工具 —
搜索目录、检查 schema,并直接调用它。
```
# Claude Code
claude mcp add --transport http axiom https://api.axiomide.com/mcp \
--header "Authorization: Bearer $AXIOM_API_KEY"
```
Claude Desktop、Cursor 或任何基于配置的客户端:
```
{
"mcpServers": {
"axiom": {
"type": "http",
"url": "https://api.axiomide.com/mcp",
"headers": { "Authorization": "Bearer YOUR_AXIOM_API_KEY" }
}
}
}
```
**从 CLI 中调用它。**
```
axiom invoke christiangeorgelucas/yara-tools/MatchRules --input '{"sources":[{"source":"rule find_evil { strings: $a = \"evil\" condition: $a }"}],"data":"ZXZpbA=="}'
```
**通过 HTTP 调用它。**
```
curl -X POST https://api.axiomide.com/invocations/v1/nodes/christiangeorgelucas/yara-tools/0.1.0/MatchRules \
-H "Authorization: Bearer $AXIOM_API_KEY" \
-H 'Content-Type: application/json' \
-d '{"sources":[{"source":"rule find_evil { strings: $a = \"evil\" condition: $a }"}],"data":"ZXZpbA=="}'
```
### 免费开始使用
安装 CLI:
```
# macOS / Linux — Homebrew
brew install axiomide/tap/axiom
# macOS / Linux — install script
curl -fsSL https://raw.githubusercontent.com/AxiomIDE/axiom-releases/main/install.sh | sh
```
**Windows:** 从
[发布页面](https://github.com/AxiomIDE/axiom-releases/releases) 下载 `windows/amd64` 的 `.zip` 文件,解压
并将 `axiom.exe` 添加到您的 `PATH` 中。
然后运行 `axiom version` 进行验证,运行 `axiom login`(GitHub 或 Google)
进行身份验证,并在 **Console → API Keys** 下创建一个 API key。文档和
注册请访问 **[axiomide.com](https://axiomide.com)**。
## 此包的功能
[YARA](https://virustotal.github.io/yara/) 是一个行业标准工具,用于
通过编写文本**规则**来描述要在二进制或文本数据中查找的模式,从而
识别和分类恶意软件样本 —
广泛应用于恶意软件研究、威胁狩猎和文件分类流水线。此包将
YARA 自身的编译/匹配/检查流水线封装为三个可组合的节点:
- **CompileRules** — 将一个或多个 YARA 规则源(每个可选择性地
置于其自己的 namespace 下)编译为可重用的序列化规则集。返回
带有行号详细信息的结构化语法错误和编译器警告、
已编译的规则数量,以及一个不透明的 `compiled_ruleset`,您可以将其传递给
`MatchRules`/`InspectRuleset` 而无需重新编译。支持声明
规则条件引用的 external variables (string/int/float/bool)。
- **MatchRules** — 使用编译后的规则集扫描数据(或编译规则
源并在同一次调用中扫描)。返回每个匹配规则的 namespace、
tags、metadata,以及每个匹配字符串模式的标识符及其匹配的
每个 byte offset/length(包括针对 `xor` 修改模式的 XOR key + 解混淆的
明文)。支持在扫描时覆盖 external
variables、YARA 自身的扫描超时以及快速匹配模式。
- **InspectRuleset** — 枚举编译后规则集的规则(标识符、
namespace、tags、`is_global`/`is_private`、metadata)**而无需扫描任何
数据** — 适用于在使用前验证或浏览规则集。
这三者在输入格式错误时都会返回结构化的 `{ok, error, ...}` 格式 —
绝不抛出原始异常。规则 `include` 指令(默认情况下允许
`.yar` 文件从本地文件系统读取其他文件)始终被禁用:
规则完全基于您提供的源文本进行编译。
区别于 **stix-tools**(STIX 威胁情报对象)、**sbom-tools**
(软件物料清单)和 **pii-tools**(PII 检测/脱敏) —
此包针对原始字节或文本进行签名/模式匹配,这是
YARA 自身特定的领域。
## *未*涵盖的内容及原因
YARA 自身在编译/匹配/检查之外的功能要么
不安全、不可移植,要么无法有效地表示为无状态的
输入→输出函数 — 有关完整列表,请参阅回顾说明。
值得注意的是:进程内存扫描(`match(pid=...)`)被省略,因为
这是沙箱节点不应触及的域外宿主能力;而
`yara.set_config()` 被省略是因为它会修改*进程范围*的解释器
状态,而不是纯粹的按调用操作。
## 许可证
MIT — 请参阅 [LICENSE](./LICENSE)。封装了 `yara-python` (Apache-2.0) 和
`libyara` (BSD-3-Clause);整个依赖树中没有任何 copyleft 依赖。
专为 [Axiom](https://axiomide.com) marketplace 而构建。
标签:API, MCP, Python, Python脚本, YARA, 云资产可视化, 无后门, 逆向工具, 默认DNS解析器