AST实战|js代码中混乱的变量名优化思路分享

关注它,不迷路。       

本文章中所有内容仅供学习交流,不可用于任何商业用途和非法用途,否则后果自负,如有侵权,请联系作者立即删除!

1. 让人神经错乱的变量名

相信大家都见过以 _$ 开头的变量名,这种变量名杀伤力不是很强,看着也还行,它是某数的特征;也有以 $_ 开头的变量名,它是某验的特征;也有以 _0x 开头的变量名,很多没有基础的小白就被这个名字搞糊涂了,这是十六进制吗?它是著名的国外混淆框架混淆后的变量名。地址:

https://obfuscator.io/

还有一个杀伤力比较强的变量名,形似蝌蚪,如:

a60a9653d4d05621d90f1edbbf8c24a9.png

注意,它并不是乱码,它是可以正常运行的代码。这种代码看着真让人窒息。因此,得想个办法将其替换成我们能看懂的代码。

下图就是我经过变量名优化后的代码,看着不再那么恶心。

d0ad3307c9d70e2bc60bdff5b2c1e089.png

2. 优化思路

  1. 先收集需要处理的变量名。你需要处理的变量名总会有特征,比如,以 $_ 或者 _0x 开头。比如上面的 蝌蚪文,它就是非 ASCII码,判断一下即可。遍历 Identifier,然后将符合特征的变量名放入 到一个 Array里,注意需要过滤重复的变量名。

  2. 再次遍历 Identifier,如果存在于上面的Array里,则随机生成一个2位或者3位英文字母的变量名,调用scope.rename替换即可。

  3. 当然,你需要确保随机生成的变量名没有重复的才行。

  4. 不建议变量名中包含数字,毕竟只是为了美化。

今天的文章就分享到这里,后续分享更多的技巧,敬请期待。

e8f7e69d30feef99314367f42719b7b4.jpeg

欢迎加入知识星球,学习更多AST和爬虫技巧。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值