Подскажите почему перехват NtUserTranslateMessage не работает вWin2003

Тема в разделе "WASM.NT.KERNEL", создана пользователем 0xFox, 17 фев 2010.

  1. 0xFox

    0xFox Андрей

    Публикаций:
    0
    Регистрация:
    14 янв 2010
    Сообщения:
    47
    Адрес:
    Белгород
    Подскажите почему перехват NtUserTranslateMessage не работает в Win2003, аналогичный перехват в WinXP проходит на ура. Номер сервиса в win2003 равен 0х235, адрес шадоу таблицы вроде бы определяется верно. В качестве антивируса стоит NOD32, не думаю что он перенес таблицу. Почему не работает перехват, не могу понять. Подскажите, какие нибудь средства для того чтобы проверить, правильно ли нахожу я адрес шадоу таблицы и номер сервиса.

    Спасибо.
     
  2. 0xFox

    0xFox Андрей

    Публикаций:
    0
    Регистрация:
    14 янв 2010
    Сообщения:
    47
    Адрес:
    Белгород
    Еще может кто нибудь подскажет инструмент для того чтоб посмотреть перехваты в системе, на примере RkUnHooker, но только чтоб работала под win2003
     
  3. reader323

    reader323 New Member

    Публикаций:
    0
    Регистрация:
    8 июл 2009
    Сообщения:
    134
    аффтар выпрямляй руки
    w2k3 sp2
    [​IMG]
     
  4. 0xFox

    0xFox Андрей

    Публикаций:
    0
    Регистрация:
    14 янв 2010
    Сообщения:
    47
    Адрес:
    Белгород
    Да дело ф том)) что на виртуальной машине это дело работает, а на реальной не хочет, а приведенный инструмент вызывает БСОД, по не ясным причинам.

    Еще вопросец, может кто сталкивался, перехват сервиса в терминальном режиме, какие тут могут быть сложности,
    при перехвате сервиса на самой машине показывает что перехват осуществлен, НО если заходим через терминал на эту же машину, то перехвата нет!!! Почему?? Драйвер же он вроде как один для всех сесиий, почему при работе с консоли ntUserTranslateMessage перехвачена, а если зайти через терминал на машину, то тот же РутКитАнхукер показывает что перехвата нет....


    Подскажите пожалуйста
     
  5. 0xFox

    0xFox Андрей

    Публикаций:
    0
    Регистрация:
    14 янв 2010
    Сообщения:
    47
    Адрес:
    Белгород
    И вот из сессии терминального режима
     
  6. 0xFox

    0xFox Андрей

    Публикаций:
    0
    Регистрация:
    14 янв 2010
    Сообщения:
    47
    Адрес:
    Белгород
    Кто нибудь знает в чем тут дело??? в чем подвох
     
  7. Sol_Ksacap

    Sol_Ksacap Миша

    Публикаций:
    0
    Регистрация:
    6 мар 2008
    Сообщения:
    623
    0xFox
    Всё правильно – win32k с таблицей своих сервисов находится в сессионном пространстве же.
     
  8. 0xFox

    0xFox Андрей

    Публикаций:
    0
    Регистрация:
    14 янв 2010
    Сообщения:
    47
    Адрес:
    Белгород
    Подскажите, как до нее добраться, как ее найти для каждой сессии??
     
  9. Clerk

    Clerk Забанен

    Публикаций:
    0
    Регистрация:
    4 янв 2008
    Сообщения:
    6.689
    Адрес:
    РБ, Могилёв
    MiSessionWsList
    MmGetNextSession()
    MmAttachSession()
    ...
    session.c
     
  10. 0xFox

    0xFox Андрей

    Публикаций:
    0
    Регистрация:
    14 янв 2010
    Сообщения:
    47
    Адрес:
    Белгород
    Благодарю, а session.c - этот файлик где можно достать??
     
  11. 0xFox

    0xFox Андрей

    Публикаций:
    0
    Регистрация:
    14 янв 2010
    Сообщения:
    47
    Адрес:
    Белгород
    А где эти функции вообще можно найти???
    про них нет ничего в msdn нет и в поисковиках мало инфы,
    поделитесь знаниями пожалуйста)))
     
  12. n0name

    n0name New Member

    Публикаций:
    0
    Регистрация:
    5 июн 2004
    Сообщения:
    4.336
    Адрес:
    Russia
    wrk - путь к знаниям.
     
  13. Clerk

    Clerk Забанен

    Публикаций:
    0
    Регистрация:
    4 янв 2008
    Сообщения:
    6.689
    Адрес:
    РБ, Могилёв
    0xFox
    На следующий ваш вопрос(этих функций и переменных нет в экспорте, как мне их искать) отвечу заранее:
    0. Иметь ядра от всей линейки NT.
    1. Сигнатурный поиск.
    2. Анализ релоков.
    3. Трассировка.
    4. Дизассемблирование.
    5. Создание и анализ графа.
     
  14. 0xFox

    0xFox Андрей

    Публикаций:
    0
    Регистрация:
    14 янв 2010
    Сообщения:
    47
    Адрес:
    Белгород
    Подскажите, если не сложно, какие файлы нужно дизассемблировать и где сигнатуры раздобыть..
     
  15. Clerk

    Clerk Забанен

    Публикаций:
    0
    Регистрация:
    4 янв 2008
    Сообщения:
    6.689
    Адрес:
    РБ, Могилёв
    0xFox
    Берёте ядро и отладочные символы к нему, находите там нужные функи/переменные, затем ищите ссылки и пр., после чего находите целевые переменные или функции без отладочных символов и привязки к версии. А далее механически пишите код.
     
  16. 0xFox

    0xFox Андрей

    Публикаций:
    0
    Регистрация:
    14 янв 2010
    Сообщения:
    47
    Адрес:
    Белгород
    Хорошо, сейчас буду пробовать, подскажите еще такую вещь: Когда я найду адреса нужных мне функций и переменных в ntoskrnl.exe, будут ли эти адреса доступны из драйвера?? или нужно аттачится к процессу?
     
  17. TermoSINteZ

    TermoSINteZ Синоби даоса Команда форума

    Публикаций:
    2
    Регистрация:
    11 июн 2004
    Сообщения:
    3.548
    Адрес:
    Russia
    0xFox
    Глупый вопрос. К какому процессу и зачем вы собрались аттачиться? Доступ к памяти ядра из того же ядра (читайте драйвера) - прямой, и не надо никуда аттачиться, чтобы получить доступ к региону, куда промаплен ntoskrnl. Имхо вначале с теорией разберитесь немножко.
     
  18. 0xFox

    0xFox Андрей

    Публикаций:
    0
    Регистрация:
    14 янв 2010
    Сообщения:
    47
    Адрес:
    Белгород
    ОК, спасибо
     
  19. 0xFox

    0xFox Андрей

    Публикаций:
    0
    Регистрация:
    14 янв 2010
    Сообщения:
    47
    Адрес:
    Белгород
    Подскажите еще такие вещи:

    на сколько я понимаю(если не так, поправьте)

    MiSessionWsList - указатель на списк сессий
    MmGetNextSession() - функция, возвращает сессию из списка, принимает параметр MiSessionWsList
    MmAttachSession() - функция, позволяет приаттачится драйверу к конкретной сессии

    кто нибудь может подсказать какие интерфейсы у этих функций??
    MmAttachSession() - принимает два параметра, судя по всему, первый это результат MmGetNextSession(), а вот второй параметр для чего??

    подскажите пажалуйста
     
  20. Clerk

    Clerk Забанен

    Публикаций:
    0
    Регистрация:
    4 янв 2008
    Сообщения:
    6.689
    Адрес:
    РБ, Могилёв
    0xFox
    *GetNext* функи перечисляют. http://indy-vx.narod.ru/Bin/session.rar
    Вам пять минут чтобы слить.