javascript deobfuscator
1.0.0
一个简单但功能强大的反混淆器,用于消除常见的 JavaScript 混淆技术。如果您认为应该实现某个功能,请提出问题。
在线版本位于 deobfuscate.io
通过npm install js-deobfuscator
安装
正在寻找特定于 Obfuscator.io/javascript-obfuscator 的反混淆器?试试这个仓库
如果您想讨论/了解 JavaScript 混淆和反混淆,您可以加入 Discord 服务器
解压包含文字(字符串、数字等)的数组并替换对它们的所有引用
删除简单代理函数(调用另一个函数)、数组代理函数和算术代理函数(二进制表达式)
简化算术表达式
简化字符串连接
重命名不可读的十六进制标识符(例如_0xca830a)
将计算值转换为静态成员表达式并美化代码
有关功能链接在一起的更复杂的示例,请参阅底部。
前
const a = ['x20', 'x57x6fx72x6cx64', 'x48x65x6cx6cx6f'];console.log(a[2] + a[0] +一个[1]);
后
console.log('你好' + ' ' + '世界');
前
函数 a(b, c) { 返回 someFunction(b, c);}const 结果 = a(5, 6);
后
const 结果 = someFunction(5, 6);
前
函数 a(b, c) { return c + 2 * b;}const 结果 = a(5, 6);
后
常量结果 = 6 + 2 * 5;
前
函数 a(b, c) { 返回 c + 2 * b;}函数 b(c, d) { 返回 a(c, d);}函数 c(d, e) { 返回 b(d, e);}常量结果 = c(5, 6);
后
常量结果 = 6 + 2 * 5;
前
让总计 = 0x2 * 0x109e + -0xc * -0x16a + -0x3234; for (让 i = 0x1196 + 0x97b * 0x3 + -0x2e07; i < -0x95 * -0x38 + -0x1a75 + -0x619; i++) { 总计 +=我;}
后
让总计 = 0;for (让 i = 0; i < 10; i++) { 总计 += i;}
前
console.log('He' + 'll' + 'o' + 'Wo' + 'r' + 'ld');
后
console.log('你好世界');
所有这些功能都可以链接在一起以简化代码。
前
常量 ar = [ 'x48x65x6cx6cx6f', 0x95, 'x20', 0x1a75, 'x57x6fx72x6cx64', -0x53, 'x6cx6fx67' ];const a = 函数 (b, c) { 返回 c + 2 *乙; }, b = 函数 (c, d) { 返回 a(c, d); }, c = 函数 (d, e) { 返回 b(d, e); };const 消息 = ar[0] + ar[2] + ar[4];const 结果 = c(ar[1] * 0x38 + ar[3] + 0x619, 0x12 * ar[5] + 0x1a13 + 0x621) ;控制台[ar[6]](消息+''+结果);
后
const message = 'Hello World';const result = 40106;console.log(message + ' ' + result);
接口配置 { 数组:{ unpackArrays:布尔值; 删除数组:布尔值; }; proxyFunctions: { 替换ProxyFunctions: 布尔值; 删除代理函数:布尔值; }; 表达式:{ 简化表达式:布尔值; 删除死分支:布尔值; }; 杂项:{ 美化:布尔值; 简化属性:布尔值; 重命名十六进制标识符:布尔值; };}
通过npm install js-deobfuscator
在本地安装模块并照常导入,或者全局安装npm install -g js-deobfuscator
并使用js-deobfuscator
CLI:
> js-反混淆器-h 用法:运行[选项] 对 javascript 文件进行反混淆 选项: -i, --input [input_file] 要反混淆的输入文件(默认值:“input/source.js”) -o, --output [output_file] 反混淆输出文件(默认值:“output/output.js”) -f, --force 是否覆盖输出文件 -h, --help 显示命令的帮助>
或者使用 deobfuscate.io 上的在线版本