国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

Android程序反編譯的方法

移動開發 Android
自我認為這篇文章不錯,給大家推薦一下。

Apk文件的格式 Android application package文件。每個要安裝到android平臺的應用都要被編譯打包為一個單獨的文件,后綴名為.apk,其中包含了應用的二進制代碼、資源、配置文件等。

apk文件實際是一個zip壓縮包,可以通過解壓縮工具解開。可以用zip解開*.apk文件,下面是一個helloword的apk示例文件

  1. |– AndroidManifest.xml   
  2. |– META-INF   
  3. | |– CERT.RSA   
  4. | |– CERT.SF   
  5. | `– MANIFEST.MF   
  6. |– classes.dex   
  7. |– res   
  8. | |– drawable   
  9. | | `– icon.png   
  10. | `– layout   
  11. | `– main.xml   
  12. `– resources.arsc   

1 Manifest文件:AndroidManifest.xml是每個應用都必須定義和包含的,它描述了應用的名字、版本、權限、引用的庫文件等等信息[ , ],如要把apk上傳到Google Market上,也要對這個xml做一些配置。注意:在apk中的xml文件是經過壓縮的,不可以直接打開。

2 Res文件:res文件夾下為所有的資源文件。

3 resources.arsc文件:為編譯后的二進制資源文件,許多做漢化軟件的人都是修改該文件內的資源以實現軟件的漢化的。

4 META-INF目錄:META-INF目錄下存放的是簽名信息,用來保證apk包的完整性和系統的安全。在eclipse編譯生成一個api包時,會對所有要打包的文件做一個校驗計算,并把計算結果放在META-INF目錄下。而在OPhone平臺上安裝apk包時,應用管理器會按照同樣的算法對包里的文件做校驗,如果校驗結果與META-INF下的內容不一致,系統就不會安裝這個apk。這就保證了apk包里的文件不能被隨意替換。比如拿到一個apk包后,如果想要替換里面的一幅圖片,一段代碼, 或一段版權信息,想直接解壓縮、替換再重新打包,基本是不可能的。如此一來就給病毒感染和惡意修改增加了難度,有助于保護系 統的安全。

5 classes.dex是java源碼編譯后生成的java字節碼文件。但由于Android使用的dalvik虛擬機與標準的java虛擬機是不兼容的,dex文件與class文件相比,不論是文件結構還是opcode都不一樣。

XML文件的反編譯

在apk中的xml文件是經過壓縮的,可以通過AXMLPrinter2工具解開,具體命令為:

  1. java -jar AXMLPrinter2.jar AndroidManifest.xml   
  2. HelloAndroid程序中Manifest文件的實例:   
  3. <?xml version="1.0" encoding="utf-8"?>   
  4. <manifest    xmlns:android="http://schemas.android.com/apk/res/android"   
  5.     android:versionCode="1"   
  6.     android:versionName="1.0"   
  7.     package="name.feisky.android.test"   
  8.     >   
  9.     <application   
  10.         android:label="@7F040001"   
  11.         android:icon="@7F020000"   
  12.         >   
  13.         <activity   
  14.             android:label="@7F040001"   
  15.             android:name=".HelloAndroid"   
  16.             >   
  17.             <intent-filter   
  18.                >   
  19.                <action                     android:name="android.intent.action.MAIN"   
  20.                     >   
  21.                 </action>   
  22.                 <category                    android:name="android.intent.category.LAUNCHER"   
  23.  
  24.                     >   
  25.                 </category>   
  26.             </intent-filter>   
  27.         </activity>   
  28.     </application>   
  29.     <uses-sdk   
  30.         android:minSdkVersion="6"   
  31.         >   
  32.     </uses-sdk>   
  33. </manifest>  
  1. 而原文件為:   
  2. <?xml version="1.0" encoding="utf-8"?>   
  3. <manifest xmlns:android="http://schemas.android.com/apk/res/android"   
  4. package="name.feisky.android.test"   
  5. android:versionCode="1"   
  6. android:versionName="1.0">   
  7. <application android:icon="@drawable/icon" android:label="@string/app_name">   
  8. <activity android:name=".HelloAndroid"   
  9. android:label="@string/app_name">   
  10. <intent-filter>   
  11. <action android:name="android.intent.action.MAIN" />   
  12. <category android:name="android.intent.category.LAUNCHER" />   
  13. </intent-filter>   
  14. </activity>   
  15. </application>   
  16. <uses-sdk android:minSdkVersion="6" />   
  17. </manifest>   

#p#

classes.dex文件反編譯

classes.dex是java源碼編譯后生成的java字節碼文件。但由于Android使用的dalvik虛擬機與標準的java虛擬機是不兼容的,dex文件與class文件相比,不論是文件結構還是opcode都不一樣。目前常見的java反編譯工具都不能處理dex文件。

Android模擬器中提供了一個dex文件的反編譯工具,dexdump。用法為首先啟動Android模擬器,把要查看的dex文件用adb push上傳的模擬器中,然后通過adb shell登錄,找到要查看的dex文件,執行dexdump xxx.dex。但是這樣得到的結果,其可讀性是極差的。下面介紹一個可讀性比較好的工具。

工具準備:

1、把dex文件反編譯為jar文件的工具。(dex2jar)

2、把jar反編譯為java的工具。(JD-GUI)

反編譯的步驟

1、從APK中提取classes.dex文件,對APK文件解壓即可得到。 將其放到dex2jar的目錄下,打開cmd,運行dex2jar.bat classes.dex,生成classes.dex.dex2jar.jar。

2、運行JD-GUI工具,打開上面的jar文件,即可看到源代碼。

  1. HelloAndroid實例:  
  2. package name.feisky.android.test;   
  3. import android.app.Activity;   
  4. import android.os.Bundle;   
  5. public class HelloAndroid extends Activity   
  6. {   
  7. public void onCreate(Bundle paramBundle)   
  8. {   
  9. super.onCreate(paramBundle);   
  10. setContentView(2130903040);   
  11. }   
  12. }  

其原程序為:

  1. package name.feisky.android.test;   
  2. import android.app.Activity;   
  3. import android.os.Bundle;   
  4. public class HelloAndroid extends Activity {   
  5. /** Called when the activity is first created. */   
  6. @Override   
  7. public void onCreate(Bundle savedInstanceState) {   
  8. super.onCreate(savedInstanceState);   
  9. setContentView(R.layout.main);   
  10. }   

【編輯推薦】

Android布局屬性詳解

Android環境變量的設置

Android 多任務多線程斷點下載

Android開發之旅:Android架構

責任編輯:zhaolei 來源: 網絡轉載
相關推薦

2011-05-31 14:52:13

Android 反編譯 方法

2015-01-15 11:01:43

2011-05-31 14:38:04

Android 反編譯

2011-04-20 10:32:44

java反編譯

2009-06-11 13:49:30

2015-01-15 10:15:16

Android反編譯-smail語法

2017-11-27 15:43:49

Androidjadx反編譯

2017-02-20 13:54:14

Java代碼編譯

2015-07-13 15:52:18

反編譯Android APK

2018-05-11 10:16:41

微信小程序反編譯

2015-08-07 11:11:15

反編譯源代碼Mac

2018-05-11 10:22:05

小程序源碼分析

2021-03-07 16:31:35

Java編譯反編譯

2021-12-10 10:05:27

Java反編譯jar

2017-07-13 13:13:49

AndroidAPK反編譯

2024-05-22 09:36:42

開源NET

2009-06-11 14:11:33

代碼混淆Java反編譯

2025-06-17 07:35:27

Spring程序jadx

2024-09-09 00:00:07

2025-06-17 09:31:24

點贊
收藏

51CTO技術棧公眾號

色噜噜久久综合| 国产午夜精品久久久| 日本一区二区三级电影在线观看| 久久成人av少妇免费| 亚洲一区国产一区| 国产一区激情| 永久亚洲成a人片777777| 成人影视亚洲图片在线| 任我爽精品视频在线播放| 91大神在线观看线路一区| 91探花在线观看| 色呦呦在线看| 99在线播放| 成人免费看片| 日本在线www| 成人亚洲性情网站www在线观看| 性网站在线播放| 在线观看免费毛片| 羞羞视频在线观看| 玖玖综合伊人| 成年人在线看| 黄网站视频在线观看| fc2ppv国产精品久久| 四虎影院观看视频在线观看| 中中文字幕av在线| 青春草免费在线视频| 不卡一本毛片| 三级中文字幕在线观看| 美脚恋feet久草欧美| 亚洲欧美一区二区三区| 在线免费看h| 欧美日韩不卡| 99久久综合国产精品二区| 欧美三级电影网址| 亚洲2区在线| 性人久久久久| 天天操夜夜操国产精品| 狠狠88综合久久久久综合网| 在线亚洲激情| 九九九久久久精品| 成人丝袜高跟foot| 国产午夜精品一区二区三区嫩草| 国产精品视频观看| 亚洲第一av色| 欧美色电影在线| 精品成人一区二区| 中文在线资源观看视频网站免费不卡| 久久久999成人| 97精品在线观看| 国产日韩精品在线播放| 国产私拍一区| 欧美日韩视频免费在线观看| 国产原创中文在线观看| 超碰成人福利网| 天堂成人在线| 污污视频在线| 国产激情欧美| 欧美调教在线| 欧美女人交a| 美国一区二区三区在线播放 | 日韩理论在线| 国产欧美综合一区二区三区| 韩日欧美一区二区三区| 久久精品夜色噜噜亚洲a∨| 一级做a爱片久久| 欧美丰满高潮xxxx喷水动漫| 伊人一区二区三区久久精品| 海角国产乱辈乱精品视频| 91九色在线视频| 久久五月天婷婷| 欧美一级片免费播放| 天天干天天玩天天操| 国产永久免费高清在线观看| 神马久久午夜| 丝袜av一区| 国产手机视频一区二区| 成人av网站在线观看| 亚洲一级二级三级在线免费观看| 日韩一区二区在线观看视频播放| 久久精品91久久久久久再现| 成人午夜一级二级三级| 三年中国中文在线观看免费播放| 日韩av片网站| 欧美一级二级三级区| 日韩有码欧美| 欧美黄在线观看| 成人三级在线视频| 欧美性猛交xxxx久久久| 亚洲欧洲中文天堂| 国产精品一区二区三区毛片淫片| 亚洲精品一区国产精品| 国产福利电影| freexxx性亚洲精品| 亚洲免费成人av在线| 日本不卡一二三区黄网| 国产精品国产三级国产| 日韩免费一区二区三区在线播放| 午夜精品一区二区三区在线视 | 日韩精品一二三| 国产精品美女久久久久久久网站| 555夜色666亚洲国产免| 久久久久久中文| 久久影院理伦片| 嫩草影院在线观看网站成人| 精品视频在线一区二区| 国产精品久久久网站| 久久一区二区三区四区五区 | 国产精品日日摸夜夜添夜夜av| 亚洲成色最大综合在线| 国产理论片免费观看| 国产污视频在线播放| 日本大胆欧美| 成人免费视频国产在线观看| 91国偷自产一区二区使用方法| 麻豆乱码国产一区二区三区 | 国产资源在线视频| 成人资源www网在线最新版| 国产精品美女久久久久| 亚洲一区二区伦理| 亚洲日本成人在线观看| 亚洲男人天堂2024| 国产精品二区在线| 人人做人人爽| 奇米777日韩| 亚洲欧洲一区| 一区二区欧美视频| 日韩中文字幕精品| 欧美日韩最好看的视频| 欧美最顶级a∨艳星| 国产一区二区三区国产精品| 日韩成人午夜电影| 午夜激情久久久| 久久伊人91精品综合网站| 欧美二区三区在线| 高清免费观看在线| 国产情侣一区在线| 另类小说视频一区二区| 在线影视一区二区三区| 欧美中文字幕视频| 无码人妻丰满熟妇区96| 高h视频在线播放| 欧美在线二区| 亚洲少妇30p| 美女少妇精品视频| 国产欧美综合一区| 国产区在线看| 欧美激情1区2区3区| 亚洲欧美成人一区二区三区| 久久五月天综合| 熟女视频一区二区三区| 黄色国产网站在线播放| 亚洲午夜精品一区 二区 三区| 中文字幕视频一区二区三区久| 视频直播国产精品| 一级做a爰片久久| 日本在线看片免费人成视1000| 黑丝美女一区二区| 国产精品美女久久久久久| 久久精品久久精品亚洲人| 中文字幕一区二区三区四区五区人 | 欧美精品一区二区三区精品| 国产清纯在线一区二区www| 国产亚洲综合久久| 亚洲国产成人不卡| 在线观看麻豆| 自拍偷拍欧美| 亚洲成人自拍一区| 欧美亚洲国产另类| 我要看一级黄色大片| 国产一区二区三区亚洲综合| 粉嫩13p一区二区三区| 亚洲国产精品电影| 日韩精品一区二区三区四区五区| 2017亚洲天堂1024| 欧美成人午夜| 日韩欧美国产黄色| 成人a免费视频| 色佬视频在线观看| 国产免费久久| 亚洲综合av网| 国产成人欧美在线观看| 成人黄动漫网站| 神马日本精品| 亚洲美女视频在线观看| 欧美在线性爱视频 | 高清av免费看| 亚洲一区电影| 久久精品人人做| 欧美二区乱c黑人| 香蕉视频禁止18| 国产亚洲成av人片在线观黄桃| 日本一区二区综合亚洲| 久热精品视频在线观看| 国语对白做受xxxxx在线中国| 高清一区二区中文字幕| 91啦中文在线观看| 久久99久久99精品免观看粉嫩 | 亚洲成人福利在线观看| 国产毛片久久久| 亚洲欧美偷拍三级|