Skip to content
KitploitKITPLOIT
أدواتعمليات الاستغلالالمدونة
Log in
إرسال
أدواتعمليات الاستغلالالمدونة
إرسال

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
jd — أداة CLI بلغة Go تقوم بفك تشويش مخرجات javascript-obfuscator (obfuscator.io) وإلغاء تصغير JavaScript باستخدام تحويلات AST وفك الترميز الساكن وبيئة goja sandbox كخيار احتياطي. | Kitploit
أدوات/GitHubGitHub/ejfkdev/jd
التحليل الثابتالتحليل الديناميكي (عزل)تحليل الكودالهندسة العكسيةتحليل البرمجيات الخبيثةالأدوات والمكونات
GitHubejfkdev/jd

jd

أداة CLI بلغة Go تقوم بفك تشويش مخرجات javascript-obfuscator (obfuscator.io) وإلغاء تصغير JavaScript باستخدام تحويلات AST وفك الترميز الساكن وبيئة goja sandbox كخيار احتياطي.

عرض المستودع
220منذ شهر واحدلم تتم المراجعة بعد

الأكثر شعبية

عرض الكل →

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

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

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

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

jd

CI Release License Go Version Release zread

中文

jd هي أداة بلغة Go تقوم بفك تشويش مخرجات javascript-obfuscator (obfuscator.io) وإلغاء تصغير JavaScript. إنها نسخة بلغة Go من webcrack و synchrony.

الميزات

فك تشويش Obfuscator.io

يكتشف ويعكس مخرجات javascript-obfuscator:

  • اكتشاف مصفوفة النصوص (الأشكال المغلفة بدوال والمصفوفات البسيطة، var/const/let)
  • اكتشاف مُدوّر المصفوفة (push/shift IIFE مع شرط التوقف)
  • اكتشاف المُفكِّك (إزاحة الفهرس، ترميزات Base64/RC4/المخصصة، المُفكِّكات ذات المعاملين)
  • حل أسماء البدائل المغلفة (بدائل var/function للمُفكِّكات)
  • فك التشفير الهجين — محاكاة ثابتة (SIMPLE/Base64/RC4) مع الرجوع إلى صندوق رمل goja للمُشفِّرات المخصصة
  • إزالة المساعدات — إزالة تعريفات مصفوفة النصوص والمُدوّر والمُفكِّك بعد فك التشفير

إلغاء التصغير

أكثر من 20 تحويلاً لتحسين القراءة:

التحويلالمثال
computed-propertiesconsole["log"] → console.log
merge-strings"a" + "b" → "ab"
unminify-booleans!0 → true, !1 → false
number-expressions1 + 2 → 3
void-to-undefinedvoid 0 → undefined
raw-literals0x1 → 1
sequencea(), b(), c() → عبارات منفصلة
split-variable-declarationsvar a=1, b=2 → var a=1; var b=2
block-statementsتغليف الأجسام ذات العبارة الواحدة في { }
logical-to-ifa && b() → if (a) b()
ternary-to-ifa ? b() : c() → if (a) b() else c()
merge-else-ifelse { if (...) } → else if (...)
for-to-whilefor(;;) → while(true)
yoda5 === x → x === 5
infinity1/0 → Infinity
invert-boolean-logic!(a == b) → a != b
unary-expressionsإسقاط void/!/typeof غير المؤثرة على مستوى العبارة
remove-double-not!!true → true

دعم وحدات ES

لا يدعم محلل goja صيغة وحدات ES (import/export). يقوم jd باستخراج عبارات import/export مسبقًا، وتحليل النص البرمجي المتبقي، وتشغيل التحويلات، ثم إضافة العبارات إلى المخرجات. يتم التمييز بشكل صحيح بين تعبيرات import() الديناميكية وتعريفات import.

تنسيق آمن للتعبيرات النمطية

بالنسبة للملفات التي لا يستطيع goja تحليلها بالكامل (مثل تعريفات لغة محرر Monaco ذات الاستخدام الكثيف للتعبيرات النمطية)، يتراجع jd إلى التنسيق على مستوى المصدر: يقوم مُرمِّز بتقسيم النص عند الفواصل المنقوطة مع الحفاظ على التعبيرات النمطية والنصوص والتعليقات كما هي.

التثبيت

macOS (Homebrew)

brew install ejfkdev/tap/jd

ملفات ثنائية جاهزة

قم بالتنزيل من GitHub Releases (Linux/macOS/Windows، x86_64/ARM64).

البناء من المصدر

go build -o jd .

الاستخدام

# Deobfuscate a file (output to stdout)
jd obfuscated.js

# Write to a file
jd obfuscated.js -o cleaned.js

# Read from stdin
cat obfuscated.js | jd -

# Process a directory — recursively processes all .js/.mjs/.cjs files,
# mirrors the directory tree to the output directory.
jd src/ -o dist/

# Directory mode with default output: creates <input>-deobfuscated
jd src/

# Specify file extensions
jd src/ -o dist/ --ext .js,.mjs

# Parallel processing (N workers, default: number of CPUs)
jd src/ -o dist/ -j 8

# Skip non-code files (only output processed JS)
jd src/ -o dist/ --copy-noncode=false

# Only deobfuscate, skip unminify
jd --unminify=false obfuscated.js

# JSON output with warnings
jd --json obfuscated.js

الأعلام

العلمالافتراضيالوصف
-o, --outputstdoutملف أو دليل المخرجات (الافتراضي للدليل: <input>-deobfuscated)
--deobfuscatetrueتشغيل فك تشويش obfuscator.io
--unminifytrueتشغيل تحويلات تحسين القراءة
--sandboxautoتنفيذ المُفكِّك: auto (ثابت ثم صندوق رمل)، only (دائمًا صندوق رمل)، off (ثابت فقط)
--timeout10sمهلة صندوق الرمل لكل ملف
--ext.js,.mjs,.cjsامتدادات الملفات المراد معالجتها في وضع الدليل
-j, --workers0 (=CPU)عمال متوازيون لوضع الدليل
--copy-noncodetrueنسخ الملفات غير البرمجية إلى دليل المخرجات
-v, --verbosefalseطباعة التشخيصات إلى stderr
--jsonfalseإخراج JSON بصيغة {code, warnings}

البنية

jd/
├── main.go                     # CLI entry
├── internal/
│   ├── cli/                    # cobra CLI (i18n: English/Chinese)
│   ├── deobfuscator/           # top-level pipeline + ES module preprocessing
│   ├── jsast/                  # AST walker (Cursor, Replace, Remove, Clone)
│   ├── codegen/                # AST → JavaScript printer (pretty/compact)
│   ├── scope/                  # lexical scope & binding analysis
│   ├── sandbox/                # goja VM wrapper for decoder execution
│   ├── decoder/                # static decoding: Base64/RC4/rotation
│   ├── deobfuscate/            # string-array/rotator/decoder detection + transforms
│   ├── unminify/               # 20 readability transforms + fixpoint runner
│   └── transform/              # Transform abstraction + ApplyFixpoint
└── testdata/samples/           # test fixtures

خط المعالجة

parse → splitModuleStatements → deobfuscate → unminify → generate
  1. Parse — محلل goja مع IgnoreRegExpErrors؛ يتراجع إلى التنسيق على مستوى المصدر للملفات غير القابلة للتحليل
  2. Deobfuscate — اكتشاف مصفوفة النصوص/المُدوّر/المُفكِّكات الخاصة بـ obfuscator.io، فك تشفير جميع مواقع الاستدعاء (ثابت أولاً، ثم الرجوع إلى صندوق الرمل)، إزالة المساعدات
  3. Unminify — حلقة نقطة ثابتة (≤20 تمريرة) من تحويلات تحسين القراءة المدمجة
  4. Generate — توليد الكود بوضع pretty مع أسبقية العوامل والأقواس الصحيحة

فك التشفير الهجين

يستخدم المُفكِّك نهجًا من مرحلتين:

تنزيل الأداة