
نقل Rust لأداة REA، وهي أداة هندسة عكسية محلية فقط مع سير عمل CLI/MCP وعامل Ghidra أصلي
نسخة Rust من REA للهندسة العكسية المحلية من الطرفية أو من عميل MCP.
افحص الملفات الثنائية، وفكّ تجميع الدوال، وحلّل تطبيقات JavaScript وElectron، واقرأ الملفات المُدارة وملفات الأجهزة المحمولة، وتعامل مع عمليات الالتقاط من العمليات والمتصفح. تستخدم واجهة سطر الأوامر وخادم MCP نفس تطبيقات الأدوات. لا يتطلب وقت التشغيل Node.js.
تتضمن الإصدارات المُجمّعة مسبقًا rea، وخادم MCP، وعامل Ghidra لأنظمة macOS وLinux وWindows على معماريتي ARM64 وx86-64. لا حاجة إلى 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
تتحقق برامج التثبيت من مجاميع التحقق الخاصة بالإصدارات وتخزّن الملفات المُصدَّرة بإصدارات في دليل خاص بكل مستخدم. وهي لا تعدّل ملفات تعريف الصدفة (shell profiles) ولا PATH ولا إعدادات MCP. أعد تشغيل برنامج التثبيت للتحديث، أو اضبط REA_VERSION لاختيار إصدار. راجع تفاصيل التثبيت للاطلاع على المسارات والمواقع المخصصة والإزالة.
يتطلب سلسلة أدوات Rust المثبّتة (1.93.1)، وPython 3.11+ لنصوص الإصدارات، ومترجم C/C++20 (GCC 12+ على Linux). يحتوي هذا المستودع على جميع مصادر الأدوات المساعدة المضمّنة.
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/ لخطوة النسخ.
يستخدم الـ worker مفكك الترجمة الأصلي Ghidra ولا يتطلب JVM. لإبقائه
في مكان آخر، اضبط REA_GHIDRA_RUST_WORKER على مساره المطلق.
Frida هي ميزة بناء اختيارية. راجع إعداد Frida. تتطلب موفّرات التحليل الأخرى والأدوات الخارجية عمليات تثبيت خاصة بها.
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 الخاصة بعميلك، مع استبدال مسار الملف التنفيذي:
{
"mcpServers": {
"rea": {
"command": "/absolute/path/to/rea",
"args": ["mcp"]
}
}
}
rea mcp يشغّل خادم stdio. استخدم المسار المطلق للملف التنفيذي المثبّت؛
قد يكون لدى عملاء MCP قيمة PATH مختلفة عن تلك الموجودة في shell لديك. يعرض rea setup معاينة
لتسجيلات العملاء وتثبيت المهارات، ثم يسأل قبل تطبيق التغييرات.
تتضمن عمليات التثبيت من الإصدارات عامل Ghidra بالفعل.
تبني GitHub Actions وتُجري اختبارات دخان على أرشيفات macOS وLinux على كلتا المعماريتين، بالإضافة إلى أرشيفات Windows ARM64 وx64، قبل نشر إصدار موسوم. لا تُوفَّر ثنائيات Musl Linux والثنائيات المفعّلة بـ Frida. تتطلب موفّرو التحليل الآخرون والأدوات الخارجية عمليات تثبيت خاصة بهم.
تُسجَّل اختلافات السلوك المعروفة وتغطية الاختبارات في تقرير التحقق من الترحيل.
يغطي معيار التطبيقات المحلية 11 تطبيقًا مثبّتًا على macOS وGo: 125 عينة عبر 25 سير عمل، مع الوقت المنقضي وCPU والذاكرة ونتائج كل استدعاء والإخفاقات الموثّقة. يسجّل إعادة تشغيل التحقق من الإخفاقات الإصلاحات والقياسات المتكررة والإخفاقات المتبقية.
استُخدمت في المقارنة المنفصلة بين TypeScript والنسخة الأصلية عمليات بناء مجمّدة، قيست على Apple M1 Pro في 24 أكتوبر 2026، مع ذاكرات تخزين مؤقت دافئة لنظام الملفات. سبع جلسات لكل إصدار؛ ويستخدم صف الطلب المتكرر 56 استدعاءً لكل إصدار:
| المهمة | TypeScript | Rust |
|---|---|---|
| بدء وفحص بيانات بناء Go الوصفية | 570 ms | 64 ms |
| تكرار طلب بيانات Go الوصفية في جلسة قيد التشغيل | 7.3 ms | 16.2 ms |
| بدء وتفكيك أول دالة في برنامج C صغير | 9.43 s | 0.39 s |
| ذروة الذاكرة المُعاينة لعائلة العمليات أثناء جلسة التفكيك تلك | 1,022 MiB | 214 MiB |
استخدمت مقارنة التفكيك Ghidra الخاصة بـ Java مع TypeScript وGhidra الخاصة بـ Rust مع البناء الأصلي. فشل Rust في اختبار Go الأكبر بسبب تعارض في اسم الاستيراد؛ بينما أعادت Java الدوال الثلاث المطلوبة جميعها.
راجع مقارنة وقت التشغيل ونتائج Ghidra للاطلاع على المدخلات والقياسات الخام واختلافات المخرجات وخطوات إعادة الإنتاج. يغطي تدقيق الأداء تحسينات Rust اللاحقة.
cargo fmt --all -- --check
cargo clippy --workspace --locked
cargo test --locked -p rea-core -p rea-rust-analysis -p rea-mcp
يغطي دليل التطوير تخطيط المصدر، ومتطلبات اختبار مساحة العمل الكاملة، وعامل Ghidra، وواجهة C API التجريبية. راجع MIGRATION_GUIDE.md عند تغيير سلوك الأداة و ملاحظات البنية لمعرفة ملكية الحزم (crate ownership).