例外 – 有人可以解释一下大fs:0吗?

:0378CED0                 push    ebp    
:0378CED1                 mov     ebp, esp     
:0378CED3                 push    0FFFFFFFFh    
:0378CED5                 push    3927B50h    
:0378CEDA                 push    38DB344h   
:0378CEDF                 mov     eax, large fs:0    
:0378CEE5                 push    eax   
:0378CEE6                 mov     large fs:0, esp   
:0378CEED                 add     esp, 0FFFFF928h   
:0378CEF3                 push    ebx   
:0378CEF4                 push    esi   
:0378CEF5                 push    edi   
:0378CEF6                 mov     [ebp+var_18], esp   
:0378CEF9                 mov     [ebp+var_20], 1   
:0378CF00                 mov     [ebp+var_1C], 0   
:0378CF07                 mov     eax, [ebp+arg_8]    
:0378CF0A                 mov     [ebp+var_230], eax   
:0378CF10                 mov     [ebp+var_22C], 0   
:0378CF1A                 mov     [ebp+var_4], 0   
:0378CF21                 jmp     loc_3B62B79   

我无法理解从0378CEDF到0378CEE6的含义.
请有人解释一下……
谢谢.

最佳答案 在Windows上,段寄存器FS指向Win32线程信息块.
http://en.wikipedia.org/wiki/Win32_Thread_Information_Block

因此,如果这是来自win32应用程序的代码,那么0378CEDF到0378CEE6正在保存FS:0(SEH帧),然后用esp中的任何内容覆盖它.

点赞