1. 程式人生 > >關於反編譯APP問題

關於反編譯APP問題

一.反編譯需要使用的輔助軟體

  1. apktool:獲取資原始檔,提取圖片檔案,佈局檔案,還有一些XML的資原始檔
  2.dex2jar:將APK反編譯成Java原始碼(將classes.dex轉化為jar檔案)
  3.jd-gui:檢視2中轉換後的jar檔案,即檢視Java檔案

   apktool下載    dex2jar下載    jd-gui下載

二、下載完畢後,開始我們的反編譯之旅

   1.首先登場的apktool把要反編譯的apk放到apktool根目錄下,點開cmd.exe輸入命令apktool.bat d filename.apk![在這裡插入圖片描述](https://img-blog.csdnimg.cn/20181112101339985.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3hpYW9oYWk2OTU5NDM4MjA=,size_16,color_FFFFFF,t_70)
   2.使用dex2jar將classes.dex轉換成jar檔案

開啟cmd,來到這個目錄下:鍵入:d2j-dex2jar.bat classes.dex

接著我們可以看到,生成了一個jar包:


好的,轉換完成!

   

3.使用jd-gui檢視jar包中的Java程式碼:

好的,開啟jd-gui的資料夾

開啟後,開啟我們3中轉換後的jar包,我們可以看見裡面的程式碼:

csdn的客戶端竟然不混淆程式碼...可能是本著開源的精神吧,給我們學習程式碼吧!一般的話,apk釋出都會 進行混淆,然後進行一些加密,或者使用第三方的加密平臺,用的比較多的"愛加密",有興趣的也自行百度檢視更加詳細的介紹!

注:部分借鑑runnnoob因為我反編譯的是kotlin版本沒辦法使用後續步驟。

常見問題

使用apktool工具遇到could not decode arsc file 解決辦法:是由於你的apktool版本過低升級版本,檔名稱要一致。