ЯВУ на халяву!

Ramhak O`Hady

Xakep Online -> Журнал, номер #017, стр. 017-064-1

(konung@ic.ru)

Позавчера у меня окончательно испортилось настроение. И все из-за какой-то мелочи... В общем, залез я в FIDO, открыл любимую вирмейкерскую эху. И что я вижу? Какой-то чел кричит, что на языках "высокого уровня" нельзя написать нормальный вирус. Это он про Pascal, C или тот же Perl. Ну, ни фига себе!!! Пальцы веером, сопли пузырями: "Pascal, ваще, $%#%$!". А все из-за чего? Из-за своей же собственной неспособности написать что-то на ЯВУ (языках того самого высоченного уровня). И что самое обидное, все молчат!!! Вирмейкеры, блин. Нет, я ни в коем случае не против ASM`а!!! Я даже "за" обеими руками и всеми остальными ложноножками, но в разумных пределах и без оскорблений в сторону других языков. А покричать, что "Perl - sux!" или "Prolog - мертв!", я тоже могу... только не буду, :) ибо это все - ложь и клевета! :)

Вирусы на ЯВУ бывают всего трех видов: HLLO, HLLC и HLLP. Как расшифровываются первые три буквы, :) можно узнать посмотрев на заголовок статьи (для тех кто в танке: High Level Language). Последние же обозначают соответственно:

- Overwrite

Самые простые в исполнении, но и самые калечные на вид. Просто переписывают тело жертвы своим кодом. Вирус... м-да. Примитив, одним словом. Эти вири можно увидеть, пожалуй, только в музеях. Хотя попадаются некоторые криворукие товарищи, пишущие таких монстров. Так что... в общем, возможно все.

- Companion

Это уже интереснее и оригинальнее. Используют фишку DOS: когда юзер дергает программу на вызов, то обычно из-за лени он пишет только имя, но не добавляет расширение к программе. А как быть системе, если в доступных для поиска через PATH каталогах лежит не один SEXTRIS.EXE, а еще и SEXTRIS.COM и SEXTRIS.BAT? Так вот, такие коллизии :) - слово страшное, но красивое; обозначает "случайные совпадения" - разрешаются достаточно просто: если есть *.BAT, то запускается он, если такого не наблюдается в пределах горизонта, то ищется *.COM и в последнюю очередь *.EXE. Но вернемся к нашим баранам... вирусам в баранах. :) Companion пишет себя с таким же именем, как и жертва *.EXE, только расширением *.COM. В результате будет запущен именно вирь, а не жалкий POTRIS.EXE. :) Ну... и его тоже запустят, но уже не юзеры, а вирус. Просто для того, чтобы на время скрыть свое присутствие.

Существуют мощные модернизации алгоритма. Например, в виде резидентных вирей, которые скрывают свое наличие в каталогах (через FindFirst/FindNext). Или, например, которые переименовывают жертву в какой-нибудь SUXXXXX.DAT, да еще и шифруют ее, а себя переименовывают на место жертвы и делают вид, будто ничего не произошло. В общем, веселых тебе BONUS`ов в SEXTRIS`е, юзер! :)

- Parasitic

Это уже самая высокая ступень развития вирусов на ЯВУ. Хороши тем, что пишут себя туда же, где и сама жертва. То есть путешествуют по миру в одном и том же файле :)

а-ля двухместное купе СВ. :)

Первый подвид :) заражает вирусы очень простым, но действенным методом - сдвигает жертву и на свободное место пишет свою копию. В результате стартует вирус. Затем обычно вирус переписывает все, что лежит в файле жертвы, во временный файл и запускает его. :) Все гениальное просто. Добавлю, что такой метод вполне подходит для заражения даже win32 PE || NE файлов. О как! Ручки еще не чешутся? У меня - уже. :)

Содержание  Вперед на стр. 017-064-2

ttfb: 3.162145614624 ms