編輯:Android資訊
開發過程中有些時候會遇到一些功能,自己不知道該怎麼做,然而別的軟件裡面已經有了,這個時候可以采用反編譯的方式,解開其他的程序,來了解一些它的做法,同時啊,還可以借鑒別人的軟件結構,資源文件,等等,哈哈。那我就來講解一些關於反編譯相關的知識,主要分三篇,第一篇介紹反編譯的工具和方法,第二篇,介紹smali的語法,第三篇介紹如何防止反編譯,主要通過這幾篇文章,了解如何去做反編譯和代碼加固。
輕松反編譯apk,解析出資源文件,xml文件,生成smali文件,還可以把修改後的文件你想生成apk。
支持windows,linux,mac。
下載地址:https://code.google.com/p/android-apktool/downloads/list 請自備梯子
將apk中的dex文件轉換成為jar文件,很多人不會看smali文件,還是看java類文件比較舒服,這個時候可以借助這個工具來轉成java,也是支持windows,linux,mac。
下載地址:http://code.google.com/p/dex2jar/downloads/list
查看jar文件,基本可以看到Java Class文件了,也是支持mac,windows,linux。
下載地址:http://jd.benow.ca/
其實是別人寫的一個工具,集合了apktool的功能,另外還支持給apk簽名。最新版本是v9update6,只支持windows系統。
下載地址:http://dl.dbank.com/c0jndlkbu4#
在apktools目錄下執行以下命令
./apktool d pathtoapk outdir #mac linux
apktool.bat d pathtoapk outdir #window
這樣就可以反編譯成功了,可以查看其中的資源文件,smali文件,當然有的app進行了特殊處理,不是全部可以反編譯的。
同時apktool還可以對反編譯後的文件逆向成apk文件,格式如下。
./apktool b apppath outpath
逆向後的文件要是無簽名的需要先簽名才可以安裝。
apk文件本身其實就是一個zip壓縮包,先講apk改成一個.zip文件解壓後得到一個classes.dex。到dex2jar的目錄,執行以下命令.
./d2j-dex2jar.sh pathtoclasses.dex #mac linux
d2j-dex2jar.bat pathtoclasses.dex #wind
之後會生成一個jar文件,用jd-gui打開就可以看到其中的java代碼了。
其實我們使用的反編譯也就這些足夠了,通常很多時候無法獲取很多的代碼,畢竟人家也有措施應對的。
在Android1.6的模擬器裡面預裝了一個叫Gestures Builder的程序,這個程序就是讓你創建自己的手勢的(Gestures Builder的源代碼在
本文由碼農網 – 小峰原創翻譯,轉載請看清文末的轉載要求,歡迎參與我們的付費投稿計劃! 今天,幾乎所有的web和移動app都自帶谷歌和Facebook登錄
在Android中每個界面都是一個Activity,切換界面操作其實是多個不同Activity之間的實例化操作。在Android中Activity的啟動模式決定了
什麼是Tint 當我開始接觸Tint這個詞的時候,其實是蠻不理解它的意思的,以及並不清楚Google發明它的目的,它一般搭配Background配合使用,但是現在