Skip to content
KitploitKITPLOIT
ToolsExploitsBlog
Log in
Einreichen
ToolsExploitsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
jd — Go-CLI, die die Ausgabe von javascript-obfuscator (obfuscator.io) deobfuskiert und JavaScript mithilfe von AST-Transformationen, statischer Dekodierung und einem goja-Sandbox-Fallback entminifiziert. | Kitploit
Tools/GitHubGitHub/ejfkdev/jd
Statische AnalyseDynamische Analyse (Sandboxing)Code-AnalyseReverse EngineeringMalware-AnalyseDienstprogramme & Frameworks
GitHubejfkdev/jd

jd

Go-CLI, die die Ausgabe von javascript-obfuscator (obfuscator.io) deobfuskiert und JavaScript mithilfe von AST-Transformationen, statischer Dekodierung und einem goja-Sandbox-Fallback entminifiziert.

Repository anzeigen
220vor 1 MonatNoch nicht geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

jd

CI Release License Go Version Release zread

中文

jd ist ein Go-Tool, das die Ausgabe von javascript-obfuscator (obfuscator.io) deobfuskiert und JavaScript entminifiziert. Es ist ein Go-Port von webcrack und synchrony.

Funktionen

Obfuscator.io-Deobfuskierung

Erkennt und kehrt die Ausgabe von javascript-obfuscator um:

  • String-Array-Erkennung (funktionsumschlossene und einfache Array-Formen, var/const/let)
  • Array-Rotator-Erkennung (Push/Shift-IIFE mit Abbruchbedingung)
  • Decoder-Erkennung (Index-Shift, Base64/RC4/benutzerdefinierte Kodierungen, Decoder mit zwei Parametern)
  • Wrapper-Alias-Auflösung (var-/Funktions-Aliase für Decoder)
  • Hybride Dekodierung — statische Simulation (SIMPLE/Base64/RC4) mit goja-Sandbox-Fallback für benutzerdefinierte Encoder
  • Hilfsmittel-Entfernung — String-Array-, Rotator- und Decoder-Deklarationen werden nach der Dekodierung entfernt

Entminifizierung

Über 20 Lesbarkeits-Transformationen:

TransformationBeispiel
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() → separate Anweisungen
split-variable-declarationsvar a=1, b=2 → var a=1; var b=2
block-statementsUmschließen von Einzelanweisungs-Rümpfen mit { }
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-expressionsNo-Op void/!/typeof auf Anweisungsebene entfernen
remove-double-not!!true → true

ES-Modul-Unterstützung

Der Parser von goja unterstützt keine ES-Modul-Syntax (import/export). jd extrahiert import-/export-Anweisungen vorab, parst das verbleibende Skript, führt Transformationen aus und stellt die Anweisungen dann der Ausgabe voran. Dynamische import()-Ausdrücke werden korrekt von Import-Deklarationen unterschieden.

Regex-sichere Formatierung

Für Dateien, die goja nicht vollständig parsen kann (z. B. Monaco-Editor-Sprachdefinitionen mit intensiver Regex-Nutzung), greift jd auf eine Formatierung auf Quellcodeebene zurück: Ein Tokenizer trennt an Semikolons und bewahrt dabei Regex-Literale, Strings und Kommentare unverändert.

Installation

macOS (Homebrew)

brew install ejfkdev/tap/jd

Vorgefertigte Binärdateien

Herunterladen von GitHub Releases (Linux/macOS/Windows, x86_64/ARM64).

Aus dem Quellcode erstellen

go build -o jd .

Verwendung

# 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

Flags

FlagStandardBeschreibung
-o, --outputstdoutAusgabedatei oder -verzeichnis (Standard für Verzeichnis: <input>-deobfuscated)
--deobfuscatetrueobfuscator.io-Deobfuskierung ausführen
--unminifytrueLesbarkeits-Transformationen ausführen
--sandboxautoDecoder-Ausführung: auto (statisch, dann Sandbox), only (immer Sandbox), off (nur statisch)
--timeout10sSandbox-Timeout pro Datei
--ext.js,.mjs,.cjsDateiendungen, die im Verzeichnismodus verarbeitet werden
-j, --workers0 (=CPU)parallele Worker für den Verzeichnismodus
--copy-noncodetrueNicht-Code-Dateien in das Ausgabeverzeichnis kopieren
-v, --verbosefalseDiagnosen nach stderr ausgeben
--jsonfalse{code, warnings}-JSON ausgeben

Architektur

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

Pipeline

parse → splitModuleStatements → deobfuscate → unminify → generate
Tool herunterladen