發(fā)現很多人都在關(guān)心apk的反編譯,上傳一個(gè)可視化的工具吧,原理和下面說(shuō)的差不多,就是封裝了一下。點(diǎn)我下載Android反編譯工具另外,作為應用開(kāi)發(fā)者,肯定不希望自己的代碼被反編譯的,另外寫(xiě)了篇文章,講述如何通過(guò)混淆代碼放在反編譯:《如何防止Android應用被反編譯》
這段時(shí)間在學(xué)Android應用開(kāi)發(fā),在想既然是用Java開(kāi)發(fā)的應該很好反編譯從而得到源代碼吧,google了一下,確實(shí)很簡(jiǎn)單,以下是我的實(shí)踐過(guò)程。在此鄭重聲明,貼出來(lái)的目的不是為了去破解人家的軟件,完全是一種學(xué)習的態(tài)度,不過(guò)好像通過(guò)這種方式也可以去漢化一些外國軟件。
一.反編譯Apk得到Java源代碼
首先要下載兩個(gè)工具:dex2jar和JD-GUI,前者是將apk中的classes.dex轉化成Jar文件,而JD-GUI是一個(gè)反編譯工具,可以直接查看Jar包的源代碼。以下是下載地址:dex2jar:http://laichao.googlecode.com/files/dex2jar-0.0.7-SNAPSHOT.zip JD-GUI:http://laichao.googlecode.com/files/jdgui.zip
具體步驟:
- 首先將apk文件,將后綴改為zip,解壓,得到其中的classes.dex,它就是java文件編譯再通過(guò)dx工具打包而成的;
- 解壓下載的dex2jar,將classes.dex復制到dex2jar.bat所在目錄。在命令行(一定要在命令行下,不要試圖直接點(diǎn)擊dex2jar.bat,一般點(diǎn)擊只是一閃而過(guò))下定位到dex2jar.bat所在目錄,運行
dex2jar.bat classes.dex
生成classes.dex.dex2jar.jar
- 運行JD-GUI,打開(kāi)上面生成的jar包,即可看到源代碼了。
二.反編譯apk生成程序的源代碼和圖片、XML配置、語(yǔ)言資源等文件
如果是只是漢化軟件,這將特別有用。首先還是下載工具,這次用到的是apktool,下載地址:
http://code.google.com/p/android-apktool/,apktool-1.0.0.tar.bz2和apktool-install-windows-2.1_r01-1.zip兩個(gè)包都要下。
具體步驟:
- 將下載的兩個(gè)包解壓到同一個(gè)文件夾下,應該會(huì )有三個(gè)文件:aapt.exe,apktool.bat,apktool.jar;
- 在命令行下定位到apktool.bat文件夾,輸入以下命令:
apktool d C:\***.apk C:\***文件夾
命令行解釋?zhuān)篴pktool d [要反編譯的apk文件 ] [輸出文件夾],特別注意:你要反編譯的文件一定要放在C盤(pán)的根目錄里;
-
如果你不想把全部的jar放到C盤(pán)下面或者不想在C盤(pán)目錄進(jìn)行反編譯,只需要把你解壓得出的apktool.jar這個(gè)jar放到C:\Windows即可,這時(shí)你只需要把你要反編譯的APK和
這幾個(gè)文件放在同一個(gè)文件夾中,然后在命令行中輸入apktool d ***.apk ***文件夾 這樣你的把反編譯的資源全部顯示在***文件夾中了
- 將反編譯完的文件重新打包成apk,很簡(jiǎn)單,輸入apktool b c:\***文件夾(你編譯出來(lái)文件夾)即可。

