ida動態調試筆記

ida動態調試筆記

 

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

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

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

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

 

[plain]  view plain  copy
 
  1. adb devices  

獲得結果以下:服務器

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

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

 

[html]  view plain  copy
 
  1. adb install 阿里測試路徑/文件名  


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

 


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

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

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

 

[html]  view plain  copy
 
  1. 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窗口,使用以下命令:

 

[html]  view plain  copy
 
  1. adb forward tcp:23946 tcp:23946  

把模擬器的端口轉接到電腦

 

而後輸入以下命令:

 

[plain] view plain copy
 
  1. 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,輸入該地址,下圖字符串即爲正確密碼
繼續運行程序,輸入上述密碼:
出現以下勝利畫面
 

相關文章
相關標籤/搜索