Aleph1堆栈溢出例子调试过程

参考:https://blog.csdn.net/cyteven/article/details/19175083  讲述的很全面 中文版

 

Aleph1堆栈溢出例子调试过程_第1张图片

Aleph1堆栈溢出例子调试过程_第2张图片

Aleph1堆栈溢出例子调试过程_第3张图片

 

 

(1)错误信息  出现段错误

 

Aleph1堆栈溢出例子调试过程_第4张图片

 

Aleph1堆栈溢出例子调试过程_第5张图片

 

Aleph1堆栈溢出例子调试过程_第6张图片

 

 

Aleph1堆栈溢出例子调试过程_第7张图片

 

Aleph1堆栈溢出例子调试过程_第8张图片

 

看上图,我们将buffer1 + 12  (0x...53 + 12 = 0x...5f) , 修改的是ebp所指向的空间的值,并没有修改到返回地址,故出现段错误

 

Aleph1堆栈溢出例子调试过程_第9张图片

 

(2)修改之后

所以,将ret= buffer1 + 13 ,修改后重新调试 ,运行如下:

Aleph1堆栈溢出例子调试过程_第10张图片

 

Aleph1堆栈溢出例子调试过程_第11张图片

 

 

语句补充

Aleph1堆栈溢出例子调试过程_第12张图片

你可能感兴趣的:(Linux)