js混淆与反混淆
混淆方式:
- 代码压缩
- 代码混淆
- Javascript 提供了将字符串当做代码执行(evaluate)的能力,可以通过 Function 构造器、eval、setTimeout、setInterval 将字符串传递给 js 引擎进行解析执行。
- 变量名混淆
- 字符串混淆(进行加密或者是编码,目的:确保代码里面,不可以使用搜索的方式来查到原始的字符串)
- 进制/编码
- 利用数组进行拆分
- 常量改算术表达式
- 算术表达式改函数调用表达式
3.反调试
- 禁止 debugger
- 清空控制台
- 检测函数、对象属性修改
一些反混淆技巧:
最重要的就是耐心,F12打断掉,然后用console.log之类的方法一步一步去看,因为不论怎么混淆并不改变代码本身的逻辑,大多数都是可以慢慢调还原出来的。