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

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6

爬虫实战的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右键点击永不停止。

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

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6