ida動態調試筆記


ida動態調試筆記

 

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

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

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

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

 

[plain]  view plain  copy
 
  1. adb devices  

得到結果如下:

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

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

 

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


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

 


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

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

就是上圖中那個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,輸入該地址,下圖字符串即為正確密碼
繼續運行程序,輸入上述密碼:
出現如下勝利畫面
 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM