1.下載反編譯工具
長沙網(wǎng)站建設公司成都創(chuàng)新互聯(lián),長沙網(wǎng)站設計制作,有大型網(wǎng)站制作公司豐富經(jīng)驗。已為長沙上千多家提供企業(yè)網(wǎng)站建設服務。企業(yè)網(wǎng)站搭建\外貿(mào)營銷網(wǎng)站建設要多少錢,請找那個售后服務好的長沙做網(wǎng)站的公司定做!
需要下載四個工具:dex2jar、JD-GUI、apktool、apktool-install-windows-r05-ibot
dex2jar:將apk中的classes.dex轉(zhuǎn)化成Jar文件。
JD-GUI:反編譯工具,可以直接查看Jar包的源代碼。
apktool:反編譯工具,通過反編譯APK中XML文件,直接可以查看。
apktool-install-windows-r05-ibot:輔助windows批處理工具。
2.解壓縮APK包
apk文件也是一種常見的zip,常用的壓縮軟件就可輕松地解壓apk文件。用壓縮軟件將apk文件中的文件解壓到一個文件夾中,得到APK中的資源包括XML文件和classes.dex文件,classes.dex就是java文件編譯再通過dx工具打包而成的。
3.反編譯dex文件
解壓apk文件后,你會發(fā)現(xiàn)res目錄的圖片沒有加密,但java源碼編譯成了一個classes.dex文件,無法用普通的反編譯class文件的方法來處理,dex2jar可以將dex文件轉(zhuǎn)換成普通的jar包。
解壓下載的dex2jar,把解壓后的文件夾放到系統(tǒng)盤跟目錄中并把這個目錄加到系統(tǒng)path變量中,就可以直接用:dex2jar.bat或dex2jar.sh轉(zhuǎn)換dex文件了。
DOS行命令如下:dex2jar.bat xx\classes.dex(xx是classes.dex文件所在的路徑)。
將在同目錄得到普通jar包:classes_dex2jar.jar,就可以用處理普通jar包的方法來反編譯這個jar包得到原文件。
4.反編譯jar包
得到jar包后,下載自已喜歡的反編譯工具,推薦使用JD-GUI,有比較簡單的圖形界面,可以反編譯單個class文件,也可以反編譯jar包,比較方便。
打開壓縮文件JD-GUI,運行jd-gui.exe,打開上面生成的jar包,即可看到源代碼了。
5.反編譯xml文件
打開解壓的res\layout目錄,有很多xml文件,如果你想看下作者是如何設計界面的,你會很失望,因為你看到的是一大堆亂碼!這個時候我們需要用到的是apktool。
具體操作方法:將下載的apktool和apktool-install-windows-r05-ibot兩個包解壓到同一個文件夾下,這個文件夾有三個文件:aapt.exe,apktool.bat,apktool.jar。把這個文件夾也放到系統(tǒng)盤的根目錄中并把這個目錄加到path變量中。以HelloWord.apk為例:
在DOS命令行中輸入:apktool d xx\HelloWord.apk HelloWord得到HelloWord文件夾,此文件夾中的xml文件就是編譯好的可以正常查看的文件。
這樣就得到了可以得到編譯的源碼和XML資源。
注意:文件的路徑中最好不要出現(xiàn)中文!
一、找到apk中的class.dex:
把apk文件改名為.zip,然后解壓縮其中的class.dex文件,它就是java文件編譯再通過dx工具打包成的。
1、把class.dex拷貝到dex2jar.bat所在目錄,直接拖動class.dex到dex2jar.bat,生成classes.dex.dex2jar.jar。
或者:1.在cmd下進入dex2jar.bat所在路徑,然后輸入“dex2jar.bat XXX”,XXX指的是你要反編譯的apk中的classes.dex文件所在路徑及名稱,比如:我的dex2jar.bat在D:\Android\apk_decode\dex2jar-0.0.7-SNAPSHOT路徑下, classes.dex在D:\Android下,所以: 你進入dex2jar.bat路徑下后,輸入dex2jar.bat D:\Android\classes.dex,這樣會生成一個jar文件。
2.用rar解壓出jar文件中的class文件,然后用jad或DJ Java Decompiler反編譯工具將.class文件反編譯成.java文件
3、運行JD-GUI工具,打開上面的jar文件,在File下有個Save JAR Source,它可以生成src源代碼。
1.apk是什么文件?
APK是AndroidPackage的縮寫,即Android系統(tǒng)的應用軟件安裝包(apk)。APK是類似SymbianSis或Sisx的文件格式。通過將APK文件直接傳到Android模擬器或Android手機中執(zhí)行即可安裝。
2.apk怎么打開?
打開apk需要在安卓系統(tǒng)中進行,在安卓系統(tǒng)下點擊“apk文件”,然后需要通過安卓的“打包安裝文件”的應用程序打開此apk文件。
擴展資料:
apk文件的開發(fā)環(huán)境
Android是一個基于Java的開發(fā)環(huán)境,它是一種與廣被接受的Java極為類似,而且也比C++容易得多的開發(fā)語言,這是一種規(guī)范的移動開發(fā)環(huán)境。Google也在API文檔的書寫和樣例的提供上做了很出色的工作。
獲取SDK
下載并安裝android的SDK[軟件開發(fā)套件],這套SDK主要包括有核心庫文件,一個模擬器,開發(fā)工具和一些示范的樣例文件。推薦使用Eclipse
和androideclipse擴展。如果只是使用android,Eclipse
IDE就已經(jīng)足夠了,但如果是第一次開發(fā)Java應用,建議下載完整的JavaSE開發(fā)工具(JDK)因為它包括簽發(fā)應用程序所需要的工具。
2.應用架構(gòu)
android應用架構(gòu)很關鍵,如果不學習它,設計出來的游戲?qū)⑹且环N很難修復bug的產(chǎn)品。需要了解應用程序、活動、Intents以及它們是如何互相聯(lián)系交互的,Google在這兒提供了良好的信息架構(gòu)。真正重要的是,要理解為什么在設計的游戲中,需要不止一個的活動進程,以及如何設計一個用戶體驗良好的游戲。這些都應當配合到應用的生命周期中。
3.應用的生命周期
應用的生命周期是由AndroidOS操作系統(tǒng)進行管理的,活動進程都將做為系統(tǒng)命令進行創(chuàng)建,正確處理這些事件對一個應用程序來說是極為重要的,因為終端用戶不會知道什么是正確的。最好在開始設計游戲之前搞明白這些,因為這有助于節(jié)省調(diào)試時間以及避免代價高昂的重新設計。對大多數(shù)應用而言,默認設置即可開始工作,但對游戲而言,可能需要調(diào)整單態(tài)實例的信號為打開。在默認情況下,Android會新建一個活動實例進程,因為它認為這是比較合適的,而游戲,可能只希望有一個活動的實例進程,這有一點兒影響,它需要了解一些系統(tǒng)狀態(tài)的管理。
相關鏈接:apk—百度百科