أداة deobfuscator بسيطة ولكنها قوية لإزالة تقنيات التشويش الشائعة في JavaScript. افتح مشكلة إذا كانت هناك ميزة تعتقد أنه يجب تنفيذها.
النسخة الإلكترونية على deobfuscate.io
التثبيت عبر npm install js-deobfuscator
هل تبحث عن أداة deobfuscator خاصة بـ Obfuscator.io/javascript-obfuscator؟ جرب هذا الريبو
إذا كنت ترغب في مناقشة/التعرف على كيفية تشويش JavaScript وإزالة التشويش، فيمكنك الانضمام إلى خادم Discord
يفك حزم المصفوفات التي تحتوي على قيم حرفية (سلاسل، أرقام، إلخ) ويستبدل جميع المراجع إليها
إزالة وظائف الوكيل البسيطة (الاستدعاءات إلى وظيفة أخرى)، ووظائف وكيل الصفيف ووظائف الوكيل الحسابية (التعبيرات الثنائية)
يبسط التعبيرات الحسابية
يبسط تسلسل السلسلة
إعادة تسمية المعرفات السداسية العشرية غير القابلة للقراءة (على سبيل المثال _0xca830a)
يحول المحسوبة إلى تعبيرات الأعضاء الثابتة ويجمل التعليمات البرمجية
انظر الجزء السفلي للحصول على مثال أكثر تعقيدًا مع الميزات المرتبطة ببعضها البعض.
قبل
const a = ['x20', 'x57x6fx72x6cx64', 'x48x65x6cx6cx6f'];console.log(a[2] + a[0] + أ[1])؛
بعد
console.log('Hello' + ' ' + 'World');
قبل
وظيفة أ(ب، ج) { إرجاع someFunction(b, c);}const result = a(5, 6);
بعد
نتيجة ثابتة = someFunction(5, 6);
قبل
الوظيفة أ(ب، ج) {إرجاع ج + 2 * ب؛}نتيجة ثابتة = أ(5، 6)؛
بعد
النتيجة الثابتة = 6 + 2 * 5؛
قبل
وظيفة أ (ب، ج) { إرجاع ج + 2 * ب؛} وظيفة ب (ج، د) { إرجاع أ (ج، د)؛} وظيفة ج (د، ه) { إرجاع ب (د، ه)؛} نتيجة ثابتة = ج(5, 6);
بعد
النتيجة الثابتة = 6 + 2 * 5؛
قبل
دع الإجمالي = 0x2 * 0x109e + -0xc * -0x16a + -0x3234؛لـ (let i = 0x1196 + 0x97b * 0x3 + -0x2e07؛ i < -0x95 * -0x38 + -0x1a75 + -0x619؛ i++) { المجموع += أنا؛}
بعد
دع الإجمالي = 0;لـ (دع i = 0; i < 10; i++) { المجموع += i;}
قبل
console.log('He' + 'll' + 'o' + 'Wo' + 'r' + 'ld');
بعد
console.log('مرحبا بالعالم');
يمكن ربط كل هذه الميزات معًا لتبسيط التعليمات البرمجية.
قبل
const ar = [ 'x48x65x6cx6cx6f', 0x95, 'x20', 0x1a75, 'x57x6fx72x6cx64', -0x53, 'x6cx6fx67' ];const a = function (b, c) { return c + 2 * b; }, ب = الوظيفة (ج, د) { إرجاع أ(ج, د); }, c = function (d, e) { return b(d, e); };رسالة ثابتة = ar[0] + ar[2] + ar[4];نتيجة const = c(ar[1] * 0x38 + ar[3] + 0x619, 0x12 * ar[5] + 0x1a13 + 0x621) ;console[ar[6]](message + ' ' + result);
بعد
const message = 'Hello World';const result = 40106;console.log(message + ' ' + result);
تكوين الواجهة { المصفوفات: { unpackArrays: boolean؛ إزالة المصفوفات: منطقية؛ }; proxyFunctions: {replaceProxyFunctions: boolean; RemoveProxyFunctions: boolean; }; التعبيرات: { تبسيط التعبيرات: منطقية؛ RemoveDeadBranches: boolean; }; متنوع: { تجميل: منطقي؛ تبسيط الخصائص: منطقية؛ renameHexIdentifiers: boolean; };}
إما تثبيت الوحدة محليًا عبر npm install js-deobfuscator
واستيرادها كالمعتاد أو تثبيت npm install -g js-deobfuscator
عالميًا واستخدام js-deobfuscator
CLI:
> js-deobfuscator -h الاستخدام: تشغيل [خيارات] قم بإزالة التشويش من ملف جافا سكريبت خيارات: -i, --input [input_file] ملف الإدخال المراد إزالة التشويش (الافتراضي: "input/source.js") -o, --output [output_file] ملف الإخراج غير المشوش (الافتراضي: "output/output.js") -f, --force ما إذا كنت تريد الكتابة فوق ملف الإخراج أم لا -h, --help عرض المساعدة للأمر>
وبدلاً من ذلك، استخدم الإصدار عبر الإنترنت على deobfuscate.io