
مجموعة أدوات Rust CLI تقوم بفك الترجمة الساكن، وإزالة التشويش، وفك حزم الكود الأصلي، والبايت كود، والسكريبتات، والبرامج الثابتة، وحزم التطبيقات عبر أكثر من 15 نظاماً بيئياً من خلال خط أنابيب تلقائي واحد.
ابدأ الآن · المدخلات المدعومة · الاستعادة التلقائية · مقارنات الأدوات · الأدلة · التوثيق
Disrobe هي مجموعة أدوات سطر أوامر مكتوبة بلغة Rust لفك التجميع وإزالة التشويش وفك تغليف البرمجيات. استخدمها لفرز ملف غير معروف، أو استعادة الشيفرة الهندسة العكسية، أو استخراج المؤشرات لتحقيق، أو تجهيز القطع الأثرية لفك المُجمِّع.
استعد Python من البايت كود والتطبيقات المُجمَّدة، وJava من ملفات classfiles وDEX، وC# من CIL، وJavaScript من الحزم، وLua من الأجهزة الافتراضية المخصصة، وC أو Rust من الشيفرة الأصلية. استخرج الملفات من المُثبِّتات والبرامج الثابتة وحزم الجوال وتطبيقات Electron وTauri أو Wails. احتفظ بالمصدر المُستعاد والرموز والسلاسل والأنواع والمصدر معًا لمزيد من التحليل.
يصنّف البناء الكامل 170 عائلة عبر 15 نظامًا بيئيًا ويكتشف 103 صيغة حاوية. يحدد disrobe auto كل طبقة، ويشغّل تمريرة مطابقة، ويتابع العناصر الفرعية المُستعادة إلى مسارات الاستعادة الخاصة بها. تكشف الأوامر المخصصة عن ضوابط أدق وتقارير تحليل وخلفيات اختيارية. تعمل الاستعادة بشكل ثابت افتراضيًا؛ ويبقى المصدر والبنية والمخرجات الجزئية وحدود المفاتيح المفقودة قابلة للتمييز في النتيجة.
إذا كان Disrobe مفيدًا لك، فكّر في إضافة نجمة إلى المستودع.
شاهد الفيديو الكامل · اقرأ النص المكتوب
عشرون أمرًا في سطر الأوامر في دقيقتين و12 ثانية: فك تغليف ملف تنفيذي أصلي، واستعد Python وLua، وقسّم وحدات JavaScript، واستعد خرائط المصدر، وافحص WebAssembly وموارد Android، واستخرج المؤشرات، واحفظ التقارير وتجزئات القطع الأثرية. يعرض الفصل الأخير إعدادات المشروع وإعداد IDE وتعليقات المحلل وإكمالات الصدفة. يتضمن النص المكتوب جرد الأوامر الكامل للبناء المُسجَّل؛ وتشرح خريطة القدرات حدود دعمه.
نزّل الأرشيف الخاص بمنصتك من إصدارات GitHub، وتحقق منه مقابل SHA256SUMS الخاص بالإصدار، وضع disrobe على PATH الخاص بك. تتضمن أرشيفات الإصدار حزم توقيع؛ ويشرح دليل التحقق كيفية فحصها.
| المنصة | أهداف الإصدار |
|---|---|
| Windows | x86-64، ARM64 |
| macOS | x86-64، ARM64 |
| Linux | x86-64 وARM64 مع glibc؛ x86-64 مع musl |
تحقق من الملف التنفيذي الذي ثبّته:```sh disrobe --version disrobe --help
للبناء من سطر الأوامر (CLI) من نسخة مستنسخة، قم بتثبيت سلسلة أدوات Rust الخاصة بالمستودع و[متطلبات البناء الأصلية](https://github.com/1-3-7/disrobe/blob/main/docs/src/installation.md)، ثم شغّل:```sh
cargo build --locked --release -p disrobe-cli --bin disrobe
الملف التنفيذي هو target/release/disrobe، أو target/release/disrobe.exe على Windows. راجع دليل التثبيت للاطلاع على أعلام الميزات والبنيات المخففة.
ابدأ بتطبيق أو مكتبة أو حزمة. تعرّف عليه، ثم استرد طبقاته المعروفة، ثم افحص ملخص الاسترداد:```sh disrobe identify path/to/application disrobe auto path/to/application --out recovered/ --capture-stages disrobe context --out recovered/
`identify` يبلّغ عن التنسيق والإشارات المتاحة. `auto` يستخرج ويستعيد الطبقات المتعرَّف عليها. `context` يلخّص الممرات الناتجة، ودرجة الثقة، والمصدر. مع `--capture-stages`، افحص كل مرحلة تحت `recovered/01-*/`، و`recovered/02-*/`، و`recovered/final/`؛ يسجّل `chain.json` البنية الطوبولوجية والتجزئات (hashes)، ويسجّل `recovery.json` النتائج والتوقيتات.
استخدم أمرًا مخصّصًا عندما تعرف المخرجات التي تحتاجها:```sh
disrobe py decompile module.pyc --out python-source/
disrobe js deob bundle.js --full --out readable.js
disrobe native decompile application.exe --out native-source/
disrobe native export packed.exe --format ghidra --out ghidra-input/
disrobe webview desktop.exe --out frontend/
يُصدر المُفكِّك الأصلي كود C افتراضيًا على x86-64؛ ويحدد --format rust لغة Rust. أما AArch64 وARM32 وMIPS32 فتُصدر pseudo-C. تعيد native export بناء صور PE المحزومة المدعومة لأداة تحليل خارجية؛ وتكتب webview شجرة أصول الواجهة الأمامية المستردة دون تشغيل التطبيق.
يتضمن المستودع وحدة WebAssembly صغيرة لملعب المتصفح. من نسخة مستنسخة، مع وجود واجهة CLI الكاملة على PATH الخاص بك:```sh
disrobe wasm decompile playground/public/samples/add.wasm --target json --out add.summary.json
disrobe wasm decompile playground/public/samples/add.wasm --target wat --out add.lifted.wat
disrobe auto playground/public/samples/add.wasm --out recovered/ --capture-stages
يكتب الأمر الأول `add.summary.json`؛ ويكتب الثاني نص WebAssembly إلى `add.lifted.wat`. يختار الاسترداد التلقائي سلسلة متاحة ويكتب مخرجاتها تحت `recovered/`؛ ويحتفظ `--capture-stages` بالنتائج الوسيطة. تفحص هذه العمليات الوحدة دون تشغيل دالتها المُصدَّرة.
افحص الملفات المستردة جنبًا إلى جنب مع التقرير: التحديد وحده لا يثبت الاسترداد. تظهر البُنى غير المدعومة، والمواد المفتاحية الغائبة، والسلاسل غير المتاحة في النتيجة. يشرح [دليل النتائج](https://github.com/1-3-7/disrobe/blob/main/docs/src/reading-a-result.md) المخرجات، والتشخيصات، والنتائج الجزئية، والمصدر.
[افتح ساحة التجربة في المتصفح](https://1-3-7.github.io/disrobe/playground/) · [اتبع دليل البدء السريع](https://github.com/1-3-7/disrobe/blob/main/docs/src/quickstart.md)
## اعثر على مدخلك
**الاسترداد** يعني أن مسارًا قابلًا للوصول يُخرج مصدرًا أو بايتات أو بنية. **الجزئي** يعني أنه يسترد جزءًا فقط من تلك المعلومات. **الكشف فقط** يعني أنه يحدد العائلة دون استرداد جسمها المحمي. تصف هذه المستويات عمليات على مدخلات مدعومة؛ واسم العائلة وحده ليس ضمانًا بأن كل إصدار أو إعداد يُسترد. تتضمن القوائم أدناه كتالوج العائلات الكامل والصيغ الإضافية التي تكشفها الأوامر والمستخرجات المخصصة.
| المدخل | الاسترداد والمخرجات | الأوامر والدليل |
|---|---|---|
| Python | بايت كود CPython 1.0 إلى 3.15 وmarshal إلى المصدر؛ تفكيك PyPy وMicroPython `.mpy` v0 إلى v6 وJython وIronPython وBrython؛ استخراج الحمولات المجمّدة؛ أسماء Cython `.pyd`/`.so` وتوقيعاتها والاحتياط البنيوي | `py`، `pyinstaller`، `pyarmor`، `pyfreeze`، `nuitka` · [Python](https://github.com/1-3-7/disrobe/blob/main/docs/src/languages/python.md) |
| JavaScript / TypeScript | إزالة تشويش المصدر، وعكس التصغير، وتقسيم الوحدات، وخرائط المصدر، وفحص بيانات V8 المخزّنة مؤقتًا وبيئات التشغيل المحزّمة | `js` · [JavaScript](https://github.com/1-3-7/disrobe/blob/main/docs/src/languages/javascript.md) |
| WebAssembly | `.wasm` إلى WAT أو Rust أو TypeScript أو شبه مصدر C أو JSON؛ فحص Component Model ومخطط أنواع GC؛ عكس التشويش المدعوم | `wasm` · [WebAssembly](https://github.com/1-3-7/disrobe/blob/main/docs/src/languages/wasm.md) |
| JVM / Android | `.class`، JAR، DEX، APK، AAB؛ مصدر Java، وصيغ Kotlin/Scala، ومعلومات البيان والتوقيع، وتقارير الحماة وملفات التعيين المرافقة | `jvm`، `apk` · [JVM وAndroid](https://github.com/1-3-7/disrobe/blob/main/docs/src/languages/jvm-android.md) |
| .NET | بيانات PE/CLR الوصفية وCIL إلى شبه مصدر C# أو F# أو VB؛ فحص ReadyToRun وNative AOT؛ استخراج حزمة الملف الواحد | `dotnet` · [.NET](https://github.com/1-3-7/disrobe/blob/main/docs/src/languages/dotnet.md) |
| Native | تحديد أو تحليل PE32/PE64، EFI PE، ELF32/ELF64، وحدات النواة، Mach-O الرقيق/السميك، COFF، MZ، NE، LE، LX، والكود الخام؛ إخراج المصدر على المسارات الخاصة بالمعمارية أعلاه | `native`، `macho`، `semdiff` · [Native](https://github.com/1-3-7/disrobe/blob/main/docs/src/languages/native.md)، [decompile](https://github.com/1-3-7/disrobe/blob/main/docs/src/languages/native-decompile.md) |
| Go | بيانات وقت تشغيل PE/ELF/Mach-O الوصفية، وأسماء الدوال والأنواع المجرّدة، وملفات `embed.FS`، وتقارير garble والقيم الحرفية القابلة للاسترداد | `go` · [Go](https://github.com/1-3-7/disrobe/blob/main/docs/src/languages/go.md) |
| Swift / Objective-C | أصناف وبروتوكولات وحقول ومحددات Mach-O، والرموز المُفكَّكة؛ الشرائح الشاملة؛ مكتبات dyld المشتركة المخزّنة مؤقتًا | `swift`، `macho` · [Swift](https://github.com/1-3-7/disrobe/blob/main/docs/src/languages/swift.md) |
| Lua | Lua 5.1 إلى 5.4، وLuaJIT 2.0/2.1، وبايت كود Luau، وGarry's Mod Lua (GLua)؛ المصدر وتقارير الدقة لكل مدخل؛ استرداد الآلة الافتراضية والنصوص المدعوم | `lua` · [Lua](https://github.com/1-3-7/disrobe/blob/main/docs/src/languages/lua.md) |
| PHP | تقشير المصدر/سلسلة eval، وحلقات فك التشفير بالمفاتيح الحرفية وطبقات AES، واستخراج Phar، واسترداد `op_array` المتسلسل؛ تبقى أغلفة المُشفِّرات التجارية محدودة بالمفاتيح | `php` · [PHP](https://github.com/1-3-7/disrobe/blob/main/docs/src/languages/php.md) |
| Ruby | ملفات MRI/YARV 2.6 إلى 3.4 InstructionSequence الثنائية وmruby RITE bytecode إلى Ruby؛ تصنيف المُجمِّد وAOT | `ruby` · [Ruby](https://github.com/1-3-7/disrobe/blob/main/docs/src/languages/ruby.md) |
| Erlang / Elixir | وحدات BEAM وأرشيفات EZ؛ الكود المجرّد الباقي أو `Dbgi` إلى المصدر، والاحتياط إلى Core Erlang، وسرد التعليمات | `beam` · [BEAM](https://github.com/1-3-7/disrobe/blob/main/docs/src/languages/beam.md) |
| ActionScript 3 | كتل `DoABC` في SWF FWS/CWS/ZWS وبايت كود ABC الخام إلى التفكيك وشبه كود AS3 | `as3` · [ActionScript](https://github.com/1-3-7/disrobe/blob/main/docs/src/languages/as3.md) |
| بيئات تشغيل الجوال | تحليل ترويسة Hermes v60 إلى v96، ورفع شبه JavaScript لـ v62/v71/v74/v76/v83/v84/v89/v96؛ أجسام مصدر Flutter Dart kernel؛ تعريفات ARM64 AOT والنصوص والتفكيك | `hermes`، `flutter`، `mobile` · [Mobile](https://github.com/1-3-7/disrobe/blob/main/docs/src/languages/mobile.md) |
| Shell / المستندات | PowerShell، Bash، Batch، VBScript، WSH؛ p-code لـ VBA3/5/6/7 والطمس؛ مصدر ماكرو Office، وصيغ BIFF8/BIFF12 XLM، والنصوص/الإجراءات المضمّنة في PDF | `shell` · [Shell والمستندات](https://github.com/1-3-7/disrobe/blob/main/docs/src/languages/shell.md) |
| مصنوعات لغات أخرى | أشجار عمليات/بايت كود Perl، وبيانات R RDS وRcpp الوصفية، وTcl starkits، ومخرجات Haxe JS/SWF/HashLink/Neko؛ بصمات Nim وZig وCrystal وD ورموزها وبناها الجزئية | `auto`، واجهات المكتبة · [لغات البرمجة النصية](https://github.com/1-3-7/disrobe/blob/main/docs/src/languages/shell.md)، [native](https://github.com/1-3-7/disrobe/blob/main/docs/src/languages/native.md) |
| Python pickle | تفكيك البروتوكول، والتتبع الرمزي، وإعادة البناء، والتصنيف دون استدعاء مخفِّضات pickle | `pickle` · [Pickle](https://github.com/1-3-7/disrobe/blob/main/docs/src/languages/pickle.md) |
| الأرشيفات / البرامج الثابتة / الواجهات الأمامية | قائمة الحاويات الكاملة أدناه؛ Electron ASAR، وخرائط Tauri v1/v2 المضمّنة، وأشجار `embed.FS` في Wails v2 | `extract`، `webview`، `auto` · [الحاويات](https://github.com/1-3-7/disrobe/blob/main/docs/src/languages/containers.md)، [webview](https://github.com/1-3-7/disrobe/blob/main/docs/src/languages/webview.md) |
<details>
<summary><strong>Python: كل مُجمِّد وحامٍ ومشوِّش مصدر مُسمّى</strong></summary>
| العائلة أو الصيغة | الدعم والمتطلب المسبق |
|---|---|
| PyInstaller 2.x إلى 6.20+ | استرداد الأرشيفات وبيت الكود المضمّنة، بما في ذلك طبقات AES-CTR/CFB المدعومة |
| Nuitka onefile، standalone، module، wheel | استخراج حمولات onefile؛ استرداد الرموز والبنية المرئية لـ Python من الصيغ المُصرَّفة |
| cx_Freeze، py2exe، shiv، pex، Briefcase | استخراج الحزم عبر `pyfreeze`؛ يبقى الأمر تجريبيًا |
| PyOxidizer | استخراج تجريبي غير مُتحقَّق منه |
| SourceDefender `.pye` | فك تشفير ساكن عبر `py sourcedefender` و`sourcedefender.decrypt` |
| PyArmor v3 (DES القديم)، PyArmor v4 (المختلط القديم)، PyArmor v5 (AES القديم) | الكشف فقط: حدود المفتاح المغلف بـ RSA |
| PyArmor v6، PyArmor v7 | استرداد ساكن جزئي؛ يقيّد الوضع الخارق والمفاتيح غير المتاحة المخرجات |
| PyArmor v8، PyArmor v9 / 9-Pro | استرداد الغلاف الساكن حيث تتوفر المواد المفتاحية. نتيجة <!-- m:pyarmor_frac -->72 / 72<!-- /m --> المنشورة تحسب فك ترميز `CodeObject` الجذري الكامل فقط لأغلفة v8/v9 الافتراضية التجريبية المُسمّاة؛ وهي لا تثبت تكافؤ المصدر ولا تغطي الترخيص المسجّل/pro أو BCC أو الوضع الخارق |
| Kramer / Specter، Berserker، BlankOBF، PlusOBF، Wodx، pyobfuscate.com، pyobfuscate.com (2026 XOR/lambda)، PyObfuscator (mauricelambert)، Manglify، Oxyry، pyminifier، عائلة المشوِّشات عبر الإنترنت، Xindex، Patchwork، pyc-zipper | استرداد ساكن للمصدر/المحمّل عبر مُقيِّم AST؛ تُبلَّغ الطبقات الفردية والمتبقيات |
| Jawbreaker، ObfuXtreme | استرداد الجسم الموجود في المصنوعة؛ تبقى الحمولات المُجلَبة وقت التشغيل غائبة |
| python-obfuscator (PyPI)، pyobfus، Pypacker | تقشير جزئي للأغلفة والتصنيف |
قد يحتاج PyArmor إلى ملف وقت التشغيل المطابق بجانب الغلاف. يتطلب مسار BCC المخصص له `--allow-bcc` ويُخرج رفعات أصلية ساكنة وهياكل Python للأجسام المُنمذجة؛ ويمكن للاسترداد التلقائي المدرك للمسار نشر مخرجات BCC نفسها. فقط خطاف PyArmor v6/v7 الديناميكي ينفّذ كود العينة، خلف `--allow-dynamic` مع مراقب. يسمح `--allow-bcc` فقط بالتحليل الساكن داخل الشجرة ولا ينفّذ العينة أو يستدعي أدوات خارجية. [تفاصيل الإصدار والوضع](https://github.com/1-3-7/disrobe/blob/main/docs/src/languages/python.md#pyarmor).
</details>
<details>
<summary><strong>JavaScript وWebAssembly وتطبيقات الويب المحزّمة</strong></summary>
| العائلة أو الصيغة | الدعم والمسار |
|---|---|
| obfuscator.io / javascript-obfuscator، JS-Confuser | استرداد مصفوفات النصوص المدعومة، وتحويلات المُوزِّع/تدفق التحكم، والمحمولات غير الشفافة، وطبقات المحمّل؛ أوامر مباشرة و`js.deob` |
| Jscrambler، js-obfuscator (jsobfu) | استرداد جزئي للقوالب والتحويلات الساكنة |
| JSFuck، aaencode، jjencode، JSFiretruck، Dean Edwards Packer | فك ترميز ساكن عبر عمليات مخصصة ومسارات سلاسل معروفة |
| JSDefender، Arxan / Digital.ai | الكشف والتقشير الساكن الجزئي للتحويلات؛ تتطلب عمليات JS التجارية المحمية خيار التخويل الخاص بالأمر |
| PACE | الكشف فقط |
| webpack 4، webpack 5، Vite، Rollup، Rolldown، esbuild، Turbopack، Bun، Parcel، Browserify، SystemJS؛ وحدات AMD | فك الحزم/استرداد الوحدات مباشرة. تُوزِّع السلسلة webpack وVite؛ وعلامات الكتالوج للمُحزِّمات الأخرى لا تجعل تلك المسارات تلقائية بحد ذاتها |
| bytenode `.jsc`، Node SEA، nexe، nw.js | فحص/نحت بيانات V8 المحزّمة؛ لـ Node SEA وbytenode فروع سلسلة صريحة |
| Electron ASAR، Tauri v1/v2، Wails v2 | استرداد أشجار الواجهة الأمامية المضمّنة؛ يستخدم Electron/Tauri الأمر `webview.carve`، ويستخدم Wails الأمر `go.classify`؛ ويتعامل `webview` المباشر مع الثلاثة |
| Bun standalone، Deno eszip v2 إلى v2.3 / `deno compile` | استرداد مخططات الوحدات المضمّنة عبر قارئات الحاويات المعنية؛ ويكشف eszip أيضًا قارئ Rust مباشرًا |
| Wobfuscator، Jscrambler WASM، wasm-mixer / Wasmixer | عكس جزئي للتحويلات المدعومة عبر `wasm.deob`؛ تُقيِّم نماذج على شكل الأدوات التحويلات، دون مخرجات مُلتزَم بها من تلك المشوِّشات نفسها |
| Tigress → Emscripten، wasm-name-obfuscator | الكشف والتصنيف؛ مساعد Tigress خارج مسار تشغيل `wasm deob`، وتبقى الأسماء الأصلية المدمَّرة غير متاحة |
[مسارات JavaScript](https://github.com/1-3-7/disrobe/blob/main/docs/src/languages/javascript.md) · [حدود Wasm](https://github.com/1-3-7/disrobe/blob/main/docs/src/languages/wasm.md) · [تخطيطات الواجهة الأمامية المضمّنة](https://github.com/1-3-7/disrobe/blob/main/docs/src/languages/webview.md).
</details>
<details>
<summary><strong>عائلات الحزم والحماة والتشويش الأصلية</strong></summary>
| العائلة | الدعم والمسار |
|---|---|
| Donut، sRDI | استرداد الوحدة المضمّنة من تخطيطات محمّل shellcode المدعومة |
| UPX، ASPack، Petite، MPRESS، FSG، PECompact، Yoda's Crypter، NSPack، MEW، kkrunchy | روتينات فك الحزم المُنفَّذة، يمكن الوصول إليها عبر `native unpack` وسلسلة المُحزِّمات؛ تتفاوت الدقة حسب العائلة والعينة |
| ASProtect، Morphine، nPack، NeoLite، PolyCryptor، Warzone Crypter | `StubEvalPending`: سلوك المحاكي لديه دليل stub مبني على المواصفات؛ الاسترداد الحقيقي المحزّم من المورّد غير مُتحقَّق منه ولا يُعلَن عن إرسال فك حزم |
| Yoda's Protector، VMProtect، Themida / WinLicense | الكشف فقط عبر CLI والتلقائي. تكشف مساعدات Rust منفصلة عن النحت بمساعدة الأصل أو استرداد القسم المحمي؛ وهي لا تثبت إزالة افتراضية للبرنامج بأكمله |
| PE-Protector، PELock، Enigma Protector، Armadillo، Obsidium، WinLicense | الكشف فقط |
| DotNetPatcher، NetCryptor | تفويض الطبقة المُدارة إلى مسار .NET |
| تسطيح OLLVM، تدفق التحكم الزائف، استبدال التعليمات؛ Tigress CFF | تحويلات إزالة التشويش الساكنة المدعومة والتقارير عبر واجهات Rust الأصلية؛ يظهر التحليل المنطبق في تقارير الاسترداد الأصلية |
| Alcatraz، Emotet CFF، Mirai، Dridex، Trickbot، obfus.h، Cryptify (rust-obfuscator)، guardian-rs، obfusheader.h، obfuscxx، Amice | بصمات تشويش أصلية مُسمّاة؛ لمساعدات النصوص/تدفق التحكم الفردية استرداد أضيق من العائلة المكتشفة الكاملة |
يسترد التحليل الأصلي أيضًا رموز Rust/C++، وRTTI وvtables في C++، ونماذج كائنات Delphi/C++Builder وموارد DFM، ومعلومات DWARF/PDB/STABS، والواردات، ومخططات الاستدعاء، وبصمات التشفير، ومطابقات FLIRT. يمتد تحليل التعليمات عبر x86 وARM وRISC-V وMIPS وPowerPC وSPARC وeBPF وAVR؛ وإخراج المصدر هو مجموعة المعماريات الأصغر المذكورة أعلاه. [التحليل الأصلي](https://github.com/1-3-7/disrobe/blob/main/docs/src/languages/native.md) · [أدلة فك الحزم واسترداد البايتات](https://github.com/1-3-7/disrobe/blob/main/docs/src/languages/native-unpack.md) · [إزالة التشويش](https://github.com/1-3-7/disrobe/blob/main/docs/src/anti-analysis.md).
</details>
<details>
<summary><strong>عائلات حزم JVM وAndroid و.NET والجوال</strong></summary>
| العائلة | الدعم والمتطلب المسبق |
|---|---|
| Zelix KlassMaster، Allatori، Stringer، DashO | استرداد النصوص للأنماط المدعومة، يتبعه فك ترجمة classfile |
| DexGuard | الكشف، والتقشير البنيوي، ومحاكاة فك تشفير النصوص داخل الصنف للثوابت المفتاحية المدعومة |
| BlackObfuscator | التعرف على موزِّع DEX ووسم ترتيب الكتل |
| ProGuard / R8 | إعادة تشغيل التعيين إلى ملف جانبي لاستعادة الأسماء؛ تتطلب الأسماء الأصلية `mapping.txt` |
| yGuard، SkidSuite2، JBCO | الكشف فقط |
| Promon SHIELD، Guardsquare DexGuard RASP، Guardsquare ThreatCast، Appdome، OneSpan، Arxan / Digital.ai، Zimperium zShield، Licel DexProtector | تحديد Android RASP وتقارير بنيوية |
| ConfuserEx2 | استرداد ثوابت العينات الحقيقية وتسطيح تدفق التحكم؛ قد تحتفظ الموارد المشفّرة بحدود مفتاح وقت التشغيل |
| Eazfuscator.NET | فك تشفير النصوص المُقيَّم بالنماذج ورفع VM؛ نموذج VM يأتي من مُخَصِّص افتراضي داخل المستودع، لا من المنتج المُوزَّع |
| KoiVM (ConfuserEx VM) | رفع الأجسام الافتراضية إلى CIL على مخرجات أداة حقيقية مُلتزَم بها |
| ConfuserEx، Dotfuscator، Dotfuscator CE، SmartAssembly، Babel، DeepSea، Spices.Net، Goliath، Skater، .NET Reactor، CryptoObfuscator، ArmDot، Agile.NET، Obfuscar، DotNetPatcher، NetCryptor، BitMono | الكشف واسترداد جزئي خاص بكل عائلة: أسماء أو نصوص أو موارد أو بنى دوال. BitMono موجود في كاشف الحماة خارج كتالوج سلسلة .NET ذي 22 مدخلًا |
| Themida (غلاف .NET)، ILProtector، MaxToCode | الكشف فقط للأجسام المفتاحية بمحمّل أصلي |
| React Native APK، React Native IPA؛ React Native Hermes bytecode | استخراج حمولات JS/Hermes وتوجيه بايت الكود المدعوم إلى رفع Hermes |
| Flutter Dart kernel؛ لقطة Flutter AOT (`libapp.so`) | استرداد جدول مصدر Kernel؛ تعريفات AOT والبيانات الوصفية وتفكيك ARM64. يقيّد إصدار اللقطة والأسماء المتاحة الاسترداد |
| Xamarin / .NET MAUI APK، Apache Cordova APK، Capacitor APK، NativeScript APK | تحديد وقت التشغيل واستخراج الحزم/الأعضاء المدعوم |
| Android APK (`classes.dex`)، حزمة تطبيق Android (AAB / APKM / XAPK)، IPA | فحص الحزمة واستخراج العناصر الفرعية؛ يعتمد الاسترداد اللاحق على وقت التشغيل المضمّن |
تُقيَّم مفككات نصوص .NET الخاصة بـ SmartAssembly وSpices.Net وSkater و.NET Reactor وEazfuscator.NET وCryptoObfuscator على خوارزميات مُنمذجة، لا على تجميعات أنتجها المورّد ومُلتزَم بها. ولدى ConfuserEx2 وObfuscar وBitMono أدلة على تجميعات محمية حقيقية. [JVM/Android](https://github.com/1-3-7/disrobe/blob/main/docs/src/languages/jvm-android.md) · [.NET](https://github.com/1-3-7/disrobe/blob/main/docs/src/languages/dotnet.md) · [Mobile](https://github.com/1-3-7/disrobe/blob/main/docs/src/languages/mobile.md).
</details>
<details>
<summary><strong>عائلات Lua وPHP وshell وRuby وBEAM وSwift وGo وActionScript</strong></summary>
| العائلة | الدعم والمتطلب المسبق |
|---|---|
| IronBrew2 | استرداد VM، مُتحقَّق منه تفاضليًا بالتنفيذ على مخرجات 2.7.0 standard وMAX الحقيقية |
| Prometheus | استرداد جزئي، بما في ذلك أشجار إرسال `Vmify` المكدّسة المدعومة |
| MoonSec V1، MoonSec V2، MoonSec V3، AztupBrew، DarkSec، Boronide، PSU، WeAreDevs LuaU، luaobfuscator.com، SLua (Unity Lua 5.3)، Hercules | استرداد Lua جزئي؛ يستخدم دليل VM على شكل MoonSec تمهيدًا اصطناعيًا |
| Luraph | الكشف فقط |
| Luau bytecode، Garry's Mod Lua (GLua) | التعرف على اللهجة؛ رفع Luau واسترداد GLua جزئي |
| ionCube، SourceGuardian، Zend Guard | كشف أغلفة PHP التجارية؛ تبقى المفاتيح المقيمة في المحمّل حدًا. يمكن لحالات المفاتيح الساكنة القديمة أن تُنتج بنية `op_array` جزئية |
| FOPO، Better PHP Obfuscator | تقشير سلسلة eval في PHP الساكنة، مع متطلبات المفاتيح الحرفية للطبقات المشفّرة |
| Invoke-Obfuscation (token)، Invoke-Obfuscation (AST)، Invoke-Obfuscation (string)، Invoke-Obfuscation (encoding)، Invoke-Obfuscation (compress)؛ Invoke-Stealth، PowerHell، Chameleon، psobf | استرداد PowerShell ساكن |
| Invoke-Obfuscation (launcher)، ISESteroids | استرداد PowerShell جزئي |
| Bashfuscator (token)، Bashfuscator (string)، Bashfuscator (obfuscate)، Bashfuscator (compress)؛ Bash indirection (IFS/eval)؛ node-bash-obfuscate (chunk-table eval) | استرداد Bash ساكن |
| تشويش Batch (`%random%`)، تشويش Batch (set indirection)؛ ماكرو VBA (فك ترجمة p-code + الطمس) | تقشير Batch واسترداد مصدر/p-code لـ VBA |
| YARV InstructionSequence (`.rb` المُصرَّف)، mruby RITE bytecode | استرداد مصدر Ruby |
| OCRA self-extracting executable، حزمة RubyScript2Exe | تصنيف/استرداد جزئي للمُجمِّد |
| JRuby compiled class، TruffleRuby native image | الكشف فقط عبر كتالوج Ruby |
| ملف BEAM (وحدة Erlang / Elixir المُصرَّفة)، أرشيف EZ (وحدات `.beam` المغلفة بـ ZIP) | استخراج الوحدات، واسترداد المصدر/كتلة التصحيح، أو الاحتياط إلى Core Erlang |
| garble | بيانات Go الوصفية والقيم الحرفية المدعومة؛ لا يمكن عكس تجزئة الأسماء الأصلية دون البذرة المفقودة |
| بيانات Mach-O الوصفية لـ Swift / Objective-C، ثنائي Mach-O fat (universal)، ذاكرة dyld المشتركة المؤقتة | بيانات وقت التشغيل الوصفية، واسترداد الشرائح والمكتبات الديناميكية |
| SwiftShield | محلل التعيين؛ يجب توفير التعيين لاسترداد الأسماء الأصلية |
| SWF (Flash، FWS/CWS/ZWS) DoABC، بايت كود ABC الخام | التفكيك وشبه كود جسم الدالة |
| secureSWF، DoSWF، Kindi، Irrfuscator، swfLock | الكشف فقط |
[كتالوج العائلات](https://github.com/1-3-7/disrobe/blob/main/docs/src/catalog.md) · [Lua](https://github.com/1-3-7/disrobe/blob/main/docs/src/languages/lua.md) · [PHP](https://github.com/1-3-7/disrobe/blob/main/docs/src/languages/php.md) · [Shell](https://github.com/1-3-7/disrobe/blob/main/docs/src/languages/shell.md) · [Ruby](https://github.com/1-3-7/disrobe/blob/main/docs/src/languages/ruby.md) · [BEAM](https://github.com/1-3-7/disrobe/blob/main/docs/src/languages/beam.md) · [Go](https://github.com/1-3-7/disrobe/blob/main/docs/src/languages/go.md) · [Swift](https://github.com/1-3-7/disrobe/blob/main/docs/src/languages/swift.md) · [AS3](https://github.com/1-3-7/disrobe/blob/main/docs/src/languages/as3.md).
</details>
<details>
<summary><strong>جميع صيغ الحاويات الـ103 المسجّلة</strong></summary>
| الفئة | الصيغ |
|---|---|
| الأرشيفات العامة | ZIP، TAR، tar.gz، tar.bz2، tar.xz، tar.zst، 7z، RAR، CAB، CPIO، ar، ARJ، ARC، LZH، LZO/lzop، uzip، Xamarin xalz، PAR2، StuffIt |
| أرشيفات التطبيقات واللغات | JAR، WAR، APK، XPI، WHL، EGG، CRX، NUPKG، VSIX، PYZ، Electron ASAR |
| المُثبِّتات وصور التطبيقات | PKG، DMG، DEB، RPM، AppImage، Snap، Flatpak، MSIX/APPX، MSI، NSIS، Squirrel، Inno Setup، InstallShield، Enigma Virtual Box |
| أنظمة الملفات وتدفقاتها | SquashFS، cramfs، ext4، romfs، MinixFS، Android sparse، btrfs-send، EROFS، JFFS2، NTFS، UBI/UBIFS، YAFFS2، QNX، partclone |
| صور الأقراص والنشر | ISO، OCI، Docker image، VHD، VHDX، WIM، GPT، MBR، FAT12/16/32 |
| تدفقات الضغط | XZ، gzip، bzip2، zstd، LZMA، lzip، LZ4، zlib، Unix compress (`.Z`) |
| بيانات التطبيقات المضمّنة | Bun standalone، UnityFS، حزمة .NET أحادية الملف |
| البرامج الثابتة | D-Link SHRS، ENCRPTED_IMG، alpha v1، alpha v2، DEAFBEAD، FPKG؛ EnGenius؛ Autel ECC؛ QNAP؛ Netgear CHK، TRX v1، TRX v2؛ Xiaomi HDR1، HDR2؛ Tesla SBFH؛ HP BDL، IPKG؛ Moxa FRM؛ INSTAR BNEG، HD؛ Airoha؛ وحدة برنامج ثابت UEFI |
| الذاكرة والأقراص المشفّرة | Windows minidump، LUKS1 |
تُعلن القائمة الكشف لكل مدخل. ومن بين تلك المسارات، تستخدم 102 المستخرج العام؛ ولدى <!-- roster-breadth:containers-exercised -->42<!-- /roster-breadth --> مدخلات مُلتزَم بها تصل إلى بايتات الأعضاء، ولدى DMG دليل مُلتزَم به للكشف فقط، و59 ليس لديها مدخل مُلتزَم به. يُقيَّم LUKS1 بشكل منفصل مقابل النص الصريح ويتطلب مفتاح وحدة خام `aes-cbc-plain` لفك التشفير؛ وبدونه يُبلِّغ عن حدود المفتاح. لطرق الضغط الفردية والأعضاء المشفّرة والأقراص المُقسَّمة وميزات أنظمة الملفات حدود أضيق. يُرجع StuffIt 5 حاليًا كتلة الأرشيف عبر الاستخراج رغم وجود مفككات فروعه. يُنحت محتوى Airoha OTP-AES حرفيًا.
تكشف قارئات Rust إضافية عن Deno eszip وApple APFS/HFS+ وطبقات ELF الملحقة وبنى Blazor WebCIL؛ وهي ليست مدخلات إضافية في عدد الصيغ الـ103. [مسارات الاستخراج وإصدارات الطرق والحدود](https://github.com/1-3-7/disrobe/blob/main/docs/src/languages/containers.md) · [سجل الحاويات](https://github.com/1-3-7/disrobe/blob/main/crates/disrobe-binfmt/src/container.rs).
</details>
## الاسترداد التلقائي`auto` يختار تمريرة من السجل المُجمَّع، ويشغّلها، ثم يعيد تعريف مخرجاتها والأبناء المستخرجين. يتوقف عند عتبة الثقة، أو تكرار تجزئة المحتوى، أو حد العمق (ثمانية افتراضيًا). تظل التقارير والملفات المصدرية الموسومة كنهائية مخرجات بدلًا من إعادة تغذيتها في الاكتشاف. يغطي الجدول التالي كل تمريرة مسجَّلة بواسطة بناء كامل؛ يمكن لبناء نحيف حذف الصفوف المقيَّدة بالميزات.
| طبقة الإدخال | معرّفات التمريرات المسجَّلة | المخرجات التلقائية | عناصر التحكم المخصصة أو المتطلبات المسبقة |
|---|---|---|---|
| الأرشيفات، المثبِّتات، البرامج الثابتة، الأقراص | `binfmt.container` | الأبناء المستخرجون، يُتابَعون تكراريًا إلى تمريرات اللغات/الأصلي | `extract` لتقارير الأعضاء وخيار مفتاح LUKS1 الخام الصريح |
| PyInstaller | `pyinstaller.extract` | الأعضاء المضمَّنة وأبناء `.pyc` | `pyinstaller extract` لخيارات خاصة بالأرشيف |
| مُجمِّدات Python | `pyfreeze.extract`, `nuitka.extract` | الحمولات المستخرجة أو بنية الحزمة المُصرَّفة المدعومة | `pyfreeze` تجريبي؛ نكهة Nuitka تحدد ما يبقى |
| Python المحمي | `pyarmor.unpack`, `sourcedefender.decrypt` | النص الصريح/البايت كود المتاح، أو البيانات الوصفية، أو تقارير حدود المفاتيح | مواد وقت التشغيل/المفتاح المطابقة؛ وضع PyArmor المخصص وخيارات الصرامة |
| مصدر Python والبايت كود | `py.deob`, `py.decompile`, `py.disasm` | المصدر المُقشَّر، أو المصدر المُفكَّك، أو تتبّع التعليمات | `py decompile --emit source,disasm,ast`؛ يلزم مفسِّر مطابق لفحوص إعادة التصريف |
| Pickle | `pickle.classify` | التحليل الرمزي والتصنيف | `pickle` لعمليات الفحص/إعادة البناء الفردية |
| JavaScript | `js.deob` | إزالة التشويش المدعومة، استرداد وحدات webpack/Vite، معالجة Node SEA/bytenode | `js unbundle` يكشف مجموعة المُجمِّعات الأوسع؛ خرائط المصدر وخيارات إعادة التسمية عناصر تحكم مباشرة |
| WebAssembly | `wasm.deob` | WAT المسترد أو المرفوع مع الاكتشاف والملخص وملفات الاسترداد الجانبية | `wasm decompile --target` يختار Rust أو TypeScript أو C أو WAT أو JSON |
| Electron / Tauri | `webview.carve` | أعضاء الواجهة الأمامية المضمَّنة | `webview` يدعم أيضًا Wails؛ استرداد Wails التلقائي يستخدم `go.classify` |
| PHP / Phar | `php.peel` | المصدر المُقشَّر، مخرجات `op_array`، أبناء الأرشيف، تقارير المفاتيح/المخلفات | يجب أن تكون المفاتيح وIVs متاحة ساكنًا للطبقات المشفَّرة |
| JVM / DEX | `jvm.classify` | مصدر Java، بيانات الحماة والاسترداد الوصفية، أبناء الفئات/الأرشيف | `jvm`/`apk` للتعيين والتوقيعات والخلفيات الخارجية الاختيارية |
| .NET | `dotnet.classify` | C# والتحليل، الثوابت/الموارد/CIL المستردة، أو بيانات Native AOT الوصفية | `dotnet` لصيغ المصدر الأخرى وخلفيات العرض المثبَّتة |
| حزم الجوال / البايت كود | `mobile.classify` | استخراج وقت التشغيل/الأعضاء، رفع Hermes، مصدر نواة Dart أو تقارير AOT | `hermes`, `flutter`, `mobile` لعناصر التحكم الخاصة بالصيغة |
| Lua | `lua.deob` | Lua المستردة وملفات اللهجة/الدقة الجانبية | `lua` لعناصر التحكم الصريحة في العائلة والمخرجات |
| Shell / Office / PDF | `shell.deob` | السكربتات المُقشَّرة، مصدر الماكرو/p-code، تقارير XLM والمستندات | `shell` للعمليات الخاصة بالمستندات |
| Ruby | `ruby.classify` | التحليل مع مصدر YARV/mruby المسترد حيثما توفر | `ruby` لتقارير النكهة المحددة؛ تصنيف JRuby/TruffleRuby ليس استردادًا لمصدر Ruby |
| BEAM / EZ | `beam.classify` | Erlang/Elixir/Core Erlang، التفكيك، أبناء الأرشيف | تحدد أجزاء التصحيح الباقية دقة المصدر |
| SWF / ABC | `as3.classify` | بنية ABC، قوائم التعليمات، شيفرة AS3 الزائفة | تبقى أدوات التشويش التجارية المسمّاة للكشف فقط |
| Go | `go.classify` | الرموز، الأنواع، تحليل garble، وأعضاء نظام الملفات المضمَّن | `go` لـ DWARF وBuildInfo وتقارير مخصصة أخرى |
| Swift / Objective-C | `swift-objc.classify` | البيانات الوصفية، الشرائح الشاملة، ومكتبات dylib للذاكرة المشتركة | قد تكون ملفات الذاكرة الفرعية/الرموز الشقيقة مطلوبة؛ عناصر تحكم `swift`/`macho` المباشرة |
| حزم أصلية | `native.packer-unpack` | الصورة المفكوكة المتاحة أو الوحدة المضمَّنة، الرموز، التوقيعات، تقارير الاسترداد | فقط توزيعات الحزم المنفَّذة تفك الحزم؛ يمكن لطبقات VM التجارية التوقف عند الكشف |
| صور أصلية | `native.image-classify` | الهوية، الرموز، التوقيعات، النتائج، وتقرير مصدر زائف محدود x86-64/AArch64 | `native decompile` يختار أمر إخراج مصدر كامل؛ مسارات مصدر ARM32/MIPS32 مباشرة |
| Windows / OS/2 NE | `native.ne-structure` | المقاطع، المدخلات، الاستيرادات، والموارد | استرداد بنيوي بدلًا من فك تصريف المصدر |
| Perl / R / Tcl / Haxe / WSH | `scriptlang.classify` | تقارير اللغة، البنى المستردة، والقطع الأثرية الفرعية المدعومة | واجهات مكتبة كل صيغة تكشف عمليات أدق |
| Nim / Zig / Crystal / D | `nativelang.classify` | بصمات اللغة، الرموز، والبنية الأصلية الجزئية | يتطلب التصنيف علامات لغوية باقية كافية |
على سبيل المثال، يمكن لتطبيق PyInstaller معروف أن يتقدم عبر `pyinstaller.extract` → `pyarmor.unpack` → `py.decompile`؛ وملف APK عبر استخراج الأعضاء → DEX → Java؛ وصورة أصلية محزومة عبر فك الحزم → تحليل اللغة أو الصورة. يعتمد كل سهم على ما تُنتجه تلك الطبقة المعينة فعليًا.```sh
disrobe passes
disrobe catalog python --json
disrobe auto input-directory/ --out recovered/ --batch-max-depth 6 --capture-stages
disrobe chain module.pyc --chain py.decompile --out python-source/
scan وfrisk وtaint وvulnmatch والاختيار الصريح للمصدر والهدف وإعادة تشغيل التعيينات والاستدعاء الاختياري للخلفيات الخارجية تبقى عمليات مخصصة. سجل التمريرات · اختيار السلسلة وتخطيط المخرجات.
تغطي خريطة القدرات مجموعات الأوامر والتكاملات. ويربط
جردها القابل للقراءة آليًا المصدر والاختبارات والتوثيق وحالة
الدعم والعروض التوضيحية. يغطي مرجع CLI الأوامر المتداخلة؛
وتغطي الأعلام العامة الخيارات المشتركة. استخدم disrobe <command> --help
لواجهة البناء المثبّت لديك.
أوامر المشروع والخدمة مفهرسة هناك أيضًا: serve، plugin، init، config، catalog، passes، doctor، install، install-deps، self-update، completions، man، explain، وbug-report. استخدم doctor لفحص 46 إلى 51 أداة خارجية حسب المنصة وتحديد الخلفيات الاختيارية المفقودة.
يربط الجدول كل مهمة استعادة بأوامر Disrobe والأدوات ذات الصلة. توفر المفككات المثبّتة والقطع الأثرية المصدّرة نقاط التكامل الموضحة أدناه.
يسمّي جرد المقارنة مقارنات المدخلات المشتركة المعلّقة. خيارات الخلفية موثّقة في التثبيت وأدلة اللغات المرتبطة أعلاه.
تستخدم القياسات المدخلات المثبّتة وإصدارات الأدوات وقواعد التقييم المرتبطة أدناه. تقيس أعداد DEX وJAR ترجمة المناطق المُصدَرة من كل أداة. تختلف هذه المجموعات، لذا لا ترتّب أعدادها جودة الاستعادة. يستخدم استدعاء أسرار APK نفس الحقيقة الأرضية المكوّنة من ثمانية رموز.
المدخلات، ونتائج الأدوات الخام، وأوامر إعادة الإنتاج.
يرى تحليل Ghidra 12.1.2 نفسه كودًا مختلفًا بعد أن يصدّر Disrobe ملفًا تنفيذيًا معبّأ كصورة PE معاد بناؤها. تستخدم هذه اللقطات المحلية عيّنات معبّأة حميدة حقيقية وتسجّل زيادات وانخفاضات معًا. تأتي أعمدة الدوال/التعليمات/السلاسل من لقطة تحليل بتسعة مدخلات؛ وتأتي تصييرات C المكتملة من لقطة مفكك منفصلة بستة مدخلات. التصيير المكتمل هو مخرج غير فارغ، وليس تقييمًا لصحة المصدر.
تنخفض أعداد kkrunchy. المزيد من الدوال المكتشفة ليست بالضرورة دوالًا أكثر صحة، وأعداد التحليل هذه لا تحل محل مقارنة البايتات. اقرأ لقطة التحليل، ولقطة المفكك، وقياسات استعادة البايتات الأصلية المنفصلة.
يربط فهرس الأدلة قياسات الاستعادة بعيّناتها وطرق المقارنة والأوامر والنتائج.
تميّز النتائج بين استعادة البايتات وقبول المترجم والفحوصات السلوكية. قبول المترجم وأعداد التغطية ليست درجات تكافؤ.
تقيس هذه الفحوصات Disrobe مقابل قطعة أثرية أصلية أو مترجم أو مفسّر أو مجموعة بيانات موسومة. وهي متميزة عن مقارنة مفككين اثنين. تسجّل كل نتيجة مرتبطة مجموعة المدخلات والمتطلبات المسبقة وأمر إعادة الإنتاج.
سجلات الأدلة الكاملة تصف كل مجموعة وقاعدة تقييم.
تستخدم تسميات المخطط strong لمرجع صحة مستقل، و recompile-only لقبول المُصرِّف، و coverage-self-reported لعدّادات التغطية الخاصة بـ Disrobe. تحدد طريقة المقارنة والمجموعة نطاق كل نتيجة.
تصفّح النتائج، ومقارنات الأدوات، ومتطلبات إعادة الإنتاج للقياسات الفردية.
--backend auto. راجع مساعدة الأمر ودليل التثبيت قبل اختيار واجهة خلفية.
يربط مُشغِّل السلسلة تمريرات أحادية الغرض عبر آثار مشتركة وتمثيلات وسيطة. تُسهم كل تمريرة بالمخرجات التي يمكنها تبريرها؛ يحتفظ المستهلكون اللاحقون بالأصل ويُبلِّغون عن الحدود غير المدعومة. استكشف المعمارية، ونموذج التمريرات، وسلّم التمثيلات الوسيطة، ومُشغِّل السلسلة.
ابدأ بـالتوثيق، والبدء السريع، ودليل النتائج. استخدم disrobe explain <code> للبحث عن تشخيص. للتغييرات في المشروع، اقرأ دليل المساهمة واختبارات الميزة المعنية وأدلتها.
يصف نموذج التهديد حدود الثقة ومعالجة المدخلات. أبلغ عن المخاوف الأمنية عبر SECURITY.md. يصف LEGAL.md الاعتبارات القانونية للمشروع؛ إذ يعتمد إذن تحليل أثر على ظروفك.
كل إصدار من Disrobe مملوك ومتاح المصدر بموجب ترخيص Disrobe Source-Available، الإصدار 1.1، الذي يحل محل Elastic License 2.0 والإصدار 1.0 لجميع الإصدارات ويلغي جميع المنح السابقة كما هو مذكور في إشعار إعادة الترخيص.
مشاريع الهوايات الشخصية، والتعلّم الشخصي، والبحوث الأمنية المستقلة غير المدفوعة من الأفراد، والتعليم والبحوث غير الربحية، والصحافة النزيهة مجانية، كما هو محدد في الترخيص.
أي استخدام من قِبَل شركة أو لصالحها يتطلب ترخيصًا مدفوعًا. راجع الترخيص التجاري.
الإسناد المطلوب: استخدم هذا العمل Disrobe، من إنشاء 1-3-7: https://github.com/1-3-7/disrobe
يُحظر إنشاء تفرعات غير تفرعات المساهمة، وإعادة النشر، وإعادة العلامة التجارية، وإعادة البيع، والاستضافة، والتطوير المنافس. يُقدَّم البرنامج كما هو، على مسؤولية المستخدم.
راجع الإسناد، وشروط المساهمين، والملخص، وإشعارات الأطراف الثالثة.
حقوق النشر (c) 2025-2026 1-3-7. جميع الحقوق محفوظة.
تم دمج التزامات التطوير السابقة في خط أساس واحد كجزء من تحديث التوثيق والعرض المرئي.
| المهمة | الأوامر | المخرجات أو الخطوة التالية |
|---|
| العثور على المؤشرات والأسرار والنتائج الساكنة | scan، frisk، strings، ioc، indicators، behavior | النتائج والإزاحات |
| فحص الدوال والتدفقات والسلوك | query، capabilities، taint، vulnmatch | الـ IR القابل للاستعلام، تعيينات ATT&CK/MBC وتقارير المصدر إلى الحوض |
| الاحتفاظ بالتعليقات التوضيحية والقطع الأثرية المنظمة | annot، rename، envelope، verify، yara | مغلّفات القطع الأثرية وحالة المحلل |
| تتبع المصدر ومقارنة التشغيلات | chain، context، status، report، diff، guard، semdiff | التقارير، والتجزئات، وفروقات الاستعادة |
| جمع بيانات الشبكة العامة | prowl | جمع الشبكة الصريح، منفصل عن الاستعادة دون اتصال |
| السطح | نقطة الدخول | الدليل |
|---|
| Rust | أنواع النواة المشتركة وحزم التمريرات الفردية | واجهات المكتبة |
| Python | ارتباطات مُنمّطة عبر import disrobe | ارتباطات Python |
| HTTP وgRPC وLSP | disrobe serve | الخدمة |
| بروتوكول سياق النموذج | disrobe-mcp أو disrobe serve --mcp | تكامل MCP |
| المحررات وأدوات التحليل | VS Code، IDA Pro، Ghidra، Binary Ninja | تكاملات المحررات |
| GitHub Actions | إجراء المستودع ومخرجات SARIF | إجراء GitHub |
| فحوصات الالتزام المحلية | معرّف الخطاف disrobe | pre-commit |
| المتصفح | عامل Wasm من جانب العميل | ساحة التجربة |
| سياق المشروع لأدوات البرمجة | disrobe init --ide | الملف الجانبي للبيانات الوصفية |
| مهمة الاستعادة | الأدوات المسمّاة | مسار Disrobe | كيفية الاختيار أو الدمج |
|---|
| بايت كود Python إلى مصدر | pycdc، PyLingual، uncompyle6، decompyle3 | مفكك CPython 1.0 إلى 3.15 داخل العملية، واستعادة كائنات الكود المتداخلة، ومخرجات المصدر/التفكيك/شجرة التركيب المجردة | افحص المصدر المستعاد والتفكيك وشجرة التركيب المجردة من مفكك Python المدمج |
| استخراج Python المجمّد | pyinstxtractor-ng، pydecipher | استخراج PyInstaller وNuitka والمجمّدات متبوعًا باستعادة بايت الكود | يمكن لـ auto المتابعة من العضو المستخرج عبر حامٍ إلى مفكك Python |
| PyArmor | Pyarmor-Static-Unpack-1shot | استعادة الغلاف/وقت التشغيل الساكنة، وتقارير الأوضاع، ورفع BCC الساكن الاختياري | وفّر وقت التشغيل المطابق لاستعادة بيانات الغلاف وفحص النتائج الخاصة بكل وضع |
| فحص Pickle | fickling، pickletools في Python | تتبع التعليمات، والمختزلات الرمزية، والتصنيف، وإعادة بناء القيم | افحص دون تنفيذ المختزلات؛ يقيّم pickletools الفحص، ويتحقق CPython من إعادة البناء على 470 عيّنة مولّدة |
| إزالة تشويش JavaScript | webcrack، synchrony، REstringer | obfuscator.io، JS-Confuser، أنماط Jscrambler المدعومة، مفككات غريبة، استعادة الثوابت/تدفق التحكم | استخدم js deob للخيارات الصريحة أو auto عندما تكون JS داخل حزمة |
| فك تجميع JS وخرائط المصدر | wakaru، webcrack، sourcemapper | استخراج الوحدات، ومعالجة خرائط المصدر، وإعادة التسمية الواعية بالنطاق، وفحص V8 المعبّأ | يكشف js unbundle عن مسارات تجميع أكثر من الإرسال التلقائي للسلسلة |
| WebAssembly | WABT wasm-decompile، Binaryen | WAT ومصدر شبه-كودي بـ C/Rust/TypeScript، وملخصات JSON، وعكس التشويش المدعوم | افحص هدف مصدر محدد؛ تتحقق تنفيذات wasmtime أدناه من السلوك المستعاد بشكل مستقل |
| مصدر JVM | CFR، Vineflower، Procyon، Fernflower | استعادة ملفات الفئات الأصلية مع معالجة الحماة/السلاسل | يكتب jvm decompile قطع Disrobe الأثرية إلى جانب مخرجات خلفية مثبّتة؛ ولـ CFR نتيجة إنتاجية ترجمة مقاسة أدناه |
| حزم Android وDEX | JADX، apktool، androguard، dex2jar | استعادة Dalvik داخل العملية، وبيانات/توقيعات APK الوصفية، والاستخراج من وقت التشغيل، ومخرجات Java | يعود تفكيك DEX/APK افتراضيًا إلى المسار الأصلي؛ وتُختار خلفية Android صراحةً. ولـ JADX مرحلة مقاسة أدناه |
| تجميعات .NET | ILSpy، dnSpy، dnSpyEx، de4dot | استعادة CIL مع ثوابت خاصة بالحماة، والموارد، وأجسام VM، وبيانات Native AOT الوصفية | يكتب dotnet decompile مخرجات CIL من Disrobe إلى جانب مُصيّر مثبّت؛ ويختار --backend auto بين ILSpy أو dnSpyEx أو dnSpy أو de4dot |
| التفكيك الأصلي | Ghidra، IDA، Binary Ninja | شبه-كود C/Rust لـ x86-64 وAArch64/ARM32/MIPS32 داخل العملية؛ تقارير الرموز/الأنواع المستعادة | اختر Ghidra بلا واجهة عبر --backend ghidra، أو استخدم تكاملات المحررات والرموز المصدّرة في جلسة تحليل تفاعلية |
| الملفات التنفيذية الأصلية المعبّأة | upx -d، unipacker، Detect It Easy | فاكّات مضغّطة منفّذة ومحاكاة محدودة للـ stub، وصور PE معاد بناؤها، ووحدات محمّل مضمّنة | صدّر صور PE المستعادة إلى Ghidra/IDA. تقارن قياسات Ghidra أدناه بين المدخلات المعبّأة والمعاد بناؤها |
| التشويش الأصلي | Ghidra، IDA، Binary Ninja وسكربتات إزالة التشويش | تحويلات OLLVM/Tigress، وتبسيط MBA، وسلاسل المكدس، والبيانات الوصفية الأصلية وتقارير الاستعادة | اختر عملية/واجهة API الأصلية ذات الصلة؛ بصمة حامي VM وحدها لا تعني استعادة الجسم |
| بيانات Go الوصفية وgarble | GoReSym، redress، gore | pclntab، وبيانات الوحدة/النوع الوصفية، والملفات المضمّنة، وحرفيات garble القابلة للاستعادة | يبلّغ go عن الأسماء/الأنواع؛ ويتعامل native decompile مع مسار مصدر كود الآلة بشكل منفصل |
| Swift / Objective-C | swift-demangle، class-dump، jtool2 | بيانات الفئات/البروتوكولات/المحددات في وقت التشغيل، وعرض الرموز، والشرائح الدهنية، ومكتبات dylib في الذاكرة المشتركة | وفّر التعيينات الباقية وملفات الذاكرة الفرعية؛ الأسماء الأصلية الممحاة بإعادة التسمية تحتاج خريطة خارجية |
| بايت كود Lua وأجهزة VM | unluac، luadec، LuaDec51 | مصدر Lua/LuaJIT/Luau مع استعادة المشوّش المدعوم وVM المخصص | لدى IronBrew2 دليل تفاضلي لتنفيذ الأداة الحقيقية؛ استعادة .luac العادية واستعادة VM عمليتان مختلفتان |
| بايت كود Ruby | تفكيك MRI | مصدر YARV وmruby، وقوائم الأكواد التشغيلية، وتصنيف المجمّد/AOT | تعيد إعادة ترجمة MRI تقييم استدعاء أسماء الأكواد التشغيلية؛ وهذا القياس لا يثبت تكافؤ التنفيذ |
| طبقات PHP | php-malware-finder | تقشير سلاسل eval وحلقات/شفريات المفاتيح الحرفية، واستخراج Phar، وتقارير مغلّفات المُرمِّز | استخدم الطبقات الساكنة ومواد المفاتيح المتاحة؛ تبقى الحمولات التجارية المرتبطة بمحمّل أصلي مغلقة |
| PowerShell، Bash، VBA | PowerDecode، أدوات FLARE، olevba | إزالة تشويش الصدفة، ومصدر VBA/كود p-code والطمس، وصيغ XLM، وإجراءات PDF | يضع shell استعادة السكربت ونتائج المستندات إلى جانب بقية تحليل القطع الأثرية |
| BEAM / ActionScript | beam_disasm في Erlang، RABCDAsm | استعادة مصدر تصحيح BEAM/Core Erlang وشبه-كود جسم دالة ABC | حافظ على أجزاء التصحيح عند توفرها؛ ولدى BEAM المجرّد فحص تنفيذ Erlang حقيقي منفصل |
| Hermes / React Native | hermes-dec، hbctool، DroidSaw | الاستخراج من وقت التشغيل، وبنية HBC، ورفع شبه-JavaScript المدعوم | يغطي تحليل HBC الإصدارات v60 إلى v96؛ ورفع المصدر له حد مقاس أضيق. جسر تلويث Hermes-to-DEX غير منفّذ |
| Flutter / Dart AOT | reFlutter، Darter، blutter | جداول مصدر Kernel، ومخطط إعلانات AOT، وأجسام ARM64، والسلاسل، وتحليل خريطة إعادة التسمية | مصدر Kernel وبيانات AOT الوصفية مستويان مختلفان من الاستعادة؛ وإصدارات اللقطة تقيّد تحليل AOT |
| الحاويات والبرامج الثابتة | binwalk، unblob، 7-Zip | استخراج الصيغ المسجّلة، والتوجيه التكراري للأبناء، وفك/نحت البرامج الثابتة، وتقارير الرفض لكل عضو | مرّر الأعضاء المستخرجة مباشرة إلى تمريرات اللغات؛ قارن بايتات الأعضاء بدلًا من اعتبار السحر المتعرَّف عليه استخراجًا ناجحًا |
| الأسرار والمؤشرات | APKLeaks، TruffleHog، Gitleaks، LinkFinder | نتائج الشجرة/APK المستعادة، وإزاحات الرموز، والسلاسل الساكنة، وتقارير الأسرار والمؤشرات | افحص APK أو الشجرة المستعادة؛ قارن APKLeaks مقابل نفس الأسرار المزروعة أدناه |
| تحديد الصيغة والحزمة والمترجم | Detect It Easy، TrID، PEiD، binwalk | تحديد متعدد الإشارات، والرموز، والتوقيعات، وتلميحات التوجيه | استخدم identify/detect لاختيار مسار استعادة، ثم افحص مخرجاته الفعلية |
| القدرات والتلويث | capa، سكربتات Ghidra، Joern | نتائج ATT&CK/MBC مع الإزاحات، واستعلامات IR المُوحّد، وتقارير تدفق المصدر إلى الحوض | شغّل مطابقة القدرات وتحليل المصدر إلى الحوض على القطع الأثرية المستعادة؛ ويتضمن تقرير التلويث مجموعة اختبار Juliet الخاصة به |
| الأداة والمدخل | نتيجة Disrobe | نتيجة الأداة المسمّاة | ما يتحقق منه القياس |
|---|
| JADX 1.5.5 · Android DEX | 157 / 228 منطقة مُصدَرة تُترجم بنجاح | 281 / 303 منطقة مُصدَرة تُترجم بنجاح | DEX من EdgeCases الملتزم؛ javac حقيقي، ترجمة المصدر الكامل ثم عزل محدود للمناطق التي تعيق الإسناد؛ مجموعات مُصدَرة مختلفة |
| CFR 0.152 · JVM classfile | 181 / 181 منطقة مُصدَرة تُترجم بنجاح | 152 / 166 منطقة مُصدَرة تُترجم بنجاح | JAR من EdgeCases الملتزم؛ نفس إجراء المترجم/المقيّم؛ مجموعات مُصدَرة مختلفة |
| APKLeaks 2.6.3 · APK بأسرار مزروعة | 8 / 8 أسرار مزروعة | 5 / 8 أسرار مزروعة | استدعاء الرموز الدقيق على نفس APK؛ يجد Disrobe أيضًا مفتاح الوصول السري لـ AWS المزروع، وبيانات الاعتماد الأساسية، وJWT |
| المدخل المعبّأ | دوال Ghidra، معبّأ → معاد بناؤه | التعليمات، معبّأ → معاد بناؤه | السلاسل، معبّأ → معاد بناؤه | تصييرات C المكتملة، معبّأ → معاد بناؤه |
|---|
| UPX · Rust hello | 4 → 287 | 225 → 19,060 | 23 → 179 | 4 → 287 |
| ASPack · Clockres | 5 → 243 | 58 → 10,544 | 48 → 116 | 5 → 210 |
| ASPack · AccessEnum | 5 → 101 | 73 → 5,781 | 62 → 195 | 5 → 101 |
| PECompact · Clockres | 2 → 306 | 148 → 14,603 | 27 → 27 | 1 → 267 |
| PECompact · AccessEnum | 2 → 186 | 155 → 9,278 | 52 → 53 | 2 → 186 |
| MEW · Clockres | 4 → 333 | 125 → 20,990 | 3 → 358 | غير مقاس |
| MEW · AccessEnum | 4 → 152 | 125 → 9,592 | 3 → 802 | غير مقاس |
| MEW · Autologon | 4 → 295 | 125 → 19,595 | 3 → 406 | غير مقاس |
| kkrunchy classic · NASM hello | 4 → 1 | 149 → 10 | 3 → 4 | 4 → 1 |
| المدخل | مناطق Disrobe المُصدَرة | مناطق الأداة المسمّاة المُصدَرة | حدود المجموعة | إعادة الإنتاج |
|---|
| Android DEX | 157 / 228 منطقة مُصدَرة تُترجم بنجاح | JADX 1.5.5: 281 / 303 منطقة مُصدَرة تُترجم بنجاح | لا ترتيب بين الأدوات: لكل أداة مجموعة مناطق مُصدَرة خاصة بها | cargo run --locked -p disrobe-bench-head-to-head -- --check --only apk-jadx-cfr |
| JVM classfile | 181 / 181 منطقة مُصدَرة تُترجم بنجاح | CFR 0.152: 152 / 166 منطقة مُصدَرة تُترجم بنجاح | لا ترتيب بين الأدوات: لكل أداة مجموعة مناطق مُصدَرة خاصة بها | cargo run --locked -p disrobe-bench-head-to-head -- --check --only apk-jadx-cfr |
| الاستعادة | النتيجة المسجّلة | المرجع والحد |
|---|
| Python 3.14.5، وحدات مثبّتة | 6077 من 6286 كائن كود | إعادة ترجمة CPython مع مقارنة بنية الأكواد التشغيلية المُوحّدة؛ لا تُقيَّم أهداف القفز ومعظم المعاملات والكائنات المستعادة الإضافية. النتيجة |
| Python 3.14.5، مجموعة نواة ثابتة | 17396 من 18276 كائن كود، قياس محلي | نفس المقارنة المُوحّدة عبر 574 وحدة؛ هذه ليست نتيجة تكافؤ دلالي. النتيجة |
| Python القديم 1.0 إلى 3.7 | على الأقل 150 من 191 عيّنة (حد الانحدار) | إعادة ترجمة بمفسّر الفترة أو رموز بنيوية مقابل المصدر الأصلي. النتيجة |
| تصنيف Pickle | 102 / 102 عيّنة تصنيف | دلالات pickletools. النتيجة |
| إعادة بناء Pickle | 470 / 470 عيّنة معاد بناؤها تجتاز فحوصات تساوي إعادة التنفيذ | إعادة تنفيذ CPython. النتيجة |
| ترجمة مصدر JVM | 131 من 131 دالة تُترجم | javac حقيقي. النتيجة |
| سلوك JVM | 117 / 131 دالة تطابق التنفيذ الملاحَظ | JVM حقيقي؛ ثماني دوال تتباين وست لا تُشغَّل بمعزل. النتيجة |
| Android DEX | 118 / 118 فئة معروضة على المدقق | -Xverify:all في JVM؛ 37 من 155 فئة متخطاة في الربط وغير مقيّمة. النتيجة |
| .NET C# | 18 / 35 نوع EdgeCases كامل يُعاد ترجمته مستقلًا | Roslyn csc حقيقي؛ المصدر القانوني لا يثبت سلوكًا مكافئًا. النتيجة |
| أجسام .NET VM | نموذج Eazfuscator: 67 / 67 تعليمة؛ KoiVM حقيقي: 6 / 6 أجسام مرفوعة | مراجع أصلية/بناء نظيف منفصلة؛ يستخدم EazVM مُخيِّلًا داخل المستودع، ويستخدم KoiVM مخرجات أداة حقيقية. الأدلة |
| WebAssembly | 57 / 57 دالة مؤهلة | يقارن wasmtime القيم المُعادة والفخاخ وأول 4,096 بايت من الذاكرة الخطية على مدخلات الاختبار. النتيجة |
| BEAM بدون أجزاء تصحيح | 19 / 19 وحدة | إعادة ترجمة Erlang/OTP 27.3.4، ومقارنة التصدير، ومخرجات/حالة خروج test/0. النتيجة |
| Lua IronBrew2 | مخرجات 2.7.0 القياسية وMAX الحقيقية تُستعاد إلى تنفيذ مطابق | مفسّر Lua حقيقي مقابل البرامج الأصلية؛ عائلة VM واحدة. النتيجة |
| Ruby YARV | Greeter 100%؛ megafile 98.67% استدعاء أسماء الأكواد التشغيلية | إعادة ترجمة MRI؛ يتجاهل استدعاء المجموعة المتعددة الترتيب والمعاملات وأهداف التفرع والتعليمات الإضافية. النتيجة |
| أسماء أنواع Go المجرّدة | 838 من 838 اسمًا | بيانات go1.26.3 الوصفية الحقيقية من بناء المقارنة. النتيجة |
| Hermes HBC v96 | 8 من 8 دوال، صفر عمليات احتياطية | عيّنة hermesc حقيقية مع المصدر الأصلي وأسماء الدوال. النتيجة |
| بايتات أصلية معبّأة | UPX، FSG، NSPack، Petite، MPRESS .text متطابقة بايتيًا على أزواج ملتزمة مسمّاة؛ موارد Yoda's Crypter متطابقة بايتيًا | بايتات أصلية محاذاة بـ RVA؛ تبقى البواقي على مستوى الصورة الكاملة والموارد مُبلَّغًا عنها بشكل منفصل. جدول لكل مدخل |
| مؤشرات مزروعة | 6 / 6 فئات IOC ممثّلة | نقاط نهاية ملتزمة، ونتائج بيان، وعناوين URL، وIPv4، وبريد إلكتروني، وحقيقة .onion الأرضية. النتيجة |
| مخطط استدعاء MCP | 5 / 5 حواف مباشرة، جميعها محدّدة بشكل صحيح | ELF مجرّد مقارن بتوأمه المميز غير المجرّد من نفس سلسلة الأدوات. الدقة، الاستدعاء |
| التلويث الأصلي | 93 / 190 تدفقًا موسومًا مستدعى؛ صفر إيجابيات كاذبة، قياس محلي | شريحة NIST Juliet CWE-78 char/system، gcc 16.2.0 -O2؛ سبع فئات تدفق معلنة ليس لها حالات في هذه الشريحة. النتيجة |