Уже битый час бьюсь над проблемой. Суть в том, что перехватываю ZwEnumerateValueKey и заменяю своей NewZwEnumerateValueKey. Код (Text): Function NewZwEnumerateValueKey( KeyHandle: dword; Index: ULONG; KeyValueInformationClass: KEY_VALUE_INFORMATION_CLASS; KeyValueInformation: pointer; Length: ULONG; ResultLength: PULONG):NTStatus; stdcall; begin Result := TrueZwEnumerateValueKey(KeyHandle, Index, KeyValueInformationClass, KeyValueInformation, Length, ResultLength); end; Но после такой замены ни одного ключа в реестре не видно. Метод перехвата взят из статьи Ms-Rem'а (Перехват API функций в Windows NT (часть 2)).
ошибка скорее всего не в самом обработчике, в нём же ничего не делается, кроме вызова оригинальной ф-ции =)
каим таким ? если все что делает это вызывает ностоящие свое значение скорее всего ты где то закосячил с хуком и из-за этого настоящая функция не вызываетсяя или выдает ошибку из-за этого и не работает ничего ...
Функция вызывается точно (проверено банальным MessageBox'ом). А метод перехвата взят из статьи Ms-rem'а, часть 2. P.S. Хотя бы дайте рабочий пример перехвата ZwEnumerateValueKey. (Препарировал AFXRootkit2005, но он тоже отказывается работать)