Сискол к Win32.sys из WOW64 не отрабатывает

Тема в разделе "WASM.BEGINNERS", создана пользователем PaperMoon, 5 окт 2017.

  1. PaperMoon

    PaperMoon New Member

    Публикаций:
    0
    Регистрация:
    13 авг 2017
    Сообщения:
    16
    Я пытаюсь сделать сисколл из x86 процесса через Heaven's Gate т.е.

    Код (ASM):
    1. mov r10,rcx
    2. mov eax,1403h
    3. syscall
    4. ret
    из wow64 процесса к win32k апи:

    Код (C):
    1. NtUserRegisterRawInputDevices
    Код который вызывает сисколы прекрасно работает с сисколами ntoskrnl.exe, однако видимо для win32k.sys требуется ещё какая-то работа. При этом сискол к
    Код (C):
    1. NtUserRegisterRawInputDevices
    возвращает STATUS_SUCCESS, однако я не получаю событий WM_INPUT. При этом если вызывать через ntdll, то всё работает нормально. Какая дополнительная работа необходима для проведения сисколлов из wow64 к win32k.sys апи? User32.dll уже инициализирован в приложении при вызове, создано окно.
     
  2. yashechka

    yashechka Ростовский фанат Нарвахи

    Публикаций:
    84
    Регистрация:
    2 янв 2012
    Сообщения:
    1.493
    Адрес:
    Россия
    А где Инди? Что он молчит? Он же кернел хакер
     
  3. PaperMoon

    PaperMoon New Member

    Публикаций:
    0
    Регистрация:
    13 авг 2017
    Сообщения:
    16
    Ну один косяк я сам исправил, нужно было подсунуть адрес который выровнен по x64 границе. Но всё равно в итоге кидает в ответ 1 в eax. Щас накачу виртуалку попытаюсь в кернеле БП поставить на NtUserRegisterRawInputDevices, и посмотреть что именно ей не нравится
     
  4. PaperMoon

    PaperMoon New Member

    Публикаций:
    0
    Регистрация:
    13 авг 2017
    Сообщения:
    16
    Разобрался. К выше добавленному, забыл выровнить стек
     
  5. vx1d

    vx1d Member

    Публикаций:
    0
    Регистрация:
    13 дек 2016
    Сообщения:
    98
    а как инициализировал user32.dll (из system32)?