Как вернуть ZwCreateThread и ZwWriteVirtualMemory?

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

  1. blockhead

    blockhead New Member

    Публикаций:
    0
    Регистрация:
    21 фев 2007
    Сообщения:
    11
    Каким образом получать адреса неэкспортируемых в ntoskernrl.exe функций не через SDT? Вроде есть методы, но какие - то неподъемные. Есть ли документированный способ доступа к недокументированному ?
     
  2. gilg

    gilg New Member

    Публикаций:
    0
    Регистрация:
    19 май 2005
    Сообщения:
    527
    Поиск по форуму рулит

    sdt_idx = *(ULONG *) ((char *) ZwQueryDirectoryFile + 1);
    Дальше вызов через int 2Eh под 2000 или поиск адреса в SDT и прямой вызов во всех ОС
     
  3. blockhead

    blockhead New Member

    Публикаций:
    0
    Регистрация:
    21 фев 2007
    Сообщения:
    11
    Ключевой момент - НЕ через SDT. Т.е. получается, что существует только два способа - через int2Eh и через SDT. А нельзя импотротом из ядра ? Если ntdll.lib прилинковать, то вроде как функции появляются, НО при запуске получаю - The specified procedure could not be found. MmGetSystemRoutineAddress() выдает 0х00. В общем можно получить адрес следующим образом - POldCode Func = (POldCode)NtOpenProcess; - или это только для документированных функций ?
     
  4. EP_X0FF

    EP_X0FF New Member

    Публикаций:
    0
    Регистрация:
    13 авг 2006
    Сообщения:
    450
    >>ZwWriteVirtualMemory?

    KeAttachProcess, открыл память по записи, записал чего хотел, закрыл, KeDetachProcess.

    Почему для всего всегда нужны какие-то функции? :-/

    >>ZwCreateThread?

    Зачем? Создать юзермодовский поток?
     
  5. blockhead

    blockhead New Member

    Публикаций:
    0
    Регистрация:
    21 фев 2007
    Сообщения:
    11
    Вопрос же вроде конкретный )). Мне нужно их перехватывать ...