Я только изучаю ассемблер и навыки отладки в 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?
Надеюсь, кто-нибудь сможет мне помочь! Спасибо!