南京大学计算机基础(四)踩坑笔记

第六周 缓冲区溢出章节

bang问题:

rumble问题:

仔细分析汇编和栈的调用,这道题挺难的!【搞了我3个小时,真的别只用gdb,用ida静态结合gdb动态才是正解。】

  • 用ida标一标,其中的write_here是为了随机地址防止你直接push的。write_here存储的字符串是你大写的cookie值,比如我-u 1234的cookie是0x6eecf91d,那么这里就是"6EECF91D"。
  • 然后注意的是memcmp比较的是地址,所以你getbuf中应该push一个地址。
  • 缓冲区的输入应该长成这样,注意到我的"6EECF91D"的十六进制是0x43454536 0x44313946【注意要颠倒过来】。
  • 然后push %esp表示当前地址。
  • 注意到栈帧中第一个参数是$ebp+8,所以你要压入一个"返回地址",我这里压的是0x11111111占位。
相关推荐
散11212 小时前
02计算机组成原理-有符号数和无符号数
计组
散1123 天前
02计算机组成原理-计算机硬件的操作及操作数
计组
渡我白衣8 天前
【MySQL基础】(1):MySQL的安装
大数据·数据库·人工智能·mysql·算法·计组·数电
散1129 天前
02计算机组成原理-计算机的性能
计组
散11212 天前
02计算机组成原理-计算机硬件组成
计组
彭泽布衣15 天前
gdb调试方法总结
linux·c语言·gdb·故障排查·段错误
散11217 天前
02计算机组成原理-计算机硬件设计思想及软件
计组
散11218 天前
02计算机组成原理-计算机概述
计组
我是标同学1 个月前
gdb的自定义脚本写法
gdb·嵌入式调试
渡我白衣1 个月前
计算机组成原理(14):算术逻辑单元ALU
大数据·人工智能·算法·机器学习·计组·数电·alu