
Security News
Meet Socket at Black Hat and DEF CON 2025 in Las Vegas
Meet Socket at Black Hat & DEF CON 2025 for 1:1s, insider security talks at Allegiant Stadium, and a private dinner with top minds in software supply chain security.
js-deobfuscator
Advanced tools
A simple but powerful deobfuscator to remove common JavaScript obfuscation techniques. Open an issue if there is a feature you think should be implemented.
A simple but powerful deobfuscator to remove common JavaScript obfuscation techniques. Open an issue if there is a feature you think should be implemented.
Online version at deobfuscate.io
Install via npm install js-deobfuscator
Looking for a deobfuscator specific to Obfuscator.io/javascript-obfuscator? Try this repo
If you would like to discuss/learn about JavaScript obfuscation and deobfuscation you can join the Discord server
See bottom for more complicated example with features chained together.
Before
const a = ['\x20', '\x57\x6f\x72\x6c\x64', '\x48\x65\x6c\x6c\x6f'];
console.log(a[2] + a[0] + a[1]);
After
console.log('Hello' + ' ' + 'World');
Before
function a(b, c) {
return someFunction(b, c);
}
const result = a(5, 6);
After
const result = someFunction(5, 6);
Before
function a(b, c) {
return c + 2 * b;
}
const result = a(5, 6);
After
const result = 6 + 2 * 5;
Before
function a(b, c) {
return c + 2 * b;
}
function b(c, d) {
return a(c, d);
}
function c(d, e) {
return b(d, e);
}
const result = c(5, 6);
After
const result = 6 + 2 * 5;
Before
let total = 0x2 * 0x109e + -0xc * -0x16a + -0x3234;
for (let i = 0x1196 + 0x97b * 0x3 + -0x2e07; i < -0x95 * -0x38 + -0x1a75 + -0x619; i++) {
total += i;
}
After
let total = 0;
for (let i = 0; i < 10; i++) {
total += i;
}
Before
console.log('He' + 'll' + 'o' + ' Wo' + 'r' + 'ld');
After
console.log('Hello World');
All these features can be chained together to simplify code.
Before
const ar = [
'\x48\x65\x6c\x6c\x6f',
0x95,
'\x20',
0x1a75,
'\x57\x6f\x72\x6c\x64',
-0x53,
'\x6c\x6f\x67'
];
const a = function (b, c) {
return c + 2 * b;
},
b = function (c, d) {
return a(c, d);
},
c = function (d, e) {
return b(d, e);
};
const message = ar[0] + ar[2] + ar[4];
const result = c(ar[1] * 0x38 + ar[3] + 0x619, 0x12 * ar[5] + 0x1a13 + 0x621);
console[ar[6]](message + ' ' + result);
After
const message = 'Hello World';
const result = 40106;
console.log(message + ' ' + result);
interface Config {
verbose: boolean;
isModule: boolean;
arrays: {
unpackArrays: boolean;
removeArrays: boolean;
};
proxyFunctions: {
replaceProxyFunctions: boolean;
removeProxyFunctions: boolean;
};
expressions: {
simplifyExpressions: boolean;
removeDeadBranches: boolean;
};
miscellaneous: {
beautify: boolean;
simplifyProperties: boolean;
renameHexIdentifiers: boolean;
};
}
Either install the module locally via npm install js-deobfuscator
and import as usual or install globally npm install -g js-deobfuscator
and use the js-deobfuscator
CLI:
> js-deobfuscator -h
Usage: js-deobfuscator [options]
Deobfuscate a javascript file
Options:
-i, --input [input_file] The input file to deobfuscate (default: "input/source.js")
-o, --output [output_file] The deobfuscated output file (default: "output/output.js")
-m, --module Parse an ESModule
-h, --help display help for command
Alternatively use the online version at deobfuscate.io
FAQs
A simple but powerful deobfuscator to remove common JavaScript obfuscation techniques. Open an issue if there is a feature you think should be implemented.
The npm package js-deobfuscator receives a total of 993 weekly downloads. As such, js-deobfuscator popularity was classified as not popular.
We found that js-deobfuscator demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
Meet Socket at Black Hat & DEF CON 2025 for 1:1s, insider security talks at Allegiant Stadium, and a private dinner with top minds in software supply chain security.
Security News
CAI is a new open source AI framework that automates penetration testing tasks like scanning and exploitation up to 3,600× faster than humans.
Security News
Deno 2.4 brings back bundling, improves dependency updates and telemetry, and makes the runtime more practical for real-world JavaScript projects.