笔记
学习最新前沿软件逆向安全技术、游戏安全辅助脚本技术,B 站 小迪 xiaodi 老师
微信 i-xiaodi
1. 栈结构
- 栈是一种有序的数据结构,只有一个出口。
- 数据只能在栈的顶端插入(入栈)或删除(出栈)。
- 最后进入的数据最先被取出:先进后出
- 子弹先压上去(入栈)。
- 开枪时从最上面弹出(出栈)。
2. 栈的基本操作
- Push(入栈):
-
- 将数据压入栈顶。
- Pop(出栈):
-
- 将栈顶数据移除并返回。
-
放入数据后,都是 ESP 在变化,EBP 就是地基
3.栈地址变化须知
如果不断的 push 数据,
我们发现栈地址是不断的变小的,
不断的向上堆积,并且变小
所以 POP 数据,栈地址会变大,堆积的部分会依次 下沉
作业
大家请提交在评论区或者群聊
已知格式
push 3
push eax
的过程解析为:
先 ESP = ESP – 4
再修改 [ESP] 为 3
堆栈图为:
对如下题目作答:
1.
push eax
push ebx
push 0x00401000
解析上述栈的情况(可只画图解释说明)
2.pop 的原理是从栈中拿出数据,并存到指定的寄存器中,如
push eax
push 1
pop ebx ; 弹出 1 到 ebx
pop ecx ; 弹出 eax 的值到 ecx
依据此知识,描述一下如何弹出第一题中的栈数据,注意先后顺序,并画出堆栈图
3.随便拖入数据,单步执行,观察 push 数据,堆栈窗口的变化
没有回复内容