apk安全的一點思考

從普通開發環境來說,思考apk的安全性有以下幾點
1、防止二次打包:
  由於android打包過程中系統只要求自簽名,不強制要求第三方權威機構簽名認證,所以很容易通過解析apk包,修改或者是刪除其中存儲簽名信息的META-INF文件來進行重新簽名打包,

解決方案

  在系統安裝apk時拿到正確的簽名文件,與當前簽名文件做對比,是與否進行不同操作

2、防止反編譯:GitHub上有很多開源反編譯工具,這些工具流程都大同小異:反編譯,修改,優化,dex轉jar,簽名,打包

解決方案

  現在主流的觀點是加密apk文件中的.dex文件,然後將解密辦法存儲到另外一個路徑中,然後給程序加一個殼,在運行apk時先運行殼apk,然後取出解密辦法解密dex文件運行程序

3、防止惡意篡改:理論上防止二次打包和反編譯就能防止惡意篡改apk內容
4、防止動態分析調試:比如在開發工具中拿到調試Log等,

解決方案

  清單文件中或者Gradle設置了debuggable="true"才能調試應用程序,所以發佈版中禁止debuggable模式,還要防止第三方人員惡意篡改,可以在代碼中做二次檢測確保條件是否符合

5、防止模擬器運行apk:模擬器很容易爲非法分析apk提供便利

  • 模擬器很容易拿到root權限
  • 模擬器對應用程序調試條件限定很寬鬆
  • 模擬器的IMEI號並不是真實物理設備
  • 模擬器的dev目錄下有特殊文件
  • 模擬器build信息和真機有差異
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章