Android 反編譯的使用

大家一說到反編譯可能腦海中會首先想到不好的一面,破解別人的 APK 之類的。其實大可不必這麼想。商業級別的 APK 也沒有那麼容易被你鑽漏洞。一些核心的業務處理會在後臺進行操作。本地的 APK 也會進行混淆加密等。所以我們進行反編譯主要還是進行學習,看看別人怎麼實現的,自己有個思路而已。

文章最早發佈於我的微信公眾號 Android開發者家園

本文為sydMobile原創文章,可以隨意轉載,但請務必註明出處!

關於這方面的資料,網上也有很多,這裡就簡單說一下過程,達到能夠使用的目的!

這裡介紹兩種方式:

1.在線反編譯

這種方式很簡單,我們只需要打開網址,把我們的 AKP 放進去就可以進行在線反編譯了。不過過程會有點慢。網址:http://www.javadecompilers.com/apk


Android 反編譯的使用


反編譯網址.jpg

操作很簡單,就不再一步一步的進行演示了。

2.利用編譯工具反編譯

利用工具,自己進行反編譯(其實就是工具的使用)

需要的工具:

  • APK TOOL :谷歌提供的 APK 編譯工具,可以反編譯和回編譯。我們都知道,其實 APK 就是一個壓縮包,我們完全可以把 .apk 修改為 .zip。通過這種方式來獲取資源文件,但是 xml 會亂碼。如果你使用 apk tool 來進行反編譯 apk 就不會出現這種問題了。 下載地址:https://ibotpeaches.github.io/Apktool/install/ (需要科學網)
  • dex2jar:將 dex 文件轉換成 jar 包 下載地址:http://sourceforge.net/projects/dex2jar/files/
  • jd-gui:用來查看 jar 包裡面的代碼的一種工具。官網下載地址:http://jd.benow.ca/

如果你不方便科學上網的話,我已經打包了,可以在這裡下載:https://download.csdn.net/download/sydmobile/10846283

APK TOOL 的使用

使用很簡單,把要反編譯的 apk 放到 apktool.jar 所在的目錄,然後在命令行中定位到當前文件夾。然後輸入命令: apktool d xxx.apk 這樣就成功了。會在當前目錄下生成一個以 apk 命名的目錄,這個目錄就是解壓出來的目錄。

dex2jar 使用

把 apk 解壓後的 classes.dex 文件放到 dex2jar 所在的文件夾中。然後在當前目錄下在命令行中輸入: d2j-dex2jar classes.dex 就會生成一個 classes.jar 包。然後用 jd-gui 打開就可以了。

以上內容很簡單,就不再演示了。有什麼問題可以交流


分享到:


相關文章: