
विंडोज एक्जीक्यूटेबल्स और बाइनरी फॉर्मेट्स के रिवर्स इंजीनियरिंग के लिए MCP सर्वर। यह स्टैटिक ट्राइएज, Ghidra-सहायता प्राप्त फंक्शन रिकवरी, प्लगइन-संचालित टूलिंग, आर्टिफैक्ट प्रबंधन, और वैकल्पिक पृथक विंडोज रनटाइम निष्पादन को जोड़ता है।
Rikune एक MCP सर्वर है जो विंडोज एक्जीक्यूटेबल्स और संबंधित बाइनरी प्रारूपों के रिवर्स इंजीनियरिंग के लिए है। यह सैंपल इनटेक, स्टैटिक ट्राइएज, Ghidra-सहायता प्राप्त फंक्शन रिकवरी, प्लगइन-संचालित विशेषज्ञ टूलिंग, आर्टिफैक्ट प्रबंधन, और वैकल्पिक पृथक विंडोज रनटाइम निष्पादन को Model Context Protocol इंटरफ़ेस के पीछे संयोजित करता है।
वर्तमान AI-मुखी सर्वर वर्कफ़्लो एक न्यूनतम गेटवे सतह के चारों ओर व्यवस्थित है:
workflow.search का उपयोग करें।workflow.run action=request_upload का उपयोग करें, या पीछे के क्लाइंट को छिपे हुए सैंपल-इनटेक संगतता टूल पर इंगित करने के लिए workflow.search को दें।sample_id के साथ workflow.run action=start का उपयोग करें।workflow.run action=status और workflow.run action=promote का उपयोग करें।artifact.readsample.*, workflow.analyze.*, workflow.triage, tools.discover, और task.status संगतता या निम्न-स्तरीय निरीक्षण के लिए पंजीकृत रहते हैं, लेकिन नए क्लाइंट को workflow.search, workflow.run, और artifact.read पसंद करना चाहिए।
रिमोट rikune-agent गेटवे के माध्यम से कनेक्ट करते समय, MCP क्लाइंट स्थिर ट्रांसपोर्ट नाम देखते हैं:
workflow_search, workflow_run, artifact_read, rikune_tool_call, और
rikune_connection_* नियंत्रण। rikune_connection_refresh केवल आंतरिक अपस्ट्रीम क्षमता कैश को अपडेट करता है; यह MCP टूल सूची का विस्तार नहीं करता है। rikune_tool_call का उपयोग केवल तभी करें जब workflow_search किसी विशिष्ट आंतरिक विश्लेषक उप-टूल की पहचान करता है जो प्राथमिक वर्कफ़्लो या आर्टिफैक्ट गेटवे द्वारा कवर नहीं किया गया है।
workflow.search हर टूल को पहले से उजागर किए बिना विशेषज्ञ क्षमताओं की ओर रूट करने के लिए सैंपल प्रकार, निष्कर्ष, और प्रोफ़ाइल मेटाडेटा का उपयोग करता है।स्थैतिक Docker सबसे सुरक्षित डिफ़ॉल्ट है। यह सैंपल निष्पादित नहीं करता है।
.\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
हाइब्रिड मोड विश्लेषक को Docker में चलाता है और लाइव विंडोज कार्य को विंडोज होस्ट एजेंट को सौंपता है। होस्ट एजेंट मांग पर विंडोज सैंडबॉक्स शुरू कर सकता है या कॉन्फ़िगर किए गए Hyper-V VM को नियंत्रित कर सकता है।
.\rikune.ps1 install -Profile hybrid -InstallRuntime
रिमोट विंडोज रनटाइम होस्ट के साथ Linux/macOS से:
./rikune.sh install --profile hybrid --windows-host <windows-host> --windows-user <windows-user>
MCP क्लाइंट को कनेक्ट करने से विंडोज सैंडबॉक्स शुरू नहीं होता है या सैंपल नहीं चलता है। लाइव रनटाइम कार्य तभी शुरू होता है जब कोई टूल स्पष्ट रूप से इसका अनुरोध करता है, जैसे runtime.debug.session.start, runtime.debug.command, sandbox.execute, या एक प्रमोटेड डायनेमिक निष्पादन चरण।
npm install
npm run build
npm test
node dist/index.js
रूट पैकेज के लिए Node.js 22 या नए की आवश्यकता है। कुछ रनटाइम उप-पैकेज पुराने Node संस्करणों पर चल सकते हैं, लेकिन रिपॉजिटरी विकास और प्रकाशित रूट CLI के लिए Node 22+ का उपयोग करना चाहिए।
जब भी अनुरोधित वर्कफ़्लो, फ़ाइल प्रकार, या बैकएंड स्पष्ट नहीं है, तो workflow.search से शुरू करें। यह छिपे हुए विशेषज्ञ टूल को सक्रिय किए बिना मिलान करने वाले प्रोफ़ाइल को रैंक करता है और कॉम्पैक्ट तैयारी/रूटिंग संकेत लौटाता है।
होस्ट फ़ाइलों के लिए, workflow.run action=request_upload कॉल करें, लौटाए गए अपलोड URL पर कच्चे बाइट्स POST करें, फिर HTTP प्रतिक्रिया से sample_id पढ़ें। sample.request_upload और sample.ingest सामान्य AI-मुखी पथ के बजाय संगतता सहायक हैं।
रिमोट विश्लेषक या rikune-agent परिनियोजन के लिए, API_PUBLIC_BASE_URL, RIKUNE_API_PUBLIC_BASE_URL, या RIKUNE_ANALYZER_PUBLIC_URL को क्लाइंट-पहुंच योग्य HTTP API बेस पर सेट करें, उदाहरण के लिए http://159.195.136.226:18080। अपलोड सत्र तब कंटेनर-स्थानीय localhost URL के बजाय सार्वजनिक upload_url / status_url मान लौटाते हैं। रिमोट गेटवे पुराने विश्लेषकों से localhost अपलोड URL को अपने कॉन्फ़िगर किए गए विश्लेषक एंडपॉइंट पर सामान्यीकृत भी करता है।
यदि HTTP API सक्षम है, तो गैर-MCP एकीकरण के लिए POST /api/v1/samples अभी भी उपलब्ध है। सफल इनटेक एक sample_id लौटाता है; आयात के बाद विश्लेषण को स्थानीय पथ के बजाय sample_id का उपयोग करना चाहिए।
sample_id के साथ workflow.run action=start कॉल करें। पहला चरण एक तेज़ प्रोफ़ाइल करता है और एक विश्लेषण रन बनाता है या पुन: उपयोग करता है। लौटाया गया plan_id स्थायी विश्लेषण रन से मैप होता है।
गहरे चरणों का अनुरोध करने के लिए workflow.run action=promote का उपयोग करें। पाइपलाइन वर्तमान में इन चरणों को मॉडल करती है:
fast_profileenrich_staticfunction_mapreconstructsemantic_reviewsdynamic_plandynamic_executesummarizeलंबे समय तक चलने वाले कार्य को जॉब सिस्टम के माध्यम से कतारबद्ध किया जाता है। workflow.run action=status के साथ कॉम्पैक्ट स्टेज की स्थिति का पोल करें।
workflow.run action=status प्राथमिक स्टेज-रन दृश्य है। बड़े ऐतिहासिक चरण पेलोड को शीर्ष-स्तरीय चेतावनी के साथ छंटनी की जा सकती है; पूर्ण आर्टिफैक्ट के लिए artifact.read का उपयोग करें। task.status एक कच्चा कतार/प्रक्रिया संगतता दृश्य है और इसमें विश्लेषक उप-प्रक्रियाओं के लिए external_active_* मेमोरी टेलीमेट्री शामिल है।
उपयोगी अनुवर्ती सतहें:
workflow.searchworkflow.runanalysis.context.getartifact.read, साथ ही संगतता आर्टिफैक्ट सहायक जैसे artifact.list, artifact.diff, और artifact.downloadreport.summarize, report.generate, workflow.summarizeworkflow.semantic_name_reviewworkflow.function_explanation_reviewworkflow.module_reconstruction_reviewtool.help, tool.readiness, और संगतता/डीबग निरीक्षण के लिए tools.discoverवर्तमान कोड पथ है:
src/index.ts
-> loadConfig()
-> WorkspaceManager / DatabaseManager / PolicyGuard / CacheManager / StorageManager / JobQueue
-> optional RuntimeClient or Windows sandbox bootstrap
-> registerAllTools()
-> MCP stdio server
मुख्य सर्वर मॉड्यूल src/core/ के अंतर्गत रहते हैं:
| क्षेत्र | वर्तमान फ़ाइल |
|---|---|
| MCP सर्वर रैपर | src/core/server.ts |
| MCP टूल/प्रॉम्प्ट/संसाधन रजिस्ट्री | src/core/mcp-registry.ts |
| टूल निष्पादन, सत्यापन, हुक | src/core/tool-executor.ts |
| रजिस्ट्री ऑर्केस्ट्रेशन | src/core/tool-registry.ts |
| अंतर्निहित रजिस्ट्री स्लाइस | src/core/tool-registry/*.ts |
| प्लगइन प्रबंधक फ़ेसड | src/core/plugins.ts |
| प्लगइन खोज/लोडिंग | src/core/plugin-orchestrator.ts |
| प्रगतिशील टूल एक्सपोज़र | src/core/tool-surface-manager.ts |
कुछ रूट-स्तरीय फ़ाइलें जैसे src/server.ts, src/tool-registry.ts, और src/plugins.ts संगतता फ़ॉरवर्डर बनी हुई हैं। नए कोड को src/core/* को लक्षित करना चाहिए।
| विमान | उद्देश्य | मुख्य कोड |
|---|---|---|
| विश्लेषक | MCP stdio सर्वर, HTTP API, संग्रहण, जॉब, स्थैतिक उपकरण, प्लगइन ऑर्केस्ट्रेशन | src/index.ts, src/core/* |
| रनटाइम नोड | सैंडबॉक्स या VM के अंदर पृथक कार्य निष्पादक | packages/runtime-node/* |
| विंडोज होस्ट एजेंट | विंडोज सैंडबॉक्स या Hyper-V रनटाइम को शुरू/बंद करता है और रनटाइम नियंत्रण एंडपॉइंट उजागर करता है | packages/windows-host-agent/* |
| एजेंट गेटवे | विश्लेषक/रनटाइम कनेक्शन प्रबंधन के लिए MCP गेटवे/प्रॉक्सी | src/rikune-agent-gateway.ts |
रनटाइम मोड runtime.mode या पर्यावरण चर के माध्यम से कॉन्फ़िगर किए जाते हैं:
disabled: कोई रनटाइम प्रतिनिधिमंडल नहीं।manual: आपूर्ति किए गए रनटाइम एंडपॉइंट से कनेक्ट करें।remote-sandbox: विंडोज होस्ट एजेंट को प्रतिनिधि बनाएं।auto-sandbox: विंडोज-मूल विश्लेषक स्थानीय रूप से विंडोज सैंडबॉक्स लॉन्च करता है।Docker/WSL विश्लेषकों को remote-sandbox का उपयोग करना चाहिए, auto-sandbox का नहीं।
Rikune में वर्तमान में src/plugins/<id>/ के अंतर्गत 111 अंतर्निहित प्लगइन शामिल हैं। प्लगइन टूल को पंजीकृत कर सकते हैं, निर्भरताएँ घोषित कर सकते हैं, कॉन्फ़िगरेशन स्कीमा उजागर कर सकते हैं, जीवनचक्र हुक में भाग ले सकते हैं, Docker मेटाडेटा प्रदान कर सकते हैं, और workerBackend मेटाडेटा के माध्यम से बाउंडेड कार्यकर्ता-समर्थित टूल घोषित कर सकते हैं।
फ्रंटियर कार्यकर्ता सूट योजना-केवल टूल को ट्राइएज और हैंडऑफ़ सतह के रूप में रखता है, फिर उनके बगल में स्पष्ट निष्पादन टूल जोड़ता है। restringer.deobfuscation.run, jsimplifier.pipeline.run, jsir.cascade.normalize, gtirb.ir.generate, remill.lift.run, manifold.fact.extract, qbdi.trace.run, और culifter.gpu.artifact.inventory workflow.search, plugin.list, tool.help, और tool.readiness के माध्यम से कार्यकर्ता अनुबंध उजागर करते हैं; tools.discover एक निम्न-स्तरीय संगतता पोर्टल बना हुआ है। खोज और तैयारी निष्क्रिय रहती है: वे REstringer, JSIMPLIFIER, JSIR/CASCADE, GTIRB, Remill, Manifold, QBDI, GPU ड्राइवर, Node/V8, ब्राउज़र, या रनटाइम इंस्ट्रुमेंटेशन शुरू किए बिना बैकएंड मेटाडेटा और सेटअप मार्गदर्शन रिपोर्ट करते हैं।
Docker जनरेशन प्लगइन systemDeps और कार्यकर्ता पैकेजिंग मेटाडेटा को सीधे पढ़ता है। डिफ़ॉल्ट इमेज REstringer, JSIMPLIFIER, Manifold, WABT, और LIEF सत्यापन जैसे कम-जोखिम वाले स्थैतिक रैपर स्थापित करती हैं; वैकल्पिक प्रोफ़ाइल JSIR/CASCADE, JSVMP, GTIRB, radare2, और Triton-शैली स्थैतिक मार्गों को सक्षम कर सकती हैं; भारी/रनटाइम/GPU/लाइसेंस-संवेदनशील बैकएंड प्रोफ़ाइल-गेटेड, BYO, या साइडकार बने रहते हैं।
node scripts/generate-docker.mjs --dry-run
node scripts/generate-docker.mjs --profile=full --backend-profile=optional
node scripts/generate-docker.mjs --all-profiles --dry-run
प्लगइन लोडिंग PLUGINS द्वारा नियंत्रित होती है:
PLUGINS=* # सभी अंतर्निहित
PLUGINS=pe-analysis,yara # चयनित प्लगइन
PLUGINS=-dynamic # डायनेमिक को छोड़कर सभी
रनटाइम पर इन MCP टूल का उपयोग करें:
workflow.searchworkflow.runplugin.listplugin.enableplugin.disabletools.discover और tool.readiness निम्न-स्तरीय संगतता/डीबग निरीक्षण के लिएdocs/PLUGINS.md और packages/plugin-sdk/README.md देखें।
जब api.enabled सत्य है, तो एम्बेडेड फ़ाइल सर्वर उजागर करता है:
| एंडपॉइंट | उद्देश्य |
|---|---|
/dashboard और / | डैशबोर्ड UI |
/api/v1/health | जीवितता |
/api/v1/ready | डेटाबेस, कतार, रनटाइम, और प्लगइन बैकएंड में तत्परता |
/api/v1/events | SSE इवेंट |
/api/v1/samples | प्रत्यक्ष सैंपल अपलोड |
/api/v1/samples/:id | सैंपल मेटाडेटा |
/api/v1/samples/:id/download | मूल सैंपल डाउनलोड |
/api/v1/artifacts | आर्टिफैक्ट सूचीकरण |
/api/v1/artifacts/:id | आर्टिफैक्ट पढ़ें/हटाएं |
/api/v1/uploads/:token | स्थायी अपलोड सत्र POST/स्थिति |
API कुंजी प्रमाणीकरण, दर सीमा, सुरक्षा हेडर, और सीमित CORS HTTP परत द्वारा संभाले जाते हैं।
न्यूनतम विकास आधार रेखा:
वैकल्पिक उपकरण प्लगइन-विशिष्ट हैं। दिए गए वातावरण में क्या गायब है यह देखने के लिए system.health, system.setup.guide, tool.readiness, और plugin.list चलाएं।
src/
index.ts main server entry
core/ MCP server, registry, executor, plugin orchestration
core/tool-registry/ built-in tool/prompt/resource registration slices
tools/ core tool implementations
workflows/ staged analysis, triage, reconstruction, review workflows
analysis/ run state and background task runner
plugins/ 111 built-in plugins
persistence/ SQLite and workspace persistence
sample/ sample finalization and workspace inspection
storage/ artifacts, uploads, retention
runtime-client/ analyzer-side runtime delegation client
worker/ Ghidra and Python worker orchestration
packages/
plugin-sdk/ public plugin SDK
shared/ runtime and tool contract types
runtime-node/ isolated runtime executor
windows-host-agent/ Windows Sandbox / Hyper-V host agent
workers/ Python worker scripts and YARA rules
docker/ generated Dockerfile templates and profile files
docs/ architecture, plugin, runtime, deployment docs
tests/ unit, integration, and e2e tests
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
स्थानीय निर्माण:
{
"mcpServers": {
"rikune": {
"command": "node",
"args": ["D:/Playground/windows-exe-decompiler-mcp-server/dist/index.js"],
"env": {
"API_ENABLED": "true",
"API_PORT": "18080",
"API_PUBLIC_BASE_URL": "http://127.0.0.1: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 उपयोगकर्ता-स्तरीय Rikune रूट के अंतर्गत स्थायी डेटा संग्रहीत करता है। Docker इंस्टॉलर आमतौर पर उस रूट को होस्ट निर्देशिका जैसे D:\Docker\rikune पर मैप करते हैं।
सामान्य उपनिर्देशिकाएँ:
samples/artifacts/uploads/cache/logs/पथ टकराव से बचने और अपरिवर्तनीय मूल को संरक्षित करने के लिए सैंपल वर्कस्पेस SHA-256 द्वारा बाल्टी में बंटे होते हैं।
Rikune मैलवेयर और अविश्वसनीय बाइनरी विश्लेषण के लिए डिज़ाइन किया गया है, लेकिन यह अपने आप में एक जादुई सुरक्षा सीमा नहीं है।
PolicyGuard द्वारा संरक्षित हैं।SECURITY.md और TROUBLESHOOTING.md देखें।
MIT