五月综合缴情婷婷六月,色94色欧美sute亚洲线路二,日韩制服国产精品一区,色噜噜一区二区三区,香港三级午夜理伦三级三

您現(xiàn)在的位置: 365建站網(wǎng) > 365文章 > Android APK反編譯工具和教程

Android APK反編譯工具和教程

文章來(lái)源:365jz.com     點(diǎn)擊數(shù):377    更新時(shí)間:2017-11-28 22:36   參與評(píng)論

在學(xué)習(xí)Android開(kāi)發(fā)的過(guò)程你,你往往會(huì)去借鑒別人的應(yīng)用是怎么開(kāi)發(fā)的,那些漂亮的動(dòng)畫(huà)和精致的布局可能會(huì)讓你愛(ài)不釋手,作為一個(gè)開(kāi)發(fā)者,你可能會(huì)很想知道這些效果界面是怎么去實(shí)現(xiàn)的,這時(shí),你便可以對(duì)改應(yīng)用的APK進(jìn)行反編譯查看。下面是我參考了一些文章后簡(jiǎn)單的教程詳解。

(注:反編譯不是讓各位開(kāi)發(fā)者去對(duì)一個(gè)應(yīng)用破解搞重裝什么的,主要目的是為了促進(jìn)開(kāi)發(fā)者學(xué)習(xí),借鑒好的代碼,提升自我開(kāi)發(fā)水平。)

 

測(cè)試環(huán)境:

        win 7 

 

使用工具:

     CSDN上下載地址:

       apktool (資源文件獲取

       dex2jar(源碼文件獲?。?/strong>

       jd-gui  (源碼查看)

 

       Android反編譯整合工具包(最新)

 

     官方最新版本下載地址:

       apktool(google code)

  dex2jar(google code)  

   jd-gui(google code)最新版請(qǐng)見(jiàn)官方

 

 

工具介紹:

apktool  

     作用:資源文件獲取,可以提取出圖片文件和布局文件進(jìn)行使用查看

dex2jar

     作用:將apk反編譯成java源碼(classes.dex轉(zhuǎn)化成jar文件)

jd-gui

     作用:查看APK中classes.dex轉(zhuǎn)化成出的jar文件,即源碼文件


ApkTool是一個(gè)APK反編譯工具,它擁有編譯、反編譯、簽名等功能,對(duì)于經(jīng)常DIY安卓軟件、特別是對(duì)喜歡ROM美化,功能破解,修改定制的朋友來(lái)說(shuō),是必不可少的并且非常實(shí)用的一個(gè)工具。今天給大家?guī)?lái)的是2.2.2版本的apktool.jar工具包,集合了批處理一鍵反編譯功能,非常好用,也是迄今為止最新的版本。
 

反編譯流程:

一、apk反編譯得到程序的源代碼、圖片、XML配置、語(yǔ)言資源等文件

下載上述工具中的apktool,解壓得到3個(gè)文件:aapt.exe,apktool.bat,apktool.jar ,將需要反編譯的APK文件放到該目錄下,

打開(kāi)命令行界面(運(yùn)行-CMD) ,定位到apktool文件夾,輸入以下命令:apktool.bat d -f  test.apk  test    

(命令中test.apk指的是要反編譯的APK文件全名,test為反編譯后資源文件存放的目錄名稱,即為:apktool.bat   d  -f    [apk文件 ]   [輸出文件夾]

說(shuō)明獲取成功,之后發(fā)現(xiàn)在文件夾下多了個(gè)test文件,點(diǎn)擊便可以查看該應(yīng)用的所有資源文件了。

如果你想將反編譯完的文件重新打包成apk,那你可以:輸入apktool.bat   b    test(你編譯出來(lái)文件夾)便可,效果如下:

之后在之前的test文件下便可以發(fā)現(xiàn)多了2個(gè)文件夾:

build

dist(里面存放著打包出來(lái)的APK文件)

 

 

 

二、Apk反編譯得到Java源代碼

下載上述工具中的dex2jarjd-gui ,解壓

將要反編譯的APK后綴名改為.rar或則 .zip,并解壓,得到其中的額classes.dex文件(它就是java文件編譯再通過(guò)dx工具打包而成的),將獲取到的classes.dex放到之前解壓出來(lái)的工具dex2jar-0.0.9.15 文件夾內(nèi),

在命令行下定位到dex2jar.bat所在目錄,輸入dex2jar.bat   classes.dex,效果如下:

在改目錄下會(huì)生成一個(gè)classes_dex2jar.jar的文件,然后打開(kāi)工具jd-gui文件夾里的jd-gui.exe,之后用該工具打開(kāi)之前生成的classes_dex2jar.jar文件,便可以看到源碼了,效果如下:

被混淆過(guò)的效果圖(類文件名稱以及里面的方法名稱都會(huì)以a,b,c....之類的樣式命名):

 

 

三、 圖形化反編譯apk(本人未使用過(guò))

上述步驟一、二講述了命令行反編譯apk,現(xiàn)在提供一種圖形化反編譯工具:Androidfby

首先,下載上述反編譯工具包,打開(kāi)Androidfby目錄,雙擊Android反編譯工具.exe,就可以瀏覽打開(kāi)要反編譯的apk

 

通過(guò)反編譯,你可以獲知該應(yīng)用用到了什么第3方的庫(kù)文件,它的代碼是如何編寫(xiě)的等等。

然而,如果該APK進(jìn)行了混淆處理,那么你看到的類文件名稱以及里面的方法名稱都會(huì)以a,b,c....之類的樣式命名,所以你可以想找到你所想得知的界面代碼可能會(huì)十分費(fèi)勁,找到了代碼可能看起來(lái)也會(huì)很費(fèi)勁,可是一個(gè)大體的思路會(huì)獲得,有了這個(gè)思路,你就可以自己去嘗試了。

本人曾經(jīng)想寫(xiě)一個(gè)類似唱吧的名人界面布局,可是當(dāng)初第一次接觸不知道如何去寫(xiě),進(jìn)進(jìn)行了反編譯,即使他的那個(gè)代碼是混淆過(guò)的,我也看出來(lái)他是通過(guò)LISTVIEW的TYPE設(shè)定不同的ITEM布局實(shí)現(xiàn)了??赡芎枚嘁枚际遣捎弥貙?xiě)VIEW來(lái)實(shí)現(xiàn)效果,你可以得到他的大體思路對(duì)你的開(kāi)發(fā)有益無(wú)害。

 

還有處于一個(gè)開(kāi)發(fā)者辛辛苦苦將自己的應(yīng)用開(kāi)發(fā)出來(lái)被別人一反編譯便成為了他自己的東西,所以要進(jìn)行混淆處理:

以下是我轉(zhuǎn)載的混淆的教程:http://theartemis.cn/article/23959

如對(duì)本文有疑問(wèn),請(qǐng)?zhí)峤坏浇涣髡搲?,廣大熱心網(wǎng)友會(huì)為你解答??! 點(diǎn)擊進(jìn)入論壇

發(fā)表評(píng)論 (377人查看0條評(píng)論)
請(qǐng)自覺(jué)遵守互聯(lián)網(wǎng)相關(guān)的政策法規(guī),嚴(yán)禁發(fā)布色情、暴力、反動(dòng)的言論。
昵稱:
最新評(píng)論
------分隔線----------------------------

其它欄目

· 建站教程
· 365學(xué)習(xí)

業(yè)務(wù)咨詢

· 技術(shù)支持
· 服務(wù)時(shí)間:9:00-18:00
365建站網(wǎng)二維碼

Powered by 365建站網(wǎng) RSS地圖 HTML地圖

copyright © 2013-2024 版權(quán)所有 鄂ICP備17013400號(hào)