通过gdb调试一个简单的应用程序,并分析是如何进行栈保护的。

 

  1. 代码

通过gdb调试一个简单的应用程序,并分析是如何进行栈保护的。_第1张图片

                                         图1

2.汇编代码

通过gdb调试一个简单的应用程序,并分析是如何进行栈保护的。_第2张图片

                                                        图2

3.寄存器显示执行到memcpy时候寄存器值:

如下寄存器数值,对应上图的汇编执行位置。

通过gdb调试一个简单的应用程序,并分析是如何进行栈保护的。_第3张图片

                                                         图3

4.栈溢出防护

图2 的1,2,3栈溢出的防护汇编代码。

5.内存布局

通过gdb调试一个简单的应用程序,并分析是如何进行栈保护的。_第4张图片

                                   图4

gdb 确认str1 、str2和m_array的地址

通过gdb调试一个简单的应用程序,并分析是如何进行栈保护的。_第5张图片

                                   图5

看内存,确认abcde5个参数;

                                   图6

看内存,确认str1变量:

通过gdb调试一个简单的应用程序,并分析是如何进行栈保护的。_第6张图片

                                   图7

你可能感兴趣的:(gdb,linux)