无题
断点
断点(F2),运行到这条指令后不执行这条指令,并且在断点出暂停。
断点表
断点表是最左边的图标,断点表显示了当前程序中所使用的所有断点包括断点的行为和使用情况。
条件断点
进入断点表后,右键需要添加条件的断点,点击Insert就可以对断点的条件进行设置。
硬件断点
进入断点条件设置在Settings选项中选择Hardware,就可以对硬件断点的模式进行设置。
三种模式,Read访问 Write写 Execute执行。
调试操作
终止(Ctrl + F2),终止一个正在运行的进程。
步过(F8):执行一条指令,不查看详细的call函数的内部执行逻辑。
步入(F7):执行一条指令,进入函数体内部查看内部执行逻辑。
执行到返回(Ctrl+F7):执行到当前函数的返回后位置,步入了call函数后,可以直接跳出这个函数。
执行到光标(F4):执行到光标位置停下来。
运行直到断点(F9):运行。
设置程序计数器(Ctrl + N):将EIP或RIP修改为指针位置的地址。
调试器选择
在调试选择框中选择合适的调试器,windows平台软件可以直接选择Local Windows debugger直接进行调试。如果是ELF,SO文件则需要对调试器进行设置为Remote GDB debugger。
调试ELF非Windows平台程序
需要ELF文件,需要在Linux虚拟机中安装Server客户端对物理机的程序进行监听。
在IDA文件夹下的dbgsrv文件夹中选择对应虚拟机系统架构的服务端(调试程序的架构查看可以使用StudyPe或者DIE等工具进行查看)。
根据对应的程序架构选择合适的服务端,在虚拟机中安装对应的服务端(VMWARE虚拟机客户端中有VMTOOLS直接将对应的服务段拖到文件夹中),并且在服务段安装的文件夹中安装想要调试的ELF文件。
在启动对应的服务端之前需要修改程序的执行权限,可以使用如下指令:
1 | chmod 777 linux_serverx86(这里的服务端根据自己虚拟机安装的服务端的名称进行修改) |
启动对应的服务端,服务段会自动监听对应的物理机端口。
1 | ./linux_serverx86(这里的服务端根据自己虚拟机安装的服务端的名称进行修改) |
启动服务端后,对IDA中的Remote GDB debugger 的设置界面填写。
Hostname填虚拟机的IP地址(查看虚拟机的IP地址可以使用ifconfig命令进行查看);
application和Input File都填需要调试的文件在虚拟机中的路径;
Directory填写需要调试文件在虚拟机中所在的目录;
Parameters可以不填写。