Русский / Russian English / Английский

Сейчас на форуме: (+1 невидимый пользователь)
 · Начало · Статистика · Регистрация · Поиск · ПРАВИЛА ФОРУМА · Язык · RSS ·

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

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

Создано: 8 января 2017 21:54 New!
Цитата · Личное сообщение · #1

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

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

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

Ранг: 409.4 (мудрец)
Статус: Участник

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

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

Утилита для проверки: { Атач доступен только для участников форума } - procaddr.rar

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

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

Ранг: 53.9 (постоянный)
Статус: Участник

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

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

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


Ранг: 326.7 (мудрец)
Статус: Участник

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

dosprog

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

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

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

{ Атач доступен только для участников форума } - Ntid.rar
 eXeL@B —› Программирование —› ZwProtectVirtualMemory из ядра

Видеокурс ВЗЛОМ