JavaScript-deobfuscator
Klistra in ett fragment av obfuskerad JavaScript – strängar kodade i hexformat, variabelnamn med en enda bokstav samt en avkodningsloop längst upp – så skalar verktyget av lagren ett i taget: avkodar escape-strängar, bäddar in uppslagsarrayen direkt i koden, byter namn på variabler till lättlästa platshållare, plattar ut triviala omslutningar och snyggar till resultatet. Användbart för att analysera misstänkta kodsnuttar som du hämtat från en webbsida eller en inklistrad Pastebin-länk.
Så här avmaskar du JavaScript
-
1
Klistra in den obfuskerade källkoden
Minifierad, packad eller utdata från verktyg i `javascript-obfuscator.io`-stil.
-
2
Låt parsern gå igenom det
Strängarrayer avkodas, numeriska sekvenser beräknas och obehövliga kodgrenar skärs bort.
-
3
Använd namnbyte
Enstaka variabler med namnet `a`/`b`/`c` har fått nya namn som `var1`, `var2` osv. – läsbara ersättningsnamn, inte nödvändigtvis meningsfulla namn.
-
4
Förbättra
Lägg till indrag och nya rader och generera kod som du faktiskt kan läsa och förstå.
Tekniker som deobfuscatorn omvändar
| Omslutenhet | Omvändning |
|---|---|
| Hex-kodade stränglitterala | Decoda \x48\x69 till "Hi" |
| Unicode-escapeade identifierare | \u006E\u0061\u006D\u0065 -> name |
| Strängarray + avkodningsfunktion | Inbädda arrayen och anropa avkodaren vid analys |
| Numerisk konstantfolding | 0x1F3 + 5 -> 504 |
eval(...)-wrappers |
Höj den inre koden till överordnad nivå |
| Kontrollflödesflattning (tillståndsmaskin) | Detektera skiftfall och rekonstruera flödet |
| Obegrundad kod / meningslösa ternära uttryck | Borttaka grenar som aldrig köras |
_0x1a2b3c()-stylnamn |
Erställ med successivt ökande nummer såsom var1, var2 |
Begränsningar: vad verktyget inte gör
- Återställ de ursprungliga variabelnamnen. När
userEmailombyrns tillakan inget verktyg återfinna det. Du får en läsbar struktur, inte den ursprungliga betydelsen. - Upppakka anpassade virtualiserare. Stora kommersiella obfuskatorer (JScrambler, företagsversionerna av Obfuscator.io) inkluderar en anpassad virtuell maskin som tolkar bytekod. Att undvika dessa kräver manuell omvänd ingenjörskonst.
- Kör godtycklig kod. Deobfuscatorn utvärderar rena uttryck statiskt. Den hämtar inte fjärrresurser, skapar inte DOM-element eller kommunicerar med nätverket.
Typiska användningsfall
- Säkerhetsforskning: att analysera ett misstänkt skript som har mottagits via e-post eller som distribuerats från en komprometterad CDN.
- Kodarkéologi: återvinning av äldre kod där den enda kvarvarande resten är ett minifierat paket.
- Lärande: att förstå vad en obfuskering på tutorialsnivå faktiskt gör i praktiken.
Säkerhet och etik
Kör aldrig opålitlig JavaScript i en webbläsarflik där du är inloggad på något viktigt – koden kan läsa cookies, anropa interna API:er och läcka ut tillstånd. Deobfuscatorn själv arbetar med källkoden som text; den kör inte koden du klistrar in.
Deobfuskera bara kod som du har behörighet att analysera. Omvänd ingenjörskonst på licensierad programvara kan vara begränsad i din jurisdiktion.
Vanliga frågor
Nej. När obfuscatorn ändrar namnet på userEmail till _0x1a2b3c försvinner det ursprungliga namnet. Deobfuscatorn ger läsbara ersättningsnamn (var1, var2) och rätt struktur, men inte de ursprungliga semantiska namnen.
Nej. Den analyserar koden som en AST och tillämpar statiska transformationer. Reina uttryck (såsom 0x1F3 + 5) kombineras samman, men inget påverkar nätverket, cookies eller DOM.
Ja, men utdata från bundler minimeras snarare än att medvetet förvirras, vilket ger kod som endast är förbättrad och där modulomslagarna återställts. Källkartaer, om de finns separat, ger betydligt bättre namn.
Stora kommersiella verktyg (Enterprise JScrambler, anpassade virtuella maskiner) inkluderar en bytekodtolkare som statisk analys inte kan avkoda. Verktyget erhåller bara ytlagret, men kärnlogiken förblir oklar utan manuell omvändning.
Relaterade verktyg
Webpack-konfigurationsgenerator
Skapa en webpack.config.js för webpack 5 med vanlig JavaScript, React eller Vue: TypeScript, Babel, CSS eller Sass, bilder, HtmlWebpackPlugin, en utvecklingsserver och raden för npm install.
Protocol Buffers-avkodare
Avkoda Protobuf-byte lokalt från hex, Base64, Base64URL, text eller fil, granska fälttolkningar och exportera en privat rapport.
Generator för platshållarbilder
Skapa en bild på 1–4000 px med egna färger och text, ladda ned PNG eller kopiera webbadress och HTML.
ASCII-tabellreferens
Full ASCII-tabell från 0 till 127 med decimal-, hex-, oktal- och binärvärden samt notation för numeriska HTML-referenser, inklusive NUL, LF och DEL.
XSD-validerare
Validera ett XML-dokument mot ett XSD-schema och rapportera element- och typavvikelser med exakta radnummer.
YAML till JSON
Omvandla YAML-konfiguration till JSON för verktyg och API:er som bara accepterar JSON. Hanterar ankare, merge-nycklar och nästlade strukturer.
Verktyget finns på andra språk
- أداة إزالة التشفير في لغة جافا سكريبت (JavaScript Deobfuscator) [AR]
- JavaScript-Deobfuscator [DE]
- JavaScriptデオブファスカータ [JA]
- Deobfuskator JavaScriptu [PL]
- Deobfuscator JavaScript [ID]
- Desofuscador de JavaScript [ES]
- Déobfuscateur JavaScript [FR]
- Desofuscador de JavaScript [PT]
- Trình giải mã mã JavaScript (JavaScript Deobfuscator) [VI]
- เครื่องถอดรหัส JavaScript [TH]
- JavaScript-deobfuscator [NL]
- 자바스크립트 디오프스버커 [KO]
- JavaScript Deobfuscator [EN]
- Deobfuscator JavaScript [IT]
- JavaScript-деобфускатор [RU]
- JavaScript Deobfuscator [TR]
- JavaScript反混淆工具 [ZH]