Skip to content
KitploitKITPLOIT
أدواتعمليات الاستغلالالمدونة
إرسال
أدواتعمليات الاستغلالالمدونة
إرسال

أدوات الاختراق واختبار الاختراق والأمن السيبراني لترسانتك الأمنية!

Kitploit هو دليل لأدوات الاختراق والأمن السيبراني واختبار الاختراق. اكتشف آخر تحديثات المشاريع للعثور على الثغرات وتحليل الأنظمة وأتمتة الاختبارات وتعزيز أمنك.

··الخلاصات·اتصال·الخصوصية·© 2026 Kitploit

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
recurse — بيئة تطوير متكاملة للهندسة العكسية الوكيلة مع مفكك تجميع متعدد المعماريات مكتوب بلغة Rust خالصة، ومفكك شيفرة أصلي، ومنقّح، ووكيل LLM لتحليل الملفات الثنائية وأعمال CTF. | Kitploit
أدوات/GitHubGitHub/recurse-labs/recurse
التحليل الثابتالتحليل الديناميكي (عزل)الهندسة العكسيةمصممي الأخطاءتحليل البرمجيات الخبيثةCTFتحليل الملفات الثنائيةالتعلم والتعليمالهندسة العكسية بمساعدة الذكاء الاصطناعيأمن الذكاء الاصطناعي
GitHubrecurse-labs/recurse
2141699منذ يوم واحدتمت المراجعة من قبل Kitploit

الأكثر شعبية

عرض الكل →

اكتشف الأدوات الأكثر استخدامًا من قبل مجتمعنا.

استكشف جميع الأدوات

تصفح مجموعتنا من الأدوات

عرض جميع الأدوات →

recurse

بيئة تطوير متكاملة للهندسة العكسية الوكيلة مع مفكك تجميع متعدد المعماريات مكتوب بلغة Rust خالصة، ومفكك شيفرة أصلي، ومنقّح، ووكيل LLM لتحليل الملفات الثنائية وأعمال CTF.

عرض المستودعالموقع الإلكتروني
مشاركة

Recurse

بيئة هندسة عكسية قائمة على الوكلاء — تطبيق سطح مكتب من فئة Ghidra بروح "Cursor للهندسة العكسية". مبني باستخدام Tauri 2 (واجهة أمامية React + TypeScript) فوق خلفية تحليل قابلة للتوصيل. الافتراضي هو محرك أصلي بلغة Rust خالصة — لا عملية خارجية، لا اعتماد على copyleft، متعدد المعماريات عبر Capstone. يمكنك أيضًا تشغيل التحليل عبر r2 (radare2): ثبّته، واختره كمحرك، وسيقوده التطبيق بأكمله — أدوات الوكيل والواجهة. أداة الوكيل والواجهة مستقلتان عن الخلفية — راجع docs/backends.md.

Recurse demo

تخطيط المستودع

مساحة عمل Cargo في الجذر؛ تطبيق سطح المكتب حزمة واحدة فيها.

root@kitploit:~
tauri/                   desktop app (Tauri + React)
  src/                     React frontend
  src-tauri/               Tauri Rust backend (engine sessions, agent wiring)
  package.json             app scripts (Vite, Vitest, Tauri CLI)
crates/
  recurse-agent/              agent framework: LLM loop, tool runtime, SQLite memory
  recurse-static/          static analysis: ELF/PE/Mach-O parsing, multi-arch disassembly,
                           CFG and cross-reference recovery, the engine seam
  recurse-vtil/            VTIL-inspired de-obfuscation/de-virtualization IL, lifter, optimizer
  recurse-mcp/             standalone headless MCP server (stdio) over the engine — no Tauri, no IDA
  recurse-debug/           cross-platform debugger (ptrace/Mach/Win32, breakpoints, stepping)
  recurse-eval/            headless eval harness (YAML-configured tiers)
justfile                 single entry point for both halves

recurse-agent هو الوكيل فقط؛ التحليل الساكن موجود في recurse-static والمنقّح في recurse-debug، لذا لا يجلب الوكيل أي كود أنظمة لا يستخدمه. لا تعتمد أي حزمة على Tauri، وكل منها يُبنى/يُختبر بشكل مستقل؛ recurse-eval يقود الوكيل بدون واجهة. جميعها أعضاء في مساحة العمل، لذا يغطي Cargo.lock واحد وtarget/ واحد المستودع بأكمله.

الميزات

  • مساحة عمل بنمط Cursor: قائمة الدوال، تبويبات التفكيك/السلاسل/الواردات، رسم CFG البياني، وشريط جانبي لوكيل المحادثة (بدّل بزر Chat أو Ctrl+L)
  • صفحة الاستطلاع: معلومات الملف الثنائي، تجزئات MD5/SHA1/SHA256/CRC32، الإنتروبيا، المكتبات المرتبطة، تقرير تحصين مكتفٍ ذاتيًا (RELRO / PIE / NX / canary / FORTIFY / RPATH — بدون checksec خارجي)، وإحصاءات التحليل
  • إعادة تسمية الدوال من القائمة (نقر مزدوج أو زر ✎)؛ تبقى الأسماء في SQLite وتظهر في قائمة الدوال، وتعليقات التفكيك، وللوكيل
  • وكيل مُسنَد: كل عنوان كائن قابل للنقر (قائمة الدوال، عقد الرسم البياني، الإحالات المرجعية، تعليقات المفكك) — وليس نصًا ملصقًا قد يهلوسه النموذج
  • جلسة تحليل حية على أي ملف ثنائي — بما في ذلك الملفات بلا امتداد
  • ذاكرة مشروع دائمة في SQLite مع استرجاع FTS5/BM25 — تبقى إعادة التسميات والنتائج والملاحظات بعد /clear وإعادة الفتح، وتبذر الجلسة التالية
  • نواة بدون واجهة (recurse-agent) مع تتبع تصحيح لكل دور؛ حلقة الوكيل نفسها تعمل في الواجهة وفي منصة التقييم
  • وكيل LLM مدعوم بنقطة نهاية متوافقة مع OpenAI (OpenRouter افتراضيًا) مع منتقي نموذج؛ يقود الجلسة مباشرة (disasm، xrefs، strings، imports، decompile)
  • واجهة داكنة أولًا مبنية بـ Tailwind CSS v4 + shadcn/ui
  • عملية lift: ترفع دالة إلى IL لإزالة التشويش بنمط VTIL وتشغّل تمريرات الانتشار/الطي/إزالة الكود الميت/حل التفرعات على الروتين بأكمله — مفيدة عندما يبدو التفكيك كموزّع VM أو سلسلة مسندات مبهمة (راجع docs/vtil-lift.md)
  • مفكك أصلي: decompile يُنتج شبه كود شبيه بـ C (if/while بالبنية، تغطية تعليمات كاملة) من نفس خط أنابيب recurse-vtil — لا أداة خارجية، لا حاجة لـ r2
  • خادم recurse-mcp مستقل: نفس Engine عبر MCP stdio لأي وكيل يدعم MCP (Claude Code، Cursor، Claude Desktop، …) — لا Tauri، لا مقعد IDA، لا جسر Python (راجع docs/recurse-mcp.md)

خلفيات التحليل

يمر التحليل عبر سمة Engine واحدة (crates/recurse-static/src/engine.rs)، لذا فإن المحرك خيار، وليس اعتمادًا صارمًا:

  • native (افتراضي) — تحليل ELF/PE/Mach-O بلغة Rust خالصة وتفكيك متعدد المعماريات (object + capstone): x86/x86-64، ARM، AArch64، MIPS، PowerPC، RISC-V، SPARC، SystemZ، M68K، BPF. لا عملية فرعية، لا أداة خارجية، لا LGPL في البناء. يتضمن مفككًا (خط أنابيب lift → optimize → structure الخاص بـ recurse-vtil — راجع docs/vtil-lift.md) وعملية lift لإزالة التشويش بنمط VTIL.
  • r2 (radare2) — مدعوم كبديل اختياري للتنصيبات التي تريد مفككها الأكثر اكتمالًا أو وحدة تحكم خام. ثبّت r2 واختره كمحرك؛ يعمل كعملية منفصلة ولا يُربط أو يُضمّن مع Recurse أبدًا.

اختر من قائمة الإعدادات، أو متغير البيئة RECURSE_BACKEND، أو الإعداد المخزّن. يحصل الوكيل على أداة analyze واحدة محايدة للخلفية (functions، disasm، graph، lift، decompile، xrefs، strings، imports، info، بالإضافة إلى raw لوحدة تحكم المحرك) — مُفلترة على العمليات التي يدعمها المحرك النشط فعليًا، لذا فإن raw (لا وحدة تحكم في native) لا يُعلن عنه إلا عند توفره. تستهلك الواجهة أنواع نتائج قانونية، وليس JSON أي محرك. راجع docs/backends.md للسمة، وخيارات الحزم، وأساس الترخيص. فتح ملف ثنائي كبير سريع لأن التحليل كسول — الاكتشاف يفهرس الدوال بتكلفة زهيدة والكتل الأساسية تُفكّك فقط عند عرض دالة؛ راجع docs/lazy-analysis.md.

لماذا لا مجرد MCP-to-IDA / تنفيذها بتهور في Claude Code؟

ربط خادم MCP بـ IDA/Ghidra، أو لصق التفكيك في وكيل CLI، ينجح مع تحديات CTF من 5 دوال وينهار مع الملفات الثنائية الحقيقية. Recurse بيئة مبنية لغرض محدد، وليست غلافًا لروبوت محادثة:

  • نموذج عالمي للملف الثنائي، لا كشط نصي. الدوال والإحالات المرجعية والسلاسل وCFG حالة من الدرجة الأولى يتشاركها الوكيل والواجهة. لا إعادة تحليل مخرجات pdF إلى السياق كل دور، لا 0x401023s مختلقة.
  • التحقق > التوليد. في الهندسة العكسية لا يوجد npm test — التحقق بصري. تنتشر إعادة تسميات الوكيل إلى قائمة الدوال والرسم البياني والتفكيك فورًا، فيؤكد الإنسان أو يرفض بنقرة واحدة.
  • مبني للتوسع. البرمجيات الخبيثة الحقيقية 10000 دالة. أدوات مدفوعة بالطلب + ذاكرة دائمة تتفوق على إغراق التفكيكات الكاملة حتى ينفد السياق.
  • محرك قابل للوكالة. محرك قابل للبرمجة والأنابيب يعني أن الوكلاء يمكنهم تشغيل 100 دور، والتفرع، وإعادة الضبط والفرق — ويمكنك فعلاً شحنه. المحرك الأصلي الافتراضي لا يحتاج أي أداة خارجية على الإطلاق.
  • آمن للبرمجيات الخبيثة افتراضيًا. محلي أولًا، توجيه BYO-key/OpenRouter، ومسار لنماذج دون اتصال — لا تسريب قسري للعينات إلى روبوت محادثة سحابي.

المتطلبات الأساسية

1. سلاسل الأدوات الأساسية

ToolVersion (tested)Install
Node.js≥ 20 (23.11 used)https://nodejs.org or nvm
npm≥ 10ships with Node.js
Rust≥ 1.77 (1.97 used)https://rustup.rs
cargo—ships with Rust (rustup)

تحقق:

root@kitploit:~
node --version && npm --version && rustc --version && cargo --version

2. محرك التحليل

المحرك native الافتراضي هو Rust خالص — لا شيء لتنصيبه. لاستخدام r2 (radare2) كمحرك التحليل بدلاً من ذلك، ثبّته واختره (قائمة الإعدادات، أو RECURSE_BACKEND=r2)؛ يقود Recurse ملف r2 الثنائي على PATH لديك. r2 اختياري، ولا يتطلبه البناء أبدًا، ولا يُوزّع مع Recurse أبدًا — أحضر تنصيبك الخاص.

3. اعتماديات نظام Tauri على Linux

Debian/Ubuntu/Pop!_OS:

root@kitploit:~
sudo apt update
sudo apt install -y libwebkit2gtk-4.1-dev build-essential \
  curl wget file libxdo-dev libssl-dev libayatana-appindicator3-dev librsvg2-dev

توزيعات أخرى: اتبع متطلبات Tauri الرسمية.

4. المفكك

كلا المحركين يوفر واحدًا: native يُنتج شبه الكود عبر recurse-vtil (lift → optimize → structure — راجع docs/vtil-lift.md)، لا شيء لتنصيبه؛ r2 يمكنه توفير مفككه الأكثر اكتمالًا عند تنصيب إضافته.

البناء

اعتماديات التطبيق في tauri/؛ Rust من جذر مساحة العمل. just يغلّف كليهما (راجع just --list)، أو قُدهما مباشرة.

التطوير

root@kitploit:~
just dev
# equivalent: cd tauri && npm install && npm run tauri dev

يبدأ هذا خادم تطوير Vite ويطلق نافذة Tauri. الترجمة الأولى تستغرق بعض الوقت (بناء Rust)؛ التاليات سريعة.

ملف الإنتاج الثنائي

root@kitploit:~
just build
# equivalent: cd tauri && npm run tauri build

تستقر الحزمة في target/release/bundle/ (هدف مساحة العمل):

  • .deb / .rpm / .AppImage لـ Linux
  • ملف ثنائي مستقل في target/release/recurse

على Arch وتوزيعات rolling الأخرى تحتاج خطوة AppImage إصلاحًا محليًا لمرة واحدة (‏linuxdeploy الأصلي متأخر عن سلسلة أدوات التوزيعة) — راجع docs/linux-appimage-build.md.

الواجهة الأمامية فقط (بدون غلاف سطح المكتب)

root@kitploit:~
just preview
# equivalent: cd tauri && npm run build && npm run preview

فحوصات الجودة

root@kitploit:~
just lint        # cargo clippy --workspace + eslint
just fmt         # cargo fmt --all + prettier
just fmt-check   # verify without writing
just test        # cargo test --workspace + vitest

الأوامر المباشرة المكافئة: cargo clippy --workspace --all-targets، cargo test --workspace في الجذر؛ npm run lint / npm run format / npm run build داخل tauri/.

التقييمات

يُقيَّم الوكيل بدون واجهة مقابل مستويات crackme (راجع crates/recurse-eval/README.md). المستويات YAML: مرشحات اختيار على مجموعة البيانات، أو قائمة hexid مجمّدة، بالإضافة إلى مقابض التشغيل.

root@kitploit:~
just eval-fetch   # download the tier's binaries
just eval-test    # harness self-tests (no API key needed, no LLM calls)
just eval-run     # run the tier — the only way to execute an eval YAML

eval-run ملف ثنائي، وليس اختبارًا، لذا لا ينفق cargo test أبدًا مالًا أو وقتًا على الوكيل. نقطة النهاية + المفتاح في crates/recurse-eval/.env (انسخ .env.example). كل تشغيل يكتب target/eval-traces/<tier>/<backend>/run.log (السرد الكامل) بالإضافة إلى <hexid>.json واحد لكل مهمة مع المحادثة الكاملة لكل دور. الخلفية (native أو r2) قابلة للاختيار لكل تشغيل — راجع README التقييم.

وكيل LLM

تعمل لوحة محادثة الوكيل على أي نقطة نهاية متوافقة مع OpenAI. اضبط مفتاح API، وعنوان URL الأساسي، والنموذج من حوار Model & Provider داخل التطبيق (يُحفظ في ~/.recurse/recurse.db)، أو عبر متغيرات البيئة:

root@kitploit:~
# Hosted provider (default)
export RECURSE_LLM_API_KEY=sk-or-...   # or OPENROUTER_API_KEY
export RECURSE_LLM_ENDPOINT=https://openrouter.ai/api/v1/chat/completions  # optional
export RECURSE_LLM_MODEL=openrouter/auto  # optional

النماذج المحلية / عنوان URL أساسي مخصص

وجّه الوكيل إلى أي خادم محلي أو مستضاف ذاتيًا متوافق مع OpenAI — Ollama، LM Studio، llama-server من llama.cpp، vLLM، text-generation-webui، أو بوابة بعيدة. اضبط Base URL في الحوار (عنوان URL أساسي مجرد أو مسار /chat/completions كامل كلاهما يعمل) واختر نموذجًا من كتالوج ذلك الخادم، أو اكتب معرّف نموذج (llama3.1:8b، qwen2.5-coder، …) مباشرة:

root@kitploit:~
export RECURSE_LLM_ENDPOINT=http://localhost:11434/v1   # Ollama
export RECURSE_LLM_MODEL=llama3.1:8b
export RECURSE_LLM_API_KEY=           # usually unnecessary locally

نقاط النهاية المحلية لا تحتاج مفتاح API: عندما يكون المفتاح فارغًا يُرسل الطلب بدون ترويسة Authorization، وتُقرأ قائمة النماذج من {base}/models الخاصة بنقطة النهاية. تُعامل نقطة النهاية المخصصة كمهيّأة بدون مفتاح، لذا تعمل المحادثة مباشرة مع خادم محلي.

بدون بيانات اعتماد يتراجع إلى عميل صدى ليبقى الربط قابلًا للاختبار.

يرى الوكيل سياق الملف الثنائي الحي (المعمارية، البتات، النوع) ويمكنه قيادة سطح التحليل الكامل (التفكيك، الإحالات المرجعية، السلاسل، الواردات، التفكيك) عبر الجلسة.

الترخيص

Apache-2.0 — © 2026 Aayush Khanna

تنزيل الأداة