有人說Android程序用Java代碼寫的,再怎麼弄都是不安全的,很容易破解的,如今晚上關於應用加固的技術也不少了,固然這些也能夠用於商業發展的,梆梆加密和愛加密就是很好的例子,固然這兩家加固的Apk也是被不少geeker拿來練手和研究的主要對象,沒有絕對的安全,只有相對的攻防。那麼今天就來介紹一下關於Android中的加殼原理,固然這些技術是指大致上的原理介紹,和那些商業加固差距仍是很大的,性能優化和加密難度上都是有差異的,開始今天的主題吧:安全
以前介紹了一篇關於Android中Apk加固的原理介紹的文章:性能優化
http://blog.csdn.net/jiangwei0910410003/article/details/48415225微信
這篇文章主要介紹瞭如何對dex加密來實現加固,這裏就不作太多的介紹了,下面咱們來看一下如何對native層進行加密,從而增長破解難度。咱們在使用native層的時候,咱們都知道通常是和Java層調用native層函數,那麼咱們就須要對native層函數進行加密,把重要的功能實現存放到native層,加大破解難度,那麼咱們來看一下如何對so中的函數進行加密?函數
這裏有兩種方案:性能
一、咱們知道so文件中有不少section,咱們能夠將咱們的目標函數存到指定的section中,而後對section進行加密便可。學習
關於這裏的實現,參見這篇文章:優化
http://blog.csdn.net/jiangwei0910410003/article/details/49962173
加密
二、直接對目標函數進行加密spa
關於這裏的實現,參見這篇文章:.net
http://blog.csdn.net/jiangwei0910410003/article/details/49966719
這兩篇文章都詳細介紹了具體的實現方案和原理,這裏就不作太多的介紹了,後續我將開始介紹破解的相關知識,那時候咱們會發現,咱們作的這些加固其實並無什麼卵用,因此在研究逆向的時候,弄很差會變瘋的,由於在你研究完了加固以後,還要去破解它,沒有絕對的安全,只有相對的攻防。惟一的收穫是在這個過程當中學習到更多。其餘下期的破解文章吧~~
PS: 關注微信,最新Android技術實時推送