先来看实现后的效果:
能看出这是一句赋值语句吗?
它混淆前的源码是:
即:a=2;这一句。
更准确的说是:
此图的效果是a=2;的第一重保护。
再经二重加密,会成为第一张图片所示效果。
二重的加密,会使赋值操作更为隐密。
实现方式是:
即,处理:AssignmentExpression,把整行语句的每个字符用fromCharCode函数转为数字。
再把赋值语句转为eval函数调用表达式,用于执行语句,使赋值操作正常完成。
执行效果如下:
对应源码可知,赋值成功。
本文来源:JShaman,一个专业的JS代码保护平台。