أداة إزالة التشفير في لغة جافا سكريبت (JavaScript Deobfuscator)

قم بلصق كتلة من جافا سكريبت مُخفية، تتكون من سلاسل مشفرة بصيغة السداسية، وأسماء متغيرات مكوّنة من حرف واحد فقط، وحلقة لفك التشفير في الجزء العلوي، وستقوم الأداة بتقشير هذه الطبقات واحدة تلو الأخرى: فك ترميز السلاسل، وإدراج مصفوفة البحث مباشرةً داخل الكود، وإعادة تسمية المتغيرات إلى عناصر نائبة قابلة للقراءة، وتبسيط الأغلفة التافهة، وتحسين مظهر النتيجة النهائية. وتُعد هذه الأداة مفيدة جدًا لتحليل المقاطع المشبوهة التي استخرجتها من صفحة أو من رابط Pastebin ملصق.

كيفية إزالة التشفير من كود جافا سكريبت

  1. 1

    لصق المصدر المشفر

    تم تقليل حجمه أو تعبئته، أو تم إخراجه من أدوات على نمط `javascript-obfuscator.io`.

  2. 2

    دع المحلل يعالج النص تدريجياً.

    تُفك ترميز مصفوفات السلاسل، وتُقيَّم التسلسلات العددية، ويتم حذف فروع الشفرة الميتة.

  3. 3

    استخدم إعادة التسمية

    تُعاد تسمية المتغيرات ذات الحرف الواحد `a`/`b`/`c` إلى `var1`، `var2`، وهكذا؛ وهي أسماء مؤقتة قابلة للقراءة، وليس بالضرورة أسماء ذات معنى حقيقي.

  4. 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 والماكينات الافتراضية المخصصة) مفسرًا للبازكود لا يمكن تحليله بشكل دقيق باستخدام التحليل الثابت؛ إذ تحصل هذه الأداة على الطبقة السطحية فقط، بينما يظل المنطق الأساسي غامضًا دون إجراء هندسة عكسية يدوية.

أدوات ذات صلة

الأداة متاحة بلغات أخرى