在浏览器中使用 AST
https://mp.weixin.qq.com/s/oXYSzsPVr5Ro348c9Gn_QQ
<!DOCTYPE html> <html lang="cn"> <head> <meta charset="UTF-8"> <title>AST 实时反混淆模版</title> </head> <body> <script src="https://unpkg.com/@babel/standalone/babel.min.js"></script> <script> //导入所需要的依赖,如果不够请自行添加,非必要这里不用改动 const types = Babel.packages.types; const parser = Babel.packages.parser; const traverse = Babel.packages.traverse.default; const generator = Babel.packages.generator.default; //实际的反混淆函数 function astProcess(s) { //解析代码 let ast = parser.parse(s); //这里写你的反混淆逻辑 //举个例子: traverse(ast, { Identifier(path) { path.node.name = path.node.name.split('').reverse().join(''); } }) //反混淆逻辑结束 let {code} = generator(ast, opts = { "compact": true,//建议压缩代码,防止格式化检测。压缩后可以使用浏览器格式化,浏览器格式化不会触发格式化检测 }); return code; } </script> <script> //这里调用 AST 反混淆逻辑,举个例子 let code = astProcess('let abcd=1; ' + 'console.log(abcd)') console.log(code); </script> </body> </html>