IDAlinux遠端動態調試實戰過程記錄

新手一枚,如有錯誤(不足)請指正,謝謝!!
練習動調的文件
題目下載:點擊下載

參考資料:
IDA動態調試ELF

IDA載入,進入main函數,F5查看僞代碼

int __cdecl main(int argc, const char **argv, const char **envp)
{
  time_t v3; // ebx
  __pid_t v4; // eax
  unsigned int v5; // ST18_4
  unsigned int v6; // ST1C_4
  char v7; // ST20_1
  signed int i; // [esp+14h] [ebp-44h]
  char s[40]; // [esp+24h] [ebp-34h]
  unsigned int v11; // [esp+4Ch] [ebp-Ch]

  v11 = __readgsdword(0x14u);
  s[0] = 83;
  s[1] = 69;
  s[2] = 67;
  s[3] = 67;
  s[4] = 79;
  s[5] = 78;
  s[6] = 123;
  s[7] = 87;
  s[8] = 101;
  s[9] = 108;
  s[10] = 99;
  s[11] = 111;
  s[12] = 109;
  s[13] = 101;
  s[14] = 32;
  s[15] = 116;
  s[16] = 111;
  s[17] = 32;
  s[18] = 116;
  s[19] = 104;
  s[20] = 101;
  s[21] = 32;
  s[22] = 83;
  s[23] = 69;
  s[24] = 67;
  s[25] = 67;
  s[26] = 79;
  s[27] = 78;
  s[28] = 32;
  s[29] = 50;
  s[30] = 48;
  s[31] = 49;
  s[32] = 52;
  s[33] = 32;
  s[34] = 67;
  s[35] = 84;
  s[36] = 70;
  s[37] = 33;
  s[38] = 125;
  s[39] = 0;
  v3 = time(0);
  v4 = getpid();
  srand(v3 + v4);
  for ( i = 0; i <= 99; ++i )
  {
    v5 = rand() % 40u;
    v6 = rand() % 40u;
    v7 = s[v5];
    s[v5] = s[v6];
    s[v6] = v7;
  }
  puts(s);
  return 0;
}

將s[]數組按順序輸出,則爲flag,此時練習動調
隨便找行代碼,F2下斷點

動態調試步驟

在linux裏準備好linux_server64和待動調的文件

在這裏插入圖片描述
其中linux_server64在IDA目錄的dbgsrv文件夾

啓動linux_server64

代碼

./linux_server64

首次啓動時候要輸入代碼

chmod +x linux_server64

在這裏插入圖片描述

IDA中選擇調試器

在這裏插入圖片描述

對調試器進行配置

在這裏插入圖片描述
在這裏插入圖片描述
查看虛擬機IP命令
1. hostname -I
2. ifconfig
點擊OK

F9運行

在這裏插入圖片描述
在這裏插入圖片描述
動調時候提示錯誤
在這裏插入圖片描述
由於調試的文件爲ELF32,則應該用linux_server而不應該用linux_server64
重新配置
在這裏插入圖片描述

sudo apt-get install libstdc++6
sudo apt-get install lib32stdc++6

安裝這兩個東西
可以監聽了
在這裏插入圖片描述
報這個錯誤……
在這裏插入圖片描述
關閉linux防火牆
service iptables stop

這裏點確定
在這裏插入圖片描述
已經可以調試了
在這裏插入圖片描述
右上角有運行,點擊一下,然後就會斷在之前下的斷點那裏
在這裏插入圖片描述
然後F5可以查看僞代碼
在這裏插入圖片描述
這裏i的地址在棧上的ebp-44h處
在這裏插入圖片描述
EBP處的地址
在這裏插入圖片描述
可以算出變量i在棧上的地址
在這裏插入圖片描述
此時i等於4
在這裏插入圖片描述
每次F8單步可以執行一次代碼
在這裏插入圖片描述

部分快捷鍵

F2下斷點
F7,f8單步步入
p分析函數,把機器碼那些東西翻譯成函數
ctrl+s看見系統所有的模塊
ctrl+f搜索
單步調試注意右上角,寄存器變藍色表示被改了
在hex view-1按F2可以修改機器碼,再次按F2確定修改
f4移動到光標處
在寄存器窗口按E可以修改寄存器的值
在內存窗口f2可以修改內存的值

發佈了50 篇原創文章 · 獲贊 7 · 訪問量 3537
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章