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

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

2021-1-12 18:16
1861
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

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

 

有没有高手能解决啊?


[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

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