ida動態調試筆記

目標文件:阿里安全挑戰賽的第二題 點擊打開鏈接

使用環境:ida6.8點擊打開鏈接,adt bundle點擊打開鏈接

首先打開avd安卓模擬器,界面如下:


在dos下運行adb命令,查看當前連接的設備:

adb devices
得到結果如下:

上圖顯示了本機連接的安卓模擬設備。

然後用adb命令安裝上面的阿里測試文件:

adb install 阿里測試路徑/文件名

出現上述提示,標識文件安裝成功


上圖中紅色區域是剛剛安裝的程序

接下來把ida下面的調試服務器上傳到安卓模擬器當中


就是上圖中那個android_server文件,使用如下命令上傳:

adb push C:\吾愛破解安卓工具箱v1.0fix\Rolan\bin\debug\IDA_Pro\dbgsrv\android_server data\local\tmp\mydbserv\

然後輸入adb shell命令進入安卓設備

cd data\local\tmp\

進入上述目錄,用ls可以看到文件已經被上傳。


輸入   ./bdgserver 啓動該服務器,出現如下提示:


表示開始在23946端口進行監聽了。

然後打開另外一個cmd窗口,使用如下命令:

adb forward tcp:23946 tcp:23946
把模擬器的端口轉接到電腦

然後輸入如下命令:

adb shell am start -D -n com.yaotong.crackme/com.yaotong.crackme.MainActivity
出現如下提示:

表示程序啓動成功。
然後啓動eclipse下面的ddms.bat,出現如下界面:

然後打開ida.

選擇圖中畫紅線部分,出現下圖
參數填寫如上,然後點擊debug options,出現下圖:

勾選圖中部分,點擊確定。出現如下內容。

點擊ok.出現如下內容:

從菜單選擇如下選項

在如下選項上打鉤

點擊左上角綠色運行按鈕。

然後在cmd下面運行如下命令:
jdb -connect com.sun.jdi.SocketAttach:hostname=127.0.0.1,port=8700
出現下圖:

然後在ida中按ctrl+s:出現下述界面

按ctrl+f查找crackme,出現下述內容:

選擇圖中有執行權限的so模塊,出現如下界面。


然後點擊鍵盤上面的g按鈕,出現如下界面:
選擇JNI_OnLoad,點擊ok。出現如下界面:
按f2設置斷點,然後按f5,查看僞代碼

找到可能出現自毀程序的位置(blx語句之前),設置斷點:

上述2cec54 cmp R0,#1即爲修改位置
打開菜單view->open subviews->hex dump

將圖中位置全部修改爲0,繼續運行程序。

再打開另外一個ida,把阿里apk解壓,打開裏面的的libcrackme.so文件,點擊exports導出表。
打開後複製下面紅圈部分。
返回上一個ida,按g字母,出現如下界面
點擊ok後出現如下界面:
按f5查看僞代碼

在僞代碼處找到校驗密碼的位置,在下面紅線處設置斷點:

運行程序至斷點。找到下圖中變量v6對應的地址

打開hex view,點擊g,在對話框輸入該地址,查看該地址對應的字符串:

該字符串存放的是一個地址,爲AA2D1450,再次點擊字母G,輸入該地址,下圖字符串即爲正確密碼

繼續運行程序,輸入上述密碼:

出現如下勝利畫面




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