- UID
- 6880
注册时间2006-1-12
阅读权限30
最后登录1970-1-1
龙战于野

TA的每日心情 | 开心 2018-2-26 08:32 |
---|
签到天数: 19 天 [LV.4]偶尔看看III
|
发表于 2006-1-15 00:49:14
|
显示全部楼层
我是小弟,在学汇编还没入门,不知下面的假释对你有用吗?
EBP是"基址指针"(BASE POINTER), 它最经常被用作高级语言函数调用的"框架指针"(frame pointer). 在破解的时候,经常可以看见一个标准的函数起始代码:
push ebp ;保存当前ebp
mov ebp,esp ;EBP设为当前堆栈指针
sub esp, xxx ;预留xxx字节给函数临时变量.
...
这样一来,EBP 构成了该函数的一个框架, 在EBP上方分别是原来的EBP, 返回地址和参数. EBP下方则是临时变量. 函数返回时作 mov esp,ebp/pop ebp/ret 即可.
SS(STACK SEGMENT)指定当前堆栈段. ESP 则指出该段中当前的堆栈顶. 所有push/pop 系列指令都只对SS:ESP指出的地址进行操作. |
|