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带来的非通常的调试体验吧!