APP的混淆加固及反編譯


  混淆用於讓apk被反編譯后獲取的代碼難理解,加固用於讓apk難於被反編譯。兩種操作都是對項目的安全措施,兩個操作是不沖突的,可以選擇其一,也可以兩個操作都做。

混淆:
針對項目代碼,代碼混淆通常將代碼中的各種元素(變量、函數、類名等)改為無意義的名字,使得閱讀的人無法通過名稱猜測其用途,增大反編譯者的理解難度。
雖然代碼混淆可以提高反編譯的門檻,但是對開發者本身也增大了調試除錯的難度。開發人員通常需要保留原始未混淆代碼用於調試。
操作時機:項目打包時
操作方法:Android Studio中找到你的項目module的build.gradle,將minifyEnabled設置為true
加固:
針對apk,加固是多維度的安全防護方案,包括反破解、反逆向、防篡改等,可以防止應用被各類常見破解工具逆向,安全性要遠大於單純的代碼混淆。
操作時機:項目打包成的apk文件
操作方法:使用360加固或者梆梆助手、 key.store文件取
Android Studio下生成的 此加固工具還可以設置多渠道打包標識

 

 

反編譯工具:

     三大神器:apktool  、dex2jar-2.0、jd-gui

一、apktool篇

1、apktool:在文件目錄下敲cmd,進入控制台,然后輸入 apktool d  XXX.APK (要反編譯的apk)

 

 

 

 

 2、會在目錄下生成對應apk的文件目錄

 

 

 3、此目錄下就可以對反編譯的文件修改

  可以修改圖片和頁面布局、通過 AndroidManifest.xml文件找到對應的activity入口

 

 

 

 

 4、將包的內容修改為自己定義的后,重新打包生成新的apk

輸入命令:apktool b [ 修改后的文件夾 ] -o [ 輸出文件名 ]

 

 

 以上 就通過反編譯,修改得出一個新包

 

二、dex2jar-2.0篇

此工具可以將apk解析為jar包

1、將需要反編譯的apk后綴修改為zip,然后解壓

 

 

 2、將解壓后的文件夾,找到classes.dex文件。  在此工具目錄下運行 d2j-dex2jar.bat classes.dex 得到classes-dex2jar.jar

 

 

 3、得到jar包

 

 

 4、對jar進行解析源碼、    使用到下面的jd-gui工具

 

三、jd-gui篇

雙擊exe文件,將jar包拖進去就可以解析源碼

 以下為反編譯的源碼 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM