首先需要反編譯的三個軟體:
apktool:資源文件獲取;
dex2jar:源碼文件獲取;
jd-gui:源碼查看。
1. apk反編譯得到程序的源代碼、資源文件
1.1 apktool解壓得到3個文件:aapt.exe,apktool.bat,apktool.jar ,現在用weixin做實驗(這里僅是示範作用),將需要反編譯的weixin_800.apk文件放到該目錄下,打開命令行界面(運行-CMD),定位到apktool文件夾,輸入以下命令:apktool d [-s] -f weixin_800.apk -o weixin; 其中weixin_800.apk是要反編譯的apk文件名,weixin是反編譯後存放的目錄文件,此文件不需要新建,反編譯後會自動生成
1.2 打開weixin文件夾,res就是要找的資源文件,目錄結構和平時建的項目很像。
1.3 這時候打開D:apktoolweixin
esanim下a.xml看下,xml文件輕而易舉的獲取了
2. Apk反編譯得到java源代碼
2.1 解壓dex2jar和jd-gui文件;將要反編譯的APK後綴名改為.zip,並解壓,得到其中的classes.dex文件,將獲取到的classes.dex放到之前解壓出來的工具dex2jar-0.0.9.15文件夾內
2.2 在命令行下定位到dex2jar.bat所在目錄,輸入dex2jar.bat classes.dex
2.3 這個時候會發現dex2jar-0.0.9.15文件夾多了一個classes_dex2jar.jar文件
2.4 現在就可以用工具jd-gui.exe打開這個jar了
2.5 通過反編譯,可以知道別人用到了哪些庫文件,它的代碼大體是如何編寫的等等。有了思路就可以自己嘗試了。
② APK反編譯後沒有res文件夾,只有一個smali文件夾正常嗎
不正常,這情況一般是資源混淆了,資源混淆的apk反編譯時提示錯誤,生成一個res文件夾和一個AndroidManifest.xml
③ apk反編譯後為什麼沒有res文件夾
因為反編譯失敗了,所以只有smali文件夾了。
1.反編譯Apk得到Java源代碼
首先要下載兩個工具:dex2jar和JD-GUI
前者是將apk中的classes.dex轉化成Jar文件,而JD-GUI是一個反編譯工具,可以直接查看Jar包的源代碼。
具體步驟:
首先將apk文件,將後綴改為zip,解壓,得到其中的classes.dex,它就是java文件編譯再通過dx工具打包而成的;
解壓下載的dex2jar,將classes.dex復制到dex2jar.bat所在目錄。在命令行下定位到dex2jar.bat所在目錄
運行dex2jar.bat classes.dex
生成classes.dex.dex2jar.jar
2.反編譯apk生成程序的源代碼和圖片、XML配置、語言資源等文件
還是下載工具,這次用到的是apktool
具體步驟:
將下載的兩個包解壓到同一個文件夾下,應該會有三個文件:aapt.exe,apktool.bat,apktool.jar
1.解壓縮下載的兩個文件包,apktool-install-windows-r04-brut1.tar解壓縮後得到的包里有aapt.exe 和apktool.bat.(注意要把apktool1.4.1.tar解壓後的一個.jar 文件到解壓後的apktool-install-windows-r04-brut1文件夾里)
2.特別注意:你要反編譯的文件一定要放在C盤的根目錄里
④ 如何反編譯android的apk文件得到資源文件
首先下載apktool工具(apktool-install-windows-r04-brut1.tar.bz2和apktool1.4.1.tar.bz2):
下載完成後,解壓apktool-install-windows到任意文件夾,例如,解壓到F:apktool目錄下:
然後解壓apktool到任意文件夾,解壓完成後會得到一個apktool.jar文件
最後把apktool.jar文件解壓到apktool-install-windows同目錄下:
解壓完成後apktool.jar文件不能刪除,之後還會用到。
然後我們把我們要反編譯的apk文件(MyPolygon.apk)拷貝到apktool目錄下:
打開一個命令行窗口,進入apktool目錄下,輸入如下命令:
⑤ 反編譯後回編找不到生成的apk文件
你用什麼進行的反編譯呢?如果是apktool的話,你檢查一下回編譯的命令。
如果是是其他軟體,例如 apktool-gui的話,你可以直接到目錄下進行查找。
同時,如果提示你回編譯成功,你搜索一下apk文件,看是否能找到。
請採納,謝謝~~有問題繼續溝通~~
⑥ 如何反編譯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)
⑦ 反編譯游戲apk為什麼沒有圖片資源
很多游戲都是自己加密後的數據包,比如把游戲中的很多圖片放到一個文件裡面,然後這個文件再加密,一起生成一個比如xxx.bin或者xxx.bak或者xxx.亂七八糟的,這些文件,就是他圖片真實存在的地方。他開始游戲的時候會先去根據自己的加密方式來解密來讀取這些圖片資源的
⑧ exescope等反編譯軟體對exe文件進行反編譯,文件沒有加殼,但是除了對話框,圖片,版本等,其他資源看不見
大致有這樣幾種情況:
1、某些資源不在.exe文件里,而在附帶的.dll文件里;
2、某些資源調用的是Windows鏈接庫,而非軟體自身資源;
3、exescope查看資源僅對C語言編寫的程序效果好。