Отвечу сам себе.
ВЗял detours, переписал GetVersion, GetVersionExA, GetVersionExW, ограничил загрузку моей dll определенным списком процессов, прописал в реестре через AppInit_Dlls — как то заработало.
Остался вопрос — а как непосредственно винда это реализует хотя бы для простых процессов (а не сервисов)?