android之反編譯淺析

來源:互聯網
上載者:User

標籤:android   android反編譯   反編譯工具   簽名   

android反編譯淺析

 

從接觸android開發開發,反編譯一直就是離不開的工具,學習好的android應用的代碼編寫規範。

 

這篇文章主要就是講述如何反編譯apk檔案得到java檔案的,反編譯不為了竊取,僅供學習交流代碼而已。本文的目錄結構為:

1、概述

2、詳細的講述apk工程的反編譯

 

概述:

分析Android工程的目錄結構可以知道,其基本上可以簡單的理解為三個部分:源碼,資源檔和編譯設定檔。這其中的資源檔(圖片,xml檔案,assert等)是從打包開始就直接存放在apk中的,圖片等無需反編譯,源碼(暫時接觸到java源碼)檔案則很有可能會被“混淆”以防止別人反編譯,混淆檔案存放在設定檔ant.properties檔案中的;而設定檔,主要是androidManifest.xml檔案則是直接暴露出來的,這很關鍵。擷取xml檔案盒源碼則成為反編譯最重要的任務。

 

下面來詳細的講述apk工程的反編譯一、使用編譯工具

本人也是直接從網上下載的反編譯工具,使用效果不錯,這裡提供:http://download.csdn.net/detail/feishangbeijixing/8094335

1、apktool,得到xml檔案 

2、android反編譯工具  

 

二、開工

a)        Apk——> 工程目錄

這一步相對很簡單,主要是為了得到androidManifest.xml檔案,dex檔案,布局檔案和資源檔。有兩種方式都可以實現:

1、  直接將apk解壓縮

這樣的情況下,沒有經過“混淆”的apk工程是可以直接得到xml檔案(可直接閱讀的)和dex檔案的;但是經過“混淆”的apk工程檔案中xml檔案貌似不可以直接讀取(顯示亂碼)

2、  使用apktool工具

使用方法:先將apktool解壓縮,在apk檔案夾目錄下放置需要解壓縮的apk檔案並更名為123.apk。雙擊apkTool檔案(其實是一個windows的指令檔,也可知是可以通過Dos的方式啟動並執行),點擊之後根據如所示,執行反編譯或者回編譯。

 



b)        Dex——>源碼

有上一步得到的dex檔案(在上一步中直接解壓就有可能得不到dex檔案,試過幾次貌似如此)

 

使用android反編譯工具中的dex2jar.bat工具,位置:android反編譯工具Android反編譯\dex2jar-0.0.9.15。

1、  執行命令:dex2jar.bat  classes.dex(執行命令之前需要先將classes.dex檔案放置到dex2jar-0.0.9.15這個檔案夾下,執行命令之後就可以得到classes_dex2jar檔案)

2、  用jd-gui工具查看上一步中得到的class-dex2jar包檔案。就可以看到源碼了

 

3、反編譯完了就可以查看並修改沒有經過“混淆”的源碼了。然後再用apkTool來回編譯並簽名就可以使用“你的”apk應用了

android之反編譯淺析

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.