Сейчас на форуме: jinoweb, bartolomeo (+5 невидимых)

 eXeL@B —› Программирование —› ZwProtectVirtualMemory из ядра
Посл.ответ Сообщение

Ранг: 9.0 (гость)
Активность: 0=0
Статус: Участник

Создано: 08 января 2017 21:54
· Личное сообщение · #1

функция ZwProtectVirtualMemory не экспортируется в ядре ...

как можно воспользоваться тогда функцией из ядра ??

если возможно то пример



Ранг: 431.7 (мудрец), 390thx
Активность: 0.730.32
Статус: Участник

Создано: 08 января 2017 23:09 · Поправил: dosprog
· Личное сообщение · #2

Как это не экспортируется?
Проверил. Экспортируется нормально:
Code:
  1. 7C900000.7C90DEB6: ntdll.ZwProtectVirtualMemory

Утилита для проверки: 7149_08.01.2017_EXELAB.rU.tgz - procaddr.rar

--Добавлено--

deniskore, скорей всего, да.



Ранг: 53.9 (постоянный), 33thx
Активность: 0.050
Статус: Участник

Создано: 08 января 2017 23:17 · Поправил: deniskore
· Личное сообщение · #3

Судя по всему он имел ввиду вызов функции из драйвера.
Используйте --> MmGetSystemRoutineAddress <-- для получения адреса функции ZwProtectVirtualMemory.
Пример получения адреса:
Code:
  1. UNICODE_STRING function;
  2. RtlInitUnicodeString(&function, L"ZwProtectVirtualMemory");
  3. pZwProtectVirtualMemory = MmGetSystemRoutineAddress(&function);

Затем делаете вызов функции согласно ее прототипу.




Ранг: 338.5 (мудрец), 348thx
Активность: 2.112.42
Статус: Участник

Создано: 13 февраля 2017 05:12
· Личное сообщение · #4

dosprog

Видимо это общий вопрос. Большая часть нтапи не экспортится. А не экспортится оно не просто так, разрабы не забыли добавить их в экспорт, просто это не предназначено для юзания из ядра. Так как это приведёт к анстаб. В целом же поиск этих стабов нужен обычно виксам.

Используется следующий способ. Сервисы вызываются по их номеру. Соответственно этот номер должен быть определён. Это делается из юзер-нэйтива - нтдлл экспортит все сервисы. Обычно не мапится модуль, а выполняется аттачь к процессу system(там это уже спроецировано). Энумится экспорт и создаётся сервисный дамп. Затем вызов выполняется по хэшу сервиса - в дампе находится соответствующий ему номер.

Добавлено спустя -18 минут
Вот семпл собрал. Это юзер код, но никакой разницы нет.

0280_13.02.2017_EXELAB.rU.tgz - Ntid.rar

-----
vx



 eXeL@B —› Программирование —› ZwProtectVirtualMemory из ядра
:: Ваш ответ
Жирный  Курсив  Подчеркнутый  Перечеркнутый  {mpf5}  Код  Вставить ссылку 
:s1: :s2: :s3: :s4: :s5: :s6: :s7: :s8: :s9: :s10: :s11: :s12: :s13: :s14: :s15: :s16:


Максимальный размер аттача: 500KB.
Ваш логин: german1505 » Выход » ЛС
   Для печати Для печати