1.下載工具
需要如下四個反編譯工具:dex2jar、JD-GUI、apktool、apktool-install-windows-r05-ibot
下載地址:http://code.google.com/p/innlab/ 頁面的Downloads下可以找到對應的工具
2.解壓apk文件
apk格式的文件其實也是一種壓縮文件,利用一般的解壓工具可以直接進行解壓。如:
解壓前:解壓後:
3.反編譯.dex文件
解壓下載的dex2.jar,把解壓後的文件夾放到系統盤根目錄下並把這個目錄加到系統path變量中,就可以直接用dex2jar.bat轉換dex文件。
配置系統path變量:右擊我的電腦->屬性->高級->環境變量,然後在系統的path變量下加;xxx。xxx表示dex2.jar的目錄。
在dos下跳到dex2.jar的解壓目錄下,然後輸入如下命令:dex2jar.bat classes.dex。
如:
這時你會發現之前的dex2.jar 解壓目錄下多了一個classes_dex2jar.jar 的文件。
4.反編譯.jar文件
打開壓縮文件JD-GUI,運行jd-gui.exe,打開之前生成生成的.jar文件,就可看到源代碼了。
5.反編譯xml文件
通過以上步驟雖然說可以看到程序的源代碼,但當你打開其中的xml文件想看看程序是如何佈局的時候,你會發現仍然是亂碼,所以這時我們需要反編譯xml文件。
將下載的 apktool、apktool-install-windows-r05-ibot 解壓到同一個文件夾中,使之可以看到以下3個文件:
同樣配置好該目錄的path變量,如第三步。打開dos跳到該目錄下,輸入:apktool
d C:\a.apk C:\a。注意apk文件名或目錄名最好不要是中文並且不能帶空格,之前我就是因爲這樣出現了坑爹的錯誤,然後將手電筒 2.0.1.apk改名爲a.apk錯誤才解決。
解釋:c:\a.apk爲要反編譯的文件,c:\a表示反編譯後的存放的目錄,若存在該目錄可以輸入apktool d -f C:\a.apk C:\a進行覆蓋。
進行了該操作之後我們就可以看到c:\a下了有反編譯後的文件,打開xml文件發現也不再是亂碼。
好了,通過以上一些步驟就可以自己對原作者的代碼進行肆意修改了。
有時候某些作者爲了防止被反編譯,使用了混淆工具,會讓代碼讓人很難以看懂,但是一般花點時間還是能看懂大概的。
其實使用混淆比較簡單,只要在exlipse的配置文件中加入一句代碼就ok:proguard.config=proguard.cfg。
如圖:
(這篇文章是我以前在自己空間寫的,現在放在csdn博客,分享給大家,希望能給需要的人帶來幫助!有不當的地方也請大家指正,謝謝!)