詳解反編譯Android程式的方法

來源:互聯網
上載者:User

本文和大家詳細講解反編譯Android程式的方法
Apk檔案的格式
Android application package檔案。每個要安裝到android平台的應用都要被編譯打包為一個單獨的檔案,尾碼名為.apk,其中包含了應用的二進位代碼、資源、設定檔等。
 
apk檔案實際是一個zip壓縮包,可以通過解壓縮工具解開。可以用zip解開*.apk檔案,下面是一個helloword的apk樣本檔案
 
|– AndroidManifest.xml
|– META-INF
| |– CERT.RSA
| |– CERT.SF
| `– MANIFEST.MF
|– classes.dex
|– res
| |– drawable
| | `– icon.png
| `– layout
| `– main.xml
`– resources.arsc
 
Manifest檔案:AndroidManifest.xml是每個應用都必須定義和包含的,它描述了應用的名字、版本、許可權、引用的庫檔案等等資訊[ , ],如要把apk上傳到Google Market上,也要對這個xml做一些配置。注意:在apk中的xml檔案是經過壓縮的,不可以直接開啟。
Res檔案:res檔案夾下為所有的資源檔。
resources.arsc檔案:為編譯後的二進位資源檔,許多做漢化軟體的人都是修改該檔案內的資源以實現軟體的漢化的。
META-INF目錄:META-INF目錄下存放的是簽名資訊,用來保證apk包的完整性和系統的安全。在eclipse編譯產生一個api包時,會對所有要打包的檔案做一個校正計算,並把計算結果放在META-INF目錄下。而在OPhone平台上安裝apk包時,應用管理器會按照同樣的演算法對包裡的檔案做校正,如果校正結果與META-INF下的內容不一致,系統就不會安裝這個apk。這就保證了apk包裡的檔案不能被隨意替換。比如拿到一個apk包後,如果想要替換裡面的一幅圖片,一段代碼, 或一段著作權資訊,想直接解壓縮、替換再重新打包,基本是不可能的。如此一來就給病毒感染和惡意修改增加了難度,有助於保護系 統的安全。
classes.dex是java源碼編譯後產生的java位元組碼檔案。但由於Android使用的dalvik虛擬機器與標準的java虛擬機器是不相容的,dex檔案與class檔案相比,不論是檔案結構還是opcode都不一樣。

 

 

我先經過dex2jar轉成jar, 然後再用jd-gui-0.3.1.windows.zip 將jar的內容轉成java檔案。

 

XML檔案的反編譯
 
在apk中的xml檔案是經過壓縮的,可以通過AXMLPrinter2工具解開,具體命令為:
 
java -jar AXMLPrinter2.jar AndroidManifest.xml

 

不過這樣子dos 命令列裡不能看到全部, 有個比較好的工具就是APKTool, 這個專門用來轉xml檔案。

 

安裝步驟如下:

1.首先安裝需要JAVA環境,先下載JDK/JRE,點擊下載
,已經有JAVA環境的可跳過此步

2.到code.google上下載apktool.jar以及相關檔案:http://code.google.com/p/android-apktool/downloads/list

點擊下載apktool-1.0.0.tar.bz2

和apktool-install-windows-2.1_r01-1.zip

 

點擊開始菜單,運行,輸入CMD斷行符號,用cd命令轉到剛剛解壓apktool-install-windows所在的檔案夾,輸入apktool,出現一些命令說明即成功安裝。

 

Apktool 命令

apktool d geek.apk and    反編譯 geek.apk到檔案夾and

apktool b  geek              
從檔案夾geek重建APK,輸出到ABC/dist/out.apk

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.