Здравствуйте, много гуглил на эту тему, но не как не могу понять, что вообще делает функция VirtualProtect и VirtualProtectEx? Как я понимаю virtualProtect меняет что то... Но не пойму что. Если не трудно можете объяснить человеческим языком что это такое и с чем его едят.
ОС может блокировать для приложения возможность чтения, записи, исполнения определённых диапазонов виртуальной памяти. Например код *((char*)GetProcAddress(hkernel32, "GetProcAddress")) = 0 по умолчанию вызовет исключение. Но если выдать региону памяти права на запись, то первый байт функции в данном процессе будет успешно перезаписан.