完整内容及源碼關注公衆号:ReverseCode,發送 沖
最近在電商業務的設計中要求像識貨app一樣實作選好型号尺寸之類的商品屬性後,跳轉到淘寶時攜帶這些參數幫助使用者自行選中,如下圖所示:

啟動frida-server;
使用PKiD判斷是否加殼;
安裝好識貨app,由于沒有加強,直接從AndroidMainfest.xml中拿到包名。jadx-gui *.apk 檢視,<code>package="com.hupu.shihuo"</code>找到包名;
hook點選事件擷取觸發的類<code>frida -UF -l hookEvent.js</code>
點選尺寸型号時,選擇配色尺碼觸發事件
選好型号後,點選立即購買觸發事件
點選擔保購買,檢視觸發事件
以上的類中沒有任何線索涉及到參數的傳遞或者請求的跳轉。
在DetailOfShoesBFragment執行個體中,ShoeDetailSecondModel極有可能有關鍵性線索實作參數攜帶跳轉。
可是當我整個字元串拷貝下來時,發現連個taobao的毛都沒看到,再次dump該執行個體,也沒有什麼重要線索。
找到SupplierInfoModel類在jadx看源碼是有一些關鍵性字段的,如price,href等。
将這段href拷貝下來,解碼後如下:
很明顯這段是識貨自行封裝的協定,後面參數<code>url=</code>應該就是跳轉到淘寶的連結。
将<code>https://item.taobao.com/item.htm?id=643291979969&skuId=4798775291256&dspm=46e625b0904faa9c&fromShType=1&goodsType=4&openType=1&shopId=cn.taobao.62301187&category_type=1&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&skuId=4798775291256&fromShType=1&goodsType=4&openType=1&shopId=cn.taobao.62301187&category_type=1&goods_id=13</code>,一旦删除skuId将不能攜帶型号等屬性自動選擇。
淘寶的skuId就是将資訊同步到淘寶,淘寶将自動選中使用者在識貨選中的條件。
本文由部落格一文多發平台 OpenWrite 釋出!