Mac OS上反編譯android app的環境搭建

Mac OS上反編譯android app的環境搭建


很多時候,我們出於學習或者安全測試等的目的,需要對andorid app的安裝文件進行反編譯來查看源代碼,下面我們來一起搭建Mac os 下的反編譯環境。

安裝環境

建立基本文件夾

mkdir -p ~/study/apkkiller/soft/bin
mkdir -p ~/study/apkkiller/soft/src
mkdir -p ~/study/apkkiller/output/

andorid app的安裝文件爲apk包,要反編譯apk文件,需要下載apktool和dex2jar這兩個軟件,它們均託管在google code上:

http://code.google.com/p/android-apktool/
http://code.google.com/p/dex2jar/

從以上兩個頁面找到下載地址,這裏我們找到的是 apktool1.5.2 和 dex2jar-0.0.9.15的下載地址:

cd ~/study/apkkiller/soft/src
wget http://android-apktool.googlecode.com/files/apktool1.5.2.tar.bz2
wget http://dex2jar.googlecode.com/files/dex2jar-0.0.9.15.zip

解壓後文件存放在如下目錄:

~/study/apkkiller/soft/src/apktool1.5.2
~/study/apkkiller/soft/src/dex2jar-0.0.9.15

爲了方便使用,建立兩個軟連接:

ln -s ~/study/apkkiller/soft/src/apktool1.5.2/apktool.jar ~/study/apkkiller/soft/bin/apktool
ln -s ~/study/apkkiller/soft/src/dex2jar-0.0.9.15/dex2jar.sh ~/study/apkkiller/soft/bin/dex2jar

測試反編譯環境

下面開始來反編譯我們的測試apk文件,看看環境是否可以正常運行

cd ~/study/apkkiller
mkdir -p ~/study/apkkiller/output/test/source
mkdir -p ~/study/apkkiller/output/test/result

cp ./test.apk ./output/test/source/test.zip
unzip ./output/test/source/test.zip -d ./output/test/source/test

cp ./output/test/source/test/classes.dex ./output/test/source/classes.dex
~/study/apkkiller/soft/bin/dex2jar ./output/test/source/classes.dex
# output ./output/test/source/classes_dex2jar.jar

要查看反編譯後的文件,可以下載jd-gui工具,打開上面生成的 ./output/test/source/classes_dex2jar.jar 文件即可, 該工具可以將源碼包都導出來。jd-gui從下面的地址下載:

http://jd.benow.ca/
http://jd.benow.ca/jd-gui/downloads/jd-gui-0.3.5.osx.i686.dmg

apk的資源文件都存在上面我們解壓的文件夾./output/test/source/test中,裏面有很多xml文件,但是是加密的,無法直接查看。這時,就需要用到apktool工具了:

java -jar ~/study/apkkiller/soft/bin/apktool d ./test.apk ./output/test/source/test_resource

將導出的源碼和資源文件合併,就得到我們想要的結果了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章