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

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

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

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

Создано: 6 октября 2019 22:01 · Поправил: AE New!
Цитата · Личное сообщение · #1

Есть пара строк:
Code:
  1. std::vector<MEMORY_BASIC_INFORMATION> MBIList;
  2. CreateMemoryMap(&MBIList);
  3. MEMORY_BASIC_INFORMATION mbiPrev = MBIList[2];
  4.          
  5. DWORD iProt = PAGE_READWRITE;
  6. DWORD iProtOld = 0;
  7. DWORD dwError = 0;
  8.          
  9. if (!VirtualProtect(mbiPrev.BaseAddress, mbiPrev.RegionSize, iProt, &iProtOld))
  10.          dwError = GetLastError();

В общем VirtualProtect возвращает 0, а код ошибки 87 (Параметр задан неверно.)
Пробовал VirtualProtectEx - аналогично, а вот если дать тот-же iProt (PAGE_READONLY) - отрабатывает!
Что за фигня? Как мне расшарить страницу?

MEMORY_BASIC_INFORMATION mbiPrev


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

Создано: 6 октября 2019 22:24 New!
Цитата · Личное сообщение · #2

AE

Не получится открыть проекцию для записи, так как при создании указан ридонли. Только если анмапить и по этой базе отобразить R/W.

| Сообщение посчитали полезным: AE


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

Создано: 6 октября 2019 22:59 New!
Цитата · Личное сообщение · #3

difexacaw пишет:
Не получится открыть проекцию для записи, так как при создании указан ридонли.

Я понял, использовалось MapViewOfFile ...

difexacaw пишет:
Только если анмапить и по этой базе отобразить R/W.

и единственная возможность - использовать ее повторно...?

Ранг: 281.8 (наставник)
Статус: Участник
Destroyer of protectors

Создано: 7 октября 2019 13:55 New!
Цитата · Личное сообщение · #4

AE
Хукни функу, которой мапилось и поставь свои права

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

Создано: 7 октября 2019 15:49 New!
Цитата · Личное сообщение · #5

MasterSoft пишет:
Хукни функу, которой мапилось и поставь свои права


Не все можно хукнуть в ринг3, увы или ура - хз...

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

Создано: 7 октября 2019 18:36 New!
Цитата · Личное сообщение · #6

AE пишет:
а вот если дать тот-же iProt (PAGE_READONLY) - отрабатывает!

поставь PAGE_EXECUTE_READWRITE и всё отработает как надо.

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

Создано: 7 октября 2019 18:47 · Поправил: AE New!
Цитата · Личное сообщение · #7

dezmand07, увы....
Думаю что единственно рабочий варик предложен difexacaw'ым - убить, выделить заново, залить.

Проверю - отпишу...время надо чуток

Ранг: 33.7 (посетитель)
Статус: Участник

Создано: 7 октября 2019 22:27 New!
Цитата · Личное сообщение · #8

AE пишет:
Не все можно хукнуть в ринг3

что же там за монстр, которого нельзя хукнуть?

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

Создано: 9 октября 2019 19:14 New!
Цитата · Личное сообщение · #9

difexacaw пишет:
Только если анмапить и по этой базе отобразить R/W.

Работает...надеюсь в реальном мире тоже покатит....

Добавлено спустя 13 часов 11 минут
Closed


Ранг: 2008.8 (!!!!)
Статус: Модератор
retired

Создано: 10 октября 2019 21:06 New!
Цитата · Личное сообщение · #10

Автор сам может закрыть свою тему, кнопка "Закрыть тему" находится внизу страницы, под кнопкой "Отправить сообщение".

| Сообщение посчитали полезным: AE

 eXeL@B —› Программирование —› VirtualProtect
Эта тема закрыта. Ответы больше не принимаются.

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