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