Skip to content
KitploitKITPLOIT
أدواتالمدونة
إرسال
أدواتالمدونة
إرسال

أدوات الاختراق واختبار الاختراق والأمن السيبراني لترسانتك الأمنية!

Kitploit هو دليل لأدوات الاختراق والأمن السيبراني واختبار الاختراق. اكتشف آخر تحديثات المشاريع للعثور على الثغرات وتحليل الأنظمة وأتمتة الاختبارات وتعزيز أمنك.

··الخلاصات·اتصال·الخصوصية·© 2026 Kitploit

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
jsdeob-workbench — قم بهندسة عكسية لجافا سكريبت مبهمة بصريًا. قم بتسلسل التحويلات، وافحص تغييرات AST، واكتب إضافات إزالة الإبهام قابلة لإعادة الاستخدام. | Kitploit
أدوات/GitHubGitHub/owl4444/jsdeob-workbench
التحليل الثابتتحليل الكودالهندسة العكسيةالبرمجة النصية والأتمتةمصممي الأخطاءتحليل البرمجيات الخبيثةتحليل الملفات الثنائيةالتعلم والتعليم
GitHubowl4444/jsdeob-workbench

jsdeob-workbench

قم بهندسة عكسية لجافا سكريبت مبهمة بصريًا. قم بتسلسل التحويلات، وافحص تغييرات AST، واكتب إضافات إزالة الإبهام قابلة لإعادة الاستخدام.

عرض المستودع
118102منذ 7 أشهرتمت المراجعة من قبل Kitploit

الأكثر شعبية

عرض الكل →

اكتشف الأدوات الأكثر استخدامًا من قبل مجتمعنا.

استكشف جميع الأدوات

تصفح مجموعتنا من الأدوات

عرض جميع الأدوات →
الموقع الإلكتروني
مشاركة

jsdeob-workbench

منصة عمل مرئية لفك تشويش JavaScript. قم ببناء سلاسل تحويل، وتنقّل عبرها، واكتب إضافاتك الخاصة.

img

img

عرض يوتيوب توضيحي

  • https://www.youtube.com/watch?v=7zuqKoJT2BM
  • https://www.youtube.com/watch?v=bOVnPIfjoco

ما هذا؟

يكشف هذا التطبيق شجرة النحو المجرد (AST) لبرنامج JavaScript. جاءت الفكرة أثناء تحليل عينة برمجية ضارة مرتبطة بـ obfuscatio.io، مما قادني لتعلم المزيد عن BabelJS لفك التشويش. إذا حاولت من قبل إجراء هندسة عكسية لـ JS مشوش (مثل: حزم webpack، مخرجات obfuscator.io، عينات برمجية ضارة مضغوطة)، فأنت تعلم كم هو مؤلم. تتيح لك هذه الأداة:

  • كتابة نصوص تحويلية مبنية على BabelJS
  • الرجوع السريع إلى AST من خلال عارض AST
  • ربط عدة تحويلات معًا بصريًا والحصول على ملخص يوضح التغييرات
  • مشاركة الإضافات مع المتعاونين (يدويًا) وتصدير الإعدادات
  • كتابة أنماط قد تستخدمها مجددًا كإضافات
  • حفظ المشاريع أثناء تحليل عينات JS أخرى

بداية سريعة

root@kitploit:~
npm install
npm start
# افتح http://localhost:3000

هذا كل شيء.

الواجهة

الشريط الجانبي الأيسر - جميع التحويلات المتاحة (المدمجة + وصفة الإضافات) بما في ذلك سلسلة الوصفة. (فكر في Cyberchef)

المنتصف - محررات الإدخال/الإخراج. ألصق الكود المشوش على اليسار وشاهد الكود المحول على اليمين.

اللوحات اليمنى - عارض AST، محلل النطاق، ملخص سهل المشاهدة.

img

تحليل النطاق

يتيح لنا BabelJS عرض النطاق والروابط. وهذا مفيد بشكل خاص لرؤية ما إذا كانت هناك متغيرات غير مستخدمة على سبيل المثال. تسمح لنا هذه النظرة أيضًا بالبحث عن المواقع التي يُشار فيها إلى متغير ما.

img

كتابة التحويلات

اضغط على الزر + أو Ctrl+N لفتح محرر النص البرمجي. التحويلات هي مجرد كود JavaScript مع الوصول إلى:

root@kitploit:~
// المتغيرات العالمية المتاحة:
ast        // AST المعالجة من Babel
traverse   // التجول في الشجرة: traverse({ Identifier(path) { ... } })
t          // أنواع Babel: t.isStringLiteral(node)، t.identifier('x')
config     // إعدادات المستخدم من بطاقة الوصفة
stats      // تتبع تغييراتك: stats.replaced = 5
parser     // تحليل الكود: parser.parse('var x = 1')
generate   // توليد الكود: generate(node).code
run        // مساعد التنفيذ: run('1+1') => 2 (خطر. يُقصد تشغيله على جهازك الخاص داخل صندوق حماية)

مثال - إزالة كل السلاسل النصية "debug" (StringLiteral):

root@kitploit:~
// ما يلي سيظهر كمعاملات في سلسلة الوصفة كما في لقطة الشاشة التالية
const targetValue = config.targetValue || 'debug';
const removeMatches = config.removeMatches !== false;

traverse({
  StringLiteral(path) {
    if (path.node.value === targetValue) {
      if (removeMatches) {
        path.remove();
        stats.removed = (stats.removed || 0) + 1;
      }
    }
  }
});

يمكنك اختيار:

  • تشغيل هذا النص مباشرة عبر (CTRL + ENTER) للاختبار السريع
  • إضافة النص المكتوب إلى سلسلة الوصفة دون حفظه كإضافة (كما هو موضح في لقطة الشاشة). يمكنك حفظه لاحقًا
  • حفظه كإضافة بمجرد التأكد من عمله ورغبتك في مشاركته مع الآخرين.

تظهر لقطة الشاشة أدناه:

  1. محرر النص البرمجي (اضغط على الزر الجديد في أعلى اليسار أو الاختصار Ctrl+E)
  2. بعد كتابة نص BabelJS، أضفه إلى سلسلة الوصفة.
  3. في الوصفة، مع المعامل المكتشف، يمكننا تعديل سلوك الإضافة.
  4. يُظهر محرر الإخراج التحويل الناجح.

img

التحويلات المدمجة

لاحظ أن هذه قد تفشل اعتمادًا على أسلوب التشويش وقد تحتاج إلى نصوص مخصصة. يمكنك أيضًا تعديلها وحفظها كنص مخصص جديد.

الاسمالوظيفة
Beautifyتنسيق الكود بشكل مرتب
Constant Folding1 + 2 → 3، "a" + "b" → "ab"
Decode Stringsفك تشفير \x48\x65\x6c\x6c\x6f → "Hello"
Inline Array Valuesتضمين الوصول البسيط لعناصر المصفوفة
Inline String Arrayتضمين مصفوفات السلاسل المستخدمة من قبل أدوات التشويش
Opaque Predicate Removalإزالة الشروط الصحيحة/الخاطئة دائمًا
Remove Commentsإزالة جميع التعليقات من الكود
Remove IIFEفتح أغلفة (function(){...})()
Remove Unused Codeحذف المتغيرات والوظائف الميتة
Simplify Literals!0 → true، void 0 → undefined

الإضافات

ضع ملفات .js الخاصة بك في المجلدات الفرعية plugins/<category>/. ستظهر في الشريط الجانبي مجمعة حسب المجلد.

img

على سبيل المثال:

  • الاسم: مشتق من اسم الملف (Bracket-to-dot-notation.js → "Decode Strings")
  • الفئة: اسم المجلد الفرعي (plugins/Utilities/ → الفئة "nyx")
root@kitploit:~
/**
 * Bracket to Dot Notation
 * تغيير أشياء مثل console["log"] إلى console.log
 * 
 * الفئة: utilities
 */

// محرر النصوص - Ctrl+Enter للتشغيل، Ctrl+E للإغلاق
// استخدم traverse(visitor) لتعديل AST
// الوصول إلى 't' لأنواع Babel

traverse({
  MemberExpression(path) {
    if(path.node.computed === true){
      // هذه هي كتابة القوسين
      
      prop = path.node.property
      if(t.isStringLiteral(prop)  &&
          /^[a-zA-Z_][a-zA-Z_0-9]*$/.test(prop.value)
       ){

        path.node.computed = false; // الخطوة 1

      // الخطوة 2: تغيير الحرفية إلى معرف
        path.node.property = t.identifier(prop.value)
      

      }
    }
  }

});

هناك طريقتان لإضافة المعاملات:

  1. (هذه الطريقة لها الأفضلية ويوصى بها بشدة) اتباع هذا التنسيق في الكود، سيحاول محرر النصوص إنشاء معاملين (targetValue و removeMatches)
root@kitploit:~
const targetValue = config.targetValue || 'debug';
const removeMatches = config.removeMatches !== false;
  1. إذا فاتت أي معاملات بسبب حالات حافة، فإن خيار الحفظ كإضافة يسمح بإضافة معاملات إضافية قد تكون فاتت.

img

الملخص الرئيسي

يتضمن:

  • الوقت المستغرق لتشغيل كل إضافة
  • إحصائيات تغيير حجم الكود
  • رسم بياني لتصور التغييرات

img

اختصارات لوحة المفاتيح

المفتاحالإجراء
Ctrl+Eتبديل محرر النصوص
Ctrl+Shift+Eتبديل لوحة التقييم (خطير)
Ctrl+Sحفظ المشروع

بناء ملف تنفيذي مستقل

لاحظ أن الملف المستقل قد يواجه مشاكل إذا كان هناك الكثير من العقد المتداخلة. قد لا يعمل الحل البديل أحيانًا.

للبناء باستخدام npm، يمكننا استخدام ما يلي

root@kitploit:~
npm run build        # لنظام ويندوز فقط

يتم الإخراج إلى dist/. انسخ مجلد plugins/ بجانب الملف التنفيذي إذا كنت تريد تحويلاتك المخصصة.

مشاكل حجم المكدس

يمكن للكود المتداخل بعمق (مثل JSFuck) أن يتسبب في انفجار المكدس. يحاول سكريبت البناء زيادة حجمه تلقائيًا على ويندوز. إذا حدث تجاوز للمكدس، حاول التشغيل من المصدر باستخدام npm start (يستخدم --stack-size=65536)

لم أعرف كيفية زيادة حجم المكدس عند البناء في ملف تنفيذي مستقل. أرجو إخباري إذا كنت تعرف الطريقة!

الاعتمادات

بُني باستخدام:

  • Babel - تحليل AST والتحويلات
  • Monaco Editor - محرر الكود
  • Express - خادم الواجهة الخلفية

img

أسئلة؟ مشاكل؟ افتح مشكلة على GitHub.

تنزيل الأداة