Обмануть tasklist.exe

Тема в разделе "WASM.WIN32", создана пользователем drmist, 23 янв 2006.

  1. drmist

    drmist New Member

    Публикаций:
    0
    Регистрация:
    31 май 2005
    Сообщения:
    112
    Перехватываю NtQuerySystemInformation на ring3, тем не менее сабж видит мою программу. Опираясь на мои навыки реверсинга я предположил, что она получает список процессов с помощью служб. Или как-то иначе.

    Как ее обмануть, желательно не спускаясь в ring3?
     
  2. drmist

    drmist New Member

    Публикаций:
    0
    Регистрация:
    31 май 2005
    Сообщения:
    112
    * в ring0
     
  3. NullSessi0n

    NullSessi0n New Member

    Публикаций:
    0
    Регистрация:
    20 янв 2006
    Сообщения:
    322
    В смысле как получает список процессов с помощью служб? Такого не должно быть - таких странных служб я не встречал. В ядре ОС функции NtQuerySystemInformation соответствует ntoskrnl!ZwQuerySystemInformation. Перехватывать надо её (лучше через драйвер). Хотя сначала происходит вызов NtQuerySystemInformation, но если ядро признаёт вызов действительным, то управление попадает на ZwXXX. О перехвате в ring0 можно прочитать статьи от Ms-Rem'а по перехвату API, часть третья.
     
  4. drmist

    drmist New Member

    Публикаций:
    0
    Регистрация:
    31 май 2005
    Сообщения:
    112
    NullSessi0n

    Спасибо, читал все три

    Первые две понял, до драйверов доросту через пару месяцев - читаю третью перед каждым сном :lol: D

    Не могу не отметить, что программа Ms-Rem'а ProcHide видна как tasklist.exe так и обычному taskmgr.exe. Первой - потому что прога консольная, и хукам не подвластна, а второй, потому что хук ставится на событие WH_GETMESSAGE, а следовало бы на WC_CBT, поскольку taskmgr получает список процессов до того, как вызывает GetMessage(), но перед тем, как создает окно :)



    Насчет Zw* я пропалил, сменил перехват, но это не помогло.

    Функция нормально перехватывается (сплайсингом) и нормально работает в любых GUI и консольных приложениях, кроме этого самого tasklist'а. Вот я хочу понять почему. Из дебажинья ничего хорошего не вышло :-/
     
  5. drmist

    drmist New Member

    Публикаций:
    0
    Регистрация:
    31 май 2005
    Сообщения:
    112
    Так

    простите, я сегодня не совсем трезвый )

    ProcHide конечно winlogon.exe скрывает, и с ним все работает.

    Но я рекомендовал бы ставить хук на WH_CBT.
     
  6. NullSessi0n

    NullSessi0n New Member

    Публикаций:
    0
    Регистрация:
    20 янв 2006
    Сообщения:
    322
    Вроде мы в ring0 хотели остаться? Или ловушки в kernel mode тоже есть?
     
  7. drmist

    drmist New Member

    Публикаций:
    0
    Регистрация:
    31 май 2005
    Сообщения:
    112
    NullSessi0n

    ну да SetWindowsHookEx и все такое...
     
  8. NullSessi0n

    NullSessi0n New Member

    Публикаций:
    0
    Регистрация:
    20 янв 2006
    Сообщения:
    322
    SetWindowsHookEx - процедура из user32.dll и применима лишь в ring3. ring0, он же kernel mode, он же режим ядра, такой функции не имеет.
     
  9. drmist

    drmist New Member

    Публикаций:
    0
    Регистрация:
    31 май 2005
    Сообщения:
    112
    Я и работаю в ring3.

    где я написал, что хочу перейти в ринг0?
     
  10. comrade

    comrade Константин Ёпрст

    Публикаций:
    0
    Регистрация:
    16 сен 2002
    Сообщения:
    232
    Адрес:
    Russian Federation
    во втором посте