gpt4 book ai didi

windows - TIB 自定义存储

转载 作者:可可西里 更新时间:2023-11-01 10:00:54 27 4
gpt4 key购买 nike

经过相当多的谷歌搜索和一些提示后 here ,我终于设法find a layout FS 段(Windows 用来存储 TIB 数据)。我特别感兴趣的是 PSDK 中提供的 ArbitraryUserPointer 成员:

typedef struct _NT_TIB {
struct _EXCEPTION_REGISTRATION_RECORD *ExceptionList;
PVOID StackBase;
PVOID StackLimit;
PVOID SubSystemTib;
union {
PVOID FiberData;
DWORD Version;
};
PVOID ArbitraryUserPointer;
struct _NT_TIB *Self;
} NT_TIB;

使用这个变量到底有多安全(在 Vista 及更高版本下)?它仍然存在于 x64 上吗?

其次是对这个变量的访问。我正在使用 MSVC,因此我可以访问 __readfsdword__readgsqword 内在函数,但是,MSDN出于某种原因将这些标记为特权指令:

These intrinsics are only available in kernel mode, and the routines are only available as intrinsics.

它们当然只是内核,但为什么它们被标记为这样,只是不正确的文档? (我的离线 VS 2008 文档没有这个条款)。

最后,通过单个 __readfsdword(0x14) 直接访问 ArbitraryUserPointer 是否安全,还是更喜欢通过线性 TIB 地址使用它? (仍然需要从 FS 读取)。

最佳答案

ArbitraryUserPointer 是一个不供一般使用的内部字段。操作系统在内部使用它,如果你覆盖它,你会破坏东西。我承认它的名字很糟糕。

关于windows - TIB 自定义存储,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9261455/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com