c++参数调用方式的逆向
来源:互联网 发布:安全的理财软件 知乎 编辑:程序博客网 时间:2024/05/22 17:18
c\c++传参的方式有:_cdecl _stdcall,_fastcall 三种
_cdecl:c\c++默认的调用方式,调用方平衡堆栈,不定参数的函数可以使用
_stdcall:被调用方平衡堆栈,不定参数的函数无法使用。
_fastcall:寄存器方式传参,不定参数的函数无法使用,当函数参数个数为零时,无需区分调用方式
第三种不常见,仅仅看一下前两种反汇编的具体形式
vc6 编译一下代码:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
// _std_cdec_.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
#include<stdio.h>
void
_stdcall ShowNum(
int
a)
{
printf
(
"a is %d"
,a);
}
void
_cdecl sShowNum(
int
b)
{
printf
(
"b is %d"
,b);
}
int
main(
int
argc,
char
* argv[])
{ ShowNum(5);
sShowNum(5);
return
0;
载入OD
通过搜索我们得到了了如下代码
我们可以看到第二个call下有堆栈的平衡措施,第一个没有。
第一个call的函数内有堆栈的平衡 ,第二个直接在函数内没有平衡 而是函数体内有。知道这点区别我们就可以在以后的反汇编中更能快速逆向出算法。
- c++参数调用方式的逆向
- C语言/C++函数调用的三种参数传递方式
- 从C语言不定参数列表到函数调用的入栈方式
- 参数调用的三种方式
- C语言的参数传递方式
- C的方式实现可变参数函数
- C语言中参数的传递方式
- C中调用JAVA的参数、方法
- linux C 调用JAVA的参数、方法
- 函数调用的两种方式PASCAL调用方式和C调用方式
- C语言函数调用方式的区别
- python调用c库的方式
- c++:(各种)构造函数的调用方式
- c/c++/java,函数调用的参数的传递方法
- ASP调用带参数存储过程的几种方式
- ASP调用带参数存储过程的几种方式
- ASP调用带参数存储过程的几种方式
- ASP调用带参数存储过程的几种方式
- 有关FTP 的学习
- Chromebook for Poor Devs
- android组件
- C++老话题:用指向函数的指针作函数参数
- 获取HTML网页的所有图片的url
- c++参数调用方式的逆向
- 写工具的一些链接
- C++友元
- 物理standby转换为逻辑standby的步骤
- 继承 多态 虚函数
- android sqlite新添唯一键constraint错误的解决方法
- 启动centos 设置vsftp连接
- jsp中实现分页
- 加班与效率