三种call解释(一): cdcall stdcall naked call等在hook时,保持堆栈平衡
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时,保持堆栈平衡相关推荐
- 三种方法教你开启/关闭win10系统唤醒睡眠模式时需要登录的教程
Windows系统的睡眠设置给我们带来了极大的方便,因为使用睡眠设置可以保存我们电脑的当前工作状态,再次唤醒睡眠模式时我们可以接着当前的工作状态继续操作,但默认情况下,系统处于安全考虑,当我们从睡眠模 ...
- Data Guard 三种模式解释
Data Guard 保护模式(Data Guard Protection Modes) 对于 Data Guard 而言,其生存逻辑非常简单,由于它提供了三种数据保护的模式,我们又亲切的叫它:有三模 ...
- 面向对象思想的三种通俗解释
1. 假如你去洗澡,你可能是这么考虑的,首先进入浴室,然后打开水龙头冲洗, 最后用浴巾擦干身子,等等一系列过程,叫做面向过程.你用面向过程解决了洗澡这个问题. 那么看面向对象是如何思考的,你是一个对象 ...
- 逆序输出螺旋字符矩阵(三种方法)
第一种 **相当于从一个点慢慢遍历,每遍历一个点就设为一个负数或大数(不与)题目的数据重复就好** #include<iostream> #include<algorithm> ...
- 数据分布策略_有效数据项目的三种策略
数据分布策略 Many data science projects do not go into production, why is that? There is no doubt in my mi ...
- 【Hibernate框架开发之五】Hibernate对象的三种状态Session常用方法
1. Hibernate对象的三种状态:(图解如下:) 如图所示,Hibernate对象有三种状态,1.Transient 2.Persistent 3.Detached; 三种状态的区别如下: 1 ...
- RabbitMq的工作模式 介绍+测试代码,以及三种Exchange模式介绍.
RabbitMq的提供了六种模式分别是:简单模式,工作模式,发布\订阅模式,路由模式,通配符模式,RPC远程调用模式 下面将详细介绍常用的前五种模式,附上测试代码. 公共的代码---连接工具类: pu ...
- Linux Vim三种工作模式(命令模式、输入模式和编辑模式)详解
通过前面的学习我们知道,Linux 系统中所有的内容都以文件的形式进行存储,当在命令行下更改文件内容时,常会用到文本编辑器. 我们首选的文本编辑器是 Vim(至于为什么,可查看<Vi和Vim的区 ...
- 自动回复的三种形式?
自动回复的三种形式? 1.自动添加回复:粉丝添加时,自动的回复 2.关键词回复:消息里有关键词的回复,所自动回复消息回复 3.消息回复:粉丝发送没有关键词的,微信公众号自动的回复消息
- Excel中的三种平均值算法
平均值是概括总体分布,表示全体趋势或类型的代表性数据,本文我们重点探讨一下如何计算各种平均值这个话题.一般而言,平均值是指一组数据中所有数据之和同数据个数之比.平均值有三种类型,最常使用的平均值是简单 ...
最新文章
- 一文看完吴恩达最新演讲精髓,人工智能部署的三大挑战及解决方案
- 白话Elasticsearch68-ES生产集群部署重要的操作系统设置
- Kotlin实战指南七:单例模式
- VTK:可视化算法之TensorAxes
- (转微软网站)如何安装 Microsoft Dynamics CRM 4.0 具有最低必需权限
- Create view failed with ORA-01031:insufficient privileges
- libjpeg-turbo(2)
- 大数据分析工程师证书_CDA数据分析就业班、大数据就业班就业情况怎么样?
- swagger: fetching resource list: http://localhost:8080/template/v2/api-docs?group=springboot-templat
- 宝德服务器硬盘报警,宝德“超人”系列PR4880G
- 解决ERROR 1044 (42000): Access denied for user
- JS删除数组里的某一个元素
- python解压缩tar.gz文件
- Android 透明颜色值ARGB
- C# ADO.NET中设置Like模糊查询
- 高效记忆/形象记忆(10)110数字编码表 41-50
- VS2017 离线安装vsix插件
- Jdom的安装和使用
- 什么云服务器可以挂虚拟鼠标,云服务器 模拟鼠标
- C#——绘制箭头的方法
热门文章
- VOC2007/2012数据集解析
- OMRON软件安装与配置
- MySQL嵌套查询(子查询)
- java汉字转拼音maven_java汉字转拼音pinyin4j功能实现示例
- php 线性回归算法,线性回归方程计算器
- 人工智能 - NBA球星产生式系统
- mvp架构 java_MVP架构基本使用
- AWVS使用教程与实例
- 实现局部滚动的两种方法:1.三行css代码2.使用BScroll框架
- 推荐下载使用:COMODO Internet Security V5.0.157302.1066 多国语言版(含:简体中文)