将ntdll.Kernel32ThreadInitThunkFunction相关问题

时间:2018-02-28 00:57:23

标签: c windows-kernel

Kernel32ThreadInitThunkFunction这个全局变量不是在ntdll里面导入的,但是他的值是kernel32.BaseThreadInitThunk函数这是为什么? PE如何知道在加载ntdll时需要加载kernel32.BaseThreadInitThunk?

1 个答案:

答案 0 :(得分:0)

Kernel32ThreadInitThunkFunctionntdll.dll内的全局变量。 ntdll.dll只是单个dll,它最初从内核加载(使用exe)。这个DLL必须没有任何依赖,任何静态导入。在进程初始化ntdll.dll期间,如果这不是CLR映像,子系统是IMAGE_SUBSYSTEM_WINDOWS_GUIIMAGE_SUBSYSTEM_WINDOWS_CUI - 加载 kernel32.dll ,请查询{{ 1}}函数并将其指针存储在BaseThreadInitThunk中。它在开始调用dll init例程之前调用它来初始化终端服务器