標籤:
近期由於學習需要,嘗試了下截包與反編譯,發現對於簡單的反編譯與截包其實挺簡單的,而本文也主要介紹截包與反編譯工具的使用.
截包
截包的工具有很多,我這裡主要介紹簡單實用的fiddler.
官網:http://www.telerik.com/fiddler
下載完成後開啟fiddler
1.首先,確保安裝 Fiddler 的電腦和你的手機在同一區域網路內,因為Fiddler只是一個代理,需要將手機的代理指向 PC 機,不能互相訪問是不行的。
2.開啟功能表列中的Tools>Fiddler Options,開啟“Fiddler Options”對話方塊。
在Fiddler Options”對話方塊切換到“Connections”選項卡,然後勾選“Allow romote computers to connect”後面的複選框,然後點擊“OK”按鈕,設定允許遠程連結.
3.然後在本機命令列輸入ipconfig命令列找到本機ip,由於我這裏手機和電腦都是連得無線網所以使用電腦無線網ip 192.168.0.102
4.開啟手機設定無線網代理介面 伺服器設定為電腦無線網ip 連接埠為fiddler監聽連接埠8888
5.現在就可以抓包了開啟fiddler
6還可以設定過濾器 過濾掉不想要的資訊
反編譯
apktool : 它可以解碼資源接近原始形式和重建後做一些修改,可以提取出圖片檔案和布局檔案進行使用查看
下載連結:http://download.csdn.net/detail/zly921112/9472996
dex2jar : 將apk反編譯成java源碼(classes.dex轉化成jar檔案)
下載連結:http://download.csdn.net/detail/zly921112/9473310
jd-gui : 查看用dex2jar轉換產生的jar檔案,查看源碼
下載連結:http://download.csdn.net/detail/zly921112/9473311
apktool(反編譯資源檔)
將工具中apktool,解壓得到aapt.exe,apktool.bat,apktool.jar,將需要反編譯的APK檔案放到該目錄下,然後將命令列目錄切換至該目錄下.輸入apktool d test.apk,命令中test.apk指的是要反編譯的APK檔案全名,反編譯後組建檔案名與APK檔案名稱相同
雖然這裡有部分資源未能解碼但是大部分資源都得到了,
test檔案內部
如果你想將反編譯完成的檔案重新打包apk,那你可以輸入 apktool b test(編譯出來檔案夾):
在test檔案下會發現多了兩個檔案 build 和 dist(裡面存放著打包出來的APK檔案)
關於命令官網有給出例子
解碼:
構建:
dex2jar+jd-gui(反編譯.dex檔案擷取java源碼)
將要反編譯的apk尾碼改成.rar 解壓,得到其中的額classes.dex檔案(它就是java檔案編譯再通過dx工具打包而成的),將擷取到的classes.dex放到之前解壓出來的工具dex2jar-0.0.9.15檔案夾內,然後將命令列目錄切換至該目錄下.輸入dex2jar.bat classes.dex
在該目錄下會產生一個classes_dex2jar.jar的檔案,然後用jd-gui檔案夾裡的jd-gui.exe,開啟之前產生的classes_dex2jar.jar檔案,便可以看到源碼了,效果如下:
由於源碼被混淆了所以只能看到abc這種,其實挺噁心的,我還專門去查了反混淆希望能還原但是未發現解決辦法,如果有朋友能反混淆歡迎交流謝謝.
Android截包與反編譯