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

第六周 缓冲区溢出章节

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占位。
相关推荐
nju_spy6 天前
NJU 凸优化导论(9) 对偶(II)KKT条件+变形重构
人工智能·算法·机器学习·kkt条件·凸优化·对偶·南京大学
nju_spy7 天前
周志华《机器学习导论》第5章 支持向量机SVM
人工智能·机器学习·支持向量机·kkt条件·核函数·南京大学·拉格朗日乘数法
岑梓铭7 天前
考研408《计算机组成原理》复习笔记,第三章(5)——磁盘存储器
笔记·考研·408·计算机组成原理·计组
nju_spy8 天前
周志华《机器学习导论》第8章 集成学习 Ensemble Learning
人工智能·随机森林·机器学习·集成学习·boosting·bagging·南京大学
鹅毛在路上了9 天前
CMake-gdb调试,解决LLVM ERROR: out of memory
c++·gdb·llvm
2401_8582861119 天前
OS15.【Linux】gdb调试器的简单使用
linux·运维·服务器·开发语言·gdb
漫步企鹅3 个月前
【GDB】调试程序的基本命令和用法(Qt程序为例)
开发语言·qt·gdb·调试
tianyunlinger4 个月前
前沿计组知识入门(四)
计组
崔好好4 个月前
IDA Pro分析dll在exe中的表现
ida
王嘉俊9255 个月前
计算系统概述核心知识图谱(考研专项版)
考研·计算机组成原理·计组