Android入門破解題目(EX05_01_.apk、Crackme02.apk、CrackMe-F1F2.apk)

EX05_01_.apk

 

         通過查看java源碼我們可以發現,要想讓程序彈出“right++”,無論輸入什麼,都無法滿足if判斷條件(即與輸入無關)。於是我們修改smali代碼中的跳轉條件,然後在AndroidKiller中重打包應用程序,生成的新apk就是破解成功的apk。我們在模擬器上安裝運行,就會發現此時無論輸入什麼,應用程序都會彈出“right++”的提示信息,破解成功。

這裏不止這一種修改方式,我們還可以直接將“gogo”字符串變量修改爲“11”,以滿足if判斷條件。

 

Crackme02.apk

             在jeb中分析java源碼“MainActivity”,定位到關鍵函數“checkSN”,通過分析該函數得到程序對於用戶輸入的用戶名和16位註冊碼的處理流程如下:生成用戶輸入的用戶名的32位MD5值,然後依次取MD5值的第i、i+2…(i從0開始取值,小於32)位處的字符,拼接成正確的註冊碼。

根據分析,我們寫出對應的java程序,實現輸入用戶名,輸出對應正確的註冊碼的功能。

隨便輸入一個用戶名,輸入上圖中程序生成的註冊碼,點擊“註冊”,程序就會成功註冊如下圖,破解成功。

CrackMe-F1F2.apk

在jeb中分析java源碼“LisenceCheck”,定位到關鍵函數如下圖,分析該函數可得到以下信息——

  • 輸入的用戶名是由大寫字母組成的。
  • 正確的序列號應該是由0-9這幾個數字組成的一個字符串。
  • 程序的關鍵操作是一些異或計算。

 

根據分析,我們寫出對應的java程序,實現輸入用戶名,輸出對應正確的序列號的功能。

 

輸入一個用戶名及上圖中程序生成的序列號,點擊“驗證”,程序就會彈出“Lisence Correct!”的提示信息,破解成功。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章