閒來無事,想抓取一下“XX值得買”上排行榜的即時資料,按照通用方法
-
安裝夜神模擬器 新增android 5.0版模擬器
-
安裝xposed框架
-
安裝JustTrustMe.apk
-
開啟fidder 配置好模擬器代理
-
抓取成功
-
把抓取請求引數複製到postman中重複請求,成功
常規來說操作到這步就截止了,不過我突然發現url裡有一個sign引數,說明每次請求是帶簽名的,我把sign修改一下,果然請求失敗了。
所以問題變成了怎麼得到請求籤名方式,而這隻能通過反編譯來實現了。
於是,開始查如何反編譯,無非是三件套 apktool,dex2jar,jd-gui或者jadx-gui
先下載好app的最新安裝包,使用apktool進行解包
apktool d -s -f test.apk
可以看到,其中有多個dex檔案,所以直接用dex2jar將apk轉換成jar檔案即可
d2j-dex2jar.bat test.apk
得到test-dex2jar.jar
在jadx-gui中開啟該jar即得到全部反編譯原始碼
搜尋上面抓取到的介面地址,定位到相關程式碼
看來這個a方法就是簽名方法
點進去以後 找到了key和具體簽名方法
但是獲取key的方法竟然是一個native方法
這可如何是好,本來我想搜尋如何除錯native方法,發現還要看組合語言,這可把我難住了。
不過轉念一想,我不用除錯native,我只要能取到這個native方法的返回值不就好了。
所以,下一步就是用android studio除錯反編譯出的原始碼,獲取到key。