taobao app 爬虫杂谈

taobao app 爬虫杂谈,第1张

taobao app 爬虫杂谈 仅供学习研究 。请勿用于非法用途,本人将不承担任何法律责任。 参考文章

frida sekiro fridaManager 环境搭建
frida 加载 sekiro dex 文件 实现与服务端交互
frida sekiro 实现 taobao sgmain 70102 远程 rpc 调用
androidAsync fridaManager 实现某宝 sgmain 70102 rpc 远程调用
某宝系 tb tm sgmain x-sign 分析 - unidbg

sekiro

最近一直在研究淘宝 APP 的爬虫,从加密参数到风控的测试,坑是真不少啊
博主技术有限,没办法直接破解 sgmain 的加密参数,只能依赖 frida xposed 等工具 hook 调用
unidbg 也是跑不起来,x-mini-wua 也是没搞定,最后还是使用的 frida + sekiro 远程 rpc


过程也是一波三折,sekiro 官网只有 java js 的 sdk,奈何没有 frida 的
虽然 frida15 支持 socket 但是体验了之后,是真难用,一大堆问题,关键还是连接不上,也许是我是用的姿势有问题,最后还是 frida 加载 java 函数连接的


刚开始使用 java 自带的 socket,后面又陆续使用了 socketIo 等客户端
最后估计也是因为兼容问题,出现了一大堆问题,然后就把目标放到了 sekiro


想着是 sekiro 既然有 jar 包,那是不是可以打包成 dex 文件在使用 frida 加载进来调用
dex 打包的过程很顺利,一条命令就解决了


随后开始调用就遇到了第一个问题,大致信息 当前 classloader 没有 sekiro 的类
看到这个问题我也是一脸懵逼,tips: 我打开的是系统 app
这里就是一个坑,最后打开自己安装的 app 就没问题了,也不知道是不是因为权限问题


加载成功后就遇到了第二个问题,依赖包,我当时只是吧 sekiro 的主包转成了 dex
依赖包还是比较多的,如果每个都转成 dex 加载,就太麻烦了
最后还是吧 sekiro 的 java 代码抠出来,自己用 maven 重新打包,才解决的这个问题


sekiro dex 文件搞定后,后面的编码也是非常的顺利,并没有遇到啥问题
包括调用 sgmain 的 JNICLibrary.doCommandNative
使用的时候发现一个东东,官网也没有明确说明,如果有多个设备 group 一样 clientId 不一样的话
sekiro 自己会做负载均衡,依次调用每台设备


spider

sekiro 代码写完后,就开始写爬虫了,代码没啥难度,就是抓个包,然后拼接参数就 OK 了
大部分时间都花在了,debug 爬虫脚本,跟风控测试


debug 的过程也是非常艰辛,淘宝还是比较恶心的,有时候一个 urlencode 编码,都能排查半天
还是就是请求参数,请求头参数调试,同样的参数,上午还能正常请求,下午就不行了,真的是搞心态啊
还有 did device_id 这些参数,也是不很重要,可传也可不传


bug 改完了,就要开始测试风控,跟请求的 qps 了
因为手里的设备有限,就只拿了一部手机来测试,我是请求了两个接口
店铺的全部商品接口,商品详情接口


具体的测试结果就不公开了,大概是
列表页:风控比较低,参数调整好之后,请求几乎不会遇到任何问题,爬虫开了 10 个线程,都没被封,代理 IP 还是需要的
详情页:这个风控就比较高了,不能太快,中间还要有间隔,不然手机很容易就被封了,量也跑不起来


最后

放一张运行图片,脚本跑了 5个小时左右,没有任何问题,很稳定


更多精彩内容,源码文件下载等,原文链接,博主个人站点:https://www.qinless.com/440

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/4023746.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-10-22
下一篇 2022-10-22

发表评论

登录后才能评论

评论列表(0条)

保存