Android APK反編譯技巧全講解


  • 導言:在我們安卓開發當中,我們不僅需要掌握基礎的開發技能,也需要掌握軟件的安全技能,這樣才可以讓我們的軟件能夠成為一款能夠真正可以進行發布的軟件,同時也可以讓自己的核心技術不會被別人所盜取。
  • 首先我們應當了解的是,對於反編譯我們一共需要三個工具,它們分別是:APKTool,dex2jar,和jd-gui。
  • APKTool:用於解析apk的res文件以及AndroidManifest.xml文件
  • dex2jar:用於把apk解壓后生成的classes.dex文件解析為后綴為jar的文件,與下面的jd-gui工具聯合使用則可以得到我們的核心Java代碼
  • jd-gui:將上一步所得到的jar文件解析為Java文件,從而得到軟件的核心代碼

這就是反編譯的核心流程,凡是沒有被MD5算法加密,或者未被加固過的APK都可以利用這個方法來進行反編譯破解。

 

第一步.來到官網下載APKtool

  • 網址:https://ibotpeaches.github.io/Apktool/install/

界面如下:

 

 我們需要把下載的兩個文件都放在同一個文件夾下,這個文件夾可以自己進行選擇或者新建,本人這里在E盤下創建了一個androidsafe的文件夾用於保存這個工具,點擊第二個鏈接之后會出現如下界面:

 

 

第二步.將需要進行反編譯的文件放到剛剛我們創建好的那個文件夾下

 

此時我們的E:/androidsafe文件夾下只有這三個文件,同時我們也需要把下載的第二個文件apktool-2.4.0.jar更改成apktool.jar,不然是無法運行這個工具的。同時把需要反編譯的apk文件移動到這個文件夾下。

 

第三步.開始反編譯

鍵盤輸入win+r,進入cmd的windows命令行模式。

利用cd命令將命令行模式進入剛剛創建的這個文件夾下,

再輸入:

apktool d 您拿到這個文件夾下的需要反編譯的apk文件名.apk

 如下圖所示:

這樣我們的反編譯過程就完成了。

我們再來看看剛剛我們所創建的文件夾就會多出一個名為appdebug的文件了

文件目錄如下:


可以說是十分成功了。其中的res文件夾是程序當中的所有資源文件,smali文件夾下存放了程序所有的反匯編代碼。apktool這個工具主要是用來解析資源res和資源AndroidManifest.xml的,除此之外的,我們還需要另外的工具來解析Java源碼,利用下以下兩個工具則可以用於解析Java源代碼,它們分別是:dex2jar和jd-gui.

第四步.將apk文件解析為后綴為dex的文件

1.首先我們把剛剛用於解析的apk文件的后綴改為zip,然后隨便用一個你已經安裝過的壓縮包軟件把它解壓就可以了

2.解壓之后你會在解壓之后的文件當中發現一個名為:classes.dex的文件,這樣就把apk的dex文件得到啦!如下圖所示:

第五步.利用dex2jar工具把dex文件解析成后綴為jar的文件

dex2jar的下載網址是:https://bitbucket.org/pxb1988/dex2jar/downloads/

1.下載到我們剛剛安裝apktool的文件夾下,然后解壓,更改解壓后的文件名為dex2jar
2.將剛剛所得到的classes.dex文件剪切到dex2jar文件夾下,如下圖所示:

3.打開命令行cmd模式,利用cd命令將目錄切換到dex2jar的文件夾下,同時鍵入以下代碼:

d2j-dex2jar.bat classes.dex

這個時候返回文件夾,立刻就可以看到在classes.dex文件夾下就多了個jar文件了。

第六步.將jar文件解析為Java文件

下面就來到最激動人心的一步,得到我們的Java文件啦!

首先下載jd-gui,網址如下:

https://github.com/java-decompiler/jd-gui/releases/

這里windows版本的就直接下載后解壓,解壓后點擊后綴為exe的可執行文件打開就是了,再將jar文件拖進去就好啦!:
如下圖所示:

反編譯的步驟還是挺簡單的,但是如果被加密后再進行反編譯難度就大了。

 

 


免責聲明!

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



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