1
有人可以幫我解釋一下這段代碼嗎?x86組件中的緩衝區
.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設置爲負值?
糟糕,打算輸入ebp。是的,我有點忘了堆棧是向下建立的,所以負的val是有意義的,我應該只是看了sub esp,80並且會看到緩衝區被分配在ebp的正下方。感謝您的澄清。 – user1210446 2012-02-15 08:50:33