1. 程式人生 > >破解的一款抓包工具,debug proxy,教你怎麼修改so

破解的一款抓包工具,debug proxy,教你怎麼修改so

1.這個軟體可以在google play裡搜到,很不錯,用來抓取手機裡app的網路請求,可以模擬弱網路,抓取部分http等,是一個很好用的網路除錯工具。下載地址:https://pan.baidu.com/s/1i5qw6Zb


2.這個apk只有在Google play裡下載安裝才能正常使用,其他路徑下載的不能正常使用。

這個apk只有一個so,破解還是比較容易,用ida開啟so,按F5,可以看到做了校驗的地方,

第一個是installerPackageName

第二個是簽名,

第三個是是否開啟了除錯模式(因為我沒有在Manifest裡配置,手機是root後開啟系統除錯了,這裡沒改)。


先看第一處,


這裡對installerPackageName做了校驗,獲取到v16如果為null, 就會失敗,並且通過命令列或者某些手機安裝器安裝的話,會返回null,所以通過別的途徑的安裝後不能使用,會被標記為破解的

這個對應的指令為:



當然你也可以直接修改賦值R5一個com.android.vending的字串,但是我沒數賦值字串的指令夠不夠

修改後對應的指令為



這樣最後R5裡就是一個jString "com.dans.apps.webd"。為什麼這樣修改呢?因為後面R5裡還要使用轉化成c的String,所以避免麻煩修改後面直接改這裡,所以需要給R5一個jString。


第二修改對installerPackageName的判斷



通過R5裡拿到的 "com.dans.apps.webd" 會和 "com.android.vending"比較,

如果一樣會到條件loc_16DC0裡,很明顯我們修改過上面後,到這裡是不一樣的,

所以我們改成CBNZ  R0, loc_16DC0, 這樣就破解了對於安裝器包名的校驗了


第二個是對簽名的校驗:



因為我們重新打包後,簽名會改變,所以這裡簽名是通不過的,這個改起來也很簡單,

相等的話,會走到條件loc_16EF0裡,我們可以改下面MOVS這行,改成CBNZ R0, loc_16EF0

這樣,無論他是否相等,都會走到正確的條件裡了

這兩處是對so裡的破解,java層還有對是否購買服務的判斷,只要修改boolean值就行。


對於arm指令轉hex的工具,這裡有一個線上的很好用,推薦給大家

http://armconverter.com/