Локеры… Локеры… Локеры…
Сколько их уже прошло через мои руки… И самые разнообразные притом :) Чего я только не видел и не делал :) Начнем с простенького — Троян.Винлок, или как там каспер его обзывал? Расскажу вам как такое чудо выглядит внутри. Писать будем на делфи, этот я язык я избрал по той причине, что он легок для запоминания и предоставляет максимум возможностей.
«С чего бы начать?» — думал я, получив очередной заказ в аське. И надумал.
Сначала неплохо было бы сделать автозагрузку. Не захотев использовать реестр, я прибегнул к WinAPI. «Однако!» — следующая мысль пролетела в голове — «Семерка, хр и виста используют разные методы для автозапуска». После пяти минут размышлений дописал определение ОС и там уже автозагрузку. Попробовал — классно, фурычит. Дальше что? надо как то убрать кнопочку «закрыть» пара простых движений мышью — все, софт не закроешь. " А ведь можно заюзать альт-таб". Повесив на окно свойство fsStayOnTop, проблема разрешилась сама собой.
Form1.FormStyle := fsStayOnTop;
Так а теперь самое интересное, надо бы полочить места где меня снять могут, а таковыми оказались диспетчер задач, редактор реестра, панель задач и конечно безопасный режим. С диспетчером я разобрался в течении двух минут, есть два способа, либо в тупую в реестре его отрубить ( в семерке это не тестил) либо таймером отлавливать окошко и программно закрывать его. Второй способ мне был больше по душе, поэтому я его и использовал.
h:=FindWindow('Progman',nil);
ShowWindow(h,sw_hide);
h:=FindWindow('Shell_TrayWnd',nil);
ShowWindow(h,sw_hide);
h:=FindWindow(nil,'Редактор реестра');
ShowWindow(h,sw_hide);
h:=FindWindow(nil,'Настройка системы');
ShowWindow(h,sw_hide);
h:=FindWindow(nil,'Диспетчер задач Windows');
ShowWindow(h,sw_hide);
Аналогично поступив и с редактором реестра, я задумался.

«Надо бы как то локнуть безопасный режим» писать сервис мне не хотелось, а вот порыться в гугле пришлось. Спустя сорок минут на сайте майкрософта я нашел решение, которое тут же и применил. «Оляля!» почти готово! Теперь мелочи. В течении трех минут я уменьшил «абузность» (кто в теме — тот поймет) — очищая буфер обмена при каждом нажатии PrintScreen.
if GetAsyncKeyState(VK_SNAPSHOT) <> 0 then
Clipboard.Clear;
Вот почти и сделал. Легенький интерфейс, в стиле винды, текст которому юзер верит сразу и безпрекословно…

Вот впринципе и все :) Каспер мое творение не спалил, основные антивирусы промолчали, так что даже криптовать не пришлось :)

Заказчик был доволен, я доволен собой, получил кровно заработанное, а куда его применял заказчик — я хз ) Софт писал в самообразовательных целях) а вообще распространение вредоносного софта преследуецца по закону и штраф будет в районе 100500 рублей :) Так что не советую вам таким заниматся:) Итак, вобщем, все:) Дальше писать буду потом) если отдел к не заберет к себе)
Комментарии (7)
RSS свернуть / развернутьСекретная кнопка для разблокировки есть =))?
Exorcist
Кроме реестра, прописки в автозагрузке, регистрацией как системной службы/драйвера… Ничего и не знаю:)
nebonebo
blwka
emfs
dyadenkaZyXEL
dyadenkaZyXEL
себя в перезапуск после закрытия тоже не проблема заслать.
blwka
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.