在IDA的安装目录/dbgsrv/找到linux_server或linux_serverx64这两个文件,具体选择哪个文件需要视待分析的ELF文件的编译信息而定,根据第一步中得出的信息,我需要选择的是linux_serverx64,把待分析的可执行文件和linux_serverx64一起拷贝到装好的Linux中。然后运行linux_serverx64:
ida顶部菜单,调试-选择调试器-Remote Linux debugger
然后设置进程选项
然后启动进程即可
调试指令
介绍一下常用的调试指令:
调试指令 | 说明 |
---|---|
单步步入(F7) | 执行下一条指令,若遇到函数,将进入函数代码内部,停在函数的第一条指令. |
单步步过(F8) | 执行下一条指令,若遇到函数,仅执行函数自身,不进入函数内部. |
终止(CTRL-F2) | 终止一个正在运行的调试进程. |
继续(F9) | 继续执行一个暂停的进程。执行将继续直到遇到一个断点、用户暂停或终止执行或该进程自行终止. |
暂停(![]() | 暂停一个正在调试的进程. |
运行至返回(CTRL-F7) | 一直在函数代码内部运行,直到遇到RETN(或断点)时才停止. |
断点
和Ollydbg一样,可以在选中的指令内存位置通过F2快捷键,设置软件断点。设置成功后,会以红色凸显(蓝色凸显的是将要执行的下一条指令)。可以通过【Debugger】-【Breakpoints】-【Breakpoint list】查看程序中当前已经设置的所有断点:
我们可以编辑我们设置的断点,在【Breakpoint list】中选中要编辑的断点,右键菜单选择【Edit…】即可打开编辑窗口:
在这个窗口中我们看以看到,通过【Condition】栏可以为断点设置条件,这样断点就转化成“条件断点”。在【Settings】中勾选【Hardware】后软件断点转化成“硬件断点”,这是【Hardware breakpoint mode】选项将会被激活,来设置硬件断点必须指定行为。