1 背景linux
在學習Linux系統上的一些漏洞知識的時候,每每須要進行「實地測試」,可是在Linux系統上進行調試並不太方便,由於LINUX自帶的GDB調試工具真的不太人性化,即便有GDBTUI之類的「僞圖形界面調試器」,也跟IDA PRO之類的調試器相差甚遠。這裏又遇到另外一個問題了——LINUX平臺的IDA PRO不太好找。c++
綜上,對於初學者而言最佳方案就是使用IDA PRO的遠程調試功能!bash
2 環境配置函數
本文主要說明在MAC系統上如何經過IDA PRO對linux程序進行遠程調試(若是宿主機爲WINDOWS系統的話,原理相似)。工具
2.1 遠程Linux端環境配置學習
首先,須要將IDA PRO中自帶的用於遠程調試的程序拷貝到LINUX機器中,這個程序就是linux_server或者linux_serverx64,前者用於調試32位程序,後者用於64位程序,且後者並不能兼容前者,所以在調試的時候須要注意了。後文以調試32位程序爲例。測試
筆者的遠程Linux系統爲Ubuntu14.04,這是一個64位系統,所以默認狀況下沒法運行32位的linux_server程序,主要報錯爲缺乏 libstdc++.so.6系統庫,解決辦法很簡單:debug
sudo apt-get install lib32stdc++6
而後再運行linux_server就沒問題了,成功運行效果以下:調試
chouchou:~$ ./linux_server IDA Linux 32-bit remote debug server(ST) v1.20. Hex-Rays (c) 2004-2015 Listening on port #23946...
至此,Linux端的環境配置就完成了,是否是很簡單^_^ ?server
2.2 宿主MAC端環境配置
1. 首先,須要將等待調試的Linux應用程序拷貝到MAC端,以調試overFlow程序爲例,將該程序拷貝到MAC目錄中,筆者爲~/Documents/vmWare/share/overFlow .
2. 而後,使用IDA打開該程序,注意由於是32bit程序,因此咱們也須要選擇32bit的IDA,一般命名爲idaq.(64bit IDA一般命名爲idaq64)
3. 在IDA的菜單選擇Debugger->Select debugger,而後選擇Remote Linux debugger,以下圖所示:
4. 再次點擊Debugger菜單,選擇Process options,而後參照下圖進行設置:
至此,MAC端的環境配置完畢。
3 開始調試
首先,咱們在IDA中的main函數中下斷點,以下圖所示:
而後在Debugger中選擇Start process,在彈出的窗口中根據提示信息選擇yes和cancle便可,最終獲得以下圖所示的調試界面:
大功告成!開始愉快的享受IDA帶來的非通常的調試體驗吧!