Skip to content
KitploitKITPLOIT
ToolsBlog
Einreichen
ToolsBlog
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
jsdeob-workbench — Reverse-Engineeren Sie visuell obfuskiertes JavaScript. Verketten Sie Transformationen, überprüfen Sie AST-Änderungen, schreiben Sie wiederverwendbare Deobfuscation-Plugins. | Kitploit
Tools/GitHubGitHub/owl4444/jsdeob-workbench
Statische AnalyseCode-AnalyseReverse EngineeringScripting & AutomatisierungDebuggerMalware-AnalyseBinäranalyseLernen & Bildung
GitHubowl4444/jsdeob-workbench

jsdeob-workbench

Reverse-Engineeren Sie visuell obfuskiertes JavaScript. Verketten Sie Transformationen, überprüfen Sie AST-Änderungen, schreiben Sie wiederverwendbare Deobfuscation-Plugins.

Repository anzeigen
11810vor 6 MonatenVon Kitploit geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen
Webseite

jsdeob-workbench

Eine visuelle Werkbank zum Entschleiern von JavaScript. Erstellen Sie Transformationsketten, durchlaufen Sie sie und schreiben Sie eigene Plugins.

img

img

YouTube-Demo

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

Was ist das?

Diese Anwendung zeigt den abstrakten Syntaxbaum (AST) von JavaScript-Programmen. Die Idee entstand bei der Analyse einer obfuscatio.io-verwandten Malware-Probe, was dazu führte, dass ich mehr über BabelJS zur Entschleierung lernte. Wenn Sie jemals versucht haben, verschleiertes JS zu reverse-engineeren (denken Sie an Webpack-Bundles, obfuscator.io-Ausgaben, gepackte Malware-Proben), wissen Sie, dass es mühsam ist. Dieses Tool ermöglicht Ihnen:

  • Transformationsskripte basierend auf BabelJS schreiben
  • Schnelles Referenzieren des AST aus dem ASTViewer
  • Mehrere Transformationen visuell verketten und eine Zusammenfassung erhalten, um Änderungen zu sehen.
  • Plugins mit Mitarbeitern teilen (manuell) und Konfigurationen exportieren.
  • Muster schreiben, die Sie als Plugins wiederverwenden können.
  • Projekte speichern, während Sie andere JS-Beispiele analysieren.

Quick Start

root@kitploit:~
npm install
npm start
# Öffnen Sie http://localhost:3000

Das war's.

Die Oberfläche

Linke Seitenleiste – Alle verfügbaren Transformationen (eingebaute + Ihre Rezeptur als Plugins) einschließlich der Rezeptkette. (Denken Sie an Cyberchef)

Mitte – Eingabe-/Ausgabe-Editoren. Fügen Sie Ihren verschleierten Code links ein und sehen Sie den transformierten Code rechts.

Rechte Panels – AST-Viewer, Bereichsanalysator, einfache Zusammenfassung.

img

Bereichsanalyse

BabelJS ermöglicht es uns, den Gültigkeitsbereich und die Bindungen anzuzeigen. Dies ist besonders nützlich, um z. B. ungenutzte Variablen zu erkennen. Diese Ansicht ermöglicht es uns auch, nach Stellen zu suchen, von denen aus eine Variable referenziert wird.

img

Transformationen schreiben

Drücken Sie die +-Taste oder Strg+N, um den Skript-Editor zu öffnen. Transformationen sind nur JS-Code mit Zugriff auf:

root@kitploit:~
// Verfügbare Globals:
ast        // Der geparste Babel-AST
traverse   // Den Baum durchlaufen: traverse({ Identifier(path) { ... } })
t          // Babel-Typen: t.isStringLiteral(node), t.identifier('x')
config     // Benutzerkonfiguration aus der Rezeptkarte
stats      // Änderungen verfolgen: stats.replaced = 5
parser     // Code parsen: parser.parse('var x = 1')
generate   // Code generieren: generate(node).code
run        // Eval-Hilfsfunktion: run('1+1') => 2 (GEFAHR. SOLL AUF IHREM EIGENEN RECHNER IN EINER SANDBOX AUSGEFÜHRT WERDEN)

Beispiel – alle "debug"-Strings entfernen (StringLiteral):

root@kitploit:~
// Die folgenden beiden werden als Parameter in der Rezeptkette erscheinen, wie im nächsten Screenshot zu sehen
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;
      }
    }
  }
});

Sie können wählen:

  • Führen Sie dieses Skript direkt über (STRG+EINGABE) für schnelles Testen aus
  • Fügen Sie das geschriebene Skript ohne Speicherung als Plugin in die Rezeptkette ein (wie im Screenshot gezeigt). Sie können es später speichern.
  • Speichern Sie dies als Plugin, sobald es funktioniert und Sie dieses Plugin mit anderen teilen möchten.

Der Screenshot unten zeigt:

  1. Den Skript-Editor (Klicken Sie auf die neue Schaltfläche oben links oder die Tastenkombination Strg-E)
  2. Nach dem Schreiben des BabelJS-Skripts fügen Sie es der Rezeptkette hinzu.
  3. Im Rezept können wir mit dem erkannten Parameter das Verhalten des Plugins ändern.
  4. Der Ausgabe-Editor zeigt die erfolgreiche Transformation.

img

Eingebaute Transformationen

Beachten Sie, dass diese je nach Verschleierungstechnik fehlschlagen können und möglicherweise benutzerdefinierte Skripte erfordern. Sie können sie auch ändern und als neues benutzerdefiniertes Skript speichern.

Plugins

Legen Sie Ihre eigenen .js-Dateien in plugins/<category>/-Unterordnern ab. Sie werden in der Seitenleiste nach Ordnern gruppiert angezeigt.

img

Zum Beispiel:

  • Name: Abgeleitet vom Dateinamen (Bracket-to-dot-notation.js → "Decode Strings")
  • Kategorie: Der Unterordnername (plugins/Utilities/ → Kategorie "nyx")
root@kitploit:~
/**
 * Bracket to Dot Notation
 * Changes things like  console["log"] to console.log
 * 
 * Category: utilities
 */

// Script Editor - Ctrl+Enter to run, Ctrl+E to close
// Use traverse(visitor) to modify the AST
// Access 't' for Babel types

traverse({
  MemberExpression(path) {
    if(path.node.computed === true){
      // this is the bracket notation
      
      prop = path.node.property
      if(t.isStringLiteral(prop)  &&
          /^[a-zA-Z_][a-zA-Z_0-9]*$/.test(prop.value)
       ){

        path.node.computed = false; // step 1

      // step 2 change literal to identifier
        path.node.property = t.identifier(prop.value)
      

      }
    }
  }

});

Es gibt zwei Methoden, um Parameter hinzuzufügen:

  1. (Dies hat Vorrang und wird dringend empfohlen) Wenn Sie dieses Format im Code verwenden, versucht der Skript-Editor, zwei Parameter zu erstellen (targetValue und removeMatches)
root@kitploit:~
const targetValue = config.targetValue || 'debug';
const removeMatches = config.removeMatches !== false;
  1. Wenn aufgrund von Randfällen Parameter fehlen, ermöglicht das Speichern als Plugin das Hinzufügen zusätzlicher Parameter, die möglicherweise fehlen.

img

Hauptzusammenfassung

Enthält:

  • Zeit, die jedes Plugin für die Ausführung benötigt
  • Statistiken zur Codegrößenänderung
  • Diagramm zur Visualisierung von Änderungen

img

Tastaturkürzel

TasteAktion
Strg+ESkript-Editor umschalten
Strg+Umschalt+EEval-Panel umschalten (GEFÄHRLICH)
Strg+SProjekt speichern

Erstellen einer eigenständigen Exe

BEACHTEN SIE, DASS DIE STANDALONE-VERSION PROBLEME HABEN KANN, WENN ES VIELE VERSCHACHTELTE KNOTEN GIBT. DER WORKAROUND FUNKTIONIERT MÖGLICHERWEISE NICHT IMMER.

Um mit npm zu erstellen, können wir Folgendes verwenden

root@kitploit:~
npm run build        # Nur Windows

Die Ausgabe erfolgt in dist/. Kopieren Sie den plugins/-Ordner neben die exe, wenn Sie Ihre benutzerdefinierten Transformationen verwenden möchten.

Probleme mit der Stapelgröße

Tief verschachtelter Code (wie JSFuck) kann den Stack sprengen. Das Build-Skript versucht, ihn automatisch unter Windows zu erhöhen. Wenn Sie Stack-Overflows erhalten, versuchen Sie, aus der Quelle mit npm start zu laufen (verwendet --stack-size=65536)

Ich habe nicht herausgefunden, wie ich die Stack-Größe erhöhen kann, wenn ich in eine ausführbare Standalone-Datei erstelle. Lassen Sie es mich wissen, wenn Sie wissen, wie!

Danksagungen

Erstellt mit:

  • Babel – AST-Parsing und Transformationen
  • Monaco Editor – Code-Editor
  • Express – Backend-Server

img

Fragen? Probleme? Öffnen Sie ein GitHub-Issue.

Tool herunterladen
NameWas es tut
BeautifyFormatiert Code ordentlich
Constant Folding1 + 2 → 3, "a" + "b" → "ab"
Decode StringsDekodiert \x48\x65\x6c\x6c\x6f → "Hello"
Inline Array ValuesFügt einfache Array-Elementzugriffe inline ein
Inline String ArrayFügt von Verschleierern verwendete String-Arrays inline ein
Opaque Predicate RemovalEntfernt immer-wahre/falsche Bedingungen
Remove CommentsEntfernt alle Kommentare aus dem Code
Remove IIFEEntfernt (function(){...})()-Wrapper
Remove Unused CodeLöscht tote Variablen und Funktionen
Simplify Literals!0 → true, void 0 → undefined