有人可以帮我解释一下这段代码吗?
.text:00401270 ; int __cdecl main(int argc,const char **argv,const char *envp)
.text:00401270 Dst = byte ptr −80h
...More Code...
.text:00401270 push ebp
.text:00401271 mov ebp, esp
.text:00401273 sub esp, 80h
.text:00401293 push 80h
.text:00401298 push 0
.text:0040129A lea eax, [ebp+Dst]
.text:0040129D push eax
.text:0040129E call _memset
我得到一个大小为0x80的缓冲区,并在调用_memset时填充值0。但是我不明白指针[ebp + Dst]的用法。为什么基本指针(ebp)全部涉及?另外,为什么Dst设置为负值?
答案 0 :(得分:2)
它是ebp,而不是edp;它被用来访问esp指向