我正在分析一个 Windows 可执行文件(PE 格式),可能是用 Borland Delphi 编写的。该程序以以下说明开始:
pusha (1)
pushf (2)
xor ebp, ebp
jmp add_eh
add_eh:
mov eax, ss:off_4025E5[ebp]
mov dword ptr ss:(loc_402159+1)[ebp], eax
push offset loc_40215f (3)
push dword ptr fs:0
mov fs:0, esp (4)
mov eax, [esp+2Ch] (5)
cmp [eax+IMAGE_DOS_HEADER.e_magic], 'ZM'
jnz short loc_40206C
我在纸上复制了堆栈,直到用(5)标记的指令,似乎在(5)处 esp+2Ch 指向(1)推送的第一个寄存器(AX)上方。
esp+2Ch 指向哪里,它的价值是什么?
谢谢!