图解 “ { ”
来源:互联网 发布:淘宝卖家服务电话多少 编辑:程序博客网 时间:2024/06/08 14:07
在vc6下
“ { ” 反汇编得: (注释转自boxer)
00401060 push ebp ;保存ebp, 执行这句前ESP = 0012FF84,EBP = 0012FFC0
;push的结果是esp总减少,执行后ESP = 0012FF80,EBP = 0012FFC0
00401061 mov ebp,esp ;将esp放入ebp中此时ebp和esp相同,即执行后ESP = EBP = 0012FF80
;原EBP值已经被压栈(位于栈顶),而新的EBP又恰恰指向栈顶。
;此时EBP寄存器就已经处于一个非常重要的地位,该寄存器中存储着栈中的一个地址(原EBP入栈后的栈顶),
;从该地址为基准,向上(栈底方向)能获取返回地址、参数值,向下(栈顶方向)能获取函数局部变量值,
;而该地址处又存储着上一层函数调用时的EBP值!
------------------------------------------------------------------------------
00401063 sub esp,40h ;把esp往上移动一个范围
;等于在栈中空出一片空间来存局部变量
;执行这句后ESP = 0012FF40
00401066 push ebx ;下面3句都是保存3个寄存器
00401067 push esi
00401068 push edi
00401069 lea edi,[ebp-40h] ;把ebp-40h加载到edi中,目的是保存局部变量的区域
0040106C mov ecx,10h
00401071 mov eax,0CCCCCCCCh ;从ebp-40h开始的区域初始化成全部0CCCCCCCCh,就是int3断点
00401076 rep stos dword ptr [edi] ;拷贝字符串,初始化局部变量空间
- 图解 “ { ”
- 图解软件工程
- MVC图解
- 图解scrollbar
- Gann图解
- 技术图解
- BIOS图解
- DbVisualizer图解
- diskgen图解
- 圣经图解
- uml图解
- 图解 硬盘
- raid图解
- UML-图解
- Eclipse图解
- JVM图解
- 排序图解
- Socket图解
- php中常量,变量的作用域和生存周期
- The method of type must override a superclass method解决方式
- TG2 第一个尝试:hello world 遇到的问题
- C++中调用Python脚本
- linux内核网络实现的一些问题
- 图解 “ { ”
- 网络协议栈的一些问题--附带设计问题
- 宏基4930G笔记本触摸板不能用的解决方法
- c++学习经典书籍
- 工作三个月小结
- 参与开发linux内核需要做的准备工作
- 欢迎大家光临我的博客
- import sun.misc.BASE64Encoder出错
- spring-beans-2.0.dtd 文档