代码混淆技术的还原案例
案例一 eval 混淆
特征 : 反常的 eval 连接了一堆数据
练习网站
https://scrape.center/
spa9 这个案例
基本的还原方法
但是这个代码还是非常的模糊不好看
优化一下 :
当然还有更快捷的方法 :
好用的 js混淆还原的 web :
https://jsdec.js.org/https://lelinhtinh.github.io/de4js/
真实的案例 :
https://www.aqistudy.cn/
这个案例之前做过就是 debugger hook失败的那个 原因就是 hook无法处理eval 混淆的数据
这个eval可能比较不同 就是他的这个这个里面还有一个函数 其实里面这个就是解密数据的 然后 eval 解密回显到前端
案例二 JJencode :
spa10 特征 : 反常的 $,[]等特殊符号
手lu :
原理就是 函数 如 xiaodi() 这个是混淆的函数 然后我们去掉 () 函数就失效了源码显现
老套路优化一下就出来了
案例三 : AAencode
特征其实就是颜文字 :
判断之后直接网站解
案例四 : JSfunck
特征 :就几个元素 [] ! + ()
也是去 括弧解法
或者是 直接在webstrom中进行运行 :
案例五 :ob混淆
obfuscator :特征 就是 无规则的0x 以及 类似于计算机中文符号的 /x
这个只能使用 AST(js的原始算法进行解密)
AST的基本语法
AST explorer
官网 我们写入一个简单的js代码
并且还有就是转为ast的语法结构 :
VariableDeclaration 代码声明的变量
其实这个ast就是前端的对语法单词的转换 每一个块都是这个树上的一个树叶 :
当我们点击name的时候
ldentifier 翻译一下就是标识的意思 这个也确实就是标识符的意思
第三个块就是里面的内容 也是一个块 其实 = 这个也是在这个ast树有自己的结构类型的 (他也是标识符)
Literal 就是文本内容的意思
为什么ast树可以很好的分析 这个 ob混淆呢 因为混淆的原理就是就是把代码中我们能看懂的内容变为我们看不懂的内容 就是把内容混淆了 还有一些函数的名字等
我们使用ast树操作一下这个ob加密的代码
使用ob混淆web进行混淆一下
复制到树那边
其实就能看着这个类型进行分析的
web直接梭哈 :
https://obf-io.deobfuscate.io/
https://webcrack.netlify.app/
https://deli-c1ous.github.io/javascript-deobfuscator/
这三个web都是非常好用的
上练习web :
抓包发现前端的数据被混淆 通过特征 0x _开头的函数可以知道是ob :
方法1 直接web梭哈
方法2 就是使用 ai+ast树进行分析
使用 deepseek 直接分析
但是有个就是 ob 混淆的延伸 v代号的混淆 这个只是国内小作坊的二开
案例 : jsjiami v6 :
https://eisk.cn/Tides/1346.html
这样的不经意看还以为是ob 但是和 ob差的就是 \x 这类中文字符的加密
复制到
拿到代码
判断是aes加密的文件 先把算法逆了
https://www.mklab.cn/utils/aes
发现主页类似于这样的加密数据
是不是直接拿下了 发现这个就是页面显示的内容