JS逆向技巧汇总---给普通爬虫学习者的吐血建议

爬虫实战的JS逆向,就像是做侦探。很多时候,我们要尝试不同方式和手段寻找线索,不能放过蛛丝马迹,通过仔细观察和比较,然后顺藤摸瓜,找到加密入口。再调试JS代码的时候,需要保持清晰的目标和方向感,大胆尝试,才能获得结果。如果用好以下技巧,将能给我们带来眼前一亮,以及柳暗花明又一村的感觉。

抓包:
大部分网站通过浏览器就可以完成抓包,针对复杂的可以考虑利用Fiddle、Charlse等三方软件。


加密入口:
1.搜索关键词
比如“sign”,”sign:“, ”sign :“, ”sign=“,”sign =“
另外JSON.parse(, JSON.stringify, encrypt(, decrypt(都是可选关键词,有时会有意想不到的效果。
应该说搜索关键词可以解决80%以上的加密入口。
但不是万能的。

2、XHR断点,也是一个不错的选择。

 3、浏览器调试界面下点击Network下的某个请求,然后在右边的启动器中调试请求调用堆栈。

4、事件监听器断点,例如画布,脚本等。

5、代码调试:本地覆盖、代码段都是可以尝试的,还有全扣代码到Pycharm,然后尝试调用某个函数来实现加密或解密。
出现报错时,根据提示补充环境或者直接从浏览器调试中获得数据,把某个参数写死。
有些报错,可以尝试直接注释掉相应代码,不会影响结果。
如果JS代码可以得到结果但是程序不会终止,或者Python调用代码时一直得不到结果,很有可能是JS代码里有定时器函数作祟,可以hook以下函数,比如:
null=function(){}
setTimeout=null
setInterval=null

6、验证加密结果是否与浏览器一致时,可以尝试hook Math.random、Date.getTime、Date.Now等函数,类似上述hook定时器的代码。
Math.random=function(){return 0.123456}
Date.getTime=function(){return 0.123456}

7. 无限debugger,右键,点击永不停止。

不断更新中......
也欢迎各位大佬把你们的经验之谈留言在评论区,我来补充完善,分享给大家。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值