一 、将JavaScript 代码转换成颜文字网络表情的编码已达到混淆的目的
原理:这类混淆通常都是使用构造函数将字符串作为代码运行
例如:
const sum = new Function('a','b','return a+b');
console.log(sum(2,6));
解决方法:
1.直接将混淆后的代码粘贴到控制台通过VM 查看源代码 只对报错代码有效
2.对于在控制台输出不报错的代码,第一种方法:删除代码结尾的“(’_’);”,第二种方法:删除后替换为“toString()”方法输出,再将修改后的代码粘贴至控制台运行
二、将JavaScript 代码转换成只有6种字符([, ], (, ), !, +)的编码,以达到混淆的目的
例如:
‘0’:’[+[]]’
‘1’:’[+!+[]]’
…
解决方法:
1.直接将混淆后的代码粘贴至控制台通过查看VM查看源代码
2.代码最后有成对的括号,删除代码结尾的‘()’ ;或者替换为 ‘toString()’ 或将修改后的代码粘贴至控制台运行。
3.代码最后没有成对括号,只有列如‘)’这种,将代码通过https://beautifier.io/ 这个网站美化以后,复制到编辑器中,通过最后一个括号找到前面括号,把括号之中的代码复制出来,在控制带输出就会得到源码
三、通过eval()编码的代码
解决方法:
将eval 中的代码复制出来,更改为alert / document.write / console.log 在控制台输出就能解密
本文介绍了JavaScript代码混淆的两种常见手法:颜文字网络表情编码和仅用六种字符的编码,并提供了对应的解密方法。对于前者,可以通过查看VM源代码或修改代码后在控制台运行解密。对于后者,若代码结尾有成对括号,可删除或替换后运行,反之则需要通过代码美化工具定位源码。此外,还讨论了eval()编码的解密策略,即通过改变eval内的代码并输出来揭示原始内容。
1680

被折叠的 条评论
为什么被折叠?



