想學一下支付寶內購的相關知識,可是搜索了論壇,發現可是沒有相關的帖子,因而即是打算本身來寫一篇總結
1、9000的十六進制代碼修改
搜索9000的十六進制,也就是搜索0x2328
能夠找到一個smali,裏面含有着switch_0這代碼
以後,咱們進去就會看到一個switch結構的分支語句,將6001(對應着支付取消)的十六進制0x1771後面的switch修改成switch_0便可
相信你們也不用我多解釋什麼了吧
可是,通過個人測試,這方法只適用於在手機不安裝支付寶的狀況下,若是有支付寶的話,喚起支付寶破解就是不成功的,如何解決呢,請往下看
2、在手機安裝有支付寶的狀況下,讓其不喚起支付寶,而是跳轉到支付寶的網頁界面
這種方法我嘗試了好久,可是都是不成功,若是有路過的大神,但願可以補充一下,感激涕零!!
3、搜索「9000」,修改對應的邏輯
通常來講,各個APP中都會有一個方法來驗證支付寶返回的狀態碼是否爲9000(就是是否成功支付),因此咱們能夠找到這個方法,修改它的判斷條件,從而實現破解
在搜索出來的結果中,通常會有多個,能夠看下面的圖片
能夠從搜索到的那個地方往下看看,看看是否有paysuccess的方法調用,若是有咱們就能肯定這個文件就是咱們要修改的
上上一張圖片,我選中了一條代碼,這一條代碼就是實現支付成功跳轉的重要判斷,咱們能夠看一下cond_2的代碼
能夠發現,若是跳轉到cond_2的話,就說明是跳過了支付成功執行的相關代碼,那麼咱們將這一行判斷刪除就好了,它就會執行支付成功的代碼了
這裏須要提一下,每一個的APP的判斷機制會有所不一樣,上面這一個就是判斷是否不等於9000,是的話則跳轉到支付失敗,還有一些就是判斷是否等於9000,是的話跳轉到支付成功,請注意這兩個的區別,具體狀況須要具體分析
測試