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>
















