首页
社区
课程
招聘
[旧帖] [求助]帮忙看下汇编代码的意思 0.00雪花
发表于: 2012-4-18 22:59 1574

[旧帖] [求助]帮忙看下汇编代码的意思 0.00雪花

2012-4-18 22:59
1574
CLD
;store hash
push 0x1234567
push 0x1e1f1212
push 0x0c917432
mov esi, esp
lea edi, [esi - 0xc]

想请教最后一句 lea edi, [esi - 0xc]
想问下,为什么是减0xc呢,这句执行以后,edi是指向哪里 ?
小弟一直琢磨这句,苦思不得其解啊~~

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

收藏
免费 0
支持
分享
最新回复 (4)
雪    币: 106
活跃值: (31)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
2
1、为什么是减0xc呢? 需联系上下文
2、edi=esp-0xC
2012-4-18 23:16
0
雪    币: 285
活跃值: (16)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
3
push 0x1234567
push 0x1e1f1212
push 0x0c917432
这么个数据入栈,正好是12个字节(0xc)
edi = esi - 0xc,而esi = esp,所以edi就是第一个入栈数据的指针
2012-4-18 23:35
0
雪    币: 34
活跃值: (14)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
[QUOTE=leonpedy;1065037]CLD
;store hash
push 0x1234567
push 0x1e1f1212
push 0x0c917432
mov esi, esp
lea edi, [esi - 0xc]

想请教最后一句 lea edi, [esi - 0xc]
想问下,为什么是减0xc呢,...[/QUOTE]

1.这个需要引用上下文 下文中可能要对edi 或 esp 进行操作
这里的edi + 0xc  才是esp的寄存器的内容
2. edi = [esp - 0xc] 取的是 esp - 0xc 以后的 esp的寄存器内容  注意:不是内存中的内容
如果原始的esp = 0x0012ff3c  那么 edi = 0x0012ff30
2012-4-19 00:15
0
雪    币: 285
活跃值: (16)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
5
呵呵,貌似我解错了
2012-4-19 01:06
0
游客
登录 | 注册 方可回帖
返回
//