JS 逆向中的常见混淆

一、eval混淆

  • eval介绍:V8引擎定义的方法,具有执行JS代码的功能,一般用于隐藏真实代码,嵌套很多个eval
//eval("function cc(){return '52Hz'} cc()")

//单重转码
//eval(atob("ZnVuY3Rpb24gY2MoKXtyZXR1cm4gJzUySHonfSBjYygp"))

//多重转码
//"eval(\"function cc(){return atob('NTJIeg==')} cc()\")"
eval(atob("ZXZhbCgiZnVuY3Rpb24gY2MoKXtyZXR1cm4gYXRvYignTlRKSWVnPT0nKX0gY2MoKSIp"))

二、AA和OO混淆

JS支持unicode所以可以借助多国语言进行混淆代码
通过AA加密并执行
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

https://www.sojson.com/aaencode.html 加解密工具

AA和OO拦截

他们的原理都是通过eval去执行一段代码的,

有没有比较针对的手段去破解此类加密呢?

可以将eval或者Function进行替换。

sojson.$ =  function(){debugger;}

在这里插入图片描述

三、JSFuck混淆

  • 任何一个js类型的变量结果 加上一个字符串 ,只会变成字符串。

猜你喜欢

转载自blog.csdn.net/weixin_44236034/article/details/129728439