masm中关于SEH的宏

来源:互联网 发布:数据采集板卡 编辑:程序博客网 时间:2024/06/05 15:06

try macro hidden_branch:req

 pushad                      ;; Save current state.

 mov esi, hidden_branch      ;; Hidden branch address.

 push esi

 assume fs:nothing

 push dword ptr [fs:0]       ;; Save old exception handler.

 mov [fs:0], esp             ;; Install new handler.

endm

 

catch macro

 mov esp, [esp+8]    ;; Exception occured, get old ESP.

 pop dword ptr [fs:0];; Restore old exception handler.

 add esp, 4          ;; ESP value before SEH was set.

 popad               ;; Restore old state.

endm

 

continue macro

 pop dword ptr [fs:0];; Restore old exception handler.

 add esp, 36         ;; ESP value before SEH was set.

endm

原创粉丝点击