gdb、ida调试笔记

gdb、ida调试笔记

六月 04, 2022

一、ida

在这里插入图片描述
①函数窗口 (程序中所调用的函数)
②全局图形视图(可以看到大致形状和④窗口一样)
③消息输出窗口(idai进行的操作)
④代码区(以图形的方式展现每个函数之间的关系,双击函数可以看到函数对应的代码段)
反编译:ida的核心功能就是将汇编语言转换为伪代码
在这里插入图片描述
按下tab键(或者F5就可以看到我们熟悉的c语言伪代码)
空格键可以切换代码或者流程图(流程图下绿色代表成立红色代表不成立)

在这里插入图片描述
我们可以按下shift+F12打开字符串界面再使用ctrl+F启用查找字符串功能,就能在代码区找到对应的数据。也可以在代码区按下alt+T用字符串查找功能。
修改代码:在代码区选中要修改的代码,然后在工具栏找到edit—patch program—change byte,就可以修改代码。
④代码区的分类
1、Hex-View:可以查看16进制代码
在这里插入图片描述
2、Stuuctures:可以查看程序的结构体
在这里插入图片描述
3、Enums:可以查看枚举信息
在这里插入图片描述
4、Imports:可以查看到输入函数,导入表即程序中调用到的外面的函数
在这里插入图片描述
5、Exports:可以查看到输出函数
在这里插入图片描述
快捷键:
a:将数据转换为字符串
g:直接跳转到某个地址
n:更改变量名称
/:在反编译后的伪代码界面写注释
;:在代码区写下注释
ctrl+F12:函数调用图(这个图能很清楚地看到函数之间是如何相互调用的)

二、gdb

常用快捷键:
file 文件名:打开程序
run:运行程序
continue:继续执行到下一个断点
break *0x地址:设置断点
info breakpoint:查看所有断点
delete 数字:删除断点(数字是info breakpoint里断点对应的数字)
delete:删除所有断点
finish:跳出函数,结束循环
until:结束当前循环
next:代码一行一行执行
step:如果有调用函数,进入调用的函数内部;否则,和 next 命令的功能一样。

打开命令窗口输入gdb 文件名,启用peda进行调试
在这里插入图片描述
通过ida的伪代码,我们可以确定函数的地址,然后就可以设置断点
(在main处设置断点获取汇编代码查看各寄存器状态)
在这里插入图片描述
再次运行我们就可以进行调试
在这里插入图片描述