инфа о ZwRegisterThreadTerminatePort

Тема в разделе "WASM.NT.KERNEL", создана пользователем Alisa, 24 май 2007.

  1. Alisa

    Alisa New Member

    Публикаций:
    0
    Регистрация:
    20 июл 2005
    Сообщения:
    10
    доброго дня!
    ищу инфу по использованию ф-ции ZwRegisterThreadTerminatePort.
    у кого есть, поделитесь, плз!
    спасибо!
     
  2. z0mailbox

    z0mailbox z0

    Публикаций:
    0
    Регистрация:
    3 фев 2005
    Сообщения:
    635
    Адрес:
    Russia СПБ
    у неббета сказано так:

    ZwRegisterThreadTerminatePort registers an LPC port that should be sent a message
    when the thread terminates.
    NTSYSAPI
    NTSTATUS
    NTAPI
    ZwRegisterThreadTerminatePort(
    IN HANDLE PortHandle
    );
    Parameters
    PortHandle
    A handle to a port object.The handle need not grant any specific access.
    Return Value
    Returns STATUS_SUCCESS or an error status, such as STATUS_INVALID_HANDLE.
    Related Win32 Functions
    None.
    ZwRegisterThreadTerminatePort adds the port to the list of ports that will receive an
    LPC message when the current thread terminates.
    The message has a MessageType of LPC_CLIENT_DIED and contains 8 bytes of data,
    specifically the creation time of the thread in the standard time format (that is, the
    number of 100-nanosecond intervals since January 1, 1601).
     
  3. Alisa

    Alisa New Member

    Публикаций:
    0
    Регистрация:
    20 июл 2005
    Сообщения:
    10
    Typically, NtRegisterThreadTerminatePort is used in CsrNewThread function, called before thread execution begins, but in thread context.
    Function associate PortHandle with thread, and sends LPC_TERMINATION_MESSAGE to specified port immediatelly after call NtTerminateThread.
    это все, что я нашла.
    я так понимаю сей порт создается в csrss.exe. возможно ли его прослушать и реагировать на
    LPC_TERMINATION_MESSAGE
     
  4. z0mailbox

    z0mailbox z0

    Публикаций:
    0
    Регистрация:
    3 фев 2005
    Сообщения:
    635
    Адрес:
    Russia СПБ
    это громко сказано ;)
    Код (Text):
    1. _CsrNewThread:
    2. push dword ptr [_CsrPortHandle]
    3. call _NtRegisterThreadTerminatePort
    4. retn
    прослушать порт да можно наверное, если осторожно, не забывая передавать дальше
    с подгруженными символами ntdll.dll вообще детская задача
    но прошу прощения - зачем? коламбия пикчерс не представляет...
     
  5. Alisa

    Alisa New Member

    Публикаций:
    0
    Регистрация:
    20 июл 2005
    Сообщения:
    10
    законнектиться неполучается. отказано в доступе.
    это у меня идея-фикс: подумала, что можно узнать, хотят ли убить моё приложение
    до того как это осуществится не используя дополнительной проги-монитора.
     
  6. z0mailbox

    z0mailbox z0

    Публикаций:
    0
    Регистрация:
    3 фев 2005
    Сообщения:
    635
    Адрес:
    Russia СПБ
    ну это несколько барышня кривовато
    если захотят убить - будут пытаться открыть процесс с правами на убивство
    если получится - будут терминировать
    порт в клиент-сервер тут ни при чем вообще
    я бы тебе посоветовал не заморачиваться с неубиваемостью
    ее можно делать но это пестня про броню и ядро
    а сделать феникс
    это проще надежнее и эффективнее
     
  7. Alisa

    Alisa New Member

    Публикаций:
    0
    Регистрация:
    20 июл 2005
    Сообщения:
    10
    сие - извесно. нехочется хучить кучу ф-ций.
    я накропала драйвер с перехватом NtOpenProcess (как у MS-Rem-a),
    но все равно убивается :dntknw:(
    думала, мож чё нового изобрету, а z0mailbox мне крылья обрезал :))
     
  8. z0mailbox

    z0mailbox z0

    Публикаций:
    0
    Регистрация:
    3 фев 2005
    Сообщения:
    635
    Адрес:
    Russia СПБ
    чем занимаешься если не секрет? фаеры? или наоборот?