關於AES:加密方式,讓你的APK無懈可擊

曾經在阿里碰到一道面試題
面試官問:APK打包流程是什麼

(更多完整項目下載。未完待續。源碼。圖文知識後續上傳github。)
(可以聯繫我VX:×××)

今天本文主要講解:

APK文件反編譯

  • 什麼是反編譯
  • 如何防止反編譯
  • APK文件的基本構造

APK加固的方案原理

  • APK加固總體架構
  • APK打包基本流程
  • Dex文件的意義

AES加密項目實戰

  • APK加固項目實戰
  • APK脫殼技術實戰

關於AES:加密方式,讓你的APK無懈可擊

一.APK文件反編譯

1.什麼是反編譯
  • 定義:
    利用編譯程序從源語言編寫的源程序產生目標程序的過程
    2.怎麼進行反編譯?

    先了解apk的文件構造結構關於AES:加密方式,讓你的APK無懈可擊
    關於AES:加密方式,讓你的APK無懈可擊

    二.加固方案思想

    一個程序員的故事:

    辛辛苦苦找到一個對象,結婚後發現是個母夜叉。不給管錢就鬧,晚上睡覺她趴着睡,導致這程序員無法去洗腳了。然而這個程序員很努力,平時除了上班,還能夠做點外包,賺點外快。所以他就想到了把工資卡上交,而把賺到的外快放到了自己的小金庫。從此過上了X福生活

一個加密的故事:

通過將非核心的dex文件進行暴露來達到保護核心dex文件的目的。

關於AES:加密方式,讓你的APK無懈可擊

三.基本原理

3.1Apk打包流程

加殼是在原來apk的基礎上加一層保護殼,dex文件修改了就需要重新打包,否則apk安裝不了。這就需要我們詳細學習apk如何打包的

3.2Dex文件是什麼

加固的目的是保護dex,直接而言就是對dex文件進行操作,對dex文件動刀子,必須知道dex文件是什麼,能否直接動刀子

3.3Dex文件加載流程

加殼後的文件是不能直接用的,dex文件是加密的,所以我們需要對他進行解密,解密後的dex文件如何加載?

3.4APK文件是怎麼生產的

image.png
關於AES:加密方式,讓你的APK無懈可擊

四.加固總體框架

關於AES:加密方式,讓你的APK無懈可擊
那麼問題來了:

  • 如何達到加密效果?
  • 爲什麼是兩個系列的dex?
  • 殼dex 怎麼來的
  • 殼dex如何保護源dex?
  • 如何簽名?
  • 如何運行新dex(如何脫殼)?
    4.1加密過程

    關於AES:加密方式,讓你的APK無懈可擊

    4.2APK文件如何簽名

    關於AES:加密方式,讓你的APK無懈可擊
    關於AES:加密方式,讓你的APK無懈可擊

4.3APK文件如何運行(脫殼)

關於AES:加密方式,讓你的APK無懈可擊

4.4如何制定某些類在 main dex中
  • multiDexKeepFile:手動加入要放到Main.dex中的類
    com.umeng.analytics.Abb.class
  • multiDexKeepProguard:以Proguard的方式手動加入要放到的Main.dex中的類
    -keep public class com.tencent.bugly.**{*;}

    總結

    完成APL加固,我們需要具備的知識體系有哪些
    關於AES:加密方式,讓你的APK無懈可擊

(更多完整項目下載。未完待續。源碼。圖文知識後續上傳github。)
(可以聯繫我VX:×××)
關於AES:加密方式,讓你的APK無懈可擊

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