Рассказ:
В момент тестинга проснулась идея!
скрыть вообще наличие каких либо патчей...
Известно у x86 существует система защиты памяти...
На каждую страницу есть 4 флага: можно читать, можно писать, можно запускать.
Читаем фрагмен памяти который мы собираемся патчить! Патчим память!
И нужно снять флаг "можно читать со страници"...
Как только что-то или кто-то пытается какую-то инфу по данному адресу,выскочит exception кторый мы получим и сделаем следующие:
-восстановим доступ к странице! (с проверкой наш ли это exception)
Далее посмотрим откуда произошла команда читать!
Если из Клиент модуля или из Ядра (ничего не предпринимаем!)
-Если из другого места востанавливаем бекап оригинальных данных!
-Включим флаг трассировки...для процессора, при каждой комаде будет выскакивать exception...
Как сработал exception по трассировке...
-Убрать флаг трассировки
-Восстанавливаем патч
-снова убираем флаги доступа к странице...
данные отрывочны дабы читакам жизнь мёдом не казалась, наверняка не все знают этот метод!