MCPcopy Index your code
hub / github.com/Last-emo-boy/rikune

github.com/Last-emo-boy/rikune @v1.2.0

Chat with this repo
repository ↗ · DeepWiki ↗ · release v1.2.0 ↗ · + Follow
4,717 symbols 16,605 edges 838 files 781 documented · 17% updated 3d agov1.2.0 · 2026-05-08★ 2331 open issues
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

Rikune

Rikune 是一个面向 Windows EXE 和多格式二进制逆向的 MCP Server。它把样本导入、静态初筛、Ghidra 辅助函数恢复、插件化专业工具、artifact 管理,以及可选的隔离 Windows 运行时执行统一暴露给 MCP 客户端。

当前主路径是 staged analysis pipeline:

  1. sample.ingestsample.request_upload 导入样本。
  2. workflow.analyze.start 创建或复用分析 run。
  3. workflow.analyze.status 查询状态。
  4. workflow.analyze.promote 推进更深阶段。
  5. 用 artifact、report、context 和 semantic review 工具阅读结果。

workflow.triage 仍保留为快速初筛和兼容入口;新客户端应优先使用 workflow.analyze.start/status/promote

核心能力

  • MCP stdio server,可直接接入支持 MCP 的 AI 客户端。
  • 可选 HTTP API 和 dashboard,用于上传、下载、健康检查、SSE 事件和 artifact 访问。
  • 按 SHA-256 分桶的样本工作区,保存原始样本、缓存、Ghidra/.NET 输出和报告。
  • SQLite 持久化 samples、analysis runs、jobs、evidence、artifacts、batches、debug sessions 和 scheduler telemetry。
  • 56 个内置插件,支持第三方插件自动发现。
  • 渐进式工具暴露:核心工具常驻,专业工具按样本类型、发现结果或显式 tools.discover 暴露。
  • 覆盖 PE、ELF、Mach-O、APK/DEX、Office、firmware、strings、YARA、SBOM、签名、packer、.NET、Go、Rust 等静态分析。
  • 可集成 Ghidra、Rizin、RetDec、angr、Capstone、Graphviz、Qiling、PANDA、Speakeasy、Wine、Frida 等后端。
  • 可选 Analyzer/Runtime 分离架构,通过 Windows Host Agent、Windows Sandbox 或 Hyper-V VM 执行真实 Windows 运行时任务。
  • 对 live execution、网络访问、外部上传、批量反编译等危险能力做策略门控。

快速开始

Static Docker Analyzer

默认推荐 static profile。它不会执行样本,适合日常静态分析。

.\rikune.ps1 install -Profile static -DataRoot "D:\Docker\rikune"
./rikune.sh install --profile static --data-root "$HOME/.rikune"

手工等价流程:

npm install
npm run build
npm run docker:generate:all
docker compose --env-file .docker-runtime.env -f docker-compose.analyzer.yml up -d --build analyzer

Hybrid Docker + Windows Runtime

Hybrid profile 在 Docker 中运行 Analyzer,把真实 Windows 执行委托给 Windows Host Agent。Host Agent 可按需启动 Windows Sandbox,也可以控制预配置的 Hyper-V VM。

.\rikune.ps1 install -Profile hybrid -InstallRuntime

Linux/macOS analyzer + 远程 Windows runtime host:

./rikune.sh install --profile hybrid --windows-host <windows-host> --windows-user <windows-user>

连接 MCP 客户端不会启动 Sandbox,也不会运行样本。只有 runtime.debug.session.startruntime.debug.commandsandbox.execute 或 promoted dynamic execution stage 这类显式 live runtime 工具才会触发运行时。

Native 开发

npm install
npm run build
npm test
node dist/index.js

根包要求 Node.js 22 或更新版本。部分 runtime 子包仍能在较旧 Node 上运行,但仓库开发、根 CLI 和发布包以 Node 22+ 为基线。

主要 MCP 流程

导入样本

可选方式:

  • sample.ingest:传入服务端可读取路径或 bytes_b64
  • sample.request_upload:创建 durable upload session,然后向 HTTP upload URL POST 原始字节。
  • 启用 HTTP API 时直接 POST /api/v1/samples

导入成功后会返回 sample_id。后续分析工具应使用 sample_id,不要继续依赖本地文件路径。

启动分析

workflow.analyze.start 传入 sample_id。第一阶段会执行 fast profile,并创建或复用 analysis run。

推进阶段

workflow.analyze.promote 用于推进更深阶段。当前阶段模型包括:

  • fast_profile
  • enrich_static
  • function_map
  • reconstruct
  • semantic_reviews
  • dynamic_plan
  • dynamic_execute
  • summarize

长任务会进入 JobQueue。用 workflow.analyze.statustask.status 轮询。

workflow.analyze.status 是主要的 staged-run 视图。历史阶段结果过大时会裁剪,并在顶层 warnings 中说明;需要完整内容时用 artifact.read 读取持久化 artifact。task.status 是原始队列和进程视图,并包含 analyzer 子进程的 external_active_* 内存遥测。

阅读结果

常用后续工具:

  • sample.profile.get
  • analysis.context.get
  • artifact.listartifact.readartifact.diffartifact.download
  • report.summarizereport.generateworkflow.summarize
  • workflow.semantic_name_review
  • workflow.function_explanation_review
  • workflow.module_reconstruction_review
  • tools.discovertool.readiness

架构概览

当前启动链路:

src/index.ts
  -> loadConfig()
  -> WorkspaceManager / DatabaseManager / PolicyGuard / CacheManager / StorageManager / JobQueue
  -> 可选 RuntimeClient 或 Windows sandbox bootstrap
  -> registerAllTools()
  -> MCP stdio server

核心 server 代码位于 src/core/

模块 当前文件
MCP server wrapper src/core/server.ts
MCP tool/prompt/resource registry src/core/mcp-registry.ts
工具执行、校验、hooks src/core/tool-executor.ts
注册编排 src/core/tool-registry.ts
内置注册切片 src/core/tool-registry/*.ts
PluginManager facade src/core/plugins.ts
插件发现和加载 src/core/plugin-orchestrator.ts
渐进式工具面 src/core/tool-surface-manager.ts

src/server.tssrc/tool-registry.tssrc/plugins.ts 等根级文件是兼容 forwarder。新代码应优先引用 src/core/*

部署平面

平面 作用 关键代码
Analyzer MCP stdio、HTTP API、存储、任务队列、静态工具、插件编排 src/index.tssrc/core/*
Runtime Node 隔离环境内的任务执行器 packages/runtime-node/*
Windows Host Agent 启停 Windows Sandbox 或 Hyper-V runtime packages/windows-host-agent/*
Agent Gateway Analyzer/runtime 连接管理和 MCP 代理 src/rikune-agent-gateway.ts

运行时模式:

  • disabled:禁用 runtime delegation。
  • manual:连接指定 runtime endpoint。
  • remote-sandbox:委托给 Windows Host Agent。
  • auto-sandbox:Windows 原生 Analyzer 本地启动 Windows Sandbox。

Docker/WSL analyzer 应使用 remote-sandbox,不要使用 auto-sandbox

插件系统

内置插件位于 src/plugins/<id>/,当前共 56 个。插件可以注册工具、声明依赖、暴露配置 schema、参与生命周期 hooks,并给 Docker 生成器提供安装元数据。

PLUGINS 控制启动时加载范围:

PLUGINS=*                 # 加载全部内置插件
PLUGINS=pe-analysis,yara  # 只加载指定插件
PLUGINS=-dynamic          # 加载除 dynamic 外的全部插件

运行时管理工具:

  • plugin.list
  • plugin.enable
  • plugin.disable
  • tools.discover
  • tool.readiness

详见 docs/PLUGINS.mdpackages/plugin-sdk/README.md

HTTP API

启用 api.enabled 后,内嵌 file server 提供:

Endpoint 作用
/dashboard/ Dashboard UI
/api/v1/health Liveness
/api/v1/ready 数据库、队列、runtime、插件 backend readiness
/api/v1/events SSE events
/api/v1/samples 直接上传样本
/api/v1/samples/:id 样本元数据
/api/v1/samples/:id/download 原始样本下载
/api/v1/artifacts Artifact 列表
/api/v1/artifacts/:id Artifact 读取/删除
/api/v1/uploads/:token Durable upload session POST/status

HTTP 层处理 API key 鉴权、rate limit、安全头和受限 CORS。

环境要求

开发基线:

  • Node.js 22+
  • npm
  • Python 3.11+,用于 workers 和分析脚本
  • Docker 20.10+ 与 Docker Compose v2
  • Java 21+,用于较新的 Ghidra
  • Ghidra,用于反编译和函数分析
  • Windows Sandbox / Hyper-V runtime 需要 Windows 10/11 Pro、Enterprise 或等价 VM 能力

可选依赖由插件决定。用 system.healthsystem.setup.guidetool.readinessplugin.list 检查当前环境缺什么。

项目结构

src/
  index.ts                    主入口
  core/                       MCP server、registry、executor、插件编排
  core/tool-registry/         内置 tool/prompt/resource 注册切片
  tools/                      核心工具实现
  workflows/                  staged analysis、triage、reconstruction、review
  analysis/                   analysis run state 和后台任务 runner
  plugins/                    56 个内置插件
  persistence/                SQLite 和 workspace 持久化
  sample/                     样本 finalization 和 workspace 检查
  storage/                    artifacts、uploads、retention
  runtime-client/             Analyzer 侧 runtime delegation client
  worker/                     Ghidra 和 Python worker 编排
packages/
  plugin-sdk/                 公共插件 SDK
  shared/                     runtime 和 tool contract 类型
  runtime-node/               隔离 runtime executor
  windows-host-agent/         Windows Sandbox / Hyper-V host agent
workers/                      Python worker 脚本和 YARA 规则
docker/                       Docker 模板和 profile 产物
docs/                         架构、插件、runtime、部署文档
tests/                        单元、集成和 e2e 测试

开发命令

npm install
npm run build
npm test
npm run typecheck
npm run validate
npm run docker:generate:all

常用专项检查:

npm run test:unit
npm run test:integration
npm run test:e2e
npm run build:runtime

MCP 客户端配置

本地构建:

{
  "mcpServers": {
    "rikune": {
      "command": "node",
      "args": ["D:/Playground/windows-exe-decompiler-mcp-server/dist/index.js"],
      "env": {
        "API_ENABLED": "true",
        "API_PORT": "18080",
        "PLUGINS": "*"
      }
    }
  }
}

Docker stdio:

{
  "mcpServers": {
    "rikune": {
      "command": "docker",
      "args": ["exec", "-i", "rikune-analyzer", "node", "dist/index.js"]
    }
  }
}

发布包:

npm install -g rikune
rikune
rikune docker-stdio
rikune agent

持久化存储

默认数据存储在用户级 Rikune root 下。Docker 安装脚本通常把这个 root 映射到宿主目录,例如 D:\Docker\rikune

常见子目录:

  • samples/
  • artifacts/
  • uploads/
  • cache/
  • logs/
  • SQLite 数据库
  • audit log JSONL

样本工作区按 SHA-256 分桶,避免路径冲突并保持原始样本不可变。

安全边界

Rikune 面向恶意样本和不可信二进制分析,但它本身不是万能隔离边界。

  • 日常分析优先使用 static Docker profile。
  • 真实 Windows 执行必须放在 Windows Sandbox 或隔离 VM 中。
  • Runtime Node 会拒绝未验证隔离环境,除非显式覆盖。
  • 危险行为由 PolicyGuard 门控。
  • 命令执行使用结构化 process API 和命令校验。
  • 不要在宿主工作站上直接运行未知样本。

详见 SECURITY.mdTROUBLESHOOTING.md

文档索引

License

MIT

Extension points exported contracts — how you extend this code

Router (Interface)
(no doc) [4 implementers]
packages/runtime-node/src/router.ts
ToolRegistrar (Interface)
(no doc) [4 implementers]
src/core/registrar.ts
PluginServerInterface (Interface)
(no doc) [3 implementers]
packages/plugin-sdk/src/index.ts
WorkerRequest (Interface)
* Worker request structure
src/plugins/strings/tools/strings-floss-decode.ts
JobEntry (Interface)
* Internal job entry with status tracking
src/execution/job-queue.ts
VulnPatternDef (Interface)
* Unit tests for vuln-pattern-detection * * We cannot directly import the module because it uses import.meta.url * wh
tests/unit/vuln-pattern-detection.test.ts
RuntimeEventSubscription (Interface)
(no doc) [1 implementers]
src/runtime-client/runtime-client.ts
ActiveSandbox (Interface)
(no doc)
packages/windows-host-agent/src/index.ts

Core symbols most depended-on inside this repo

push
called by 3388
src/shared/logger.ts
get
called by 1117
src/persistence/cache-manager.ts
registerTool
called by 357
src/core/registrar.ts
set
called by 216
src/persistence/cache-manager.ts
insertSample
called by 198
src/persistence/database.ts
findSample
called by 172
src/persistence/database.ts
close
called by 160
src/runtime-client/runtime-client.ts
createWorkspace
called by 159
src/persistence/workspace-manager.ts

Shape

Function 2,823
Method 1,059
Interface 669
Class 164
Enum 2

Languages

TypeScript86%
Python12%
Java2%
C#1%

Modules by API surface

workers/static_worker.py123 symbols
src/persistence/database.ts123 symbols
src/plugins/code-analysis/tools/code-reconstruct-export.ts118 symbols
src/worker/decompiler-worker.ts108 symbols
packages/runtime-node/src/executor.ts86 symbols
src/plugins/code-analysis/tools/code-functions-reconstruct.ts76 symbols
packages/plugin-sdk/src/index.ts67 symbols
src/api/routes/dashboard-api.ts64 symbols
workers/test_static_worker.py57 symbols
src/rikune-agent-gateway.ts55 symbols
src/workflows/triage.ts54 symbols
src/workflows/analyze-pipeline.ts51 symbols

For agents

$ claude mcp add rikune \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact

Ask about this repo answers extend the page