在学习《Win32 结构化异常处理(SEH)揭秘》的过程中,里面有一段示例代码(ShowSEHFrames.cpp)在试验中没有得到预期的结果,追踪过程中发现,VS2005内置的C/C++编译器的异常处理函数是_except_handler4而非_except_handler3,而且ScopeTable也被简单加密处理过,就是这样才导致示例程序pScopeTableEntry的所有指向均出错(如:pScopeTableEntry->lpfnHandler)。本文通过调试跟踪,希望能够理解一点Win32结构化异常处理的真实过程。
1)用于调试的源代码(在《Win32 结构化异常处理(SEH)揭秘》中)
2)对Function1下断点,运行、中断。转到反汇编。得到Function1的汇编代码