Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> 教你如何正確反編譯apk

教你如何正確反編譯apk

編輯:關於Android編程

簡單的說下反編譯apk的流程:

我們一般想要反編譯一個apk,無非就是想獲得三樣東西

圖片資源 ,XML資源,和代碼資源

一.圖片資源獲取、

這個最簡單啦,

 

\

 

首先准備一個apk,嘿嘿就是你啦

 

這裡寫圖片描述

 

這裡是一個.apk後綴的文件,我們先把後綴改成,zip,

然後就成了這樣

 

這裡寫圖片描述

 

化身壓縮文件啦撒,然後打開後你就能看到如下圖

 

這裡寫圖片描述

 

從壓縮文件裡解析出來的有很多目錄撒,有大家熟悉的res目錄,還有一個待會著重介紹的

classes.dex文件

在res目錄下,我們就可以獲取到我們需要的圖片了撒,是不是非常esay

 

這裡寫圖片描述

 

 

這裡寫圖片描述

 

二.XML資源獲取

我們可以在剛剛的目錄下看到很多.xml的文件,但是你以為這個也可以直接打開,你就太年輕了,當你嘗試著打開的時候都是亂碼或者是空白,那麼我們要如何獲取到這個xml資源呢,這時候就需要借助一個jar包,就是它,axmlprinter2.jar

這個東西你只要百度下,就能搜到。

然後 你把他放跟你解壓出來的xml放在同級目錄下,用cmd命令找到這個目錄,

我這邊的示例是將xml放在了E盤,大家根據情況,cd到自己解壓出來的目錄下,然後執行

java -jar AXMLPrinter2.jar xxxxx.xml>xxxxx.txt

如下所示

 

這裡寫圖片描述

 

這個時候你就能獲取到xml裡的東西啦

 

這裡寫圖片描述

 

是不是很easy嘻嘻

 

這裡寫圖片描述

 

三.代碼資源的獲取

這個重中之重了,這也是我們主要想要獲取到的東西。但是存在一點,這裡能夠正確反編譯出來的只有未加密或者沒有混淆的代碼,如果想要反編譯一些加密或者混淆後代碼,俺們就需要其他途徑解決了

首先要准備兩樣東西

 

這裡寫圖片描述

 

dex2jar主要是用來把之前zip解壓出來的classed.dex轉成jar包的

jd-gui主要是用來打開Jar包的

這兩個工具圖中有下載鏈接喲,嘻嘻

具體講下dex2jar怎麼用

把dex2jar 解壓後,然後將之前zip的classes.dex放到 dex2jar目錄下,

注意,必須要跟dex2jar.bat是同級目錄,如下圖所示

 

這裡寫圖片描述

 

然後又要用到cmd,cd 到dex2jar目錄下,打命令行

dex2jar.bat classes.dex

 

這裡寫圖片描述

 

然後你的目錄裡會多一個jar包

 

這裡寫圖片描述

 

多了一個 classes-dex2jar.jar的文件

然後在用jd-gui把jar包打開,最終apk的代碼就這樣被剝離出來了

 

這裡寫圖片描述

 

是不是很有成就感啊,但是值得注意的是,如果你反編譯的apk是已經被加密的,就會出現下面情況。下圖是題主試圖反編譯支付寶apk得到的代碼

 

這裡寫圖片描述

 

所以,代碼混淆很重要撒嘻嘻,下篇博客主要講如何混淆自己的代碼,不讓別人那麼輕易地把你的代碼剝離出來

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved