التوثيق
/

البدء

البدء

يحوّل Obfuscator.io كودك المصدري المقروء إلى نسخة محمية يصعب فهمها وإجراء هندسة عكسية عليها. وهو مثالي لحماية الخوارزميات المملوكة ومنطق التراخيص والكود الحرج لعملك.

مرحبًا بك في Obfuscator.io

يرشدك هذا الدليل خطوة بخطوة إلى تشويش أول ملف لديك، واختيار إعداد مسبق، وفهم لوحة الخيارات. وللتعمّق أكثر، انظر أقسام تشويش VM والتشويش الأساسي وأفضل الممارسات.

بداية سريعة

  • 1. الصق كودك

    أدخل كود JavaScript في لوحة المحرر اليسرى. يمكنك لصق الكود مباشرةً أو استخدام ميزة رفع الملفات للمعالجة على دفعات.

  • 2. اختر إعدادًا مسبقًا

    اختر إعدادًا مسبقًا من القائمة المنسدلة في لوحة الخيارات. ابدأ بـ Low Obfuscation لتغييرات طفيفة أو Medium Obfuscation لحماية متوازنة. وتوفّر إعدادات VM المسبقة أقوى مستوى من الأمان.

  • 3. اضغط "Obfuscate"

    اضغط زر Obfuscate لتحويل كودك. ويظهر الناتج المحمي في اللوحة اليمنى.

  • 4. انسخ أو نزّل

    استخدم زر Copy أو Download للحصول على كودك المشوَّش. والناتج جاهز للاستخدام في الإنتاج.

توافق الكود مهم

يحوّل التشويش (بنوعيه VM وغير VM) كودك بطرق تؤثر في بعض سلوكيات تشغيل JavaScript. ويجب ألا يعتمد كودك على هذه الميزات:

  • function.toString() / class.toString()

    يغيّر التشويش تمثيل الكود المصدري تمامًا. وسيتعطل الكود الذي يحلّل مصدر الدالة أو يقارنه.

  • function.name / class.name

    تُعاد تسمية أسماء الدوال والأصناف إلى معرِّفات عشوائية. والكود الذي يعتمد على .name للتسجيل أو التسلسل أو الاستبطان سيحصل على أسماء مشوَّشة.

// Before obfuscation
function calculatePrice() { return 100; }
console.log(calculatePrice.name);     // "calculatePrice"
console.log(calculatePrice.toString()); // "function calculatePrice() { return 100; }"

// After obfuscation
console.log(calculatePrice.name);     // "_0x1a2b3c" (random)
console.log(calculatePrice.toString()); // Completely transformed code

الخيارات الأساسية

قبل التشويش، اضبط هذه الخيارات الأساسية لتطابق بيئتك المستهدفة.

Target target

يحدد بيئة تنفيذ الكود المشوَّش:

  • browser (الافتراضي) - بيئة صفحة ويب قياسية. والكود الناتج مطابق للهدف node، لكن بعض الخيارات الخاصة بالمتصفح لا يُسمح باستخدامها مع الهدف node.
  • browser-no-eval - مثل browser، لكن الناتج لا يستخدم eval(). استخدمه عندما تطبّق الصفحة المستهدفة سياسة أمان محتوى تمنع eval/unsafe-eval.
  • node - بيئة Node.js. تُعطَّل الخيارات الخاصة بالمتصفح (فهي تتطلب window/document وستكون بلا أثر أو تطلق خطأً في Node). كما أن بعض دفاعات vmSelfDefending التي تعتمد على واجهات برمجية خاصة بالمتصفح - كشف المتصفحات بلا واجهة رسومية، واستعادة realm نظيف عبر iframe، وفحوص مكافحة المفتّش/DOM - لا تُنتَج لهذا الهدف.
  • service-worker - سياق Service Worker. لا يوجد window ولا document، وقيمة self العامة مختلفة.
  • userscript - صندوق رمل مدير سكربتات المستخدم (مثل Tampermonkey). وتُعدَّل دفاعات vmSelfDefending وفقًا لذلك. يتطلب المشوِّش الإصدار 6.9.0 فما فوق.
  • bytenode - للكود الذي سيُترجَم إلى .jsc باستخدام bytenode. يتطلب المشوِّش الإصدار 6.13.0 فما فوق.

Strict Mode strictMode

يتحكم في كيفية تعامل المشوِّش مع الوضع الصارم في JavaScript:

  • Auto (الافتراضي) - كشف الوضع الصارم تلقائيًا من الكود. يحلّل المشوِّش كودك بحثًا عن توجيهات "use strict"
  • Enable - فرض معاملة الوضع الصارم على كل الكود، سواء وُجد "use strict" أم لا
  • Disable - لا تُعامَل على أنها وضع صارم إلا توجيهات "use strict" الصريحة الموجودة في الكود المصدري

فهم الإعدادات المسبقة

الإعدادات المسبقة هي مجموعات خيارات مهيّأة مسبقًا. وهي مقسّمة إلى مجموعتين منفصلتين:

إعدادات VM المسبقة Pro (المحاكاة الافتراضية بالبايت كود)

الإعداد المسبقالأمانالأداءالميزات
VM Lowجيد~10xآلة افتراضية أساسية، وتوزيع غير مباشر
VM Mediumقوي~12-15x+ خلط أكواد العمليات، والترميز، والطُّعوم
VM Highقوي جدًا~15-18x+ كود ميت، وأكواد عمليات ذات حالة، وترميز المكدس
VM Ultra Highأقصى~20x++ طبقات تشويش غير VM

أرقام الأداء متوسطات - أما التأثير الفعلي فيعتمد بشدة على الكود (فالكود الذي يكثر فيه الاستدعاء الذاتي أو الحلقات الساخنة سيكون أبطأ بشكل ملحوظ).

الإعدادات المسبقة غير VM (التشويش القياسي)

الإعداد المسبقالحمايةالأداءالميزات
Defaultأساسيةضئيلمصفوفة النصوص، والتبسيط
Lowخفيفة~1.1x+ الدفاع الذاتي، وتعطيل الطرفية
Mediumمتوسطة~1.5x+ تدفق التحكم، والكود الميت، وbase64
Highقوية~2x+ الحماية من التنقيح، وترميز rc4

نظرة عامة على الواجهة

  • محرر المُدخل - الصق كود JavaScript المصدري أو اكتبه. اسحب الملفات وأفلتها أو استخدم زر الرفع. كما تُدعَم ملفات HTML التي تحتوي على سكربتات مضمَّنة Pro.
  • لوحة الناتج - تعرض النتيجة المشوَّشة. استخدم زري Copy أو Download للحصول على الكود المحمي.
  • محدِّد الإعداد المسبق - اختر إعدادات VM أو غير VM المسبقة. وتُجمَّع إعدادات VM المسبقة في الأعلى. ويحدد الإعداد المسبق الخيارات الأساسية التي يمكنك تخصيصها.
  • لوحة الخيارات - اضبط إعدادات التشويش بدقة. انقر أيقونة ? بجوار أي خيار للاطلاع على توثيقه.
  • زر Obfuscate - يحوّل كودك باستخدام الخيارات المختارة. وتُعالَج إعدادات VM المسبقة على الخادم؛ أما إعدادات غير VM المسبقة فتعمل في متصفحك.
  • رفع ملفات متعددة Pro - عالِج عدة ملفات دفعة واحدة ونزّلها بصيغة ZIP.
  • لوحة السجل Pro - اطّلع على عمليات التشويش السابقة واستعد المُدخل/الناتج.