GDA關於android脫殼的問題說明

有不少人來問我GDA(官網下載:www.gda.wiki)如何脫殼的問題,這裡做一個統一說明。首先需要聲明的是GDA可以dump Android手機中的app進程中的代碼和數據,但是不能夠做自動化脫殼。前幾年的殼都把原始apk或者dex文件加密隱藏起來,等加固代碼運行起來後再做解密載入運行,這種殼只需要把內存中的dex dump出來就可以了,但是現在的殼基本上都會在方法的位元組碼上動手腳,所以直接dump出來是不行的,需要自己更深入的進行分析後進行修復,有的殼可能也會出現dump失敗的情況。

nn

如何用GDA進行android內存dump,實際上非常簡單,大部分問我的人可能都是初學者,所以這裡還是詳細的說明一下。

nn

Dump內存3步走:1.打開設備->2.選擇並打開進程->3.選中要dump的內存段dump即可。

nn

1. n首先需要你將手機連接上電腦(模擬器不需要),點擊GDA的dump按鈕或者菜單欄的Tools->Device dump

然後GDA就會連接手機把android系統中的進程列舉出來。

默認情況下,GDA只列舉app進程,如果需要查看所有運行的進程可以通過右鍵菜單->所有進程來查看:

nnnn

2.然後選中一個你感興趣的進程(當前行出現淡藍色背景為選中)雙擊或者右鍵菜單->打開進程,GDA便會列出該進程的內存模塊。默認情況下顯示dex,你還可以選擇odex、so、jar、apk等模塊進行查看。下圖是打開com.qihoo.permmgr進程的內存dex模塊。

nn

3.接下來就可以dump你感興趣的模塊了,滑鼠選中模塊右鍵->DUMP 數據。等候即可,如果模塊比如/data/dalvik-cache/data@app@com.qihoo.permmgr-1.apk@classes.dex連續存在多個內存段,可以滑鼠拖拉選中多個模塊進行DUMP。

nnnn

小等一會兒,如果彈出如下提示,表示dump成功。

nnnn

確定即可。然後dump的文件存在於GDA工具同目錄下dump文件夾裡面。查看目錄dumpcom.qihoo.permmgr我們可以看到dump出的dex文件。

其他類型的內存模塊比如so、apk、odex等等的dump類似。

4.有部分手機或者模擬器會dump失敗,原因是GDA沒有成功的將Gdump程序推入到Android系統中,所有需要手動將這個工具push進去。

Gdump工具存放在GDA的工作目錄%APPDATA%GDA(C:UsersjonhAppDataRoamingGDA)下,有一個Gdump工具,你需要將這個工具push到Android系統的/data/local/tmp目錄下,如圖:

adb push %APPDATA%GDAGdump /data/local/tmp

然後修改Gdump的讀寫執行許可權即可。

adb shell chmod 777 /data/local/tmp/Gdump

adb shell /data/local/tmp/

Gdump(測試是否可以執行)

那麼現在你就可以是用GDA來dump指定模塊了。


推薦閱讀:

Bash Bug 的危害有多大?
自己用黑客技術黑掉學校教務網改成績有多大難度?可行性有多少?
網路安全中,入侵和滲透的區別?

TAG:逆向工程 | Android应用 | 破解者Cracker |