Android應用安全加固

前言:Android開發者常常面臨的一個安全問題就是防反編譯破解、 防二次打包。因此,App在上線某些應用市場比如騰訊的應用寶時會要求你的應用apk進行安全加固,也就是和Windows平臺exe程序的加殼一樣。

一、爲什麼要對Android應用加固?

由於安卓APP是基於Java的,所以極容易被破解,一個不經過加固的APP猶如裸奔一樣,毫無防備。之前曾有新聞報道,一些專職的APP打包黑產就是專門從各種渠道找到apk,通過各種破解手段將apk文件破解、反編譯,然後加入廣告、病毒代碼,重新打包投入市場,不明真相的用戶將帶病毒廣告的apk下載下來,甚至因此造成利益損失。

90後這樣“薅羊毛”,判了!

二、加殼的概念

1、加殼定義

移動平臺攻防技術的發展基本是沿着PC端發展軌跡在進行,從windows平臺的加殼脫殼反調試到Andriod的平臺apk加固,反調試和代碼混淆等。

加殼是在二進制的程序中植入一段代碼,在運行的時候優先取得程序的控制權,做一些額外的工作。大多數病毒就是基於此原理。PC EXE文件加殼的過程如下:

2、加殼的作用和分類

作用:

加殼的程序可以有效阻止對程序的反彙編分析,以達到它不可告人的目的。這種技術也常用來保護軟件版權,防止被軟件破解。

分類:

從App的加固技術來看:主流分爲dex加密和so加密,目前來看保護dex文件更爲重要,應爲dex反編譯後的java代碼可讀性更強。

三、使用第三方工具自動化加固

對於移動應用開發工程師來說,應用自動化加固無疑是最便捷的一種安全方式了。通過加固可以在一定程度上達到反編譯和防止被二次打包的效果。當然,現在網上很多平臺都提供加固服務包括bat在內。加固原理差不多,但是加固強度和兼容性上還是有很大差別的。推薦騰訊的樂固移動應用加固的PC端工具:騰訊樂固應用加固助手 

使用應用加固助手,可以一鍵完成應用加固、簽名、多渠道打包等工作,如下圖。

1、首先要登錄,獲取雲API密鑰登錄加固助手

2、添加應用加固,會得到類似名字爲app-yingyongbao-release1.0_legu.apk,後綴有legu

3、騰訊雲應用安全需要將您的簽名信息刪除後才能加固,所以加固後的安裝包是沒有簽名信息的,現在需要您對加固包重新簽名。我們可以使用這個自主工具重簽名。

你可以使用你Android Studio已有的簽名文件,填完之後接可以了,會得到如下名字的文件:app-yingyongbao-release1.0_legu_aligned_signed。

我們可以看到主要是對apk的dex文件進行了加固處理,現在我們就可以重新在應用市場上傳我們加固好的app了。

 

參考鏈接:Android應用加固原理

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