أداة إزالة التشفير في لغة جافا سكريبت (JavaScript Deobfuscator)
قم بلصق كتلة من جافا سكريبت مُخفية، تتكون من سلاسل مشفرة بصيغة السداسية، وأسماء متغيرات مكوّنة من حرف واحد فقط، وحلقة لفك التشفير في الجزء العلوي، وستقوم الأداة بتقشير هذه الطبقات واحدة تلو الأخرى: فك ترميز السلاسل، وإدراج مصفوفة البحث مباشرةً داخل الكود، وإعادة تسمية المتغيرات إلى عناصر نائبة قابلة للقراءة، وتبسيط الأغلفة التافهة، وتحسين مظهر النتيجة النهائية. وتُعد هذه الأداة مفيدة جدًا لتحليل المقاطع المشبوهة التي استخرجتها من صفحة أو من رابط Pastebin ملصق.
كيفية إزالة التشفير من كود جافا سكريبت
-
1
لصق المصدر المشفر
تم تقليل حجمه أو تعبئته، أو تم إخراجه من أدوات على نمط `javascript-obfuscator.io`.
-
2
دع المحلل يعالج النص تدريجياً.
تُفك ترميز مصفوفات السلاسل، وتُقيَّم التسلسلات العددية، ويتم حذف فروع الشفرة الميتة.
-
3
استخدم إعادة التسمية
تُعاد تسمية المتغيرات ذات الحرف الواحد `a`/`b`/`c` إلى `var1`، `var2`، وهكذا؛ وهي أسماء مؤقتة قابلة للقراءة، وليس بالضرورة أسماء ذات معنى حقيقي.
-
4
تحسين المظهر؛ جعله أكثر جمالاً.
قم بتحديد المواقع، وإضافة سطور جديدة، ثم أخرج كودًا يمكنك قراءته فعليًا وتحليله بشكل دقيق.
التقنيات التي تعكسها أداة إزالة التشفير
| التعمية | العكس |
|---|---|
| النصوص القيمية المُفرغة باستخدام نظام الهكساد | فك ترميز \x48\x69 إلى "Hi" |
| المعرّفات المُرمَّزة وفقًا لمعيار يونيكود | \u006E\u0061\u006D\u0065 -> name |
| مصفوفة سلاسل + دالة فك الترميز | إدراج المصفوفة بشكل مباشر، واستدعاء دالة فك الترميز عند تحليل النص |
| طي الثوابت العددية | 0x1F3 + 5 -> 504 |
غلافات eval(...) |
رفع الكود الداخلي إلى المستوى الأعلى |
| تسوية تدفق التحكم (آلة الحالة) | اكتشاف نقطة التبديل وإعادة بناء مسار التنفيذ |
| الكود الميت / التوابع الثلاثية غير المفيدة | إزالة الفروع التي لا تُنفَّذ أبدًا |
أسماء أنماط _0x1a2b3c() |
استبدلها بأسماء تتزايد تدريجيًا مثل var1 وvar2 |
الحدود: ما لا يقوم به الأداة
- استعادة أسماء المتغيرات الأصلية: بمجرد تغيير اسم
userEmailإلىa، لن تتمكن أي أداة من تخمينه من جديد؛ فما تحصل عليه هو هيكل قابل للقراءة، لا الدلالة الأصلية للمتغيرات. - فك تغليف أدوات المحاكاة الافتراضية المخصصة: تعتمد أدوات التعمية التجارية الثقيلة (مثل JScrambler أو الإصدارات المؤسسية من Obfuscator.io) على أجهزة افتراضية مخصصة تفسّر شِفرة البايت (bytecode)؛ وللتصدي لها، يلزم إجراء هندسة عكسية يدوية.
- تشغيل كود عشوائي: تُقيّم أداة إزالة التشفير التعبيرات البرمجية النقيّة تقييمًا ساكنًا؛ فهي لا تقوم باسترجاع موارد بعيدة، ولا بإنشاء عناصر من نوع DOM، ولا بالتواصل مع الشبكة.
حالات الاستخدام النموذجية
- أبحاث الأمن: تحليل سكريبت مشبوه وصل عبر بريد إلكتروني أو تم توزيعه عبر شبكة توزيع المحتوى (CDN) مُختَلَة.
- أرخولوجيا الكود: استعادة الكود القديم حيث يكون القطعة الأثرية الوحيدة المتبقية عبارة عن حزمة مصغرة.
- التعلم: فهم ما الذي تقوم به عملية التشفير على مستوى الدليل التعليمي فعليًا من الناحية التقنية الداخلية.
السلامة والأخلاقيات
لا تُشغِّل أبدًا كود جافا سكريبت غير موثوق به داخل علامة تبويب متصفح متصلة بأي نظام مهم؛ إذ يمكن لهذا الكود قراءة ملفات تعريف الارتباط (الكوكيز)، واستدعاء واجهات برمجة التطبيقات الداخلية، واستخراج بيانات الحالة. وتعمل أداة إزالة التشفير مباشرةً على النص المصدري بوصفه نصًا فحسب، دون تنفيذ الكود الذي تلصقه.
يجب أن تقوم فقط بفك تشفير الكود الذي يُسمح لك بتحليله. قد يكون استخدام أدوات الهندسة العكسية للبرمجيات المرخصة مقيدًا في ولايتك القضائية.
الأسئلة الشائعة
لا. بمجرد أن تغيّر أداة التعمية اسم userEmail إلى _0x1a2b3c، يختفي الاسم الأصلي. وتُقدِّم أداة إزالة التشفير عناصر نائبة قابلة للقراءة (مثل var1 وvar2) مع بنية صحيحة، لكنها لا تستعيد الأسماء الدلالية الأصلية.
لا. تحلّل الكود على شكل شجرة تركيب مجردة (AST) وتطبّق تحويلات ساكنة؛ حيث تُطوى التعبيرات النقية (مثل 0x1F3 + 5)، دون أن تتأثر الشبكة أو ملفات تعريف الارتباط أو نموذج كائن المستند (DOM) بأي شكل.
نعم، لكن ناتج عملية التجميع يتم تبسيطه بدلاً من إخفائه عمداً، وبالتالي يكون النتيجة كوداً مُحسّناً جمالياً مع استعادة أغلفة الوحدات. وإذا كانت خرائط المصدر متاحة بشكل منفصل، فإنها توفر أسماء أفضل بكثير.
تتضمن الأدوات التجارية المتطورة (مثل Enterprise JScrambler والماكينات الافتراضية المخصصة) مفسرًا للبازكود لا يمكن تحليله بشكل دقيق باستخدام التحليل الثابت؛ إذ تحصل هذه الأداة على الطبقة السطحية فقط، بينما يظل المنطق الأساسي غامضًا دون إجراء هندسة عكسية يدوية.
أدوات ذات صلة
مرجع جدول ASCII
جدول ASCII كامل من 0 إلى 127 مع التمثيل العشري والست عشري والثماني والثنائي والمرجع الرقمي في HTML لكل محرف، بما في ذلك أكواد التحكم مثل NUL وLF وDEL.
مرجع أحرف HTML
قائمة قابلة للبحث بكيانات HTML، مع رموزها المسمّاة والرقمية، بالإضافة إلى خيار النسخ بنقرة واحدة للأحرف والرموز الخاصة.
مرجع اختصارات لوحة المفاتيح
ابحث في الاختصارات الافتراضية الموثقة لـ VS Code وChrome وBash مع GNU Readline على macOS وWindows وLinux.
مدقق البريد الإلكتروني
تحقق من عنوان بريد إلكتروني: فحص صياغة RFC 5322، واستعلام حي عن سجل MX، بالإضافة إلى تفاصيل الجزء المحلي والنطاق والطول. لا يتم إرسال أي بريد.
مولد EditorConfig
أنشئ ملف .editorconfig بقواعد نمط المسافة البادئة وحجمها ونهاية السطر ومجموعة الأحرف والمسافات البيضاء، لتنسيق موحّد عبر بيئات التطوير المتكاملة (IDEs) والمحررات.
منسق HTML
نسّق HTML محلياً في المتصفح بمسافة بادئة من مسافتين أو أربع مسافات. لا يُرفع HTML ولا يُتحقق منه.
الأداة متاحة بلغات أخرى
- Deobfuscator JavaScript [ID]
- Trình giải mã mã JavaScript (JavaScript Deobfuscator) [VI]
- Desofuscador de JavaScript [ES]
- Déobfuscateur JavaScript [FR]
- 자바스크립트 디오프스버커 [KO]
- JavaScript-deobfuscator [NL]
- JavaScript-deobfuscator [SV]
- JavaScriptデオブファスカータ [JA]
- เครื่องถอดรหัส JavaScript [TH]
- JavaScript-Deobfuscator [DE]
- Deobfuskator JavaScriptu [PL]
- Desofuscador de JavaScript [PT]
- Deobfuscator JavaScript [IT]
- JavaScript-деобфускатор [RU]
- JavaScript Deobfuscator [TR]
- JavaScript反混淆工具 [ZH]
- JavaScript Deobfuscator [EN]