代码如何捕获异常(try,catch(...))?
push 0FFFFFFFFh
...
mov eax, dword ptr fs:[00000000h]
...
mov dword ptr fs:[00000000h],eax
mov dword ptr [ebp-10h],esp
这个代码在函数“head”中的含义是什么,它捕获了异常?
mov dword ptr [ebp-4], 0
这个(在“尝试”的头部)?函数没有任何局部变量。
功能:
int SUM(int a, int b)
{
try{}
catch(...){}
return 0;
}
FS细分市场中的哪些商店?
答案 0 :(得分:7)
fs:[0]
中存储的值是指向EXCEPTION_REGISTRATION
结构的链接列表的指针。请阅读此处了解更多详情:
A Crash Course on the Depths of Win32 Structured Exception Handling, MSJ January 1997
答案 1 :(得分:1)
MSVC如何实现异常(在x86上):https://www.openrce.org/articles/full_view/21
这包括SEH(__try/__catch/__finally
)和C ++(try/catch
)异常实现。
MSVC(x64)和GCC(Linux / iOS)如何实现异常处理:http://www.hexblog.com/?p=704