參考:APK反編譯java
做用:資源文件獲取,能夠提取出圖片文件和佈局文件進行使用查看編輯器
做用:將apk反編譯成java源碼(classes.dex轉化成jar文件)工具
做用:查看APK中classes.dex轉化成出的jar文件,即源碼文件佈局
工具直接搜索下載就行。測試
爲方便操做,將三個工具放在一個文件夾裏,進行解壓ui
經過cmd進入命令行,進入到工具所在目錄.net
接下來咱們要作的就是運行apktool_2.0.1.jar這個jar文件來將apk文件進行反編譯,在java中,運行可執行jar包的命令是:命令行
java -jar jar包名.jar
使用以下的命令運行apktool_2.0.1.jar反編譯MMTS-release-1.0.2.apkcode
java -jar apktool_2.0.1.jar d -f E:\AndroidDevelopTool\Android反編譯工具包\測試apk\MMTS-release-1.0.2.apk -o MMTS
這個命令是啓動apktool_2.0.1.jar將位於【E:\AndroidDevelopTool\Android反編譯工具包\測試apk】目錄下的"MMTS-release-1.0.2.apk"這個apk反編譯,而後將反編譯生成的文件存放到當前目錄(apktool_2.0.1.jar所在的目錄,也就是"E:\AndroidDevelopTool\Android反編譯工具包"目錄)下的一個【MMTS】文件夾中。這個文件夾的名字是能夠隨便取的,喜歡叫啥都行。xml
執行反編譯操做:
反編譯成功後,會在當前目錄(E:\AndroidDevelopTool\Android反編譯工具包)下生成一個MMTS文件夾,打開MMTS裏面就有反編譯後生成的文件,以下圖所示:
打開MMTS文件夾,就能夠看到反編譯後的生成的文件,
生成的文件和文件夾當中,咱們關心的是【res】文件夾中和AndroidManifest.xml文件,打開res文件夾,裏面就有咱們想要看到的東西了.
想查看哪一個xml文件就使用文本編輯器打開看看吧,反正所有均可以看到了。以上就是使用apktool這個工具將一個apk反編譯獲得圖片、XML配置、語言資源等文件的過程。
將要反編譯的APK後綴名改成.rar或者 .zip,並解壓,獲得其中的classes.dex文件(它就是java文件編譯再經過dx工具打包而成的),將獲取到的classes.dex放到以前解壓出來的工具【dex2jar-2.0】文件夾內。
在命令行下定位到dex2jar.bat所在目錄,輸入"d2j-dex2jar classes.dex",效果以下:
命令執行完成以後,在當前目錄下就能夠看到生成的Jar文件了,以下圖所示:
反編譯classes.dex獲得classes-dex2jar.jar文件以後,就能夠使用【jd-gui】工具將class文件反編譯成java源代碼了
使用jd-gui打開classes-dex2jar.jar就能夠看到源代碼了,以下圖所示:
JD-GUI雖然能夠將class反編譯成java源代碼,可是對於一些被混淆過的class,反編譯的效果就不是那麼理想了,被混淆過的class反編譯後的效果圖(類文件名稱以及裏面的方法名稱都會以a,b,c....之類的樣式命名):