首页
社区
课程
招聘
[求助][求助]请问memset(str, 0, 20)的反汇编代码为什么是这样的?
发表于: 2009-3-20 23:31 5453

[求助][求助]请问memset(str, 0, 20)的反汇编代码为什么是这样的?

2009-3-20 23:31
5453
memset(str, 0, 20);
它的反汇编如下:
0040117F   push        14h
00401181   push        0
00401183   lea         eax,[ebp-14h]
00401186   push        eax
00401187   call        memset (00409140)
0040118C   add         esp,0Ch

其中第三句与第六句是什么意思啊,为什么是这样的啊?

[招生]系统0day安全班,企业级设备固件漏洞挖掘,Linux平台漏洞挖掘!

收藏
免费 0
支持
分享
最新回复 (4)
雪    币: 375
活跃值: (12)
能力值: ( LV8,RANK:130 )
在线值:
发帖
回帖
粉丝
2
[QUOTE=gaoqing;594333]
0040117F   push        14h
00401181   push        0
00401183   lea         eax,[ebp-14h]
00401186   push        eax
00401187   call        memset (00409140)
0040118C   add         esp,0Ch
...[/QUOTE]

00401183   lea         eax,[ebp-14h]
局部变量分配与堆栈之中
0040118C   add         esp,0Ch
_cdecl调用约定母函数恢复堆栈。
然后3个参数就是4*3=0xC。
2009-3-21 00:23
0
雪    币: 264
活跃值: (11)
能力值: ( LV9,RANK:250 )
在线值:
发帖
回帖
粉丝
3
3 局部变量指针入寄存器
6 恢复堆栈平衡
2009-3-21 10:06
0
雪    币: 559
活跃值: (1728)
能力值: ( LV12,RANK:210 )
在线值:
发帖
回帖
粉丝
4
[QUOTE=xPLK;594353]00401183   lea         eax,[ebp-14h]
局部变量分配与堆栈之中
0040118C   add         esp,0Ch
_cdecl调用约定母函数恢复堆栈。
然后3个参数就是4*3=0xC。[/QUOTE]

学习了。

4×3=0xc   ,3代表3个变量。4代表4个字节,我说的对吗?
2009-3-30 09:19
0
雪    币: 129
活跃值: (31)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
3代表memset有3个参数,分别PUSH  了3个参数,1参数4字节,ESP-0X0C,函数返回后,要保持ESP原位,所以ESP+0X0C
2009-3-30 11:45
0
游客
登录 | 注册 方可回帖
返回
//