声明
本人的所有操作只用于学习和探讨,提升技术~
请大家不要胡乱操作!
如有侵权,联系删除~
首先抓包手机客户端
抓包最后得出的结论是,除了图片等非重要信息的链接,其他关键接口均为https加密请求,无法从中获取有效信息。
接着开始反编译APK
解包以后,发现拼多多安卓开发人员还是比较友好的,没有混淆加固。
通过image、file、upload等多个关键字搜索排查,初步判断,需要请求得到一个签名(signature)。
进一步溯源分析
可以发现,请求签名的头部(Header),经过测试,其中最重要的一个请求参数是AccessToken。通过搜索AccessToken关键词,发现它是用户信息的其中之一,是一个会在一段时间后改变的参数,同理,在一段时间内,这个参数是可以有效使用的。探索到这,发现拼多多为了限制请求滥用,煞费苦心!
经过多次分析,最后发现,/general_file这个接口是负责上传需要识别的图片的,当然,需要加上sign签名信息也就是上面请求的结果。
最后,得到完整的请求结果:{“url”:“https:\/\/appsearchimage.yangkeduo.com\/search-img-extractor-app\/2021-xx-xx\/xxxx.jpg”,“md5”:“xxxx”}
到了这里,上传图片的步骤已经完成了。
最后的最后
将请求的链接拼接起来,就可以得到完整的拼多多以图搜图了。
值得提醒的是
拼多多对请求限制非常严格,几乎不会超过10次,就会弹出验证,另外Token的有效期也不是很长。另外,当你在浏览器使用的话,会发现点击H5页面元素是无效的,因为拼多多元素点击是单独在客户端View层。当然,可以通过js补充元素点击事件。最后,附上成功的展示吧。
补充
本文仅提供思路。感谢看到这里的你!感兴趣可以找我学习探讨~