Что означает EBP+8 в данном случае в OllyDbg и ассемблере?

Я только изучаю ассемблер и навыки отладки в OllyDbg, чтобы научиться использовать недокументированные функции. Теперь у меня возникла следующая проблема:

У меня есть следующая часть кода (от OllyDbg):

MOV EDI,EDI
PUSH EBP
MOV EBP,ESP
MOV EAX, DWORD PTR SS:[EBP+8]
XOR EDX,EDX
LEA ECX, DWORD PTR DS:[EAX+4]
MOV DWORD PTR DS:[EAX], EDX
MOV DWORD PTR DS:[ECX+4],ECX
MOV DWORD PTR DS:[ECX],ECX
MOV DWORD PTR DS:[EAX+C],ECX
MOV ECX, DWORD PTR SS:[EBP+C]

Это начало функции, и цель состоит в том, чтобы найти структуру данных. Итак, я понял, что он сначала помещает EBP в стек, а затем перемещает ESP (текущий указатель стека) в EBP, где, я думаю, теперь он определяет кадр стека для функции. Теперь туториал говорит, что в популярной раскладке первый аргумент помещается в [EBP+8], а второй в [EBP+C]

. Вот этого я не понимаю. Как я узнаю, что первый параметр находится в EBP+8?

Надеюсь, кто-нибудь сможет мне помочь! Спасибо!

5
задан Chuck Bartovski 2 June 2012 в 10:21
поделиться