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

第六周 缓冲区溢出章节

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占位。
相关推荐
kidwjb3 天前
一次多进程信号量同步失效的排查实录
gdb·进程通信·信号量
炘爚5 天前
C++11实现线程池:项目实现过程的报错与gdb调试
stl·gdb·shared_ptr
___波子 Pro Max.6 天前
GDB 符号检视三件套:`ptype` / `info variables` / `info functions`
gdb
CC城子11 天前
嵌入式Linux宕机问题GDB调试(一)
gdb·嵌入式软件
CC城子12 天前
嵌入式Linux宕机问题GDB调试(二)
linux·gdb
故事还在继续吗23 天前
常见的导致 coredump 的原因
开发语言·gdb
JTaoX1 个月前
WriteUp-Reverse(Hello,CTF、re1、simple-unpack)
ida·web·writeup·reverse·upx
C咖咖1 个月前
Linux 下使用 GDB 调试 C++ 的全面总结
linux·gdb·调试
lightqjx1 个月前
【Linux】Linux工具(yum、vim、gcc/g++、make/makefile、gdb)的详细介绍
linux·vim·gdb·yum·gcc/g++·linux工具·make/makefile
爱凤的小光1 个月前
GDB调试技巧与指令完全指南---个人学习篇
shell·gdb