【问题标题】:Could someone explain about large fs:0?有人可以解释一下大 fs:0 吗?
【发布时间】:2013-03-28 13:42:56
【问题描述】:
: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 是什么意思。 请有人解释一下这个... 谢谢。

【问题讨论】:

  • 它正在设置一个 SEH 框架。
  • large 是非标准的,但它很可能意味着dword

标签: exception assembly x86 guard disassembly


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-11-22
    • 2016-12-12
    • 1970-01-01
    • 2011-03-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多