TIB Custom Storage

После того, как немного погуглил и дал несколько подсказокВотМне наконец удалосьнайти макет изFS сегмент (используется окнами для хранения данных TIB). Особый интерес для меня представляетArbitraryUserPointer член, предоставленный в PSDK:

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 по какой-то причине помечает их как привилегированные инструкции:

Эти встроенные функции доступны только в режиме ядра, а подпрограммы доступны только как встроенные.

Они конечноне только ядро, но почему они помечены как таковые, просто неверная документация? (мои автономные документы по VS 2008 не имеют этого пункта).

Наконец, это безопасный доступArbitraryUserPointer напрямую через один__readfsdword(0x14) или предпочтительнее использовать его по линейному адресу TIB? (который все еще потребует чтения отFS).

Ответы на вопрос(2)

Ваш ответ на вопрос