REA का Rust पोर्ट, एक स्थानीय-केवल रिवर्स-इंजीनियरिंग टूल जिसमें CLI/MCP वर्कफ़्लो और एक नेटिव Ghidra वर्कर है
टर्मिनल या MCP क्लाइंट से स्थानीय रिवर्स इंजीनियरिंग के लिए REA का Rust पोर्ट।
बाइनरीज़ का निरीक्षण करें, फ़ंक्शन्स को डीकंपाइल करें, JavaScript और Electron ऐप्स का विश्लेषण करें, managed और mobile आर्टिफ़ैक्ट्स पढ़ें, और प्रोसेस तथा ब्राउज़र कैप्चर के साथ काम करें। CLI और MCP सर्वर समान टूल इम्प्लीमेंटेशन का उपयोग करते हैं। रनटाइम के लिए Node.js की आवश्यकता नहीं है।
प्रीबिल्ट रिलीज़ में macOS, Linux और Windows पर ARM64 और x86-64 के लिए rea, MCP सर्वर, और Ghidra वर्कर शामिल हैं। किसी Node.js, Rust टूलचेन, या एडमिनिस्ट्रेटर अकाउंट की आवश्यकता नहीं है।
curl -fsSL https://github.com/nanashili/rea-rust/releases/latest/download/install.sh -o install-rea.sh
sh install-rea.sh
export PATH="$HOME/.local/bin:$PATH"
rea --version
Windows पर, PowerShell प्रॉम्प्ट से PowerShell इंस्टॉलर चलाएँ:
irm https://github.com/nanashili/rea-rust/releases/latest/download/install.ps1 -OutFile install-rea.ps1
powershell -ExecutionPolicy Bypass -File .\install-rea.ps1
इंस्टॉलर रिलीज़ चेकसम सत्यापित करते हैं और संस्करणित फ़ाइलों को प्रति-उपयोगकर्ता निर्देशिका में संग्रहीत करते हैं। वे शेल प्रोफ़ाइल, PATH, या MCP सेटिंग्स को संपादित नहीं करते हैं। अपडेट करने के लिए इंस्टॉलर को फिर से चलाएँ, या किसी रिलीज़ का चयन करने के लिए REA_VERSION सेट करें। पथ, कस्टम स्थान और हटाने के लिए इंस्टॉलेशन विवरण देखें।
पिन किए गए Rust टूलचेन (1.93.1), रिलीज़ स्क्रिप्ट के लिए Python 3.11+, और एक C/C++20 कंपाइलर (Linux पर GCC 12+) की आवश्यकता होती है। इस रिपॉज़िटरी में सभी एम्बेडेड हेल्पर स्रोत शामिल हैं।
git clone https://github.com/nanashili/rea-rust.git
cd rea-rust
cargo build --locked --release -p rea
target/release/rea --help
macOS, Linux, या Windows पर, Ghidra वर्कर को अलग से बनाएं और इसे rea के बगल में रखें:
cargo build --manifest-path ghidra-rust-worker/Cargo.toml --locked --release
cp ghidra-rust-worker/target/release/rea-ghidra-rust-worker target/release/
PowerShell में, कॉपी चरण के लिए Copy-Item ghidra-rust-worker/target/release/rea-ghidra-rust-worker.exe target/release/ का उपयोग करें।
वर्कर नेटिव Ghidra डीकंपाइलर का उपयोग करता है और इसके लिए किसी JVM की आवश्यकता नहीं है। इसे कहीं और रखने के लिए, REA_GHIDRA_RUST_WORKER को उसके निरपेक्ष पथ पर सेट करें।
Frida एक वैकल्पिक बिल्ड सुविधा है। देखें Frida setup। अन्य विश्लेषण प्रदाताओं और बाहरी टूल्स के लिए उनके स्वयं के इंस्टॉलेशन आवश्यक हैं।
rea inspect /path/to/program
rea decompile /path/to/program main --provider ghidra-rust
rea inspect-go-binary /path/to/go-program --format json
rea doctor
किसी भी कमांड के आर्ग्युमेंट्स और विकल्पों के लिए उस पर --help का उपयोग करें।
इसे अपने क्लाइंट के MCP कॉन्फ़िगरेशन में जोड़ें, executable पथ को बदलकर:
{
"mcpServers": {
"rea": {
"command": "/absolute/path/to/rea",
"args": ["mcp"]
}
}
}
rea mcp stdio सर्वर शुरू करता है। इंस्टॉल किए गए executable का absolute path उपयोग करें;
MCP क्लाइंट्स का PATH आपके shell से भिन्न हो सकता है। rea setup क्लाइंट
रजिस्ट्रेशन और skill इंस्टॉलेशन का पूर्वावलोकन दिखाता है, फिर बदलाव लागू करने से पहले पूछता है।
रिलीज़ इंस्टॉल में Ghidra worker पहले से शामिल होता है।
GitHub Actions टैग किया गया रिलीज़ प्रकाशित करने से पहले दोनों आर्किटेक्चर पर macOS और Linux आर्काइव, साथ ही Windows ARM64 और x64 आर्काइव का निर्माण और smoke-test करता है। Musl Linux और Frida-सक्षम बाइनरीज़ प्रदान नहीं की जाती हैं। अन्य विश्लेषण प्रदाताओं और बाहरी टूल्स के लिए उनकी अपनी इंस्टॉलेशन आवश्यक है।
ज्ञात व्यवहार भिन्नताएँ और परीक्षण कवरेज migration verification report में दर्ज हैं।
local application benchmark 11 इंस्टॉल किए गए macOS एप्लिकेशन और Go को कवर करता है: 25 वर्कफ़्लोज़ में 125 सैंपल, जिनमें बीता समय, CPU, मेमोरी, प्रति-कॉल परिणाम और प्रलेखित विफलताएँ शामिल हैं। failure verification rerun सुधार, दोहराए गए माप और शेष विफलताएँ दर्ज करता है।
अलग TypeScript/native तुलना में frozen builds का उपयोग किया गया, जिसे 24 अक्टूबर 2026 को Apple M1 Pro पर, warm filesystem caches के साथ मापा गया। प्रति संस्करण सात सत्र; दोहराए गए request पंक्ति में प्रति संस्करण 56 कॉल का उपयोग किया गया:
| कार्य | TypeScript | Rust |
|---|---|---|
| Go build metadata शुरू करें और निरीक्षण करें | 570 ms | 64 ms |
| चालू सत्र में Go metadata request दोहराएँ | 7.3 ms | 16.2 ms |
| एक छोटे C प्रोग्राम में पहला फ़ंक्शन शुरू करें और decompile करें | 9.43 s | 0.39 s |
| उस decompilation सत्र के दौरान नमूना लिया गया शिखर process-family मेमोरी | 1,022 MiB | 214 MiB |
decompilation तुलना में TypeScript के लिए Java Ghidra और native build के लिए Rust Ghidra का उपयोग किया गया। import-name टकराव के कारण Rust बड़े Go परीक्षण पर विफल रहा; Java ने सभी तीन अनुरोधित फ़ंक्शन लौटाए।
इनपुट, कच्चे माप, आउटपुट अंतर और पुनरुत्पादन चरणों के लिए runtime comparison और Ghidra results देखें। performance audit बाद के Rust अनुकूलनों को कवर करता है।
cargo fmt --all -- --check
cargo clippy --workspace --locked
cargo test --locked -p rea-core -p rea-rust-analysis -p rea-mcp
development guide में सोर्स लेआउट, पूर्ण वर्कस्पेस परीक्षण आवश्यकताएँ, Ghidra वर्कर, और प्रयोगात्मक C API शामिल हैं। टूल व्यवहार बदलते समय MIGRATION_GUIDE.md देखें और crate स्वामित्व के लिए आर्किटेक्चर नोट्स देखें।