1 背景
在學習Linux系統上的一些漏洞知識的時候,往往需要進行“實地測試”,但是在Linux系統上進行調試並不太方便,因為LINUX自帶的GDB調試工具真的不太人性化,即使有GDBTUI之類的“偽圖形界面調試器”,也跟IDA PRO之類的調試器相差甚遠。這里又遇到另一個問題了——LINUX平台的IDA PRO不太好找。
綜上,對於初學者而言最佳方案就是使用IDA PRO的遠程調試功能!
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系統庫,解決辦法很簡單:
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端的環境配置就完成了,是不是很簡單^_^ ?
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帶來的非一般的調試體驗吧!
