leo Ок, я не так выразился. Но вообще, почему бы не выдавать ошибку, если флаги не установлены? WinXP Eng SP1. OllyDbg. readme 1) SYSENTER только в XP, ниже - int 2Eh; 2) номера функций для каждого SP могут различаться, так что не стоит на них опираться. 3) версия ОС - платформа (9x/NT) легко различается по CS, а так.. только GetVersion или какие косвенные признаки. _1069172357__tr.zip
по регистру CS? это косвенный признак,которому нестоит особо доверять? хех недумал я что даже в разных sp может неработать
IceStudent > "почему бы не выдавать ошибку" Ну наверное не ошибку, а просто возвращать false при GetLastError = 0 (а еще лучше возвращали бы int = скопированным ContextFlags А так действительно логика странная - даже для активного треда возвращается true, но ничего не копируется - however, the context returned is not valid 8( А в NT-шных осях инфа о версии винды вроде как содержится в PEB - поля OSxxx по смещениям A4h-B0h. По PEB можно также различить 9х и NT (например PEB.LDR в 9х всегда = 0)
Точно, для активного потока контекст копируется, но ес-но часть регистров не соответсвует значениям на входе и\или на выходе GetThreadContext