APP攻防--安卓逆向&資料修改&邏輯修改&檢視修改
@
工具集
MT管理器
NP管理器
APK查殼工具PKID
開發助手專業版破解版 v6.8.4
開發者助手
Smail語法查詢
HttpCanary(小黃鳥)
吾愛破解demo(密碼52pj)
以上工具均可在吾愛破解論壇影片《安卓逆向這檔事》中找到
影片地址《安卓逆向這檔事》
apk目錄意義
逆向資料修改
在吾愛論壇大佬寫的練習逆向app中,第一關完成對app中得圖片與文字替換
使用MT管理器對目標APP進行安裝包提取定位
提取之後檢視APK中得程式碼
圖中得資料夾中就是APK未進行反編譯得程式碼
使用開發者助手抓取APP上的文字內容進行復制
使用MT管理器中的搜尋功能對關鍵字進行搜尋
搜尋出只有JF.xml檔案中包含關鍵字
將檔案進行反編譯之後使用搜尋功能對檔案中關鍵字進行搜尋,找到關鍵字位置進行修改即可完成對關鍵字的替換,更換完成儲存並對檔案更新即可。
下面繼續對其他關鍵字進行搜尋,發現結果在resources.arsc檔案中存在。
透過搜尋資源值進行搜尋
透過搜尋找到關鍵字所在的位置,按照搜尋結果路徑即可順利找到字元所在位置進行修改。
同樣透過檢視id值也可以實現定位。
透過id定位的結果也一樣。
透過各種方式的查詢找到了關鍵字的位置,即可對關鍵字進行修改
第三個關鍵字在dex檔案中,這個檔案寫的是APP的執行邏輯程式。
透過dex編輯器++方式開啟classes.dex檔案對關鍵字進行查詢,根據查詢字串或者查詢程式碼、類名等方式找到了關鍵字所在位置。
對關鍵字進行修改儲存即可
最後將apk進行簽名覆蓋安裝即可
簽名之後會啟動生成一個apk檔案,覆蓋安裝即可
重新啟動執行後即可發現,我們所要修改的關鍵字成功唄修改成我們想要的語句。
逆向邏輯修改
在吾愛破解demo第二關中,在進行一鍵三連時,需要首先獲取10個硬幣,我們需要繞過此項驗證。
透過對關鍵提示字進行搜尋,定位到了以下smail程式碼,使用其他工具NP管理器、jadx等進行搜尋轉為java程式碼之後,發現是一個if語句進行控制
透過smail語法查詢即可獲取執行邏輯,將執行邏輯改變即可。如下透過查詢smail語法得知,原smail程式碼透過判斷p0和v0的關係來得知是否具備10個硬幣,我們只需要將其取反,將if語句由if-ge改為if-le即可修改執行邏輯,在沒有10個硬幣的情況下也可以進行下一步操作。
修改儲存,對apk進行簽名後安裝即可。再次對修改後的APP啟動後發現成功繞過硬幣檢測。
逆向檢視修改
在demo第三關中,發現會彈出廣告,要想將他繞過,就需要監視模擬器上檢視的跳轉情況。
使用MT管理器的Activity記錄來監視檢視跳轉情況
由於廣告彈窗是在第三關介面中停留若干秒才彈出來,因此我們需要進行排查,首先從第三關介面的類中去排查。透過搜尋關鍵字類名進行搜尋。搜尋結果如下
對第一個類進行檢視
透過loadAd這個方法名大致意思為載入Activyity的意思,這裡的0x3e9是1001 的十進位制表示,而 0xbb8則是3000 的十進位制表示 ,這裡程式碼的意思是1秒到3秒的時間間隔,嘗試將這兩個值修改為0。
從轉換後的java程式碼也可以大致猜出什麼意思。
將apk進行儲存簽名後重新安裝,開啟後發現廣告彈窗成功繞過。
某小說升級vip
在vip處找到關鍵字開通,透過MT管理器進行反編譯,然後搜尋開通關鍵字
搜尋結果如下,由於dex檔案所寫的為APP執行邏輯,開通vip的這件事情是邏輯修改,因此優先檢視dex檔案
在dex檔案中搜尋結果中幾乎全部都是顯示的字串,跟邏輯幾乎沒有什麼關係。
在資源id對應檔案中搜尋結果如下,其中有一項已開通,另外兩個方法在命名中的HK和TW應該是其他地區的邏輯。我們嘗試將此方法對應的id值長摁複製,拿去dex檔案中去搜尋。
在dex檔案中搜尋結果如下,其中第一個結果為初始化函式,因此第一個一般不會去修改
經過對smail語法分析,其中決定vip是否開通的關鍵在與y5函式的執行結果,透過對y5函式的追蹤,對y5函式的返回結果v0強制賦值為true,0x0變為0x1。
在對目標apk進行簽名重打包過後重新安裝,再次檢視介面,發現成功繞過vip開通檢測,成功開通vip。
某兔去除廣告
在開啟目標APP後,發現介面上載入有廣告,想辦法去除掉。由於這個廣告並沒有進行跳轉,因此不能使用監控Activity的方式來獲取廣告的檢視。
使用開發助手的佈局檢視功能檢視廣告所在的檢視
開啟佈局檢視功能後選中廣告所在位置即可
選中後會出先兩個檢視,第一個檢視才是廣告檢視,第二個選中後紅框圈中的範圍並不是我們想要的範圍,因此第一個檢視才是我們想要檢視的檢視。
選中後上面記錄著檢視實現的類名,根據類名進行查詢實現程式碼。
搜尋結果如下,檢視設定一般在xml中。
嘗試將檢視的高度和寬度設定為0。
將目標apk編譯重打包加入簽名後重新安裝並啟動,成功將廣告去除。
某桌布升級vip
目標APP開通vip的方式類似於Web中的前端校驗繞過,這裡實現的方法是固定返回資料包,將身份證明的資料包進行修改,並透過抓包工具將APP每次請求伺服器的資料包都進行修改。這個方法的前提是要知道身份偽造的資料包的具體引數。
資料響應包應修改如下
{
"code": 200,
"data": {
"id": 2220156,
"userId": "8kMP5il1",
"phoneNum": "手機號",
"username": null,
"avatarUrl": null,
"coverUrl": null,
"gender": 0,
"vipType": 256,
"vipPastDueTime": 0,
"vipLabelLevel": 3,
"vipLabel": "元老使用者",
"createTime": 1693635001297,
"updateTime": 1693635001297,
"vitalityVipPastDueTime":253392455349 ,
"accountSign": null,
"webBackground": null,
"unionId": null,
"age": 0,
"category": null,
"isVirtual": 0,
"qqUnionId": null,
"pcVipType": 256,
"pcVipPastDueTime": 253392455349,
"vitalityPcVipPastDueTime": 253392455349,
"token": "賬號token"
},
"error_msg": null
}
使用小黃鳥開啟抓包
關鍵請求資料包如下,使用過濾功能過濾關鍵字token即可定位。
對目標資料包進行重寫
將資料包的資料載荷部分進行修改儲存
選擇線上編輯,將要固定的資料修改儲存即可
在外掛管理器中開啟外掛,同時開啟抓包即可。再次開啟目標APP即可發現成功開通VIP
以上內容僅作學習記錄,如有錯誤或瑕疵,歡迎批評指正,感謝閱讀。