В интернете появился специфичный для Delphi вирус. Суть его в том, что заражённая программа ищет на диске установленные версии Delphi и, если находит, изменяет файл SysConst.dcu (старая версия сохраняется под именем SysConst.bak), и после этого все программы на Delphi, скомпилированные на этом компьютере, начинают точно так же заражать Delphi на тех компьютерах, где они запускаются. Распространению вируса способствовало то, что некоторые версии популярного мессенджера QIP оказались заражены им (команда разработчиков QIP приносит за это свои извинения). Пока единственный обнаруженный вредный эффект от вируса — это то, что из-за ошибки в его коде при запуске заражённой программы возникает Runtime error 3, если ключ реестра HKEY_LOCAL_MACHINE\SOFTWARE\Borland\Delphi\x.0 (x — от 4 до 7) содержит неправильное значение параметра RootDir (для правильного значения ошибки не происходит). Видимо, просто обкатывалась технология распространения вируса.
Проверьте свои версии Delphi и, если найдёте у себя SysConst.bak, выполните следующие действия:
1. Удалите SysConst.dcu
2. Скопируйте SysConst.bak в SysConst.dcu. Важно именно скопировать, а не переименовать, чтобы SysConst.bak тоже остался на диске — это убережёт систему от повторного заражения.
Некоторые подробности и обсуждение:
www.delphikingdom.com/asp/answer.asp?IDAnswer=70912
forum.qip.ru/showthread.php?t=36203
forum.qip.ru/showthread.php?t=35939
UPD: этот топик не призван поливать грязью QIP, зараженным оказался и AIMP, я подозреваю что и многие другие программы. Для тех, кому лень ходить по ссылкам — разработчики QIP пересобрали сборку.
комментарии (122)
к сожалению (огромному) — delphi мертв…
Сам сижу на семёрке т.к. все проекты изначально построены на ней и используют большую базу самописных компонентов. Основную часть компонентов я уже на 2009 портировал, проекты собираются, вскоре, думаю перейти с семёрки сразу на 2010.
Вы, по крайней мере, в выигрышном положении: вы не имеете предубеждений против .net, в отличие от многих разработчиков, которые отказываются ставить свежие CodeGear RAD Studio оттого что «она с собой всякую ненужную дрянь тянет».
Лично я просто наслаждался, работая на 2006/2007. Когда появилась 2009 с дженериками и замыканиями, я ее восхвалял, потом слегка матерился сквозь зубы (среда была малость бажная), потом приспособился, и сейчас работаю с удовольствием. И жду 2010, конечно же.
Delphi не мертв, ему не дают умереть. Он просто потерял свою популярность, оттого что в 2003-2006 гг. Borland`у стало на все насрать и они сначала выделили проект в отдельную компанию, а потом и вовсе её продали. Если бы это время не потратить на метания, а активно работать над фичами и продолжать кампанию — кто знает, кто знает…
Ну, и Хейлсберг ушел, конечно же. Такой удар с трудом поправляется.
Пруф линк есть?
Начал искать — действительно UI писали разработчики из Эстония/Латвия/Литва (точно не помню).
А вот и доказательство
www.stevetrefethen.com/blog/SkypeYeahItTooIsWrittenInDelphi.aspx
Это абсолютно ничего не значит. Среду выбирают по потребностям проэкта и вкусам разработчиков, а не того что разарботчики Skype носят Versace, ой извини… пишут на Delphi.
Вот после таких случаев и развивается у людей паранойя)).
Версия плагина: 0.3.0.4
MD5: 533AC1C1-F63FE146-0D11E785-F809488F
У каждого плагина есть функция MirandaPluginInfoEx, регламентированная Miranda Plugin API, которая выполняется для запроса описательной информации о плагине независимо от того, активен он или нет.
Уже связываюсь с авторами
Автору респект!!! Сейчас компилил бы вирусы из-за него (внедрился в Делфи)! :(
Пошёл вычищать.
И я в тысячный раз говорю: «Идите лесом, бля».
Один малоизвестный программист писал об аналогичной идее лет 25 назад…
*думает о заголовочных и .lib файлах*
и защиту линуховодов) будет сказано, но такой проблемы не произошло, если бы программисты работали не с правами администратора на машине :)и защиту линуховодов) будет сказано, но такой проблемы не произошло, если бы программисты работали не с правами администратора на машине :)Не то, что всякое УГ на флешках.
Распространяться через компилятор — это пять.
Странно лишь, почему цель — Delphi.
Собственно, единственный путь для файловых вирусов сегодня — попасть в эти самые установочные файлы, и так, чтобы вирус попал к разработчику, чтобы попасть в установочные файлы другого продукта. Собственно, так вирус из топика и распространяется.
А второе — то, что он ориентирован на исходники — обеспечило ему возможность достаточно долгое время оставаться незамеченным. Так и оставался бы, если бы не ошибка.
Интересно, что мешает вирусу при копировании SysConst.dcu в SysConst.bak игнорировать существующий файл, указав соответствующий аргумент, либо предварительно удалить SysConst.bak? :)
там сам код вируса
и да, действительно, он по наличию этого .bak-файла определяет, заражена система или нет, и не заражает повторно, если такой файл есть
Песочницей может быть как виртуальная машина, так и просто чистая ОС.
По крайней мере теперь именно так и нужно собирать…
Где, «здесь»? Я предлагаю ставить чистую систему в виртуалке, вот и всё.
> Ну и кстати, существуют вирусы которые легко умеют как залазить в виртуальные машины, так и вылазить из них
Ага, только вряд ли такой попадётся. Шансов намного меньше чем подхватить вирус тупо компилируя на обычной машине.
Однако и это может случится. Поэтому надо быть ещё осторожнее.
Где же вы возмете чистую систему? Поставили в виртуалку голую (чистую) ОС, накатили Delphi, потом доставили еще десятка три нужных вам библиотек и вуаля… вирус шел в одной из библиотек.
Откуда же вирусу просто так взяться? Они что, в каждой библиотеке сидят? :) И какие библиотеке нужны авторам квипа чтобы его скомпилировать (кроме, естественно, стандартных)?
З.Ы. Проверился — чист)
Замечу, что под удар может попасть любой делфи программист, ибо ни один антивирус на это не реагирует (в том числе мой кис со всеми обновлениями;) )
З.Ы. Инициатором новости был я ;)
Тоже повторюсь — любой Delphi-программист мог пострадать от этого неполноценного вируса. За лошар разработчиков принимают только те, кто в жизни программы не пишет, остальные, думаю, понимают какой это труд.
Кроме того — да, я не знаю, кто ещё здесь бывает, на хабре. Я много кого не знаю в лицо, даже Баллмера не знал, пока меня не ткнули носом, что вот это — и есть Баллмер.
Остальное — дыры дырами, но всё-таки вирусы с оффсайта — это совсем фи.
о сервисах, повторюсь, вам следует поговорить в другом топике, ибо тут это все-таки оффтоп. Или создать еще один гневный топик о том, что мы делаем не так и как это надо бы сделать:) И ругайте, ругайте побольше. На полном серьезе говорю — так видны все проблемы
Я после этого сообшения, тупо занёс всю папку Lib, а заодно и Bin под контроль системы контроля версия (конкретно, subversion), чтобы иметь возможность проверить, не изменилось ли чего.
Я тоже после этого заридонлил всю папку, но где гарантии что называется
Но в случае с занесением в систему контроля версий, всё-таки есть способ проверить, что инсталляция не повреждена. На чистой машине устанавливается Delphi с теми же обновлениями, после чего можно запросто проверить, что чистые файлы идентичны файлам, хранящимися в репозитории (хранилище).
В принципе, это можно сделать любой сравнивалкой папок и файлов.
Вчера была разрушена одно из моих незыблемейших заблуждений. Я думал, что уж что-что, а сырцы
и порнухувирусы пока не хавают. Теперь осталось только авишки заражать =)Ну-ну.
вирусы в исходниках же существуют афаик уже много много лет
теперь придется еще и порнуху бекапить :)
Существуют, но в действительности не настолько распространены, чтобы говорить о какой-то реальной угрозе с их стороны.
не успели написать письмо о том, как все на самом деле у qip хорошо, как очередной удар )
Хорошо, что я пользуюсь FPC и Lazarus, пока проблема проходит стороной.
http://gunsmoker.blogspot.com/2009/08/delphi-delphi.html
Смотрите, инжект малвари ограничен D7. Сделать инжект для D2005 и старше — ничего сложного нет, совершенно без отличий. Следовательно, есть основания полагать, что вирус «вышел на прогулку» до 2006-2007 года.
Минусы продукта:
— SysConst, это не самый лучший вариант, имхо. Лучше брать поглубже в генофонд, уровень дельфового Init'a ;)
— Открытый исходный код, хотя бы поксорить
Плюсы:
+ AV в пролете
+ Простор для морфа
+ Идеальная среда дистрибуции :)
Если бы это не была шутка:
~ Покрытие всех версий дельфи + учесть последующие выпуски (см. организацию ветки в реестре, сложностей нет)
~ Встроенный небольшой анализатор кода
+ Различные схемы инжекта
+ Обфускация
+ Кодогенерация, свобода для морфа
~ Продуманная схема, при которой вирус глубоко и ОСОЗНАННО проникает в генофонд RTL, built-in VCL компонент
и куча не приятностей.
Ждем парочку модов в ближайшее время. Чую.
В свою очередь, предлагаю контест на моддинг сего креатива. Участвуют дельфисты хабры. Оценивается по следующим критериям:
1. Скорость роста популяции
2. Универсальность
3. Скрытность
4. Quality (speed test, отсутствие ошибок & etc.)
Разработки Квипа к контесту не допускаются :))
Так вы посмотрите ещё раз внимательнее на исходник. Проверка в коде долдна была быть: перед операцией, вызывающей ошибку ввода-вывода, стоит {$I-}, но просто для других целей (для упаковки кода и строковых констант в одну строковую константу) неудачно выбран в качестве служебного символ $. При вставке кода в дельфёвый файл все $ заменяются на ', код вируса из строки 'blah($constant string$)' превращается в blah('constant string'), но и директива {$I-} перестаёт быть директивой, а становится {'I-}.
Ставил только винамп