Hello , 今天來講講何爲反編譯 , 以及爲何我們需要反編譯?
首先反編譯顧名思義就是編譯的逆向,當然你也可以理解爲"逆向編譯" , 舉個簡單的例子,你看到了一款界面佈局製作精美的app,你想知道這是怎麼實現的, 這個時候你就可以使用反編譯的技術來得到它的界面佈局和代碼文件來參考學習. 當然了是建立在app沒有任何加密加固的基礎之上,否則你的翻譯結果可能就是一堆亂碼.
接下來就進入正題 , 使用apktool來進行我們的反編譯
首先貼上我們的apktool的下載地址 :
https://download.csdn.net/download/gsrkuang/10575743
第一步:
下載完成後會得到圖下的兩個文件 , 我們只需要把兩個文件拷貝到C:\Windows這個目錄下即可
(至於爲什麼要拷貝到這裏,理由的此目錄已經配置好了環境變量)
第二步:
打開cmd輸入apktool d apk所在位置 -o 反編譯後apk工程輸出位置
參考下圖
反編譯完成後會出現如下圖
這裏要注意一下命令-o後面輸出的路徑目錄會自動的生成所以不需要手動去新建文件夾,這樣反而會造成反編譯不成功
反編譯成功後的目錄如下圖
注意到這一步我們已經成功的進行了反編譯了 !! 上面的工程結構是不是有點熟悉的感覺?沒錯就是我們Android工程裏面的結構,assets lib res AndroidManifest.xml , 等一下怎麼我們的src目錄變成了smali了 , 點進去以前的java文件都變成了.smail結尾的文件了? 沒錯下一篇我們將會繼續講解如何查看.smali文件的中的java代碼