首頁 > 手機軟體

防止android apk反編譯的技術分析淺談

2019-11-29 02:23:25

   android apk反編譯現在十分普遍,導致很多app開發者產品遭到破解和克隆,山寨應用橫行,這些山寨應用往往會植入廣告、惡意扣費等程式碼,造成使用者使用體驗降低

1

   Apk反編譯修改器有很多。拿其中的比較出名的八門神器來說,該應用通過修改正在執行的遊戲的記憶體資料,可以非常方便地修改遊戲的HP、MP、生命數等等引數。辛辛苦苦開發的遊戲或應用被修改器一修改就悲催了。

    就通過一個demo來講下,怎麼通過多資料關聯來保護應用的重要資料不被修改。這個demo很簡單,只有一個TextView和一個Button。點選Button,TextView加一。


2

   執行八門神器,鎖定gold記憶體地址,把值改為999。然後點選Button,click方法中,程式碼從記憶體中讀取了被修改的gold值,並把它+1顯示到TextView。TextView顯示1000,資料修改成功。



3

 下面我們對程式碼進行下修改,增加一個變數goldMd5用來存放加密後的gold值。這樣我們就用了兩個變數來儲存gold的值,一份加密的和一份未加密的變數。


4

   每次使用gold值時都對獲取的gold進行md5加密然後與goldMd5進行比較。如果不相同,說明gold值被修改了。我們可以判斷為作弊了,我這裡對作弊的處理是把gold值改為0,並提示作弊。如果加密資料使用的des演算法,還可以通過解密goldMd5,來獲取真實的gold值。


5

  下面測試下demo還能不能被修改。使用八門神器把gold改為999。然後點選Button,資料修改失敗。


6

     通過以上幾個步驟就可以輕鬆防止工具(八門神器)進行記憶體修改,這對我們開發者來說可是解決了個大難題啊。當然通過這個方法不可能達到一勞永逸的效果,由於目前app市場混亂,打包黨橫行,進行記憶體修改的方法可謂五花八門,這就需要求助於專門的app加密服務平台了。可以試試一些提供加固服務的第三方平台,這裡推薦一個免費高效的加密平台—愛加密,它通過Android提供的NDK技術將核心程式碼,用安全性更高的C/C++語言實現。並提供給Java層呼叫來保證程式核心程式碼的安全,從而保證so庫檔案不被破解。該平台一直在不懈努力為開發者提供更安全有效的apk加密保護,淨化目前國內安卓市場盜版橫行的亂象,維護APP開發者健康發展的生態鏈!



IT145.com E-mail:sddin#qq.com