Android APK 反編譯apk 如何破譯apk

題記:在開發中可能看到別的app有一些精美的畫面和絢麗的動畫效果很漂亮,忍不住想借鑑下,很想知道它是怎麼實現的。於是就尋找實現的方法,在這裏總結了一下獲取的經驗、反編譯apk的實現過程在這裏分享給小夥伴們;

ps:本文僅供自我學習,總結經驗,研究android安全技術,提高自我研發水平。請勿用於商業活動及其他非法活動中,由此產生一切後果與本人無關。

開發環境win 10   ; java jdk 1.8;已翻牆(下載工具用);


工具: apktool (資源文件獲取,可以提取出圖片文件和佈局文件進行使用查看) 下載地址:https://ibotpeaches.github.io/Apktool/

              dex2jar 將apk反編譯成Java源碼(classes.dex轉化成jar文件))             下載地址:https://github.com/pxb1988/dex2jar

      jd-gui    查看APK中classes.dex轉化成出的jar文件,即源碼文件)            下載地址:http://java.decompiler.free.fr/?q=jdgui


反編譯流程:

一、apk反編譯得到程序的源代碼、圖片、XML配置、語言資源等文件

下載上述工具中的apktool,並解壓得到3個文件;將需要反編譯的APK文件放到該目錄下,

打開命令行界面(運行-CMD) ,定位到apktool文件夾,輸入以下命令:apktool d [-s] -f <apkPath> -o <folderPath>       



文件夾目錄如下


說明獲取成功,之後發現在文件夾下多了個test文件,點擊便可以查看該應用的所有資源文件了。

如果你想將反編譯完的文件重新打包成apk,那你可以:輸入apktool.bat   b    test(你編譯出來文件夾)便可,

之後在之前的test文件下便可以發現多了2個文件夾:

build

dist(裏面存放着打包出來的APK文件)


二、Apk反編譯得到Java源代碼

下載上述工具中的dex2jarjd-gui ,解壓

將要反編譯的APK後綴名改爲.rar或則 .zip,並解壓,得到其中的額classes.dex文件(它就是java文件編譯再通過dx工具打包而成的),將獲取到的classes.dex放到之前解壓出來的工具dex2jar-0.0.9.15 文件夾內,

在命令行下定位到dex2jar.bat所在目錄,輸入dex2jar.bat   classes.dex效果如下:



在改目錄下會生成一個classes_dex2jar.jar的文件,然後打開工具jd-gui文件夾裏的jd-gui.exe,之後用該工具打開之前生成的classes_dex2jar.jar文件,便可以看到源碼了,效果如下:




  

  

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章