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

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

Ранг: 10.8 (новичок), 4thx
Активность: 0.17=0.17
Статус: Участник

Создано: 06 октября 2019 22:01 · Поправил: AE
· Личное сообщение · #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





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

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

AE

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

-----
vx


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

Ранг: 10.8 (новичок), 4thx
Активность: 0.17=0.17
Статус: Участник

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

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

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

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

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



Ранг: 281.8 (наставник), 272thx
Активность: 0.250.01
Статус: Участник
Destroyer of protectors

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

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



Ранг: 10.8 (новичок), 4thx
Активность: 0.17=0.17
Статус: Участник

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

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


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



Ранг: 19.5 (новичок), 8thx
Активность: 0.050.08
Статус: Участник

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

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

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



Ранг: 10.8 (новичок), 4thx
Активность: 0.17=0.17
Статус: Участник

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

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

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



Ранг: 43.1 (посетитель), 20thx
Активность: 0.160.29
Статус: Участник

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

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

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



Ранг: 10.8 (новичок), 4thx
Активность: 0.17=0.17
Статус: Участник

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

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

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

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




Ранг: 2014.5 (!!!!), 1278thx
Активность: 1.340.25
Статус: Модератор
retired

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

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

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