IDApro和gdb的常见调试命令

1.gdb调试命令

 //使用gdb编译 -g -o
$ gdb -g program.c(源码) -o program(可执行文件)
​
//启动gdb调试
$ gdb program(可执行文件名)
​
//运行
(gdb)start   //程序运行,并停在第一行
(gdb)r       //run,程序运行,遇到断点才停
(gdb)c       //continue,继续运行
(gdb)n 或者 s   //按照C语言行级别的单步调试,n(跟踪,不进入函数内部),s(步入,进入函数内部)
(gdb)ni 或者si  //按照汇编代码行级别的单步调试
​
//断点
(gdb)b 函数名  //下断点 ,其他用法:b *地址;b 行号;b *函数名,断点设置在函数的开头
(gdb)i b     //查看断点, info break
(gdb)d 断点编号     //删除断点
(gdb)clear 函数名/行号   //删除加在某个函数或某行的断点
(gdb)commands 断点编号   //断点后添加代码,达到自动化调试
     > 代码
     > end
(gdb)disable 断点编号   //设置断点无效
(gdb)enable 断点编号    //设置断点生效
(gdb)b 行号 if 条件    //设置条件断点 
​
//显示
(gdb)disas 函数名   //disassemble,查看函数的汇编指令
(gdb)info line   //查看当前位置的源代码在内存中地址,info 后面还可以加其它的,用于查看相关信息
(gdb)x/从内存地址开始要显示内存单元的个数  内存地址   //显示内存
​
Ctrl+X+A   //进入或退出图形化调试窗口,或者在运行时使用gdb -tui 可执行文件名
(gdb)layout regs  //实时显示寄存器值和源码的变化,layout后面还可以+ src(仅显示源代码窗口)/asm(仅显示汇编代码窗口)/split(显示源代码和汇编代码窗口),layout next/prev(切换窗口)
(gdb)win asm/src/split/regs +/- 行数  //调整窗口大小
(gdb)tui reg float/system/general  //显示浮点寄存器/系统寄存器/通用寄存器
​
//查看当前代码
(gdb)l    //list简写,从默认位置显示,显示当前行后面的源程序
(gdb)l 行号   //从指定行显示
(gdb)l 函数名   //从指定函数显示
(gdb)show list  //显示list展示的行数
(gdb)set list 行数  //设置list展示的行数
​
//打印,变量
(gdb)p 变量名    //print,打印变量值
(gdb)ptype 变量名  //打印变量类型
(gdb)display 变量名   //跟踪查看一个变量,每次都停下来显示它的值
(gdb)i display    //查看设置的自动变量操作
(gdb)undisplay 自动变量编号   //取消对先前设置的那些变量的跟踪
(gdb)set var 变量名 = 变量值  //设置变量
(gdb)finish   //跳出函数体
(gdb)until    //跳出循环

x命令详解:

 //如以下命令表示:从内存地址0x46fd80开始显示20个内存单元,按照十六进制格式,并以8个字节作为一个内存单元
 (gdb)x/20xg 0x46fd80  

附录:介绍 · 100个gdb小技巧 · 看云 (kancloud.cn)

2.IDA调试命令

F9:运行(在调试器中启动一个新的进程或继续调试另一个进程)
F2:设置断点
Ctrl+F2:终止调试进程
F4:执行到光标处
F7:单步步入(进入函数内部)
Ctrl+F7:执行到从当前函数返回时
F8:单步跟踪(不进入函数内部)
F5:查看伪代码
Tab:伪代码和汇编指令之间的切换
Ctrl+alt+S:打开堆栈记录窗口
Ctrl+alt+B:打开断点窗口
​
Esc:在反汇编窗口中,返回到上一步操作的位置
空格键:在反汇编窗口中,切换图形视图与列表视图
​
shift+F12:查看字符串
Alt+T:搜索字符串
Alt+B:搜索二进制序列
Ctrl+B:搜索下一个字符串/二进制序列
​
Alt+M:给某个地址设置标签
Ctrl+M:跳转到标签,通常配合Alt+M使用
Ctrl+W:保存IDA数据库
Ctrl+Shift+W:拍摄IDA快照
​
【;】:重复注释,会在所有引用到的地方都出现注释
【:】:普通注释
P:将数据转换为函数
C: 将数据转化为代码,无法识别栈帧
A:转换为字符串
D:转换为数据
U:转换为未定义数据
X:查看交叉引用
Y:修改类型
N:修改名称
G:转到指定地址
H:十进制和十六进制转换
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值