首页
社区
课程
招聘
[求助]关于参数调用有点不明白
发表于: 2007-7-24 18:07 3766

[求助]关于参数调用有点不明白

2007-7-24 18:07
3766
00401000 >/$  6A 04         push    4                                ; /Arg2 = 00000004
00401002  |.  6A 03         push    3                                ; |Arg1 = 00000003
00401004  |.  E8 16000000   call    0040101F                         ; \Add.0040101F
00401009  |.  8BD8          mov     ebx, eax
0040100B  |.  6A 00         push    0                                ; /ExitCode = 0
0040100D  \.  FF15 00204000 call    [<&KERNEL32.ExitProcess>]        ; \ExitProcess

0040101F  /$  55            push    ebp                              ;  保护现场原先的EBP指针
00401020  |.  8BEC          mov     ebp, esp                         ;  设置新的EBP指针,指向栈顶
00401022  |.  83EC 04       sub     esp, 4                           ;  分配局部变量所有空间
00401025  |.  8B45 0C       mov     eax, [ebp+C]                     ;  调用参数2
00401028  |.  8B5D 08       mov     ebx, [ebp+8]                     ;  调用参数1
0040102B  |.  895D FC       mov     [ebp-4] , ebx                     ;  参数1放局部变量里
0040102E  |.  0345 FC       add     eax,[ebp-4]                     ;  参数2与局部变量相加
00401031  |.  83C4 04       add     esp, 4                           ;  释放局部变量所有空间
00401034  |.  5D            pop     ebp                              ;  恢复现场的ebp指针
00401035  \.  C2 0800       retn    8

问下这里
00401025  |.  8B45 0C       mov     eax, [ebp+C]                     ;  调用参数2
00401028  |.  8B5D 08       mov     ebx, [ebp+8]                     ;  调用参数1
+c和+8是固定的吗?

还有给临时变量的堆栈空间sub esp,4 这个4也是固定的吗?

还有这个图片我有点不懂
那个当前esp是调用前的呢,还是调用后的?

我是初学者,别笑我

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

收藏
免费 0
支持
分享
最新回复 (6)
雪    币: 209
活跃值: (14)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
sub esp,4 这个4不是固定的

当前esp是调用后的
2007-7-24 18:36
0
雪    币: 415
活跃值: (34)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
3
32位.也是DWORD值.以此为单位.看参数个数.
2007-7-25 00:11
0
雪    币: 0
能力值: (RANK:10 )
在线值:
发帖
回帖
粉丝
4
正在学习 ,期待楼主作品
2007-7-25 09:23
0
雪    币: 47147
活跃值: (20380)
能力值: (RANK:350 )
在线值:
发帖
回帖
粉丝
5
置顶帖里有实例的,你下载用,用OD跟一下,对照着理解。
2007-7-25 10:29
0
雪    币: 2559
活跃值: (176)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
6
其实函数调用参数及堆栈的处理方式千变万化,但有一条是不变的,就是保证堆栈平衡,否则就会产生非法访问了
2007-7-25 14:07
0
雪    币: 237
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
谢谢各位,我先学好基础
2007-7-25 20:15
0
游客
登录 | 注册 方可回帖
返回
//