Что делает функция VirtualProtect из Kernel32?
Я перепроектировал файл, и я наткнулся на эту строку кода
Call DWORD PTR DS:[3F1010]
и комментарий ollydbg к этой строке, Kernel32.VirtualProtect
Вопрос в том, что делает эта функция? Я уже провел собственное исследование этой функции в MSDN, но до сих пор не могу понять это ясно. Означает ли это также, что память или виртуальная страница (как вы ее называете), которую она защищает, не будут доступны для чтения в ollydbg?
1 ответ
VirtualProtect изменяет параметры защиты (т. Е. Способ, которым приложение получает доступ к памяти) некоторой области памяти, уже выделенной с помощью VirtualAllocate или других функций памяти. Доступно много вариантов защиты: только чтение, перезапись, выполнение, все они и т. Д. Проверьте их в MSDN.
Как правило, когда выделяется память, ей назначаются некоторые из этих вариантов защиты. Но если кто-то хочет изменить их позже - VirtualProtect - это функция, которую он должен использовать.