gdb调试器常用指令

调试器

分类

白盒调试器

源码级别的跟踪和调试功能。

通常只在软件开发阶段

黑盒调试器

汇编代码级别的调试

用户态调试器

1.       主流调试器

Ring3   winDbg OllyDbg gdb

2.       高级调试器

Windows 平台下,智能调试器:支持用户自行编写脚本插件,通过这些插件,完成hook等功能,开发出专用于漏洞挖掘或逆向工程的高级脚本

目前做的比较好的:PyDbg:由Python实现的调试器    Immunity Debugger

3.       断点类别

软断点:将设置断点处的操作码改为INT3终端指令 0xCC

0x12345678: 8BC3     MOV EAX,EBX

0X12345678: CCC3   

注意:内存改变代码时,会改变程序的循环冗余校验值(CRC)

恶意软件会校验crc值,来防止逆向

硬件断点:通过寄存器来设置断点,最多4个  防止crc校验

内存断点:改变一个内存区域或内存页的访问权限

权限分类

页可执行

页可读

页可写

保护页:对保护页任何类型的访问将导致一次性异常,之后这个内存页恢复到之前状态。这种类型的内存页在一些场合非常有用:隔离堆栈,或者用于确保一个内存块增长不会超出预定边界



Gdb

获取内核转储

ulimit –c unlimited

gdb –c core ./a.out

ulimit -c  unlimited/1073741824   空间大小限制

ulimit -s   堆栈空间限制

generate-core-file生成内核转储文件

gcore 'pidof emacs'      gcore pid

objdump 找到相应代码

 

进程内存分布图

   

Gdb基本使用方法

    带着调试选项编译、构建调试对象

    启动调试器

    设置断点

    显示栈帧

    显示变量、寄存器值

    执行方法

1.    设置断点

1.1 设置方法

break 函数名

break 行号

break 文件名:行号

break 文件名:函数名

break +偏移量

break -偏移量

break  *地址

info b断点信息

 

1.2条件断点

break 断点 if 条件

condition 断点编号      删除指定编号断点触发条件

condition 断点编号 条件   添加

ignore 断点编号 次数

finish 执行完当前函数暂停

until 执行完当前函数后暂停,用于跳出循环

断点删除/禁用

clear/delete

disable enable

断点命令

commands 断点编号   断点暂停后,自动执行命令

命令

end

1.3监视点

watch<表达式>  表达式变化是暂停

awatch<>          访问或者变化 

rwatch<>           访问

delete

hbreak   硬件断点

tbreak   临时断点

thbreak 临时硬件断点

 

2.显示栈帧

backtrace  bt显示所有的栈帧

backtrace N显示开头N个栈帧

backtrace -N显示最后N个栈帧

backtrace full不仅显示栈帧,还显示局部变量

frame

up 上一层栈祯

down

i frame 1 显示栈帧信息

3.显示值

Print 打印变量

info reg显示所有寄存器

p $eax 

改变变量的值

set variable 变量=表达式

p/格式 变量    (x 十六进制,d 十进制,u 无符号十进制,o 八进制,t 二进制,a 地址,c 字符 ,f 浮点小数,s 字符串,i 机器语言)

程序指针$eip $pc

x命令,显示内存内容

x/NFU ADDR    (N 重复次数,F 格式,U 单位 b 字节、h 半字节、w字、g双字,ADDR 希望显示地址)

disassemble disas

4.单步执行

next n 执行下一行   n i

step p执行到函数内部  s i

continue c  次数

5.attach到进程

attach pid

ps aux|grep sleep

info proc

detach

I proc mapping显示内存映射

6. 反汇编方式查看

disas funcname 

包含以下工具 accesschk.exe accesschk64.exe AccessEnum.exe AdExplorer.chm ADExplorer.exe ADInsight.chm ADInsight.exe adrestore.exe Autologon.exe autoruns.chm Autoruns.exe Autoruns64.exe autorunsc.exe autorunsc64.exe Bginfo.exe Cacheset.exe Clockres.exe Clockres64.exe Contig.exe Contig64.exe Coreinfo.exe ctrl2cap.amd.sys ctrl2cap.exe ctrl2cap.nt4.sys ctrl2cap.nt5.sys dbgview.chm Dbgview.exe Desktops.exe Disk2vhd.chm disk2vhd.exe diskext.exe diskext64.exe Diskmon.exe DISKMON.HLP DiskView.exe DMON.SYS du.exe du64.exe efsdump.exe Eula.txt FindLinks.exe FindLinks64.exe handle.exe handle64.exe hex2dec.exe hex2dec64.exe junction.exe junction64.exe ldmdump.exe Listdlls.exe Listdlls64.exe livekd.exe LoadOrd.exe LoadOrd64.exe LoadOrdC.exe LoadOrdC64.exe logonsessions.exe logonsessions64.exe movefile.exe movefile64.exe notmyfault.exe notmyfault64.exe notmyfaultc.exe notmyfaultc64.exe ntfsinfo.exe ntfsinfo64.exe pagedfrg.exe pagedfrg.hlp pendmoves.exe pendmoves64.exe pipelist.exe pipelist64.exe PORTMON.CNT portmon.exe PORTMON.HLP procdump.exe procdump64.exe procexp.chm procexp.exe procmon.chm Procmon.exe PsExec.exe PsExec64.exe psfile.exe psfile64.exe PsGetsid.exe PsGetsid64.exe PsInfo.exe PsInfo64.exe pskill.exe pskill64.exe pslist.exe pslist64.exe PsLoggedon.exe PsLoggedon64.exe psloglist.exe pspasswd.exe pspasswd64.exe psping.exe psping64.exe PsService.exe PsService64.exe psshutdown.exe pssuspend.exe pssuspend64.exe Pstools.chm psversion.txt RAMMap.exe readme.txt RegDelNull.exe RegDelNull64.exe regjump.exe RootkitRevealer.chm RootkitRevealer.exe ru.exe ru64.exe sdelete.exe sdelete64.exe ShareEnum.exe ShellRunas.exe sigcheck.exe sigcheck64.exe streams.exe streams64.exe strings.exe strings64.exe sync.exe sync64.exe Sysmon.exe Sysmon64.exe Tcpvcon.exe tcpview.chm Tcpview.exe TCPVIEW.HLP Testlimit.exe Testlimit64.exe Vmmap.chm vmmap.exe Volumeid.exe Volumeid64.exe whois.exe whois64.exe Winobj.exe WINOBJ.HLP ZoomIt.exe
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值