从汇编层看64位程序运行——静态分析和动态分析入门-GDB

GDB是一个非常常用的调试工具,我们可以使用它来追踪运行时的程序,主要用于动态分析。
以后面要分析的程序(simple_main)为例,可以使用下面的命令来做调试

 gdb bin/simple_main

在这里插入图片描述
然后我们给main函数下一个端点

b main

在这里插入图片描述
然后运行该程序

r

在这里插入图片描述
断点命中后,我们可以分析此时的寄存器信息

info registers

在这里插入图片描述
以及查看这些寄存器所指向区域的数据或者代码
比如我们要看栈上数据

x /-16xg $rbp

在这里插入图片描述
或者看RIP指向的代码

disassemble $rip

在这里插入图片描述
然后通过单步调试等方法,查看相关寄存器和内存的变化
在这里插入图片描述
GDB非常强大,但是需要记下很多命令,而且其交互所展现的信息量也比较有限。如果只是做代码查看性分析,而不需要其运行态的一些信息,则可以考虑使用下面介绍的静态分析工具IDA。

上一篇:2.4G无线收发SOC芯片 XL2409,高性能、低功耗,集成大资源32位MCU


下一篇:springboot 、springcloud、springcloud Alibaba各版本对应情况