push dword ptr offset bad_entry
push dword ptr fs:[0]
mov fs:[0],esp
ud2 ; Or some other instruction to check
pop dword ptr fs:[0]
lea esp,[esp+4]
mov eax,1
ret
bad_entry: mov esp,fs:[0]
pop dword ptr fs:[0]
lea esp,[esp+4]
xor eax,eax
ret
Потому что винда свой SEH делает перед тем, как bad_entry вызвать, чтобы обработать проблемы в самом bad_entry если что. Соответственно, первая же инструкция bad_entry читает погоду на Марсе.
Обсуждают сегодня