Перехват ZwEnumerateValueKey.

Тема в разделе "WASM.BEGINNERS", создана пользователем LB_K, 28 янв 2007.

  1. LB_K

    LB_K New Member

    Публикаций:
    0
    Регистрация:
    4 авг 2006
    Сообщения:
    8
    Уже битый час бьюсь над проблемой.
    Суть в том, что перехватываю ZwEnumerateValueKey и заменяю своей NewZwEnumerateValueKey.
    Код (Text):
    1. Function NewZwEnumerateValueKey(
    2.              KeyHandle: dword;
    3.          Index: ULONG;
    4.          KeyValueInformationClass: KEY_VALUE_INFORMATION_CLASS;
    5.          KeyValueInformation: pointer;
    6.          Length: ULONG;
    7.          ResultLength: PULONG):NTStatus; stdcall;
    8. begin
    9.     Result := TrueZwEnumerateValueKey(KeyHandle,
    10.                             Index,
    11.                              KeyValueInformationClass,
    12.                              KeyValueInformation,
    13.                              Length,
    14.                              ResultLength);
    15. end;
    Но после такой замены ни одного ключа в реестре не видно.
    Метод перехвата взят из статьи Ms-Rem'а (Перехват API функций в Windows NT (часть 2)).
     
  2. Cr4sh

    Cr4sh New Member

    Публикаций:
    0
    Регистрация:
    17 апр 2006
    Сообщения:
    668
    ошибка скорее всего не в самом обработчике, в нём же ничего не делается, кроме вызова оригинальной ф-ции =)
     
  3. LB_K

    LB_K New Member

    Публикаций:
    0
    Регистрация:
    4 авг 2006
    Сообщения:
    8
    Таким же методом я запросто прячу файлы и процессы, а с реестром какая-то проблема.
     
  4. el-

    el- New Member

    Публикаций:
    0
    Регистрация:
    14 сен 2006
    Сообщения:
    89
    каим таким ? если все что делает это вызывает ностоящие свое значение скорее всего ты где то закосячил с хуком и из-за этого настоящая функция не вызываетсяя или выдает ошибку из-за этого и не работает ничего ...
     
  5. LB_K

    LB_K New Member

    Публикаций:
    0
    Регистрация:
    4 авг 2006
    Сообщения:
    8
    Функция вызывается точно (проверено банальным MessageBox'ом). А метод перехвата взят из статьи Ms-rem'а, часть 2.

    P.S. Хотя бы дайте рабочий пример перехвата ZwEnumerateValueKey.
    (Препарировал AFXRootkit2005, но он тоже отказывается работать)
     
  6. Stub

    Stub New Member

    Публикаций:
    0
    Регистрация:
    11 май 2004
    Сообщения:
    311
    Адрес:
    Siberia
    LB_K
    Поищи по форуму, когда то я выкладывал рабочий код... да и на крайний случай в гугле поищи.
     
  7. WIN32

    WIN32 Member

    Публикаций:
    0
    Регистрация:
    20 янв 2007
    Сообщения:
    338
    http://clickf1.xakep.kz/?p=17