- [Duke's Virus Labs #7] - [Page 12] - Паразитические HTML-вирусы (c) by Duke/SMF Для того, чтобы написать полноценный HTML-вирус, надо знать как минимум два языка скриптов - JavaScript и VBScript. В принципе, без знаний Java нам вполне можно обойтись и воспользоваться одной стандартной заготовкой. А именно: скриптом, проверяющим название и версию установленного на компьютере Web-броузера. Дело в том, что VBScript нам удасться запустить на исполнение только под броузером Internet Explorer (потому, что это именно Microsoft является автором языка Visual Basic. Для его популяризации микрософтовцы воткнули поддержку VB и в свой броузер), да и то начиная с версии 4.0 и выше (Кстати, броузер IE5 понимает не все VB-скрипты, из числа работающих под IE4. Вот вам и хваленая преемственность поколений !) Вот требующийся нам Java-скрипт : ===== Cut here ===== ===== Cut here ===== После проведенной проверки можно запускать наш вирусный скрипт. А что должно входить в вирусный скрипт ? Ясно лишь одно, что одной единственной процедурой тут не обойдешься. Остается вспомнить паскаль и структурный подход к программированию. Весь вирус разбивается на кусочки : 1) Всякая там инициализация, прописываемся в реестр (для понта :), выводим сообщения 2) Определяем местоположение открытого файла. Если вирус расположен на диске (т.е. протокол "file:"), то мы можем успешно плодиться. Обычно в этом месте стоит куча вызовов функции поражения директории с разнообразными параметрами (т.е. поражение по списку директорий). 3) Функция поражения директории. Неплохо бы сперва проверить существование этой директории, кидаться в бой сразу же не стоит. Если директория в наличии, то перебираем все файлы в этой директории. Найдя по расширению файлы, которые могут (видите как аккуратно я выражаюсь? ;) иметь структуру HTML-документа (htm, html, asp, shm, shtml и т.д.) мы вызываем процедуру заражения этих файлов. 4) Функция поражения файла. А здесь неплохо проверять на зараженность. Делается это например так (здесь CV является проверяемым файлом) : ===== Cut here ===== Set CV = FSO.opentextfile(f1.path, 1, true) GetMark = CV.ReadLine CV.close if GetMark <> "" then ' чего-то там делаем ===== Cut here ===== Писаться вирусу можно как в начало, так и в конец файла. Если мы пишемся в начало, то мы можем проверить версию броузера и тому подобные привелегии. А если мы пишемся в конец, то мы надеемся на авось : можно нарваться не на тот броузер. Но в качестве эксперимента - можно :) Все это и воплощено в вирусах HTML.MB. Версия "a" заражает файлы в начало и использует JavaScript, а версия "b" заражает файлы в конец и в большинстве случаев окажется просто неработоспособной. Читайте, тестируйте, эксперементируйте. Полезные команды на примере показаны в демонстрационных вирусах. А я удаляюсь..... ;-)))) ===== begin html_mb1.htm =====
===== end html_mb1.htm ===== ===== begin html_mb2.htm ===== ===== end html_mb2.htm =====