首页
社区
课程
招聘
未解决 [求助] 为什么的C语言编译的EXE没办法调用call,
发表于: 2021-1-12 18:16 1954

未解决 [求助] 为什么的C语言编译的EXE没办法调用call,

2021-1-12 18:16
1954
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <stdio.h>
#include <windows.h>
 
void demo(int x, int y) {
 
    printf("%d",x+y);
}
 
 
int main(int argc, char* argv[])
{
 
    printf("-------------------------");
    demo(5,2);
    printf("---------------------");
 
    getchar();
    return 0;
}
1
2
3
push 0x2
push 0x5
call 0134f070

调用就崩溃了,堆栈平衡 网上查说有堆栈平衡的问题,不知道怎么实现。

 

有没有高手能解决啊?


[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

收藏
免费 0
支持
分享
最新回复 (4)
雪    币: 45
活跃值: (2585)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
__stdcall 
2021-1-12 19:05
0
雪    币: 1041
活跃值: (733)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
是不是少了恢复esp的
2021-1-13 12:50
0
雪    币: 0
活跃值: (58)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
找到问题了;call跳转到jmp ,这个坑
2021-1-13 13:22
0
雪    币: 0
活跃值: (58)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
__cdecl 函数调用约定CALL,注意有坑,call会跳转到jmp,jmp是会变的,所以有进入函数追踪。
---------------------
push 0x2
push 0x5
call 0013df070
add esp,0x8
---------------------
2021-1-13 13:23
0
游客
登录 | 注册 方可回帖
返回
//