信息安全实践作业5:栈溢出和格式化字符串溢出
1. 实验一

根据实验一的题目要求,将数组 buffer1 的大小改为 50,将语句 x=1 改为 x=(x+5)*2。如下所示:

运行结果为:

然后进行gdb 调试:

通过 b 5 命令对程序第五行的语句 ret = buffer1 + 12 打断点,然后查看当前 $ebp 和 buffer1 的地址,不难得出,$ebp-buffer1=0xbffffd48-0xbffffd00=0x48=72,而且retip=$ebp+4。所以 retip=buffer1+76。
第一处应该改为:ret = buffer1 + 76。然后继续 gdb 调试,查看 main 函数的汇编:

本文详细解析了实验二中栈溢出与格式化字符串溢出的利用技巧,包括修改ret指针指向retip及利用printf漏洞调整值,通过GDB调试展示了整个过程。
最低0.47元/天 解锁文章
958

被折叠的 条评论
为什么被折叠?



