今天发现了 gdb 的一个功能很好用 , 分享出来 :
GDB 的宏定义功能
具体的使用方法是 :
键入 define [KEYWORD]
然后输入你想要在输入 KEYWORD 的时候执行的命令
每一行输入一条
输入 end 可以结束输入
这里总结了一个比较简单的宏定义 :
define k
si
printf "-------------------------------------- [Stack] --------------------------------------\n"
x /16xb $esp
printf "-------------------------------------- [Registers] --------------------------------------\n"
printf "[eax]:%08x\t[ebx]:%08x\t[ecx]:%08x\t[edx]:%08x\n", $eax, $ebx, $ecx, $edx
printf "[esi]:%08x\t[edi]:%08x\t[esp]:%08x\t[ebp]:%08x\n", $esi, $edi, $esp, $ebp
printf "[cs] :%04x\t[ss] :%04x\t[ds] :%04x\t[es] :%04x\t[fs] :%04x\t[gs] :%04x\n", $cs, $ss, $ds, $es, $fs, $gs
printf "[eip]:%08x\t[eflags]:%08x\n", $eip, $eflags
printf "-------------------------------------- [Codes] --------------------------------------\n"
x/8i $pc
printf "=========================================================================================\n"
end
执行效果如下 :
Paste_Image.png
Paste_Image.png