реализация функция ZwProtectVirualMemory
Очень немногие сторожевые программы работают на таком низком уровне, поэтому мы имеем хорошие шансы остаться незамеченными, однако... риск все-таки есть. Что поделаешь —такова специфика нашей профессии. Но глубже спускаться уже некуда! Ниже только ядро! Нет, можно конечно, написать драйвер, разбирающий каталог страниц, и внедряющий код напрямую в физическую память или сделать тоже самое с прикладного уровня, обратившись к псевдоустройству "\\Device\\PhysicalMemory", которое вплоть до Windows 2003 Server SP1 было доступно администратору на чтение/запись, но теперь работать с ним не может даже System, отбрасывая нас назад к драйверу (см. статью "Changes to Functionality in Microsoft Windows Server 2003 Service Pack 1 Device\PhysicalMemory Object" на сайте Microsoft: www.microsoft.com/technet/prodtechnol/windowsserver2003/library/BookofSP1/e0f862a3-cf16-4a48-bea5-f2004d12ce35.mspx). Другая сумасшедшая идея — спуститься на секторный уровень (SPTI/ASPI интерфейсы вам в помощь), забраться в файл подкачки и слегка "подправить" программу. Но ведь это же бред!
Существуют гораздо более элегантные и незаметные способы безопасного внедрения! Нам ведь все равно в какую программу внедряться, правда? Мы же ведь не вендетту устраивать собирается! Мы чужие ресурсы ограбить хотим. А лучший способ грабежа — охота на лопуха. Многие программы поддерживают плагины и другие виды расширений. Достаточно забросить модуль в определенную директорию или слегка подправить конфигурационный файл (реестр). Программа загрузит наш плагин как родной и мы окажется в чужом адресном пространстве в пределах которого можно делать все, что угодно.
Вот только IE не трогайте, ладно? Он со свитой своих расширений находиться под пристальным вниманием целой армии сторожей. Другие программы в этом отношении более простодушны и лояльны. Взять хотя бы FAR, которым пользуется всякий и каждый. Плагины хранятся в каталоге Plugins и автоматически загружаются при запуске, не требуя ни подтверждения пользователя, ни цифровой подписи, словом ничего такого, что хакеру могло бы помешать.
Какой смыл проникать в FAR? ну, во-первых, FAR очень могучая программа. У многих пользователей на Рабочем Столе находится ярлык, запускающий FAR с правами администратора (если же такого ярлыка нет, FAR запускается из сеанса "администратора", какое же администрирование без FAR'a!). А это значит, что проникнув в FAR, мы рвем банк. Что такое "права администратора" в умелых хакерских руках, надеюсь, не надо объяснять? Это каюк всем антивирусам! Это возможность загрузки любых драйверов, переводящих борьбу в плоскость нулевого кольца, где побеждает умнейший ;) Во-вторых, процессы, порожденные FAR'ом, выглядят вполне адекватно и естественно. Пользователь, даже при возникновении каких бы то ни было подозрений, будет думать, что это он сам их запустил, своими руками. В-третьих... опять-таки ресурсы. Даже в системе с квотированием, FAR'у будут установлены могучие привилегии, иначе как с ним работать?!