GDB即GUN Debugger,是linux上的标准调试器,常配合gef、peda等插件来使用。

最近在“西普杯”在线教程陈云老师的课程中学习了一些逆向基础知识,就gdb入门做一篇笔记。
知识点:gdb简单指令、汇编基础

入门调试,本次调试一个简单的c程序,对程序运行过程中寄存器和栈的变化进行分析。
c源码如下
//test4.c
#include <stdio.h>

int add(int a, int b){
    int result = a + b;
    return result;
}

int main(){
    int a = 10;
    int b = 20;
    char c = 'L';
    float d = 2.33;

    add(a, b);

    return 0;
}
为方便调试,可以给gdb安装两个常用插件:gef和peda   

gef:https://github.com/hugsy/gef
peda:https://github.com/longld/peda

接下来进入正题:

编译写好的c文件
root@kali:~/Documents/test_code# gcc -o test4 test4.c

开始用gdb调试文件
root@kali:~/Documents/test_code# gdb test4

这里使用gdb filename 的方式打开待调试文件,也可以进入gdb后使用file filename 的方式选择待调试文件

下断点
让程序在指定点处停下,以便调试。
gef> b main
Breakpoint 1 at 0x618

其中指令 b 即 breakpoint 的缩写,与使用 breakpoint 效果一样;main 是指程序的main函数。即在main函数
处下断点。下断点的方式有多种,使用起来也非常灵活。

运行程序

Loading……