exe调用某个函数时:  int TestFun(int a, int b);
EBP+C: second parameter
EBP+8: first parameter
EBP+4: return address
EBP:   previous EBP       ===》 旧的ebp值(调用者的ebp)
EBP-4: local variable
EBP-8: local variable

内存地址的增长方向:
对于堆来讲,生长方向是向上的,也就是向着内存地址增加的方向;
对于栈来讲,它的生长方向是向下的,是向着内存地址减小的方向增长;

(1)cdcall  堆栈资源释放在函数执行外面,一般的c语言调用。    CALL  XXX;   ADD ESP, xxH

fun xxx(){

push eax

CALL  XXX;    //xxx(int)  ==>  cdcall;

ADD ESP,04H   // 增加值由xxx函数,入栈参数个数确定;

}
(2)stdcall 在函数的里面释放堆栈,一般的windows API。                 CALL  XXX;

fun xxx(){

push ebp
     mov  ebp,esp

///  插入新代码
     ...
     ///  插入新代码 end;

mov  ebp,esp
    pop  ebp

retn

三种call解释(一): cdcall stdcall naked call等在hook时,保持堆栈平衡相关推荐

  1. 三种方法教你开启/关闭win10系统唤醒睡眠模式时需要登录的教程

    Windows系统的睡眠设置给我们带来了极大的方便,因为使用睡眠设置可以保存我们电脑的当前工作状态,再次唤醒睡眠模式时我们可以接着当前的工作状态继续操作,但默认情况下,系统处于安全考虑,当我们从睡眠模 ...

  2. Data Guard 三种模式解释

    Data Guard 保护模式(Data Guard Protection Modes) 对于 Data Guard 而言,其生存逻辑非常简单,由于它提供了三种数据保护的模式,我们又亲切的叫它:有三模 ...

  3. 面向对象思想的三种通俗解释

    1. 假如你去洗澡,你可能是这么考虑的,首先进入浴室,然后打开水龙头冲洗, 最后用浴巾擦干身子,等等一系列过程,叫做面向过程.你用面向过程解决了洗澡这个问题. 那么看面向对象是如何思考的,你是一个对象 ...

  4. 逆序输出螺旋字符矩阵(三种方法)

    第一种 **相当于从一个点慢慢遍历,每遍历一个点就设为一个负数或大数(不与)题目的数据重复就好** #include<iostream> #include<algorithm> ...

  5. 数据分布策略_有效数据项目的三种策略

    数据分布策略 Many data science projects do not go into production, why is that? There is no doubt in my mi ...

  6. 【Hibernate框架开发之五】Hibernate对象的三种状态Session常用方法

    1. Hibernate对象的三种状态:(图解如下:) 如图所示,Hibernate对象有三种状态,1.Transient  2.Persistent 3.Detached; 三种状态的区别如下: 1 ...

  7. RabbitMq的工作模式 介绍+测试代码,以及三种Exchange模式介绍.

    RabbitMq的提供了六种模式分别是:简单模式,工作模式,发布\订阅模式,路由模式,通配符模式,RPC远程调用模式 下面将详细介绍常用的前五种模式,附上测试代码. 公共的代码---连接工具类: pu ...

  8. Linux Vim三种工作模式(命令模式、输入模式和编辑模式)详解

    通过前面的学习我们知道,Linux 系统中所有的内容都以文件的形式进行存储,当在命令行下更改文件内容时,常会用到文本编辑器. 我们首选的文本编辑器是 Vim(至于为什么,可查看<Vi和Vim的区 ...

  9. 自动回复的三种形式?

    自动回复的三种形式? 1.自动添加回复:粉丝添加时,自动的回复 2.关键词回复:消息里有关键词的回复,所自动回复消息回复 3.消息回复:粉丝发送没有关键词的,微信公众号自动的回复消息

  10. Excel中的三种平均值算法

    平均值是概括总体分布,表示全体趋势或类型的代表性数据,本文我们重点探讨一下如何计算各种平均值这个话题.一般而言,平均值是指一组数据中所有数据之和同数据个数之比.平均值有三种类型,最常使用的平均值是简单 ...

最新文章

  1. 一文看完吴恩达最新演讲精髓,人工智能部署的三大挑战及解决方案
  2. 白话Elasticsearch68-ES生产集群部署重要的操作系统设置
  3. Kotlin实战指南七:单例模式
  4. VTK:可视化算法之TensorAxes
  5. (转微软网站)如何安装 Microsoft Dynamics CRM 4.0 具有最低必需权限
  6. Create view failed with ORA-01031:insufficient privileges
  7. libjpeg-turbo(2)
  8. 大数据分析工程师证书_CDA数据分析就业班、大数据就业班就业情况怎么样?
  9. swagger: fetching resource list: http://localhost:8080/template/v2/api-docs?group=springboot-templat
  10. 宝德服务器硬盘报警,宝德“超人”系列PR4880G
  11. 解决ERROR 1044 (42000): Access denied for user
  12. JS删除数组里的某一个元素
  13. python解压缩tar.gz文件
  14. Android 透明颜色值ARGB
  15. C# ADO.NET中设置Like模糊查询
  16. 高效记忆/形象记忆(10)110数字编码表 41-50
  17. VS2017 离线安装vsix插件
  18. Jdom的安装和使用
  19. 什么云服务器可以挂虚拟鼠标,云服务器 模拟鼠标
  20. C#——绘制箭头的方法

热门文章

  1. VOC2007/2012数据集解析
  2. OMRON软件安装与配置
  3. MySQL嵌套查询(子查询)
  4. java汉字转拼音maven_java汉字转拼音pinyin4j功能实现示例
  5. php 线性回归算法,线性回归方程计算器
  6. 人工智能 - NBA球星产生式系统
  7. mvp架构 java_MVP架构基本使用
  8. AWVS使用教程与实例
  9. 实现局部滚动的两种方法:1.三行css代码2.使用BScroll框架
  10. 推荐下载使用:COMODO Internet Security V5.0.157302.1066 多国语言版(含:简体中文)