由于Ollydbg不能调ELF文件,所以需要下虚拟机下使用GDB这样Linux动态调试器,其实IDA也支持动态调试功能,并且可以使用远程连接,此文做IDA远程调试基本设置过程的记录。
Step1:打开主机IDA源目录,在 "IDA_Pro_v7.0dbgsrv" 中找到 "liunux_server" 和 "linux_server64" 拷贝到虚拟机中。
Step2:在虚拟机中找到待调试文件,使用命令 "chmod 777 filename" 赋予所有用户读写执行权限。
Step3:在虚拟机中运行 "linux_server(64)"(没有执行权限添加一下),出现下图即成功。
后续使用中如果遇到 "bind: Address already in use" 端口被占用的情况重启虚拟机即可。
Step4:拷贝一份待调试的ELF文件到主机,使用对应版本的IDA打开,在菜单栏点击 "Debugger -> Select debugger"(快捷键F9)。
打开调试器窗口,选择 "Remote Linux debugger",然后在新菜单栏点击 "Debugger -> Process options",出现下图。
"应用程序" 和 "输入文件" 都必须写虚拟机内待调试程序的完整绝对路径;"目录" 同理,可以在虚拟机内用 pwd 命令快捷查看。
主机名即远程对象的IP,对于虚拟机而言,可以使用 ifconfig 命令查看内网IP;端口为默认,一般无需改动。
Step5:完成设置之后就可以开始远程调试了,F9 启动程序进程,出现下图询问点一下继续就好了。
程序的运行情况会在虚拟机 "linux_server(64)" 程序窗口显示。
——————————————————————————————————
网上的教程有一部分是使用远程附加进程的,这样不需要把可执行文件在主机上用IDA打开再连接。
直接 "Debug -> Attach -> Remote Liunx debugger" 选择虚拟机上的进程,
但是我的虚拟机好像不支持这样操作,如果有和我情况一样的像前面一样手动选择程序好了。