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
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.
HTML-teckenreferens
En sökbar lista över HTML-entiteter med deras namngivna och numeriska koder samt kopiering med ett klick för specialtecken och symboler.
Referens för kortkommandon
Sök dokumenterade standardkommandon för VS Code, Chrome och Bash med GNU Readline i macOS, Windows och Linux.
HTML-formaterare
Formatera HTML lokalt i webbläsaren med indrag på två eller fyra blanksteg. HTML laddas inte upp eller valideras.
E-postvalidator
Validera en e-postadress: RFC 5322-syntaxkontroll, live-slagning av MX-poster samt detaljer om lokal del, domän och längd. Ingen e-post skickas.
Slumpgenerator för bokstäver
Generera slumpade A-Z-bokstäver. Välj antal, versaler, gemener eller blandat läge och använd resultatet för spel, uppgifter eller klassrumsaktiviteter.
Verktyget finns på andra språk
- Trình giải mã mã JavaScript (JavaScript Deobfuscator) [VI]
- أداة إزالة التشفير في لغة جافا سكريبت (JavaScript Deobfuscator) [AR]
- Déobfuscateur JavaScript [FR]
- Deobfuscator JavaScript [ID]
- JavaScript-Deobfuscator [DE]
- 자바스크립트 디오프스버커 [KO]
- JavaScript-deobfuscator [NL]
- เครื่องถอดรหัส JavaScript [TH]
- Deobfuskator JavaScriptu [PL]
- JavaScriptデオブファスカータ [JA]
- Desofuscador de JavaScript [PT]
- Desofuscador de JavaScript [ES]
- JavaScript Deobfuscator [EN]
- Deobfuscator JavaScript [IT]
- JavaScript-деобфускатор [RU]
- JavaScript Deobfuscator [TR]
- JavaScript反混淆工具 [ZH]