Android APK反編譯(二)

參考:APK反編譯java

工具介紹

  • apktool

做用:資源文件獲取,能夠提取出圖片文件和佈局文件進行使用查看編輯器

  • dex2jar

做用:將apk反編譯成java源碼(classes.dex轉化成jar文件)工具

  • jd-gui

做用:查看APK中classes.dex轉化成出的jar文件,即源碼文件佈局

工具直接搜索下載就行。測試

Apk反編譯流程

爲方便操做,將三個工具放在一個文件夾裏,進行解壓ui

image

使用apktool反編譯apk獲得圖片、XML配置、語言資源等文件

經過cmd進入命令行,進入到工具所在目錄.net

image

接下來咱們要作的就是運行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

執行反編譯操做:

image

反編譯成功後,會在當前目錄(E:\AndroidDevelopTool\Android反編譯工具包)下生成一個MMTS文件夾,打開MMTS裏面就有反編譯後生成的文件,以下圖所示:

image

打開MMTS文件夾,就能夠看到反編譯後的生成的文件,

生成的文件和文件夾當中,咱們關心的是【res】文件夾中和AndroidManifest.xml文件,打開res文件夾,裏面就有咱們想要看到的東西了.

想查看哪一個xml文件就使用文本編輯器打開看看吧,反正所有均可以看到了。以上就是使用apktool這個工具將一個apk反編譯獲得圖片、XML配置、語言資源等文件的過程。

使用dex2jar反編譯apk獲得Java源代碼

將要反編譯的APK後綴名改成.rar或者 .zip,並解壓,獲得其中的classes.dex文件(它就是java文件編譯再經過dx工具打包而成的),將獲取到的classes.dex放到以前解壓出來的工具【dex2jar-2.0】文件夾內。

在命令行下定位到dex2jar.bat所在目錄,輸入"d2j-dex2jar classes.dex",效果以下:

image

命令執行完成以後,在當前目錄下就能夠看到生成的Jar文件了,以下圖所示:

image

反編譯classes.dex獲得classes-dex2jar.jar文件以後,就能夠使用【jd-gui】工具將class文件反編譯成java源代碼了

image

使用jd-gui打開classes-dex2jar.jar就能夠看到源代碼了,以下圖所示:

image

JD-GUI雖然能夠將class反編譯成java源代碼,可是對於一些被混淆過的class,反編譯的效果就不是那麼理想了,被混淆過的class反編譯後的效果圖(類文件名稱以及裏面的方法名稱都會以a,b,c....之類的樣式命名):

image

相關文章
相關標籤/搜索