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
egodeath — Ein JavaScript-Obfuskator basierend auf kryptografischen Indistinguishability-Obfuskationstechniken | Kitploit
Tools/GitHubGitHub/nstarke/egodeath
Statische AnalyseCode-AnalyseReverse EngineeringPapers & ForschungLernen & Bildung
GitHubnstarke/egodeath

egodeath

Ein JavaScript-Obfuskator basierend auf kryptografischen Indistinguishability-Obfuskationstechniken

Repository anzeigen
53513vor 9 TagenVon 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

egodeath

Dieses Projekt erreicht keine Ununterscheidbarkeits-Verschleierung. Sie sollten dieses Produkt nicht zum Schutz von Geheimnissen verwenden. Es dient dazu, Reverse Engineering abzuschrecken, nicht zu verhindern

Tests

images/screenshot.png Ein JavaScript-Verschleierer, der entwickelt wurde, um Code sowohl für Menschen als auch für LLMs extrem schwer lesbar und analysierbar zu machen. Geschrieben in TypeScript. Implementiert Techniken aus peer-reviewter kryptografischer Verschleierungsforschung.

Installation

npm install
npm run build

CLI-Verwendung

# Grundlegende Verwendung
node dist/index.js input.js > output.js

# Mit Ziel-Token-Budget (Standard: 2.000.000)
node dist/index.js --target-tokens 500000 input.js > output.js

# Minimale Verschleierung (kleine Ausgabe)
node dist/index.js --target-tokens 10000 input.js > output.js

# Maximale Aufblähung (10M Tokens)
node dist/index.js --target-tokens 10000000 input.js > output.js

# Verwendung der Umgebungsvariable
INPUT_FILE=input.js node dist/index.js > output.js

# Hilfe
node dist/index.js --help

Optionen

OptionStandardBeschreibung
--target-tokens <n>2000000Zielgröße der Ausgabe in Tokens. Kleine Eingaben werden bis zu dieser Grenze aufgebläht. Große Eingaben erzeugen weniger Aufblähung, um innerhalb des Budgets zu bleiben.
--help, -hHilfemeldung anzeigen

npm-Skripte

npm run build              # Kompiliere TypeScript nach dist/
npm run start              # Führe den Verschleierer aus (liest input.js)
npm run test               # Führe die Testsuite aus
npm run obfuscate-package  # Führe Kompatibilitätstests gegen npm-Pakete aus

Programmatische API

const { obfuscate } = require('./dist/obfuscator');

const code = 'function add(a, b) { return a + b; }';
const obfuscated = obfuscate(code);

// Mit Optionen
const obfuscated = obfuscate(code, { targetTokens: 500000 });

Transformations-Pipeline

Der Verschleierer wendet 20 Transformationen in 4 Phasen an. Jede Stufe baut auf der vorherigen auf.

Phase 1: Sicherheits- & Anti-Analyse-Vortransformationen

ReihenfolgeTransformationDateiBeschreibung
1Anti-Debug-Fallentransforms/antiDebug.tsInjiziert eval("debugger")-Anweisungen und 10-20 setInterval-Schleifen mit Primzahl-Intervallen (5s-600s), die wiederholt Debugger-Breakpoints auslösen. Jede Instanz verwendet eindeutige codierte Zeichenfolgen.
2Punkturierte Programm-Tripwirestransforms/tripwires.tsBettet versteckte Prüfungen ein, die Parameter-Hashes mit geheimen Werten vergleichen. 5 Hash-Muster (bitweiser Fingerabdruck, modulare Arithmetik, charCodeAt, numerischer Hash, typeof+length). Löst stille Zustandskorruption, busy loops oder wirft bei geheimen Eingaben. [Paper 4]
3LPN-Rauschinjektiontransforms/noiseInjection.tsFügt zufälliges Rauschen in arithmetische Berechnungen hinzu und hebt es durch getrennte Pfade wieder auf. 6 Muster: add/sub, XOR, mul/div, geteilte Doppelvariable, berechnete Hash-Kette, Bit-Rotate. Zwischenwerte sind ohne Verfolgung der vollständigen Aufhebung bedeutungslos. [Paper 7]

Phase 2: Strukturelle Vortransformationen

ReihenfolgeTransformationDateiBeschreibung
4Kontrollfluss-Abflachungtransforms/controlFlowFlattening.tsWandelt Funktionskörper in while(true) { switch((_s * P) % M) { ... } }-Zustandsautomaten um mit modularer arithmetischer Disposition — Fallwerte werden durch (stateId * multiplier) % modulus unter Verwendung zufälliger Primparameter codiert. [Paper 3]
5Undurchsichtige Prädikatetransforms/opaquePredicates.tsInjiziert if-Bedingungen, die immer true oder false ergeben, aber mathematisch schwer zu beweisen sind (z. B. (x*x+x)%2===0). 15 Prädikatformeln in den Kategorien modulare Arithmetik, bitweise Operatoren und Typüberprüfung.
6Proxy-Funktionentransforms/proxyFunctions.tsLeitet alle Funktionsaufrufe über zwei Verteiler: _fc(fn, ...args) für einfache Aufrufe, _mc(obj, prop, ...args) für Methodenaufrufe. Verwendet Function.prototype.apply, das in einer lokalen Variablen erfasst wird, für Robustheit.
7Kontextfenster-Erschöpfungtransforms/contextExhaustion.tsWickelt Ausdrücke in tief verschachtelte ternäre Operatoren mit undurchsichtigen Bedingungen, void-Ausdrucksketten und bedingte void-Padding. Zwingt LLMs, Kontextfenster-Tokens für Rauschen zu verschwenden.
8Komma-Ausdruckszusammenlegungtransforms/commaExpressions.tsFasst aufeinanderfolgende Ausdrucksanweisungen zu einzelnen Komma-Ausdrücken zusammen: a(); b(); return c() wird zu return a(), b(), c().

Phase 3: Identifikatordurchläufe

| Reihenfolge | Durchlauf | Datei | Beschreibung | |-------|------|-------------| | 9 | Durchlauf 1: Katalogisierung | passes/firstPass.ts | Durchläuft den AST und katalogisiert jeden Identifikator, erstellt eine Globals-Karte, die jedem einen zufälligen 6-16 Zeichen langen Unicode-Namen zuweist, der aus 16 Skriptbereichen (CJK, Hangul, Griechisch, Kyrillisch, Devanagari, Thai, Arabisch, Katakana usw.) stammt. | | 10 | Durchlauf 2: Ersetzung | passes/secondPass.ts | Ersetzt alle Identifikatornamen durch ihre verschleierten Unicode-Äquivalente. Codiert require()-Argumente als String.fromCharCode(...). Codiert statische import/export-Quellen als Unicode-escaped String-Literale. Ersetzt superClass-Referenzen von Klassen, Vorlagenliteral-Ausdrücke, Destrukturierungsmuster. | | 11 | Durchlauf 3: Dummy-Parameter | passes/thirdPass.ts | Injiziert 0-15 zufällige ungenutzte Parameter in jede Funktionsdeklaration und jeden Ausdruck. Überspringt Funktionen mit Rest-Parametern. Entfernt alle Kommentare. |

Phase 4: Nachtransformationen

Tool herunterladen