apkTool是一個(gè)APK反編譯工具,它擁有編譯、反編譯、簽名等功能,對(duì)于經(jīng)常DIY安卓軟件、特別是對(duì)喜歡ROM美化,功能破解,修改定制的朋友來說,是必不可少的并且非常實(shí)用的一個(gè)工具。
今天給大家?guī)淼氖?.2.2版本的apktool.jar工具包,集合了批處理一鍵反編譯功能,應(yīng)該是全網(wǎng)最簡(jiǎn)單最好用的版本了,也是迄今為止最新的版本,兼容性不錯(cuò)
工具版本:
apktool2.2.2
最專業(yè)的ROM開發(fā)者社區(qū):宅科技
使用說明:
本程序在使用時(shí)需要操作大量的文件,所以需要較長(zhǎng)時(shí)間的耐心等待。如果在編譯程序的過程中點(diǎn)擊屏幕的話,容易出現(xiàn)程序無響應(yīng)的問題。這時(shí),只需要點(diǎn)擊等待并耐心等待程序的重新響應(yīng)即可,程序會(huì)繼續(xù)完成編譯工作。
apktool安卓超強(qiáng)反編譯工具怎么用?
首先,先反編譯一下
當(dāng)完成以上步驟之后,我們window +R->打開cmd窗口
1.運(yùn)行 apktool 命令 出現(xiàn)可apktool的版本號(hào)和指導(dǎo)的命令
2.隨便找來一個(gè)apk,嘗試反編譯一下,運(yùn)行 apktool d -f c:\test.apk -o c:\test 命令,把test.apk反編譯,反編譯后的文件放入c盤下的test文件中
3.反編譯的文件結(jié)構(gòu)如下:
名稱 | 存放內(nèi)容 |
---|---|
assets | (未被編譯)項(xiàng)目的assets文件夾 |
res | (未被編譯)項(xiàng)目的res文件夾 里面可以清楚的看到values, layout, drawble,anim,mipmap文件夾 |
smali | (被編譯)項(xiàng)目的Java文件,這里表現(xiàn)的不是.Java格式,是.smali格式 |
造成這個(gè)現(xiàn)象的原因是:
Android的assets和res文件都不會(huì)編譯為二進(jìn)制文件,所以反編譯后,基本都是能看到它的全貌.
Android中.Java文件,在JVM編譯之后變成.class文件,然后再經(jīng)過Android的虛擬機(jī)Dalvik,代碼編譯為.smali文件
smail是另外一種語言,和匯編是有點(diǎn)像的,涉及寄存器操作等,下面是一個(gè)截圖,對(duì)于我來說,只能是大概能看懂:
若是對(duì)smali語法有興趣,可以去下面網(wǎng)址看一下,StackOverFlow上面萬能網(wǎng)友們給出了很多學(xué)習(xí)的網(wǎng)址.
然后,想想反編存在的意義在哪里?
Every coin have two sides.這是我高中英文作文基本都會(huì)寫的一句話.每個(gè)工具都是一把雙刃劍,就像一枚硬幣有正反兩面一樣.那么 強(qiáng)大的apktool肯定也是一樣.以下屬于,我個(gè)人的見解,如有不對(duì),還望指正.
帶來便利一面:
提供一個(gè)方式,去反編譯優(yōu)秀的軟件,學(xué)習(xí)知識(shí)
smail是Dalvik的執(zhí)行語言,你完全可以通過反編譯去查看Java代碼的smail語言,去更深入的了解程序的運(yùn)行原理和流程
帶來威脅一面:
發(fā)布的APK被二次打包,作為盜版產(chǎn)品使用,甚至惡意插入廣告,病毒等,對(duì)軟件公司帶來損失
發(fā)布的APK被反編譯,獲取的有關(guān)服務(wù)器的信息,給服務(wù)器帶來威脅.
通過反編譯修改smail文件,減去客戶端的限制,去獲取不正當(dāng)?shù)睦?一般發(fā)生在游戲軟件上
對(duì)于開發(fā)者來說,前者你可以不用,但是后者不得不防,于是,我們必須給自己的APK加上保護(hù).