当我notepad.exe
在 Windows XP 中使用 ollydbg 时,初始寄存器是esp:7FFC4
和ebp:7FFF0
。
stack
...
0007FFC4 7C817067 kernel32.7C817067 <--- ESP
0007FFC8 7C940208 ntdll.7C940208
0007FFCC FFFFFFFF
0007FFD0 7FFDB000
0007FFD4 80546BFD
0007FFD8 0007FFC8
0007FFDC 81D22DA8
0007FFE0 FFFFFFFF <--- EBP
0007FFE4 7C839AC0 kernel32.7C839AC0
0007FFE8 7C817070 kernel32.7C817070
0007FFEC 00000000
0007FFF0 00000000
0007FFF4 00000000
0007FFF8 0100739D notepad.<ModuleEntryPoint>
0007FFFC 00000000
...
我首先猜测初始堆栈是空的,但是通过 process 参数(例如, argc
, argv
),我认为它可以有一些值。
EBP
和之间的初始堆栈是什么意思ESP
?- 运行时堆栈
ESP
可以低于7FFE0
(超过作为值)notepad.exe
?换句话说,esp 可以指向0007FFF8
?