NtUserSendInput

Тема в разделе "WASM.NT.KERNEL", создана пользователем recycler, 2 сен 2009.

  1. recycler

    recycler New Member

    Публикаций:
    0
    Регистрация:
    2 сен 2009
    Сообщения:
    1
    установлен хук на NtUserSendInput, необходимо его обойти, желательно не трогая ssdt

    особенно интересно узнать про такие подходы:

    1.
    How I bypass NtUserSendInput is I basically copy Win32k.sys into a new place with ExAllocatePool (Non Paged Pool) Then scan the pool for the starting bytes of NtUserSendInput

    2.
    PostMessage(PWND window, ulong msg, ulong wParam, ulong lParam)
    When called, it eventually allocates a new entry in the thread queue using AllocQEntry, places the message information into it with StoreQMessage (which also adds the timestamp and current cursor position), and finally tells the thread that it should wake up because there's a message pending (using SetWakeBit). In Windows XP SP2, the message queue is found at offset 0xD0 of _W32THREAD, and looks like:

    Код (Text):
    1. typedef struct _MSG_QUEUE {
    2. PMSG_QUEUE_ENTRY Head;
    3. PMSG_QUEUE_ENTRY Tail;
    4. unsigned long NumberOfMessages;
    5. } MSG_QUEUE;
    если кто сталкивался, поделитесь опытом, универсальность метода не имеет значения, будет работать только под w2k/xp
     
  2. ares

    ares New Member

    Публикаций:
    0
    Регистрация:
    22 ноя 2008
    Сообщения:
    20
    Может скопировать начало оригинальной функции NtUserSendInput в буфер затем jmp на оригинал, и выполнять его там?
     
  3. Clerk

    Clerk Забанен

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