Csrss port handle

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

  1. Cr4sh

    Cr4sh New Member

    Публикаций:
    0
    Регистрация:
    17 апр 2006
    Сообщения:
    668
    Собсно вопрос: как в кернелмоде получить хендл порта, для отправки сообщений серверу подсистемы win32 (csrss)?

    (в ntrootkit, например, его адресс прописан жестко, в некоторых других проектах из ntdll импортируецца ф-ция

    CsrClientCallServer, которой сабж и вовсе не нужен)
     
  2. Ms Rem

    Ms Rem New Member

    Публикаций:
    0
    Регистрация:
    17 апр 2005
    Сообщения:
    1.057
    Адрес:
    С планеты "Земля"
    Смотрим в дизасме участок функции CsrClientCallServer
    Код (Text):
    1. .text:7C9132EB loc_7C9132EB:                           ; CODE XREF: CsrClientCallServer+B9BDj
    2. .text:7C9132EB                                         ; CsrClientCallServer+B9E1j
    3. .text:7C9132EB                 push    esi
    4. .text:7C9132EC                 push    esi
    5. .text:7C9132ED                 push    dword_7C97C134
    6. .text:7C9132F3                 call    ZwRequestWaitReplyPort
    7. .text:7C9132F8                 cmp     edi, ebx
    8. .text:7C9132FA                 jnz     loc_7C91EB68
    9.  


    dword_7C97C134 хранит хендл порта. по референсам на дворд выходим на функцию CsrNewThread
    Код (Text):
    1. .text:7C918E7A                 public CsrNewThread
    2. .text:7C918E7A CsrNewThread    proc near
    3. .text:7C918E7A                 push    dword_7C97C134
    4. .text:7C918E80                 call    ZwRegisterThreadTerminatePort
    5. .text:7C918E85                 retn
    6. .text:7C918E85 CsrNewThread    endp
    7.  


    Эта функция одинакова во всех виндах. Вот из дворда в ней и бери хендл. Не забудь только, что он валиден только в контексте того процесса в котором он взят.
     
  3. TermoSINteZ

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

    Публикаций:
    2
    Регистрация:
    11 июн 2004
    Сообщения:
    3.552
    Адрес:
    Russia
    Кстати, а что ему даст этот хендл :) Сообщения то для каждой винды разные .. по крайней мере, я не видел стандарта создания сообщений подсистеме csrss .