Android學習總結——APK打包過程與反編譯

注:以下操作假定也設置好PATH

1. APK文件介紹

*.apk實際是一個rar格式的壓縮包。

內容:

classes.dex : 所有的*.class字節碼被重新編譯,並組合成了classes.dex文件。可以由Dalvik虛擬機執行。

resources.arsc :資源的索引文件。

2. 資源->APK

圖表 1源文件與APK對應關係

APK中的*.XML文件都是經過壓縮加密的,只有在raw文件夾下的文件纔不會加密。此外圖標類資源也不會被壓縮加密。

3. dex->smali->java

3.1. SDK自帶的工具dexdump

作用:從*.dex中生成對類的完整描述,以smali語言表示。無目錄結構。

dexdump -d filename.dex  > file.txt 

結果截圖:

3.2. apktool

作用:將apk文件反編譯爲smali語言文件,並保留源程序的組織結構,反編譯XML文件

語法:apktool d *.apk [<dir>] 意爲:decode *.apk to dir.

4. dex->jar->class->java

4.1. dex->jar

工具:dex2jar

4.2. jar - > java 

核心JDCore

工具:jd-gui,圖形化工具。可以將class文件反編譯爲java文件。

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