天天看点

识货跳转x宝时携带参数的实现

完整内容及源码关注公众号:ReverseCode,发送 冲

最近在电商业务的设计中要求像识货app一样实现选好型号尺寸之类的商品属性后,跳转到淘宝时携带这些参数帮助用户自行选中,如下图所示:

识货跳转x宝时携带参数的实现

启动frida-server;

使用PKiD判断是否加壳;

识货跳转x宝时携带参数的实现

安装好识货app,由于没有加固,直接从AndroidMainfest.xml中拿到包名。jadx-gui *.apk 查看,<code>package="com.hupu.shihuo"</code>找到包名;

hook点击事件获取触发的类<code>frida -UF -l hookEvent.js</code>

点击尺寸型号时,选择配色尺码触发事件

识货跳转x宝时携带参数的实现

选好型号后,点击立即购买触发事件

识货跳转x宝时携带参数的实现

点击担保购买,查看触发事件

识货跳转x宝时携带参数的实现
识货跳转x宝时携带参数的实现
识货跳转x宝时携带参数的实现
识货跳转x宝时携带参数的实现

以上的类中没有任何线索涉及到参数的传递或者请求的跳转。

识货跳转x宝时携带参数的实现
识货跳转x宝时携带参数的实现

在DetailOfShoesBFragment实例中,ShoeDetailSecondModel极有可能有关键性线索实现参数携带跳转。

识货跳转x宝时携带参数的实现

可是当我整个字符串拷贝下来时,发现连个taobao的毛都没看到,再次dump该实例,也没有什么重要线索。

识货跳转x宝时携带参数的实现
识货跳转x宝时携带参数的实现

找到SupplierInfoModel类在jadx看源码是有一些关键性字段的,如price,href等。

识货跳转x宝时携带参数的实现
识货跳转x宝时携带参数的实现

将这段href拷贝下来,解码后如下:

很明显这段是识货自行封装的协议,后面参数<code>url=</code>应该就是跳转到淘宝的链接。

将<code>https://item.taobao.com/item.htm?id=643291979969&amp;skuId=4798775291256&amp;dspm=46e625b0904faa9c&amp;fromShType=1&amp;goodsType=4&amp;openType=1&amp;shopId=cn.taobao.62301187&amp;category_type=1&amp;goods_id=13#{"from":"shihuo://www.shihuo.cn?route=goodsDetail","block":"Supplier","tp":"Supplier","sku_id":88366767,"extra":"2","dspm":"46e625b0904faa9c","pos_type":2,"goods_id":"13","supplier_id":"8234343","style_id":"6459093","size":"41","price":"1002","sort":"2","filter":"0000000","is_recommend":0,"goods_sku_id":12331971}</code>链接拷贝到手机浏览器中自动跳转到淘宝,点击选项时加上了选择条件。

逐步删除条件,最终得到<code>https://item.taobao.com/item.htm?id=643291979969&amp;skuId=4798775291256&amp;fromShType=1&amp;goodsType=4&amp;openType=1&amp;shopId=cn.taobao.62301187&amp;category_type=1&amp;goods_id=13</code>,一旦删除skuId将不能携带型号等属性自动选择。

淘宝的skuId就是将信息同步到淘宝,淘宝将自动选中用户在识货选中的条件。

本文由博客一文多发平台 OpenWrite 发布!