自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

淺析,反編譯Android APK流程分享

移動(dòng)開發(fā)
作為公司的技術(shù)兼產(chǎn)品人員,看到別人開發(fā)的優(yōu)秀Android APK實(shí)在羨慕,在Android開發(fā)的過程,也很想去學(xué)習(xí)別人那些漂亮的動(dòng)畫和布局,或是產(chǎn)品邏輯等是怎么做的,所以最近學(xué)習(xí)了對(duì)APK的反編譯,只做學(xué)習(xí)借鑒,提升產(chǎn)品競(jìng)爭(zhēng)力,不為任何不法企圖之用。

作為公司的技術(shù)兼產(chǎn)品人員,看到別人開發(fā)的優(yōu)秀Android APK實(shí)在羨慕,在Android開發(fā)的過程,也很想去學(xué)習(xí)別人那些漂亮的動(dòng)畫和布局,或是產(chǎn)品邏輯等是怎么做的,所以最近學(xué)習(xí)了對(duì)APK的反編譯,只做學(xué)習(xí)借鑒,提升產(chǎn)品競(jìng)爭(zhēng)力,不為任何不法企圖之用。

首先下載反編譯軟件apktool 、dex2jar、 jd-gui對(duì)APK進(jìn)行反編譯

工具介紹:

apktool :資源文件獲取,可以提取出圖片文件和布局文件進(jìn)行使用查看,其原理詳情:(http://my.oschina.net/1590538xiaokai/blog/467830

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

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

反編譯流程:

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

下載上述工具中的apktool,解壓得到3個(gè)文件:aapt.exe,apktool.bat,apktool.jar ,將需要反編譯的APK文件放到該目錄下,打開命令行界面(運(yùn)行-CMD) ,定位到apktool文件夾,輸入以下命令:apktool.bat d -f test.apk test(命令中test.apk指的是要反編譯的APK文件全名,test為反編譯后資源文件存放的目錄名稱,即為:apktool.bat d -f [apk文件 ] [輸出文件夾])

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

如果你想將反編譯完的文件重新打包成apk,那你可以:輸入apktool.bat b test(你編譯出來文件夾)便可,效果如下:之后在之前的test文件下便可以發(fā)現(xiàn)多了2個(gè)文件夾:build dist(里面存放著打包出來的APK文件)

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

下載上述工具中的dex2jar和jd-gui ,解壓將要反編譯的APK后綴名改為.rar或則 .zip,并解壓,得到其中的額classes.dex文件(它就是java文件編譯再通過dx工具打包而成的),將獲取到的classes.dex放到之前解壓出來的工具dex2jar-0.0.9.15 文件夾內(nèi),在命令行下定位到dex2jar.bat所在目錄,輸入dex2jar.bat classes.dex,效果如下:在改目錄下會(huì)生成一個(gè)classes_dex2jar.jar的文件,然后打開工具jd-gui文件夾里的jd-gui.exe,之后用該工具打開之前生成的classes_dex2jar.jar文件便可以看到源碼了,效果如下:被混淆過的效果圖(類文件名稱以及里面的方法名稱都會(huì)以a,b,c....之類的樣式命名)。

三、 圖形化反編譯apk

上述步驟一、二講述了命令行反編譯apk,現(xiàn)在提供一種圖形化反編譯工具:Androidfby首先,下載上述反編譯工具包,打開Androidfby目錄,雙擊Android反編譯工具.exe,就可以瀏覽打開要反編譯的apk通過反編譯,你可以獲知該應(yīng)用用到了什么第3方的庫文件,它的代碼是如何編寫的等等。

[[140088]]

當(dāng)然,有些APK為了避免被他人反編譯,所以進(jìn)行了代碼混淆。因?yàn)楹芏嗖环ǚ肿颖I版一款A(yù)PP就是從反編譯開始。所以從移動(dòng)應(yīng)用安全角度講,為了避免他人了解自己的APK的布局和邏輯,的確應(yīng)該做一些反編譯的保護(hù)措施,尤其是避免被競(jìng)爭(zhēng)對(duì)手看到。如果開發(fā)者不想被他人反編譯,提高APK的安全性,可以進(jìn)行加密保護(hù)。

作為一個(gè)普通移動(dòng)開發(fā)者,反編譯的目的只是了解他人應(yīng)用程序的大體思路,對(duì)開發(fā)工作有益無害。

責(zé)任編輯:倪明 來源: 科技創(chuàng)造的博客
相關(guān)推薦

2017-07-13 13:13:49

AndroidAPK反編譯

2015-01-15 11:01:43

2011-05-31 14:52:13

Android 反編譯 方法

2021-10-22 06:53:44

Apk編譯打包

2015-01-15 10:15:16

Android反編譯-smail語法

2011-05-31 14:38:04

Android 反編譯

2015-08-20 10:13:34

2011-05-31 14:18:17

2023-03-26 20:23:10

Java開源工具

2017-11-27 15:43:49

Androidjadx反編譯

2021-03-07 16:31:35

Java編譯反編譯

2017-02-20 13:54:14

Java代碼編譯

2015-08-07 11:11:15

反編譯源代碼Mac

2011-04-20 10:32:44

java反編譯

2009-06-11 14:11:33

代碼混淆Java反編譯

2012-12-25 13:37:29

Android代碼混淆

2012-11-06 10:02:04

JavaJadEclipse

2009-06-11 13:49:30

2014-09-25 10:28:02

反編譯工具Java

2010-06-24 16:40:16

Bittorrent協(xié)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)