关注它,不迷路。
本文章中所有内容仅供学习交流,不可用于任何商业用途和非法用途,否则后果自负,如有侵权,请联系作者立即删除!
1. 让人神经错乱的变量名
相信大家都见过以 _$ 开头的变量名,这种变量名杀伤力不是很强,看着也还行,它是某数的特征;也有以 $_ 开头的变量名,它是某验的特征;也有以 _0x 开头的变量名,很多没有基础的小白就被这个名字搞糊涂了,这是十六进制吗?它是著名的国外混淆框架混淆后的变量名。地址:
https://obfuscator.io/
还有一个杀伤力比较强的变量名,形似蝌蚪,如:
注意,它并不是乱码,它是可以正常运行的代码。这种代码看着真让人窒息。因此,得想个办法将其替换成我们能看懂的代码。
下图就是我经过变量名优化后的代码,看着不再那么恶心。
2. 优化思路
先收集需要处理的变量名。你需要处理的变量名总会有特征,比如,以 $_ 或者 _0x 开头。比如上面的 蝌蚪文,它就是非 ASCII码,判断一下即可。遍历 Identifier,然后将符合特征的变量名放入 到一个 Array里,注意需要过滤重复的变量名。
再次遍历 Identifier,如果存在于上面的Array里,则随机生成一个2位或者3位英文字母的变量名,调用scope.rename替换即可。
当然,你需要确保随机生成的变量名没有重复的才行。
不建议变量名中包含数字,毕竟只是为了美化。
今天的文章就分享到这里,后续分享更多的技巧,敬请期待。
欢迎加入知识星球,学习更多AST和爬虫技巧。