|

IRC-вирусы
Xakep, номер #021, стр. 021-060-2
Младшие братья интернетовских червей - IRC-черви - сегодня представляют собой простые программы, размером всего в несколько сотен байт, написанные на ассемблере. А в большинстве своем ирк-червячки являются макро-вирусами. Практически все IRC-клиенты, которые устанавливают себе все, кому не лень, снабжены механизмами обработки скриптов, которые пишутся обычно на собственных (придуманных авторами этого IRC-клиента) языках. Чтобы не разводить лишних соплей и не украшать ими коврик для мыши в стиле барокко, ;-) рассмотрим частный пример - IRC-клиент mIRC. Это очень популярный, шароварный (условно-бесплатный, при старте показывает информацию из хелп-файла об авторах и сайте) клиент, доступный для скачивания любому. Новички в IRC обычно ставят себе именно его, поэтому и mIRC_Worm вирусы отлавливают в природе чаще - кому придет в голову, что, согласившись принять файл, можно получить такую заразу? ;-)
Рассмотрим схему функционирования чатовских червей, а заодно напишем вирус - заморим червячка! Установим (если еще не стоит) mIRC, скачав его, например, с www.irc.ru, и разберемся, что к чему. Первым делом нужно узнать, что находится в каталоге, куда установился mIRC. Ключевые файлы там - это MIRC.INI и SCRIPT.INI. Причем, первый присутствует там сразу после инсталляции. MIRC.INI содержит общие настройки программы, а SCRIPT.INI содержит стандартные и пользовательские (которые юзер пишет сам уже в процессе пользования программой) скрипты. На самом деле скрипты могут содержаться в произвольном файле, только имя этого файла надо будет внести в секцию [rfiles] файла MIRC.INI:
[rfiles]
n0=myscript.ini
Сам файл MYSCRIPT.INI должен начинаться со строки:
[Script]
Теперь настало время рассмотреть простенького червячка под микроскопой. Нет микроскопы? Берем большущую лупу или, на худой конец, клизьму с механизмой и смотрим листинг:
[Script]
n0=on 1:join:#: { if ( $ n i c k == $me ) halt
n1=else .dcc send $ n i c k WORM.EXE }
Уже заметил странность? Каждая строка в секции начинается с буквы "n" и ее номера, относительно начала этой секции. Это особенность INI-файла не только для mIRC, так что придется смиритmся. Скрипты в mIRC очень похожи на язык C, в них присутствуют такие же конструкции и даже операторы. Есть, правда, и существенные отличия. Главное - работа скрипта зависит от того, что происходит в программе mIRC. Поэтому все действия описаны как реакции на какие-либо события. Строка n0 как раз и содержит такое описание. Конструкция "on 1:join:#:" означает, что весь определенный для нее код будет выполняться каждый раз, когда кто-то заходит на канал, на котором уже сидит довольный обладатель этого червячка. Дальше, прямо как в Си, код заключается в кавычки. Если пришел не сам пользователь (только что подключился, а скрипт, знамо дело, уже сработал), а кто-то другой, то выполняется строка n1. Команды скрипта - точное повторение обычных команд IRC. Здесь и /join - зайти на канал, и /msg - отправить сообщение... А начертанная выше команда /dcc send - отправить файл другому пользователю - позволяет скрипту размножаться. Ну и, конечно, заранее нужно написать (на каком угодно языке - только откомпилировать) WORM.EXE, который пропишет все, о чем только что сказано, в соответствующие файлы.
Назад на стр. 021-060-1 Содержание Вперед на стр. 021-060-3
|