你好,非常高興為你解答:
用apktool反編譯工具來做,不過源碼通常拿不到,xml可以拿到。即便是純java代碼寫的,你反編譯出來的代碼也缺少很多東西,可以看得懂但是導入IDE中還是會有很多錯誤的。而且如果apk是用C++寫的實現部分,那基本沒希望反編譯出源碼了。好的apk都會有自己加密演算法和 反反編譯演算法的。
希望有所幫助!
B. 如何反編譯apk文件得到源碼和XML文件
1.下載反編譯工具
需要下載四個工具:dex2jar、JD-GUI、apktool、apktool-install-windows-r05-ibot
dex2jar:將apk中的classes.dex轉化成Jar文件。
JD-GUI:反編譯工具,可以直接查看Jar包的源代碼。
apktool:反編譯工具,通過反編譯APK中XML文件,直接可以查看。
apktool-install-windows-r05-ibot:輔助windows批處理工具。
下載地址:
dex2jar:http://code.google.com/p/dex2jar/downloads/list
JD-GUI:http://code.google.com/p/innlab/downloads/lis
apktool:http://code.google.com/p/android-apktool/downloads/list
工具截圖:
2.解壓縮APK包
apk文件也是一種常見的zip,常用的壓縮軟體就可輕松地解壓apk文件。用壓縮軟體將apk文件中的文件解壓到一個文件夾中,得到APK中的資源包括XML文件和classes.dex文件,classes.dex就是java文件編譯再通過dx工具打包而成的。
解壓截圖:
3.反編譯dex文件
解壓apk文件後,你會發現res目錄的圖片沒有加密,但java源碼編譯成了一個classes.dex文件,無法用普通的反編譯class文件的方法來處理,dex2jar可以將dex文件轉換成普通的jar包。
解壓下載的dex2jar,把解壓後的文件夾放到系統盤跟目錄中並把這個目錄加到系統path變數中,就可以直接用:dex2jar.bat或dex2jar.sh轉換dex文件了。
DOS行命令如下:dex2jar.bat xx\classes.dex(xx是classes.dex文件所在的路徑)。
將在同目錄得到普通jar包:classes_dex2jar.jar,就可以用處理普通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。把這個文件夾也放到系統盤的根目錄中並把這個目錄加到path變數中。以HelloWord.apk為例:
在DOS命令行中輸入:apktool d xx\HelloWord.apk HelloWord得到HelloWord文件夾,此文件夾中的xml文件就是編譯好的可以正常查看的文件。
截圖如下:
生成的文件:
這樣就得到了可以得到編譯的源碼和XML資源。
注意:文件的路徑中最好不要出現中文!
http://jingyan..com/article/dca1fa6fbe140ef1a4405212.html
C. Java程序員推薦的10種常用工具!
以下是Java程序員在日常生活中最常用的10種工具。如果你正在使用Java,本文介紹將會對你有所幫助,如果你還不熟悉這些工具,在這里你可以對它們進行更加系統的了解。
1) IDE:Eclipse和NetBeans
IDE是Java開發人員最為重要的工具。集成的開發環境不僅提供了導航、調試和記錄代碼的能力,還大大提升了開發效率。Eclipse作為行業領導者,有一半的Java開發人員都在使用它。Netbeans在web開發方面更易於使用,它附帶了Tomcat及其他應用伺服器,方便項目創建、運行和調試。
2) 文本編輯器:Edit Plus, Notepad++和Sublime
Edit Plus和Notepad++是優秀的文本編輯器,適用於記錄想法、查看日誌文件或創建文檔。Edit Plus因其快速流暢的性能和強大的正則表達式查找替換功能而備受青睞。Notepad++能打開任何類型的Java文件,且具有語法高亮功能,使得代碼閱讀更加容易。Sublime文本編輯器因其免費特性廣受歡迎。
3) 瀏覽器:Chrome和Firefox
在軟體開發中,Google的Chrome和Firefox是不可或缺的工具之一。它們內置的web工具集成了檢查和可視化功能,便於調試HTML、CSS代碼、修改代碼、檢查載入錯誤等,對於Java EE開發人員和web開發人員非常有用。
4) 資料庫開發:Aqua Data Studio
Aqua Data Studio是適用於資料庫開發的Java工具,支持Oracle、Sybase和SQL Server等資料庫連接。對於那些沒有使用特定資料庫工具的人來說,它是不錯的選擇。Aqua Data Studio和DB Artisan都是付費工具,需要授權許可。
5) XML文件工具:XMLSpy
XMLSpy是一個功能強大的XML文件處理軟體,支持搜索、XPATH查找和轉換。它能處理大型XML文件(如4,5M)而不會崩潰。在處理大型XML文件時,Notepad++和Internet Explorer可能會出現問題,因此XMLSpy是最佳選擇。
6) 插件:Eclipse插件
在Eclipse中使用多種插件,如JadEclipse(反編譯Java類文件)、eUML(創建UML圖)、M2Eclipse(Maven項目)、SVN和CVS插件(源代碼控制存儲庫)以及Findbugs插件(靜態代碼分析)。此外,Git插件允許在Eclipse的Git存儲庫中創建Java項目。
7) 伺服器連接:Putty和Putty Connection Manager
Putty是SSH客戶端,支持連接到任何UNIX伺服器。與Putty Connection Manager搭配使用,可以預先配置主機、用戶名和密碼,實現一鍵訪問。對於需要在多個環境中(如測試、開發、驗收測試、QA)登錄的用戶,強烈推薦使用Putty Connection Manager。
8) 文件傳輸:FileZilla
FileZilla是一個優秀的FTP客戶端,適用於將文件從Windows傳輸到Linux或從UNIX到Windows。在進行文件傳輸時,FileZilla提供免費的SFTP支持,使文件傳輸變得便捷。
9) 文本文件對比:Beyond Compare
Beyond Compare是一個強大的文件對比工具,常用於開發過程中的文件對比。它適用於驗證文件是否處於正確位置、比較伺服器配置文件、了解不同版本文件的差異等場景。盡管Beyond Compare不是免費的,但在預發布和發布後活動中,它提供了可視化功能。
10) 命令行工具:Cygwin
Cygwin可以在Windows上搭建仿UNIX環境,適用於主要在UNIX窗口上工作的Java開發者。當在Windows中開發Java程序時,Cygwin可以提供find、grep、xargs和vi等命令的支持。此外,用戶還可以在VirtualBox上設置Linux環境。
以上就是Java程序員常用的工具列表。除了提到的工具,還有其他重要工具,如基於Windows的SVN客戶端工具tortoise SVN、CVS、微軟的Office系列工具等。Chrome Developer Tools、Firebug和Postman等工具也對Java JEE開發者非常有用。
D. 如何反編譯xml文件
網上很多發編譯apk的例子,方法也很多,我只取最簡單的用。
首先說一下這個xml文件,就是.apk文件改成.zip文件後用解壓縮工具解壓出來的。比如
反編譯這個xml用到的軟甲是A2. AXMLPrinter2
第一步:把上面提到過的需要發編譯的.xml文件和下載下載的AXMLPrinter2.jar這兩個文件都拷貝到android-sdk-windows/tools文件夾中。
第二步:運行cmd,進入tools目錄,鍵入
java -jar AXMLPrinter2.jar AndroidManifest.xml > main.txt
用java -jar 命令配合AXMLPrinter2.jar這文件把AndroidManifest.xml編譯寫入到main.txt文件中
(說明一下,我的xml是AndroidManifest.xml,如果你拷進去的不是這個,請自己改文件名)
回車後沒有報錯的話,就成功了
打開../android-sdk-windows/tools/目錄,找到main.txt,打開看一下
E. AXMLPrinter2.jar這個反編譯XML的工具怎麼使用
1、用AXMLPrinter2.jar反編譯xxx.xml文件
2、解壓xxx.apk,選擇main.xml
對於解壓xxx.apk,選擇main.xml),復制到AXMLPrinter2.jar所在目錄,通過cmd進入AXMLPrinter2.jar所在目錄。
F. 如何反編譯apk文件得到源碼和XML文件
最近因為一些事所以需要得到師兄的某個apk的源代碼,但師兄說那個項目包已經刪了,哎,沒辦法,只能自己想辦法了。後來找到了反編譯apk的方法,現在拿出來分享下。其實這個方法網上都有,我只是記載一下自己這段時間的學習情況。
1.下載工具
首先,要反編譯需要下面這
4個工具:
dex2jar:將apk中的classes.dex轉化成Jar文件。
JD-GUI:反編譯工具,可以直接查看Jar包的源代碼。
apktool:反編譯工具,通過反編譯APK中XML文件,直接可以查看。
apktool-install-windows-r05-ibot:輔助windows批處理工具。
2.解壓apk
直接右鍵解壓apk就行了,這沒什麼好說的。【解壓後會有個dex後綴的文件,下面會用到】
3.反編譯dex文件
1)解壓下載的dex2jar,把解壓後的文件夾放到系統盤跟目錄中並把這個目錄加到系統path變數中,就可以直接用:dex2jar.bat或dex2jar.sh轉換dex文件了。
2)DOS行命令如下:dex2jar.bat
xx\classes.dex(xx是classes.dex文件所在的路徑)。
將在同目錄得到普通jar包:【classes_dex2jar.jar】,就可以用處理普通jar包的方法來反編譯這個jar包得到原文件。
4.反編譯jar文件
1)解壓壓縮文件JD-GUI
2)運行該文件夾里的jd-gui.exe,打開上面生成的jar包,
即可看到源代碼了。
5.反編譯xml文件
為什麼要發編譯xml文件呢?因為直接解壓apk得到的xml文件是亂碼來的,我們需要用工具把它調會正常來
具體操作方法:
1)將下載的apktool和apktool-install-windows-r05-ibot兩個包解壓到同一個文件夾下,這個文件夾有三個文件:aapt.exe,apktool.bat,apktool.jar。
2)把這個文件夾也放到系統盤的根目錄中並把這個目錄加到path變數中。以HelloWord.apk為例:
3)在DOS命令行中輸入:apktool
d
xx\HelloWord.apk
HelloWord得到HelloWord文件夾,此文件夾中的xml文件就是編譯好的可以正常查看的文件。
6.後話
不過,說到底反編譯還是反編譯,還是不能完全地還原出真正的源代碼的,比如一般會出現下面這樣的問題:
setContentView(2130903048);
在真正的源代碼中其實是這樣的:
setContentView(R.layout.welcome)
G. 我學習安卓XML文件修改,請問AXMLPrinter2.jar這個反編譯XML的工具怎麼使用
這個需要java平台的支持,搜索java,應該第一個網站就是,進去下載java平台,就可以使用了