kernel32.BaseThreadInitThunk 是什么意思?

逆向工程 部件
2021-06-30 03:55:57

我尝试使用 ollydbg 分析汇编中的程序。在第一行中,我有以下内容:

MOV EAX, DWORD PTR FS:[0]

在注册窗口中,我得到了以下信息:

EAX 7570EE0A kernel32.BaseThreadInitThunk

在另一个关于 FS 的窗口中:

FS:[00000000]=[7FFDF000]=0012FFC4

所以,我的问题是:

  1. DWORD PTR FS和 和有什么不一样DWORD PTR DS通常,我总是看到DWORD PTR DS而不是DWORD PTR FS

  2. 什么是kernel32.BaseThreadInitThunk它是一个函数?

我希望有人可以帮助我。

2个回答

DWORD PTR FS和 和有什么不一样DWORD PTR DS

检查这个 - Segment_Registers

在 Windowsfs[0]点上TEB

什么是kernel32.BaseThreadInitThunk它是一个函数?

是的。它非常简单,仅用于执行线程的功能。

段寄存器历来用于允许 16 位代码寻址超过 16 位 (64KB) 的地址空间。可以用 CS 段指向代码,用 DS 指向数据等。FS 是一个“额外”的段,可以在必要时使用。您可以在 wikipedia 上阅读有关分段的更多信息现代架构不使用段寄存器,FS 和 GS 除外。