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 från ett kort formulär: ange entry, output-mapp och mode, och slå sedan på TypeScript, Babel, en CSS-loader, HtmlWebpackPlugin och en dev-server.
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.
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.
Slug-generator
Omvandla valfri titel eller fras till en URL-säker slug. Gemener, bindestrecksseparerad, accentfri, valfri stoppord, Unicode-medveten.
SQL till NoSQL
Gör om en enda SQL-SELECT-sats till en MongoDB-find()-fråga. Mappar kolumner, WHERE (=, >, <, >=, <=, !=), AND/OR, ORDER BY och LIMIT. Ingen JOIN, GROUP BY eller aggregering.
SVG-blobgenerator
Generera organiska, slumpmässiga SVG-blobformer med justerbar komplexitet, kontrast och seed. Kopiera SVG-pathen för bakgrunder, hero-sektioner och avatarmasker.
Verktyget finns på andra språk
- Deobfuskator JavaScriptu [PL]
- JavaScriptデオブファスカータ [JA]
- เครื่องถอดรหัส JavaScript [TH]
- Trình giải mã mã JavaScript (JavaScript Deobfuscator) [VI]
- JavaScript-Deobfuscator [DE]
- 자바스크립트 디오프스버커 [KO]
- Desofuscador de JavaScript [PT]
- Desofuscador de JavaScript [ES]
- أداة إزالة التشفير في لغة جافا سكريبت (JavaScript Deobfuscator) [AR]
- Deobfuscator JavaScript [ID]
- JavaScript-deobfuscator [NL]
- Déobfuscateur JavaScript [FR]
- JavaScript Deobfuscator [EN]
- Deobfuscator JavaScript [IT]
- JavaScript-деобфускатор [RU]
- JavaScript Deobfuscator [TR]
- JavaScript反混淆工具 [ZH]