Tool
javascript-deobfuscator (LostMyCode)
Browser-based Vue app that restores the strings Obfuscator.io hides behind string-array lookups in JavaScript. The user pastes the obfuscated script and names its string array or decoder function, such as _0x439c; the tool classifies the calls as plain array indexing, a one-argument decoder or a two-argument RC4-style decoder, runs the script's own decoder to replace each call with its string literal, rewrites bracketed property access as dot notation and beautifies the result. The author hosts a demo at deo.sigr.io.
- Targets
- Website
- Category
- Website analysis tools
- Relationship
- Foundation tool
- Sources reviewed
Requirements & limits
- Prerequisites: Supply the obfuscated script and identify the target function name yourself; a built-in tip shows call shapes such as _0x439c[103], _0x439c('0x4') and _0x439c('0x2','f]Xg'). The README covers only the Vue CLI 4 project commands (npm install, serve, build and lint), and a GitHub Actions workflow builds the site with Node.js 16 and deploys it to GitHub Pages.
- Scope: Unversioned: package.json reports 0.1.0 and marks the package private, there are no GitHub releases or npm package, and the reviewed master commit of 2024-05-31 is the latest push.
- Limits: Only these string-array patterns are handled, with a fourth pattern marked experimental, and unrecognized input returns an error. The code has no passes for control-flow flattening, proxy functions, dead code or Obfuscator.io's other transformations, so those remain in the output. Decoding evaluates the pasted script with eval inside a browser web worker, so the input's own code runs; it is not a static AST transformation. The page template also loads js-beautify from cdnjs and a Google Analytics tag.
- Testing evidence: The repository has no tests, and the README's only result is an example screenshot.
- License: The repository has no license file and GitHub detects no license, so it grants no stated reuse terms.
About this entry
The description was reviewed against primary sources. This does not establish runtime testing, security auditing or verified compatibility.
Primary sources
- README.md GitHub · LostMyCode/javascript-deobfuscator · Revision 2cc31bf
- src/xDecoder.js GitHub · LostMyCode/javascript-deobfuscator · Revision 2cc31bf
- src/Analyzer.js GitHub · LostMyCode/javascript-deobfuscator · Revision 2cc31bf
- src/components/Main.vue GitHub · LostMyCode/javascript-deobfuscator · Revision 2cc31bf
- src/components/TargetFuncTip.vue GitHub · LostMyCode/javascript-deobfuscator · Revision 2cc31bf
- src/worker.js GitHub · LostMyCode/javascript-deobfuscator · Revision 2cc31bf
- package.json GitHub · LostMyCode/javascript-deobfuscator · Revision 2cc31bf
- public/index.html GitHub · LostMyCode/javascript-deobfuscator · Revision 2cc31bf
- .github/workflows/deploy.yml GitHub · LostMyCode/javascript-deobfuscator · Revision 2cc31bf
More in Websites
- minusone · Tool
- Dinosaur runner: recovering one acceleration rule · Case study
- rauchg.com: rebuilding an RSC blog from captured Flight output · Case study
- BaoCut Slides: adapting an interactive web editor · Case study
- REA in Claude Code: an isolated static-analysis A/B trial · Case study
- Dinosaur runner: an REA-inspected speed rule rebuilt with Codex · Case study