Android反編譯apk到j(luò)ava源碼的方法_第1頁(yè)
Android反編譯apk到j(luò)ava源碼的方法_第2頁(yè)
Android反編譯apk到j(luò)ava源碼的方法_第3頁(yè)
Android反編譯apk到j(luò)ava源碼的方法_第4頁(yè)
Android反編譯apk到j(luò)ava源碼的方法_第5頁(yè)
免費(fèi)預(yù)覽已結(jié)束,剩余12頁(yè)可下載查看

付費(fèi)下載

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、Android反編譯apk到j(luò)ava源碼的方法分類:Android2010-12-3115:461931人閱讀評(píng)論(1)收藏舉報(bào)Apk文件破解可見(jiàn)源碼1 ,獲取apk的資源圖片直接用WinRAR打開(kāi),res/drawable直接拖拽出來(lái)即可。2 ,獲取xml文件信息雖然能用WinRAR看到里面的xml文件,但是xml是經(jīng)過(guò)優(yōu)化的,無(wú)法直接查看,需要使用apktool工具,下載地址:https:/code.google.Com/p/android-apktool/。下載apktool-131.tar.bz2和apktool-install-windows-2.2_r01-2.tar.bz2解壓到

2、同一個(gè)目錄,然后把待破解的apk文件拷貝到同一目錄,DOS在cmd下進(jìn)入apktool所在路徑,然后輸入apktoold"XXX1""XXX2",XXX1指的是你要反編譯的apk文件,XXX2指的是反編譯后文件存放的路徑,如:apktoold"C:/taobao.apk""C:/taobao"3 .反編譯dex獲取Java源代碼Apktool工具只能反編譯成smali的中間代碼文件,這里需要借助另外一個(gè)開(kāi)源工具:dex2jar,下載地址:http:/code.google.Com/p/dex2jar/。這個(gè)工具不能

3、直接翻譯成java文件,但是可以把dex文件轉(zhuǎn)換成jar文件,然后可以通過(guò)jad工具把jar文件反編譯成Java源文件,jd-gui下載地址:http:/java.decompiler.free.fr/jd-gui/downloads/jd-gui-033.windows.zip。詳細(xì)步驟:解壓apk文件,直接拖拽(rar解壓軟件),找到classes.dex文件在cmd下進(jìn)入dex2jar.bat所在路徑,然后輸入"dex2jar.batXXX:XXX指的是你要反編譯的apk中的classes.dex文件所在路徑及名稱(classes上面解壓得到),如:dex2jar.batD:/

4、classes.dex;這樣會(huì)生成一個(gè)classes.dex.dex2jar.jar文件,然后用jd-gui工具將jar文件反編譯成java文件,選擇保存所有,它會(huì)生成一個(gè)壓縮文件,所有的源碼都在這個(gè)壓縮文件中,解壓了就可以看到詳細(xì)的代碼了。很強(qiáng)大吧。from:一、獲得APK源代碼:工具下載:需用到dex2jar和JD-GUI這2個(gè)工具dex2jar下載地址:http:/laichao.googlecode.Com/files/dex2jar-0.0.7-SNAPSHOT.zipJD-GUI下載地址:windows版JD-GUI:Linux版JD-GUI:步驟:工具打包java1 .把a(bǔ)pk文

5、件改名為.zip,然后解壓縮,得到其中的classes.dex文件,它就是java文件編譯后再通過(guò)dx成的,所以現(xiàn)在我們就用上述提到的2個(gè)工具來(lái)逆方向?qū)С鲈次募? .把classes.dex拷貝到dex2jar.bat所在目錄。在命令行模式下定位到dex2jar.bat所在目錄,運(yùn)行dex2jar.batclasses.dex,生成classes.dex.dex2jar.jar3 .運(yùn)行JD-GUI工具(它是綠色無(wú)須安裝的)打開(kāi)上面的jar文件,即可看到源代碼.反編譯apk生成程序的源代碼和圖片、XML配置、語(yǔ)言資源等文件。工具下載:在http:/code.google.Com/p/andro

6、id-apktool/下載獲得,apktool-1.0.0.tar.bz2和apktool-install-windows-2.1_r01-1.zip兩個(gè)包。1 .解壓縮下載的兩個(gè)文件包,apktool-install-windows-2.1_r01-1.zip解壓縮后得到的包里有aapt.exe和apktool.bat.(注意要把a(bǔ)pktool-1.0.0.tar.bz2解壓后的一個(gè).jar文件copy進(jìn)來(lái))2 .打開(kāi)命令窗口(開(kāi)始>運(yùn)行,輸入cmd,回車(chē)。)進(jìn)入到apktool.bat的文件夾里。輸入:apktooldC:/*.apkC:/*文件夾(命令行解釋:apktoold要反編

7、譯的文件輸出文件夾)特別注意:你要反編譯的文件一定要放在C盤(pán)的根目錄里,3 .打開(kāi)C:/*文件夾就可以得到我們學(xué)院的各種資源了。from:http:本文主要介紹如何逆向一個(gè)Android的APK應(yīng)用程序,本文提供的方法僅供研究學(xué)習(xí)之用。本文需要用到的工具有jdk這個(gè)用于搭建java運(yùn)行環(huán)境AXMLPrinter2.jar這個(gè)用于逆向.xml文件baksmali.jar這個(gè)用于逆向classex.dex文件由于Android的.apk文件實(shí)際上就是一個(gè)zip文件可以直接用winrar打開(kāi)如下圖所示:文件豆)命令©工具母)收藏夾。)選項(xiàng)幫助理)叁蟲(chóng)嗡山的地噴林力燮添加解壓到測(cè)試查看刪除查

8、找向?qū)畔呙璨《咀⑨屪越鈮焊袷紿項(xiàng)DroxdNetKelper0.91.ark-ZIP壓縮文件,解包大小為106,436字節(jié)名稱一o壓縮后大小類型修改時(shí)恒資料夾jMETA-IHT資料夾_res資料夾AndroidMviifest.sml3,36a1;D1BXMLDocument2010-6-25T,17225,09&文件d«2010-6-:討resources.arse5,6921,557文件arwe2G10-T-1日刖總計(jì)2文件夾和6B,£32字節(jié)0個(gè)文件)用rar打開(kāi)之后我們可以看到該文件實(shí)際上是一個(gè)zip包里面包含了META-INFi件夾,這個(gè)文件夾是用于保

9、存簽名文件,確保包的完整性的res文件夾下就是apk所要用的資源文件,都是原封不動(dòng)地保存,我們可以直接提取出來(lái),做漢化時(shí)就可以直接閱讀string文件然后進(jìn)行修改AndroidManifest.xml文件則是編譯過(guò)后的一個(gè)配置文件,用于聲明程序中所包含的activity,service以及程序所具有的能力,也就是權(quán)限。resources.arsc則是編譯過(guò)后的一個(gè)資源說(shuō)明文件,而我們要關(guān)注的主要是classes.dex。我們編寫(xiě)的Android程序,在源程序里的所有.java的文件,最終都編譯到這樣1個(gè).dex文件當(dāng)中,在Android手機(jī)上的dalvik虛擬機(jī)上執(zhí)行。首先,我們介紹如何逆向一

10、個(gè).xml文件由于apk包里的xml文件我們直接用記事本打開(kāi)還是有一些亂碼所以需要我們還原才能更好的看出這里需要用到AXMLPrinter2.jar工具具體的則是打開(kāi)命令行我們以AndroidManifest.xml為例,輸入如下命令java-jarAXMLPrinter2.jarAndroidManifest.xml>AndroidManifest.txt有興趣的也可以寫(xiě)成一個(gè).bat的腳本,方便執(zhí)行我們可以看看執(zhí)行的結(jié)果執(zhí)行前的AndroidManifest.xml文件rdsversionNaversionConinSdkVermanifestapp1icatiactivityint

11、ent-ficategoryuses-sdk$,口rrrirrr+1iirbiL0I1abe1raid*htion_*andintent.cmissionnameIva1tp:/scheallpapersroid-inteategory»L*android.ueatas.andrdid.Christmasnt.action-MAAUNCHER£erpermission,I+E0執(zhí)行之后我們可以再看看viewplaincopytoclipboardprint?1. <?xmlversion="1.0"encoding="utf-8"

12、;?>2. <manifest3. xmlns:android="4. android:versionCode="322"5. android:versionName="ver3.2.2"6. package="com.eoeandroid.wallpapers.christmas"7. >8. <application9. android:label="7F040000"10. android:icon="7F020004"11. >12. <ac

13、tivity13. android:label="7F040001"15.>16. <intent-filter17. >18. <action19. android:name="ent.action.MAIN20. >21. </action>22. <category23. android:name=24. >25. </category>26. </intent-filter>27. </activity>28. <service29. an

14、droid:name=30. >31. </service>32. <meta-data33. android:name=34. android:value=35. >36. </meta-data>37. </application>38. <uses-sdk39. android:minSdkVersion=40. >"ent.category.LAUNCHER"".service.SyncDeviceInfosService""com.mobclix.

15、APPLICATIONID""30c0e2bb-a878-43cb-830b-a39fcae33b0c”"3"41. </uses-sdk>42. <uses-permission45.</uses-permission>46.<uses-permission47.android:name="android.permission.SET_WALLPAPER"48.>49.</uses-permission>50.<uses-permission51.android:name=

16、"android.permission.WRITE_EXTERNAL_STORAGE"52.>53.</uses-permission>54.<uses-permission55.android:name="android.permission.ACCESS_NETWORK_STATE"56.>57.</uses-permission>58.<uses-permission59.android:name="android.permission.READ_PHONE_STATE"60.&g

17、t;61.</uses-permission>62.<uses-permission63.android:name="android.permission.ACCESS_NETWORK_STATE"64.>65.</uses-permission>66.</manifest>viewplaincopytoclipboardprint?1. <?xml2. version="1.0"encoding="utf-8"?>3. <manifest4. xmlns:androi

18、d="http:5. android:versionCode="322"6. android:versionName="ver3.2.2"7. package="com.eoeandroid.wallpapers.christmas"8. >10. android:label="7F040000"11. android:icon="7F020004"12. >13. <activity14. android:label="7F040001"15.

19、android:name=".Main"16. >17. <intent-filter18. >19. <action20. android:name="ent.action.MAIN"21. >22. </action>23. <category24. android:name="ent.category.LAUNCHER"25. >26. </category>27. </intent-filter>28. &

20、lt;/activity>29. <service30. android:name=".service.SyncDeviceInfosService"31. >32. </service>33. <meta-data34. android:name="com.mobclix.APPLICATION_ID"35.android:value="30c0e2bb-a878-43cb-830b-a39fcae33b0c"36. >37. </meta-data>38. </appli

21、cation>39. <uses-sdk40. android:minSdkVersion="3"41. >42. </uses-sdk>43. <uses-permission44. android:name="android.permission.INTERNET"45. >46. </uses-permission>47. <uses-permission48. android:name="android.permission.SET_WALLPAPER"49. >

22、;50. </uses-permission>52. android:name="android.permission.WRITE_EXTERNAL_STORAGE"53. >54. </uses-permission>55. <uses-permission56. android:name="android.permission.ACCESS_NETWORK_STATE"57. >58. </uses-permission>59. <uses-permission60. android:nam

23、e="android.permission.READ_PHONE_STATE"61. >62. </uses-permission>63. <uses-permission64. android:name="android.permission.ACCESS_NETWORK_STATE"65. >66. </uses-permission>67. </manifest>基本能還原的跟源程序大致相同這里我是拿的eoe出的一個(gè)墻紙程序?yàn)槔酉聛?lái),大家肯定更加關(guān)心classes.dex的逆向這個(gè)其實(shí)跟之前那

24、個(gè)也很相似采用baksmali.jar這個(gè)工具,國(guó)外一個(gè)對(duì)Android研究的很深入的大牛做的執(zhí)行代碼java-jarbaksmali.jar-oclassout/classes.dex講classes.dex能逆向成一個(gè)文件夾這里我可以截個(gè)圖給大家看看.clasEoutccifn虺osiiiroidwallpapersehristmasutilsLrli,三,f,一,wirrrr.重三!&且.£三上工.組M札smaliSHALI文件4KBMain6$l.Linali.SMAU文件3KEMainST.smallSMALI文件3KEM鼠49$LSMALT文件2KBMainSlO

25、.sm<LiSHAU文件2KBeW3llpaperConst.SMALI煲件3KBSMALL文件3KBMin$4,加式i3I1XLI文件4KBMai婚生zn>aliSWAU文件3KE跟.smallSHAU文件2KBMin59.CfnaliSMALL文件2KEM&in$ll$l,smliSHALL支件7KB團(tuán)團(tuán)回回小M«in$2.sniliSMAH文件2KEHaixt$工vmiliSMALL文件2EEMaiii$7f1,sir&liSMAU文件3KEHain$8,smaliSMAU文件2KB楣名iw$l口$1.SMAU文件2KD1.mkli.SMALL文件3KB點(diǎn)開(kāi)其中一個(gè)文件我們繼續(xù)來(lái)看Olain11,sBali寫(xiě)字板文件更)編輯查看9插入格式)幫助口中鵬昌已觸名1嘻G%.classLeoni/soeandroid/walLpapers/christinas/MainJ1:.superLjava/lang/Object;.source'Maim,java"#interfaces.implementsLandroid/conten

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論