Наш Rootkit будет выполнять 2 функции: 1 это защищать нашу программу 2 это блокировать запуск утилиты AVZ. Для защиты программы мы перехватим функцию ZwOpenProcess из NtDLL.DLL и для блокировки AVZ функции CreateProcessA, CreateProcessW.
1) Базонезависимость (адрес загрузки кода в чужой процесс неизвестен заранее). 2) Независимость от RTL (Run Time Library). 3) Использование только библиотек загруженных в АП (адресное пространство) целевого процесса. 4) Наличие в внедряемом коде всех необходимых для него данных.
ынужден сказать, что многое изложенное ниже может привести к неприятным последствиям. Например, к тому, что программа или система будет зависать. Поэтому будем считать, что читатель находиться в трезвом уме и здравой памяти и не будет совершать необдуманные действия. Прежде чем убить или закрыть чужое окно, подумайте, а зачем это окно вообще висит. Помните, что если окна висят в системе значит это кому то нужно ?! (почти Маяковский). Ну а теперь немного попугав для проформы перейдем к делу.
Данная статья предназначена для начинающих программистов, которые никогда не работали с потоками, и хотели бы узнать основы работы с ними. Желательно, чтоб читатель знал основы ООП и имел какой-нибудь опыт работы в Delphi. Для начала давайте определимся, что под словом "поток" я подразумеваю именно Thread, который еще имеет название "нить".
Вот ты все делаешь и делаешь заподлянки. Только они какие то большие получаются. И на дискетку в лучшем случае влезет штуки 4-5. А пробовал ли ты писать компактное zло, что бы на дискетку влезло их штук 100? Вот этим мы в этой статье и займемся.