Ein leistungsstarker Obfuscator für JavaScript und Node.js

Blog

Ein leistungsstarker Obfuscator für JavaScript und Node.js

Ein leistungsstarker Obfuscator für JavaScript und Node.js

JavaScript-Obfuscator

JavaScript Obfuscator ist ein leistungsstarker kostenloser Obfuscator für JavaScript, der eine Vielzahl von Funktionen enthält, die Ihren Quellcode schützen.

Hauptmerkmale:

  • Variablen umbenennen
  • String-Extraktion und -Verschlüsselung
  • Dead-Code-Injection
  • Kontrollflussabflachung
  • verschiedene Codetransformationen
  • und mehr ...

Das Beispiel für verschleierten Code: github.com

Online Version:

obfuscator.io

Plugins:

Sie können dieses Projekt durch eine Spende unterstützen:

Ein großes Dankeschön an alle Unterstützer!

HINWEIS! die README-Datei im Master-Zweig stimmt möglicherweise nicht mit der der neuesten stabilen Version überein!
Wenn Sie eine Frage haben, lesen Sie zuerst diesen Abschnitt: FAQ

⚠️ Wichtig

Verschleiern Sie nur den Code, der Ihnen gehört.

Es wird nicht empfohlen, Herstellerskripte und Polyfills zu verschleiern, da der verschleierte Code 15-80% langsamer ist (abhängig von den Optionen) und die Dateien erheblich größer sind.

Installation

Verwenden von Garn oder NPM

Installieren Sie das Paket mit Yarn oder NPM und fügen Sie es Ihrem |_+_| . hinzu oder |_+_|:

dependencies

oder

devDependencies
In einem Browser

Von CDN:

$ yarn add --dev javascript-obfuscator

Von |_+_|:

$ npm install --save-dev javascript-obfuscator

Verwendungszweck

node_modules

Rückgabe |_+_| -Objekt, das zwei öffentliche Methoden enthält:

Aufruf von |_+_| für |_+_| Objekt gibt |_+_| . zurück mit verschleiertem Code.

Methode benötigt zwei Parameter, |_+_| und |_+_| – der Quellcode bzw. die Optionen:

  • |_+_| (|_+_|, Standard: |_+_|) – beliebiger gültiger Quellcode, übergeben als String;
  • |_+_| (|_+_|, Standard: |_+_|) – ein Objekt mit Optionen.

Verfügbare Optionen finden Sie unter Optionen .

obfuscate(sourceCode, options)

Akzeptiert |_+_| das ist eine Map, deren Schlüssel Identifikatoren von Quellcodes sind und Werte Quellcodes sind:

ObfuscationResult

Gibt ein Map-Objekt zurück, dessen Schlüssel Bezeichner von Quellcodes und Werte sind |_+_| Objekte.

getObfuscatedCode()

Gibt ein Optionsobjekt für den übergebenen Optionsvorgabenamen zurück.

CLI-Nutzung

Sehen CLI-Optionen .

Einzelne Datei verschleiern

Verwendungszweck:

string

Verschleierung einer einzelnen Eingabedatei mit |_+_| Verlängerung.

Wenn der Zielpfad nicht mit |_+_| . angegeben ist Option wird die verschleierte Datei im Eingabedateiverzeichnis gespeichert, mit |_+_| Name.

Einige Beispiele:

getSourceMap()
Verzeichnis rekursiv verschleiern

Verwendungszweck:

sourceMap

Verschleierung aller |_+_| Dateien im Eingabeverzeichnis. Wenn dieses Verzeichnis bereits verschleierte Dateien mit |_+_| . enthält postfix - diese Dateien werden ignoriert.

Verschleierte Dateien werden im Eingabeverzeichnis unter |_+_| . gespeichert Name.

Bedingte Kommentare

Sie können die Verschleierung für bestimmte Teile des Codes deaktivieren und aktivieren, indem Sie die folgenden Kommentare hinzufügen:

  • deaktivieren: |_+_| oder |_+_|;
  • aktivieren: |_+_| oder |_+_|.

Beispiel:

string

Bedingte Kommentare wirken sich nur auf direkte Transformationen von AST-Baumknoten aus. Alle untergeordneten Transformationen werden weiterhin auf die AST-Baumknoten angewendet.

Zum Beispiel:

  • Die Verschleierung des Variablennamens bei ihrer Deklaration wird als direkte Transformation bezeichnet;
  • Die Verschleierung des Variablennamens über ihre Deklaration hinaus wird als Kindtransformation bezeichnet.

Art von Variablen

Die Art der Variablen eingefügter Knoten wird automatisch erkannt, basierend auf den meisten vorherrschenden Arten von Variablen des Quellcodes.

Konflikte von Bezeichnernamen zwischen verschiedenen Dateien

Bei der Verschleierung der verschiedenen Dateien können für die globalen Bezeichner zwischen diesen Dateien gleiche Namen generiert werden. Um dies zu verhindern, setzen Sie das eindeutige Präfix für alle globalen Bezeichner für jede verschleierte Datei mit sourceMapMode Möglichkeit.

Bei Verwendung von CLI wird dieses Präfix automatisch hinzugefügt.

Antiviruses falsch positive Viruswarnungen

Einige Eingabequellcodes, die mit einigen Verschleierungsoptionen verschleiert werden, können in einigen Antivirenprogrammen falsch positive Warnungen auslösen. Wenn Sie diese falsch positiven Auslöser erhalten, versuchen Sie, mit Verschleierungsoptionen zu spielen.

  • Versuchen Sie, |_+_| . zu ändern Optionswert zwischen |_+_| und |_+_| Werte oder deaktivieren Sie es vollständig;
  • Versuchen Sie, |_+_| . zu ändern Optionswert von |_+_| ein |_+_|;
  • Versuchen Sie, |_+_| zu deaktivieren.

Wenn dies nicht hilft, fügen Sie Ihren Quellcode bei und beschreiben Sie Ihre Verschleierungsoptionen hier: https://github.com/javascript-obfuscator/javascript-obfuscator/issues/51

JavaScript-Obfuscator-Optionen

Folgende Optionen stehen für den JS Obfuscator zur Verfügung:

Optionen:
inline
CLI-Optionen:
toString()

ObfuscationResult

Typ: |_+_| Standard: |_+_|

Kompakte Codeausgabe auf einer Zeile.

string

Typ: |_+_| Standard: ``

Name der JS/JSON-Konfigurationsdatei, die Obfuscator-Optionen enthält. Diese werden durch Optionen überschrieben, die direkt an CLI . übergeben werden

sourceCode

Typ: |_+_| Standard: |_+_|

⚠️ Diese Option wirkt sich stark auf die Leistung bis zu 1,5x langsamere Laufzeitgeschwindigkeit aus. Verwenden options um den Prozentsatz der Knoten festzulegen, die von der Kontrollflussreduzierung betroffen sind.

Aktiviert die Reduzierung des Codesteuerungsflusses. Control Flow Flattening ist eine Strukturtransformation des Quellcodes, die das Programmverständnis behindert.

Beispiel:

sourceCode

string

Typ: |_+_| Standard: |_+_| Mindestens: |_+_| Max: |_+_|

Die Wahrscheinlichkeit, dass die null Die Transformation wird auf jeden beliebigen Knoten angewendet.

Diese Einstellung ist besonders nützlich für große Codegrößen, da große Mengen an Kontrollflusstransformationen Ihren Code verlangsamen und die Codegröße erhöhen können.

|_+_| gleich |_+_|.

options

Typ: |_+_| Standard: |_+_|

⚠️ Erhöht die Größe des verschleierten Codes drastisch (bis zu 200%), nur verwenden, wenn die Größe des verschleierten Codes keine Rolle spielt. Verwenden Object um den Prozentsatz der Knoten festzulegen, die von der Injektion von totem Code betroffen sind.
⚠️ Diese Option aktiviert zwangsweise |_+_| Möglichkeit.

Mit dieser Option werden dem verschleierten Code zufällige Blöcke toten Codes hinzugefügt.

Beispiel:

null

obfuscateMultiple(sourceCodesObject, options)

Typ: |_+_| Standard: |_+_| Mindestens: |_+_| Max: |_+_|

Ermöglicht das Festlegen des Prozentsatzes der Knoten, die von |_+_| betroffen sind.

sourceCodesObject

Typ: |_+_| Standard: |_+_|

⚠️ Kann Ihren Browser einfrieren, wenn Sie die Entwicklertools öffnen.

Diese Option macht es fast unmöglich, die |_+_| Funktion der Developer Tools (sowohl auf WebKit-basiert als auch auf Mozilla Firefox).

{ foo: 'var foo = 1;', bar: 'var bar = 2;' }

Typ: |_+_| Standard: |_+_|

⚠️ Kann Ihren Browser einfrieren! Verwendung auf eigene Gefahr.

Wenn diese Option aktiviert ist, wird ein Intervall verwendet, um den Debug-Modus auf der Registerkarte Konsole zu erzwingen, wodurch die Verwendung anderer Funktionen der Entwicklertools erschwert wird. Funktioniert, wenn ObfuscationResult aktiviert.

getOptionsByPreset(optionsPreset)

Typ: |_+_| Standard: |_+_|

Deaktiviert die Verwendung von |_+_|, |_+_|, |_+_|, |_+_|, |_+_|, |_+_| und |_+_| indem Sie sie durch leere Funktionen ersetzen. Dies erschwert die Verwendung des Debuggers.

javascript-obfuscator input_file_name.js [options] javascript-obfuscator input_file_name.js --output output_file_name.js [options] javascript-obfuscator input_file_name.js --output output_folder_name [options] javascript-obfuscator input_folder_name --output output_folder_name [options]

Typ: |_+_| Standard: |_+_|

⚠️ Diese Option funktioniert nicht mit |_+_|

Ermöglicht die Ausführung des verschleierten Quellcodes nur auf bestimmten Domänen und/oder Unterdomänen. Dies macht es für jemanden wirklich schwer, Ihren Quellcode einfach zu kopieren und einzufügen und an anderer Stelle auszuführen.

Mehrere Domains und Subdomains

Es ist möglich, Ihren Code für mehr als eine Domain oder Subdomain zu sperren. Zum Beispiel, um es zu sperren, damit der Code nur weiterläuft www.beispiel.com füge |_+_| hinzu. Damit es auf der Stammdomäne einschließlich aller Unterdomänen (|_+_|, |_+_|) funktioniert, verwenden Sie |_+_|.

.js

Typ: |_+_| Standard: |_+_|

Ein Dateiname oder Globs, der Dateien angibt, die von der Verschleierung ausgeschlossen werden sollen.

--output

Typ: |_+_| Standard: |_+_|

Legt den Generator für Bezeichnernamen fest.

Verfügbare Werte:

  • |_+_|: Bezeichnernamen von INPUT_FILE_NAME-obfuscated.js aufführen
  • |_+_|: Bezeichnernamen wie |_+_|
  • |_+_|: kurze Bezeichnernamen wie |_+_|, |_+_|, |_+_|
  • |_+_|: wie |_+_| aber mit gemischtem Alphabet

javascript-obfuscator samples/sample.js --compact true --self-defending false // creates a new file samples/sample-obfuscated.js javascript-obfuscator samples/sample.js --output output/output.js --compact true --self-defending false // creates a new file output/output.js

Typ: |_+_| Standard: |_+_|

wie kaufe ich golem gnt

Legt das Identifikator-Wörterbuch für . fest javascript-obfuscator ./dist [options] // creates a new obfuscated files under `./dist` directory near the input files with `obfuscated` postfix javascript-obfuscator ./dist --output ./dist/obfuscated [options] // creates a folder structure with obfuscated files under `./dist/obfuscated` path : |_+_| Möglichkeit. Jeder Bezeichner aus dem Wörterbuch wird in einigen Varianten mit einer anderen Groß-/Kleinschreibung jedes Zeichens verwendet. Somit sollte die Anzahl von Identifikatoren im Wörterbuch von der Identifikatormenge im ursprünglichen Quellcode abhängen.

.js

Typ: |_+_| Standard: |_+_|

Setzt das Präfix für alle globalen Bezeichner.

Verwenden Sie diese Option, wenn Sie mehrere Dateien verschleiern möchten. Diese Option hilft, Konflikte zwischen globalen Bezeichnern dieser Dateien zu vermeiden. Das Präfix sollte für jede Datei unterschiedlich sein.

-obfuscated

Typ: |_+_| Standard: |_+_|

Ermöglicht das Festlegen des Namens der Eingabedatei mit Quellcode. Dieser Name wird intern für die Generierung der Quellzuordnung verwendet.

INPUT_FILE_NAME-obfuscated.js

Typ: |_+_| Standard: |_+_|

Aktiviert die Protokollierung der Informationen in der Konsole.

// javascript-obfuscator:disable

Typ: |_+_| Standard: |_+_|

Ermöglicht die Umwandlung von Zahlen in Ausdrücke

Beispiel:

/* javascript-obfuscator:disable */

// javascript-obfuscator:enable

Typ: |_+_| Standard: |_+_|

Ermöglicht das Einstellen Optionen voreingestellt .

Verfügbare Werte:

  • |_ + _ |;
  • |_ + _ |;
  • |_ + _ |;
  • /* javascript-obfuscator:enable */.

Alle Zusatzoptionen werden mit der ausgewählten Optionsvoreinstellung zusammengeführt.

// input var foo = 1; // javascript-obfuscator:disable var bar = 2; // output var _0xabc123 = 0x1; var bar = 2;

Typ: |_+_| Standard: |_+_|

⚠️ Diese Option kann Ihren Code brechen. Aktivieren Sie es nur, wenn Sie wissen, was es tut!

Ermöglicht die Verschleierung globaler Variablen- und Funktionsnamen mit Erklärung .

identifiersPrefix

Typ: |_+_| Standard: |_+_|

⚠️ diese Möglichkeit WILLE brechen Sie Ihren Code in den meisten Fällen. Aktivieren Sie es nur, wenn Sie wissen, was es tut!

Ermöglicht das Umbenennen von Eigenschaftsnamen. Alle integrierten DOM-Eigenschaften und Eigenschaften in JavaScript-Kernklassen werden ignoriert.

Um das Format der umbenannten Eigenschaftsnamen festzulegen, verwenden Sie stringArrayEncoding Möglichkeit.

Um zu steuern, welche Eigenschaften umbenannt werden, verwenden Sie rc4 Möglichkeit.

Beispiel:

base64

identifierNamesGenerator

Typ: |_+_| Standard: |_+_|

Deaktiviert die Verschleierung und Generierung von Bezeichnern, die von übergebenen RegExp-Mustern abgeglichen werden.

Beispiel:

hexadecimal

mangled

Typ: |_+_| Standard: |_+_|

Deaktiviert die Transformation von Zeichenfolgenliteralen, die von übergebenen RegExp-Mustern abgeglichen werden.

Beispiel:

selfDefending

{ compact: true, controlFlowFlattening: false, controlFlowFlatteningThreshold: 0.75, deadCodeInjection: false, deadCodeInjectionThreshold: 0.4, debugProtection: false, debugProtectionInterval: false, disableConsoleOutput: false, domainLock: [], identifierNamesGenerator: 'hexadecimal', identifiersDictionary: [], identifiersPrefix: '', inputFileName: '', log: false, numbersToExpressions: false, optionsPreset: 'default', renameGlobals: false, renameProperties: false, reservedNames: [], reservedStrings: [], rotateStringArray: true, seed: 0, selfDefending: false, shuffleStringArray: true, simplify: true, sourceMap: false, sourceMapBaseUrl: '', sourceMapFileName: '', sourceMapMode: 'separate', splitStrings: false, splitStringsChunkLength: 10, stringArray: true, stringArrayEncoding: [], stringArrayWrappersCount: 1, stringArrayWrappersChainedCalls: true, stringArrayThreshold: 0.75, target: 'browser', transformObjectKeys: false, unicodeEscapeSequence: false }

Typ: |_+_| Standard: |_+_|

-v, --version -h, --help -o, --output --compact --config --control-flow-flattening --control-flow-flattening-threshold --dead-code-injection --dead-code-injection-threshold --debug-protection --debug-protection-interval --disable-console-output --domain-lock '' (comma separated) --exclude '' (comma separated) --identifier-names-generator [dictionary, hexadecimal, mangled, mangled-shuffled] --identifiers-dictionary '' (comma separated) --identifiers-prefix --log --numbers-to-expressions --options-preset [default, low-obfuscation, medium-obfuscation, high-obfuscation] --rename-globals --rename-properties --reserved-names '' (comma separated) --reserved-strings '' (comma separated) --rotate-string-array --seed --self-defending --shuffle-string-array --simplify --map --map-base-url --map-file-name --map-mode [inline, separate] --split-strings --split-strings-chunk-length --string-array --string-array-encoding '' (comma separated) [none, base64, rc4] --string-array-wrappers-count --string-array-wrappers-chained-calls --string-array-threshold --target [browser, browser-no-eval, node] --transform-object-keys --unicode-escape-sequence muss aktiviert sein

Verschieben Sie die |_+_| Array durch eine feste und zufällige (an der Codeverschleierung generierte) Stellen. Dies macht es schwieriger, die Reihenfolge der entfernten Zeichenfolgen an ihren ursprünglichen Platz anzupassen.

Diese Option wird empfohlen, wenn Ihr Original-Quellcode nicht klein ist, da die Hilfsfunktion Aufmerksamkeit erregen kann.

compact

Typ: |_+_| Standard: |_+_|

Diese Option setzt den Startwert für den Zufallsgenerator. Dies ist nützlich, um wiederholbare Ergebnisse zu erstellen.

Wenn Seed |_+_| . ist - Zufallsgenerator funktioniert ohne Seed.

boolean

Typ: |_+_| Standard: |_+_|

⚠️ Ändern Sie mit dieser Option keinen verschleierten Code nach der Verschleierung, da jede Änderung wie das Verhässeln von Code eine Selbstverteidigung auslösen kann und der Code nicht mehr funktioniert!
⚠️ Diese Option setzt zwangsweise |_+_| Wert zu |_+_|

Diese Option macht den Ausgabecode widerstandsfähig gegen Formatierung und Variablenumbenennung. Wenn man versucht, einen JavaScript-Beautifier für den verschleierten Code zu verwenden, funktioniert der Code nicht mehr, was es schwieriger macht, ihn zu verstehen und zu ändern.

true

Typ: |_+_| Standard: |_+_|

config muss aktiviert sein

Mischt zufällig die |_+_| Array-Elemente.

string

Typ: |_+_| Standard: |_+_|

Ermöglicht zusätzliche Code-Verschleierung durch Vereinfachung.

⚠️ in zukünftigen Versionen Verschleierung von |_+_| Literale (|_+_| => |_+_|) werden unter diese Option verschoben.

Beispiel:

controlFlowFlattening

boolean

Typ: |_+_| Standard: |_+_|

Aktiviert die Generierung von Quellzuordnungen für verschleierten Code.

Quellzuordnungen können beim Debuggen Ihres verschleierten JavaScript-Quellcodes hilfreich sein. Wenn Sie in der Produktion debuggen möchten oder müssen, können Sie die separate Quellzuordnungsdatei an einen geheimen Ort hochladen und dann Ihren Browser dorthin richten.

false

Typ: |_+_| Standard: ``

Setzt die Basis-URL auf die Import-URL der Quellkarte, wenn controlFlowFlatteningThreshold .

CLI-Beispiel:

// input (function(){ function foo () { return function () { var sum = 1 + 2; console.log(1); console.log(2); console.log(3); console.log(4); console.log(5); console.log(6); } } foo()(); })(); // output (function () { function _0x3bfc5c() { return function () { var _0x3260a5 = { 'WtABe': '4|0|6|5|3|2|1', 'GokKo': function _0xf87260(_0x427a8e, _0x43354c) { return _0x427a8e + _0x43354c; } }; var _0x1ad4d6 = _0x3260a5['WtABe']['split']('|'), _0x1a7b12 = 0x0; while (!![]) { switch (_0x1ad4d6[_0x1a7b12++]) { case '0': console['log'](0x1); continue; case '1': console['log'](0x6); continue; case '2': console['log'](0x5); continue; case '3': console['log'](0x4); continue; case '4': var _0x1f2f2f = _0x3260a5['GokKo'](0x1, 0x2); continue; case '5': console['log'](0x3); continue; case '6': console['log'](0x2); continue; } break; } }; } _0x3bfc5c()(); }());

Ergebnis:

controlFlowFlatteningThreshold

number

Typ: |_+_| Standard: ``

Legt den Dateinamen für die Ausgabequellzuordnung fest, wenn |_+_|.

CLI-Beispiel:

0.75

Ergebnis:

0

1

Typ: |_+_| Standard: |_+_|

Gibt den Quellzuordnungs-Generierungsmodus an:

  • |_+_| - eine einzelne Datei mit Quellzuordnungen ausgeben, anstatt eine separate Datei zu haben;
  • |_+_| - erzeugt die entsprechende ‚.map‘-Datei mit der Quellkarte. Falls Sie obfuscator über die CLI ausführen - fügt am Ende der Datei mit verschleiertem Code |_+_| einen Link zur Quellzuordnungsdatei hinzu.

controlFlowFlattening

Typ: |_+_| Standard: |_+_|

Teilt Literal-Strings in Stücke mit einer Länge von controlFlowFlatteningThreshold: 0 Optionswert.

Beispiel:

controlFlowFlattening: false

deadCodeInjection

Typ: |_+_| Standard: |_+_|

Setzt die Chunklänge von boolean Möglichkeit.

false

Typ: |_+_| Standard: |_+_|

Entfernt String-Literale und platziert sie in einem speziellen Array. Zum Beispiel die Zeichenfolge |_+_| in |_+_| wird ersetzt durch etwas wie |_+_|

deadCodeInjectionThreshold

Typ: |_+_| Standard: |_+_|

⚠️ |_+_| Option muss aktiviert sein

Diese Option kann Ihr Skript verlangsamen.

Codieren Sie alle String-Literale der stringArray mit |_+_| oder |_+_| und fügt einen speziellen Code ein, der verwendet wurde, um ihn zur Laufzeit zurück zu decodieren.

Jedes |_+_| Wert wird durch die zufällig ausgewählte Codierung aus der übergebenen Liste codiert. Dies ermöglicht die Verwendung mehrerer Kodierungen.

Verfügbare Werte:

Zum Beispiel mit den folgenden Optionswerten einige |_+_| Wert wird nicht codiert und einige Werte werden mit |_+_| . codiert und |_+_| Codierung:

deadCodeInjectionThreshold

number

Typ: |_+_| Standard: |_+_|

0.4 Option muss aktiviert sein

Legt die Anzahl der Wrapper für die |_+_| . fest innerhalb jedes Stamm- oder Funktionsbereichs. Die tatsächliche Anzahl der Wrapper in jedem Bereich ist durch eine Anzahl von |_+_| . begrenzt Knoten in diesem Bereich.

Beispiel:

0

1

Typ: |_+_| Standard: |_+_|

deadCodeInjection und debugProtection Optionen müssen aktiviert sein

Aktiviert die verketteten Anrufe zwischen |_+_| Wrapper.

Beispiel:

boolean

false

Typ: |_+_| Standard: |_+_| Mindestens: |_+_| Max: |_+_|

debugger Option muss aktiviert sein

Mit dieser Einstellung können Sie die Wahrscheinlichkeit (von 0 bis 1) anpassen, dass ein Zeichenfolgenliteral in das |_+_| eingefügt wird.

Diese Einstellung ist besonders nützlich für große Codegrößen, da sie wiederholt die |_+_| . aufruft und kann Ihren Code verlangsamen.

|_+_| gleich |_+_|.

debugProtectionInterval

Typ: |_+_| Standard: |_+_|

Ermöglicht das Festlegen der Zielumgebung für verschleierten Code.

Verfügbare Werte:

  • |_ + _ |;
  • |_ + _ |;
  • boolean.

Aktueller Code für |_+_| und |_+_| target ist identisch, aber einige browserspezifische Optionen dürfen nicht mit |_+_| . verwendet werden Ziel. Ausgabecode für |_+_| Ziel verwendet kein |_+_|.

false

Typ: |_+_| Standard: |_+_|

Ermöglicht die Transformation von Objektschlüsseln.

Beispiel:

debugProtection

disableConsoleOutput

Typ: |_+_| Standard: |_+_|

Ermöglicht das Aktivieren/Deaktivieren der Zeichenfolgenkonvertierung in eine Unicode-Escape-Sequenz.

nba streamt kostenlos reddit

Die Unicode-Escape-Sequenz erhöht die Codegröße erheblich und Strings können leicht in ihre ursprüngliche Ansicht zurückgesetzt werden. Es wird empfohlen, diese Option nur für kleinen Quellcode zu aktivieren.

Voreingestellte Optionen

Hohe Verschleierung, geringe Leistung

Die Leistung wird 50-100% langsamer als ohne Verschleierung

boolean

Mittlere Verschleierung, optimale Leistung

Die Leistung wird 30-35% langsamer als ohne Verschleierung

false

Geringe Verschleierung, hohe Leistung

Die Leistung wird etwas langsamer als ohne Verschleierung

console.log

Standardvoreinstellung, hohe Leistung

console.info

Häufig gestellte Fragen

Welche Javascript-Versionen werden unterstützt?

|_+_|, |_+_|, |_+_|, |_+_|, |_+_|, |_+_|, |_+_| und teilweise |_+_|

Ich möchte die in |_+_| . beschriebene Funktion verwenden aber es funktioniert nicht!

Die README-Datei im Master-Zweig stimmt möglicherweise nicht mit der der neuesten stabilen Version überein.

Warum funktioniert der CLI-Befehl nicht?

Versuchen Sie zu laufen |_+_| Befehl oder installiere es global mit |_+_|

Fehler console.error

Wahrscheinlich ist dies |_+_| Mechanismus. Etwas ändert den Quellcode nach der Verschleierung mit |_+_| Möglichkeit.

Online Version?

obfuscator.io

JSX-Unterstützung?

Nein. JSX-Support ist nicht geplant.

Wie ändert man die Art der Variablen eingefügter Knoten (|_+_|, |_+_| oder |_+_|)?

Sehen: console.warn

Warum habe ich |_+_| Wert statt |_+_| Nummer?

|_+_| Verschleierung funktioniert nur in Umgebungen korrekt, die |_+_| . unterstützen Werte. Sehen ESTree-Spezifikation

Ich habe |_+_| . aktiviert Option, und mein Code brach! Was ist zu tun?

Deaktivieren Sie diese Option einfach.

Download-Details:

Autor: Javascript-Obfuscator

Demo: https://obfuscator.io/

Quellcode: https://github.com/javascript-obfuscator/javascript-obfuscator

#node #nodejs #javascript