Как я могу защитить определенные области памяти с Win32 API? - PullRequest
0 голосов
/ 20 марта 2011

Предположим, у меня есть буфер, скажем, 100 байт, как в char *pBuffer = new char[100];, и я хочу передать его сторонней функции со специальной инструкцией, которая записывает только в верхнюю половину, а нижняя половина выходит за пределы.Как я могу применить это с Win32 API?

Спасибо.

PS: Этот конкретный пример может быть не идеальным, но я проясню свой вопрос.

1 Ответ

3 голосов
/ 20 марта 2011

Вам нужно будет использовать VirtualProtect , чтобы пометить последнюю половину как только для чтения.Поскольку VirtualProtect работает со страницами, а не с байтами, в вашем примере вам потребуется VirtualAlloc PAGE_SIZE + 50 байт и настроить pBuffer так, чтобы оно соответствовало вашим требованиям.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...