البدء
يحوّل 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 - اطّلع على عمليات التشويش السابقة واستعد المُدخل/الناتج.
