Android 軟件安裝程序(*.apk)的結構分析、反編譯



作者:徐建祥(netpirate@gmail.com)
日期:2009/12/23
網址:http://www.anymobile.org


1/ apk文件結構:


 


Apk文件:


Android application package文件。每個要安裝到OPhone平台的應用都要被編譯打包為一個單獨的文件,後綴名為.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


 


2/ apk文件解壓後反編譯:


2.1 圖片等多媒體文件:沒有編譯,無需反編譯。


2.2 layout等二進制xml文件:使用AXMLPrinter將其轉換為可讀的xml文件:java -jar AXMLPrinter2.jar main.xml > new_main.xml
工具下載地址:http://code.google.com/p/android4me/downloads/list


2.3 class文件反編譯:



Android模擬器中提供了一個dex文件的反編譯工具,dexdump。用法為首先啟動Android模擬器,把要查看的dex文件用adb push上傳的模擬器中,然後通過adb shell登錄,找到要查看的dex文件,執行dexdump xxx.dex。


目前在網上能找到的另一個dex文件的反編譯工具是Dedexer。 Dedexer可以讀取dex格式的文件,生成一種類似於彙編語言的輸出。這種輸出與jasmin[ ]的輸出相似,但包含的是Dalvik的字節碼。



2.4 resources.arsc資源文件:參考漢化部分


3/ android 軟件漢化



方案1:通過16進制編碼軟件自行替換英文
      1.JDK(Java Development Kit) -開發環境
      2.Auto-Sign -簽名工具
      3.Hex Workshop -十六進制編輯器
      4.WinRAR -壓縮軟件
      圖文並茂示例:http://bbs.blueshow.net/thread-604533-1-1.html


方案2:通過漢化開發人員自行編寫的漢化軟件For Android
      1.JDK(Java Development Kit) -開發環境
      2.Android ResEdit-漢化軟件
      3.WinRAR -壓縮軟件
      圖文並茂示例:http://mobile.yesky.com/363/9292863.shtml


 


參考文檔:


Apk文件結構簡介 http://www.ophonesdn.com/article/show/38
Apk文件結構、dex反編譯 http://ken.opda.cn/?p=31
android 資源文件反編譯 http://ken.opda.cn/?p=53


本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/netpirate/archive/2009/12/24/5066556.aspx

    全站熱搜

    立你斯 發表在 痞客邦 留言(1) 人氣()