Pull to refresh

Comments 122

Ещё одна причина дельфисту наконец-то обновить древнюю, как мир, Delphi 7.
как по мне — D7 — оптимальная, самая вылизанная и проверенная временем версия. Хотя сам активно переползаю на .net (c#)

к сожалению (огромному) — delphi мертв…
Не стоит его хоронить. Очень даже замечательная среда и со своими задачами справляется. Почитайте роадмап, посмотрите на возможности 2009/2010.
Сам сижу на семёрке т.к. все проекты изначально построены на ней и используют большую базу самописных компонентов. Основную часть компонентов я уже на 2009 портировал, проекты собираются, вскоре, думаю перейти с семёрки сразу на 2010.
D7, конечно, проверена временем, но её функционал, а также возможности соответствующей версии языка Delphi заставляют горько плакать.
Вы, по крайней мере, в выигрышном положении: вы не имеете предубеждений против .net, в отличие от многих разработчиков, которые отказываются ставить свежие CodeGear RAD Studio оттого что «она с собой всякую ненужную дрянь тянет».

Лично я просто наслаждался, работая на 2006/2007. Когда появилась 2009 с дженериками и замыканиями, я ее восхвалял, потом слегка матерился сквозь зубы (среда была малость бажная), потом приспособился, и сейчас работаю с удовольствием. И жду 2010, конечно же.

Delphi не мертв, ему не дают умереть. Он просто потерял свою популярность, оттого что в 2003-2006 гг. Borland`у стало на все насрать и они сначала выделили проект в отдельную компанию, а потом и вовсе её продали. Если бы это время не потратить на метания, а активно работать над фичами и продолжать кампанию — кто знает, кто знает…

Ну, и Хейлсберг ушел, конечно же. Такой удар с трудом поправляется.
ничего он не мертв. Паскаль был и остается языком разработки ничуть не хуже и не лучше других языков. в сфере Fast Software Development Дельфи нет равных. Программирую на Дельфи уже 12 лет, с 1997 года (с версии 1.0), сижу на 7-ке, никуда переползать не собираюсь, ибо VCL — великая вещь. Что касается дотнета, то не каждый юзер согласится для 100 Кб ехешника тянуть 300 метров Нетфреймворка, лучше уж 2 мегабайта ехе и никаких проблем.
Можно было бы попрощаться, если бы на нём UI для Skype не был бы написан.
UFO just landed and posted this here
Я тоже прозрел после того как увидел окно с ошибкой в Skype на библиотеку из Delphi.
Начал искать — действительно UI писали разработчики из Эстония/Латвия/Литва (точно не помню).
А вот и доказательство
www.stevetrefethen.com/blog/SkypeYeahItTooIsWrittenInDelphi.aspx

Ну и? А ещё Total и The Bat, но только на одну делфи програму придётся 100 или больше на VS.
Это абсолютно ничего не значит. Среду выбирают по потребностям проэкта и вкусам разработчиков, а не того что разарботчики Skype носят Versace, ой извини… пишут на Delphi.
Хм. Однажды Миранда стала выдавать Runtime error 3. Стало быть один из плагинов был заражен. Надо покопаться.
С ней такое бывает, часто из-за тех или иных криво сделанных плагинов. Попробуйте освежить.
Как раз таки при апдейте плагинов зараженная длл-ка и была установлена.
Вот после таких случаев и развивается у людей паранойя)).
Плагин VKontakte.dll возможно заражен. Причем он отключен, но Миранда видимо загружает все длл-ки при запуске и при открытии вкладки «Модули» в настройках.
Версия плагина: 0.3.0.4
MD5: 533AC1C1-F63FE146-0D11E785-F809488F
Причем он отключен, но Миранда видимо загружает все длл-ки при запуске и при открытии вкладки «Модули» в настройках.

У каждого плагина есть функция MirandaPluginInfoEx, регламентированная Miranda Plugin API, которая выполняется для запроса описательной информации о плагине независимо от того, активен он или нет.
UFO just landed and posted this here
У миранды есть три распространенных плагина на делфи — history++, ncovers и vkontakte.
Уже связываюсь с авторами
+ Watrack & ActMan, но их я проверить успел
Из этих плагинов у меня установлены history++ и vkontakte. После удаления vkontakte.dll ошибка Runtime error 3 больше не появляется.
Обнаружил его у себя на компе, после того как поставил QIP для свой статьи.

Автору респект!!! Сейчас компилил бы вирусы из-за него (внедрился в Делфи)! :(

Пошёл вычищать.
«QIP Infium — Ваш мессенджер!»
И я в тысячный раз говорю: «Идите лесом, бля».
Охохо! QIP таки затроянили, пусть даже настолько нетривиальным способом! :-D
Оригинальный вирус =) У меня вроде всё чисто. А разработчики QIPa после того как извинились скачали fix к вирусу чтобы runtime error 3 не вылезал? :D
UFO just landed and posted this here
Как и водится, мы снова изобретаем колесо.
Сейчас меня закидают тухлыми помидорами… но изначально qip был не так плох, и это был пример того, что на делфи можно было писать нормальные приложения. Пока я пользовался виндой я пользовался квипом… хотя нет, пока не вышел Инфиум — я пользовался виндой.

*думает о заголовочных и .lib файлах*
Согласен. А еще почему-то забывают про Skype, The Bat (не уверен) и Total Commander, которые тоже написаны на Delphi.
UFO just landed and posted this here
UFO just landed and posted this here
там такой (анти)хакерский венигрет, что одним Delphi не обошлось ;)
UFO just landed and posted this here
Ну и сам Delphi тоже написан на Delphi :)
Да будет известно минусующим, что Gero прав.
Ага, это первый дельфи действительно на себе же и написан, а вот третий уже на плюсах был. так то. Если бы борланды не совершили в своё время фатальных ошибок, например отказ от OWL в пользу VCL, то, может, и жил бы дельфи и сейчас, а так, увы — анахронизм. Только чудо может спасти.
Это которая OWL-то? Раскройте, пожалуйста, мысль. Интересно.
OWL — Object Windows Library, аналог досовой библиотеки Turbo Vision, но для виндоуз. Была для BC++ 3.x и Turbo Pascal 7. На ОВЭЛЬ, в своё время было написано много проектов. Тем не менее какой-то момент борланд, видимо, решили что они на коне, и ничего страшного не произойдет, если они откажутся от поддержки устаревающей овээль и выпустят несовместимую с ней, но более совершенную висиэль… В результате многие разработчики просто перестали доверять борландам. Т.к. те совершенно не позаботились о поддержке собственных продуктов сверху-вниз. Причём этот опыт совершенно никак не повлиял на дальнейшую политику компании, и ребята продолжили в том же духе (Kylix с CLX), а совместимость с собственными продуктами, судя по всему, оказалась на втором плане. В результате борьбы за новых клиентов они лишились старых.

Спасибо. Я так понимаю, что OWL ориентирован был больше на Борландовский C++, а для Delphi больше подошел VCL, который и было принято развивать. Не могу принять чёткую позицию по данному поводу, т.к. не застал того рубежа :)
Дык, тоже самое касается и совместимости висиэль с висиэль. Мне посчастливилось поработать почти со всей линейкой дельфей начиная с первой. Постоянные проблемы совместимости нового со старым, привели к тому, что до сих пор люди сидят на седьмом дельфи, и очень неохотно или основательно подумав переходят на более новые версии.
Не в обиду пользователям Windows (и защиту линуховодов) будет сказано, но такой проблемы не произошло, если бы программисты работали не с правами администратора на машине :)
Не в обиду пользователям Windows (и защиту линуховодов) будет сказано, но такой проблемы не произошло, если бы программисты работали не с правами администратора на машине :)
UFO just landed and posted this here
Light Alloy с какой-то версии начал у меня сильно глючить, заменил на KMPlayer, который опять-таки на Delphi).
плюс не забывайте про «знаменитую» FL Studio, которая стоит у почти каждого начинающего музыканта, она написана тоже на Delphi (:
Вот это вирус!
Не то, что всякое УГ на флешках.

Распространяться через компилятор — это пять.
Странно лишь, почему цель — Delphi.
По всей видимости конечная цель — это Windows тех пользователей, которые используют вполне официальный софт написанный на Delphi. А таких ого-го сколько. Очень оригинальная идея.
Данная модификация вируса опасна только для компьютеров с установленной Delphi, причём исключительно старых версий. У пользователей, которые не устанавливали Delphi ничего не произойдёт.
В это случае — да. Но ведь это была только отработка механизма распостранения вируса.
Авторы Квипа — вы лошары! Ладно когда лемминги заражают свои компы, но разработчики! что лицензионного антивируса нету с хваленной эвристикой или порно сайты по которым ползаете лучше впаривают малварь?
Вирус на столько «мощный», что наверняка не все антивирусы его распознают как опасный. Да он и ничего сверхподозрительного не делает: подменяет один файлик на другой.
Я уж извиняюсь за такое словоизлияние, но программисты действительно лёгкие жертвы, потому что как правило для удобной работы требуется два условия, которые только помогают вирусам: наличие админских прав и отсутствие антивируса (ну, это исторически сложилось, что антивирус мешает — тормозит компиляцию, ложно срабатывает иногда. Моё мнение: это уже не актуально для современных антивирусов).
В детстве написал такое для Borland Pascal 7.0. Штука таскала с собой pasvirus.tpu и втыкалга в uses слово pasvirus во всех найденных pas-файлы. В 1997 году это было уже не очень актуально, но по школе оно погуляло, правда поскольку никаких других эффектов не было, никто ничего не заметил. Подозреваю, ушло вместе с сетью Netware, на которой там всё было построено ;)
Спасибо, обнаружил эту шнягу и у себя, удалил.
Мне кажется, что эту идею сейчас подхватят и используют применительно к .NET компиляторам. А распространение их значительно шире нежели Delphi.
Эта идея давно уже известна. И к php её уже применяют :(
UFO just landed and posted this here
Зачем библиотеки линковать? Файловый вирус, который тупо перетягивает свой байткод в новые екзешники.
UFO just landed and posted this here
В общем-то вы правы. Фишка должна быть — исходники заражать должен ;)
А смысл исходников? Если можно и так просто прицепиться к любому PE файлу. Такое ощущение, что пользователи уже успели отвыкнуть от обычных файловых вирусов…
Конечно, успели отвыкнуть. Файловые вирусы устарели, уступили место интернет-троянам и червям. Это потому, что теперь не копируют директорию с программой, а распространяют в установочные файлы.

Собственно, единственный путь для файловых вирусов сегодня — попасть в эти самые установочные файлы, и так, чтобы вирус попал к разработчику, чтобы попасть в установочные файлы другого продукта. Собственно, так вирус из топика и распространяется.

А второе — то, что он ориентирован на исходники — обеспечило ему возможность достаточно долгое время оставаться незамеченным. Так и оставался бы, если бы не ошибка.
2. Скопируйте SysConst.bak в SysConst.dcu. Важно именно скопировать, а не переименовать, чтобы SysConst.bak тоже остался на диске — это убережёт систему от повторного заражения.

Интересно, что мешает вирусу при копировании SysConst.dcu в SysConst.bak игнорировать существующий файл, указав соответствующий аргумент, либо предварительно удалить SysConst.bak? :)
Ничего не мешает. Видимо, данный конкретный вирус так не делает, а наличие bak-файла опознаёт как признак уже заражённой системы, и не трогает её.
вот чуть ниже привели ссылку: gunsmoker.blogspot.com/2009/08/delphi-delphi.html

там сам код вируса

и да, действительно, он по наличию этого .bak-файла определяет, заражена система или нет, и не заражает повторно, если такой файл есть
Мда, если уж и писать вирус, то наоборот нужно убедиться дважды, что он заразил систему :)
Мне кажется, никто не мешал авторам QIP'а, аимпа и других довольно крупных проектов, собирать свои программы в «песочнице» (изолированная программная область).
Песочницей может быть как виртуальная машина, так и просто чистая ОС.
По крайней мере теперь именно так и нужно собирать…
Собрать песочницу здесь очень проблематично, вирус может идти с любой из десятков необходимых библиотек. Поскольку штука новая была, никто и не ожидал. Не подвергать же каждый бинарник который вы используете глубокому реверс-инжинирингу. Ну и кстати, существуют вирусы которые легко умеют как залазить в виртуальные машины, так и вылазить из них :)
> Собрать песочницу здесь очень проблематично
Где, «здесь»? Я предлагаю ставить чистую систему в виртуалке, вот и всё.

> Ну и кстати, существуют вирусы которые легко умеют как залазить в виртуальные машины, так и вылазить из них
Ага, только вряд ли такой попадётся. Шансов намного меньше чем подхватить вирус тупо компилируя на обычной машине.
Однако и это может случится. Поэтому надо быть ещё осторожнее.
Где, «здесь»? Я предлагаю ставить чистую систему в виртуалке, вот и всё.

Где же вы возмете чистую систему? Поставили в виртуалку голую (чистую) ОС, накатили Delphi, потом доставили еще десятка три нужных вам библиотек и вуаля… вирус шел в одной из библиотек.
Как страшно жить после этих слов…

Откуда же вирусу просто так взяться? Они что, в каждой библиотеке сидят? :) И какие библиотеке нужны авторам квипа чтобы его скомпилировать (кроме, естественно, стандартных)?
UFO just landed and posted this here
Вы шутите или действительно не понимаете? Естественно, что если раз среда жизни вируса — это системы с установленной Delphi, то вирус скорее всего можно подцепить из какой-либо third party библиотеки к самой Delphi. Про список того, что требует QIP для компиляции, лучше спросите у SegaZero
Сам под каждую архитектуру делаю по такой песочнице на VM-Ware. Там только среда и необходимый софт. Ничего лишнего. Так и работать легко, и переносить систему с машины на машину, и от хостовой операционки зависимость пропадает. Одни плюсы :)

З.Ы. Проверился — чист)
вот так всегда. чужие ошибки всегда фатальны, свои же никто не хочет признавать, а разработчики лошары. грустно =(
Замечу, что под удар может попасть любой делфи программист, ибо ни один антивирус на это не реагирует (в том числе мой кис со всеми обновлениями;) )

З.Ы. Инициатором новости был я ;)
Сочувствую, что QIP снова стал почвой для недоброжелателей. Хоть он тут и не причём совсем. Вполне культовая программа.

Тоже повторюсь — любой Delphi-программист мог пострадать от этого неполноценного вируса. За лошар разработчиков принимают только те, кто в жизни программы не пишет, остальные, думаю, понимают какой это труд.
О. Правильный ли я вывод делаю, что как раз вы и построили тот самый злополучный релиз кипа с вирусом?
если вы читали топики на форуме по ссылкам (а не только злостно пробегались по комментам), то вопрос бы у вас такой не возник;)
Таки я непременно обязан ходить по ссылкам? А зачем тогда собственно текст поста нужен?

Кроме того — да, я не знаю, кто ещё здесь бывает, на хабре. Я много кого не знаю в лицо, даже Баллмера не знал, пока меня не ткнули носом, что вот это — и есть Баллмер.
текст поста нужен для разработчиков Delphi и потенциально для любого разработчика, который имеет дело с прекомпилированными модулями и/или lib файлами
Отлично, по ссылке про Delphi я сходил. К чему мне было идти на форум qip?
странно, почему нет таких же злобных комментариев, когда находят дыры в FF, Adobe. Видимо все кристалльно чисты и никогда не совершали ошибок. А если их и разрешено совершать, то «правильным» разработчикам. грустно еще раз

Это издержки популярности. И FF и Adobe ругают. Тут еще видимо дело в том, что «они» далеко, а qip наш, вот он, под боком, а плюнуть соседу на коврик — старинная народная забава.
Неправда: когда в какой-то из локализаций Fx с оффсайта трояна нашли — вони было много.

Остальное — дыры дырами, но всё-таки вирусы с оффсайта — это совсем фи.
Ой, да ладно. Проект с таким количеством фейлов и критики, как в отношении qip, нужно ещё поискать. Видимо, кто-то сверху решил воздать вам должное за навязывание за пофигизм в отношении приваси пользователей и агрессивное навязывание сервисов :) Впрочем, учитывая кол-во пользователей вашей софтины, переживать вам не о чем.
если вы внимательно читали все комментарии, то заметили, что вирус пришел не от нас ;) У кого-то вон аж с 2008 года инфицирован. А про сервисы — вам в другой топик я полагаю
Ну будь у вас хорошая карма, вирус наверняка обошёл бы вас стороной :) Ну и кратко по поводу сервисов (да, я читал опус техподдержки на Хабре). Когда пользователь ставит программу себе на комп, всё, что она делает как через нативный интерфейс (собственно прога), так и посредством браузера (сервисы), воспринимается им как единое целое и это правильно. Пользователя не должно волновать, как поделены обязанности тех или иных лиц, причастных прямо или косвенно к разработке программы. Он должен получить тот функционал, ради которого ставит программу, и если в случае проблем техподдержка пинает его по инстанциям, то это не его проблемы. Точка.
ну да, теперь мне все стало понятно — все дело в моей плохой карме =)
о сервисах, повторюсь, вам следует поговорить в другом топике, ибо тут это все-таки оффтоп. Или создать еще один гневный топик о том, что мы делаем не так и как это надо бы сделать:) И ругайте, ругайте побольше. На полном серьезе говорю — так видны все проблемы
Сега, не трать время. Не видишь, с кем споришь, что ли? ;)
Непонятно, почему вирус не ворует пароли? :) Или может сами ребята из квипа так развлекаются…
Цель вируса — не Qip, а Delphi программы. Вероятно он был написан just for fun. Однако случайно оказался на компе одного из разработчиков Qip.
тут важно понять угрозу от этого — если антивирусы не предпиримут действия по защите прекомпилированных модулей или lib файлов — то появится море вирусов, распространяющихся от разработчиков
На антивирусы найдейся, но и сам не плошай.
Я после этого сообшения, тупо занёс всю папку Lib, а заодно и Bin под контроль системы контроля версия (конкретно, subversion), чтобы иметь возможность проверить, не изменилось ли чего.
ключевое слово «после»
Я тоже после этого заридонлил всю папку, но где гарантии что называется
Какие уж тут гарантии? =)) С этими вирусами ни в чём нельзя быть уверенным.

Но в случае с занесением в систему контроля версий, всё-таки есть способ проверить, что инсталляция не повреждена. На чистой машине устанавливается Delphi с теми же обновлениями, после чего можно запросто проверить, что чистые файлы идентичны файлам, хранящимися в репозитории (хранилище).
В принципе, это можно сделать любой сравнивалкой папок и файлов.

лучше бы разрабы антивирусов вняли нашим предупреждениям и отслеживали подобные изменения

Вчера была разрушена одно из моих незыблемейших заблуждений. Я думал, что уж что-что, а сырцы и порнуху вирусы пока не хавают. Теперь осталось только авишки заражать =)
Когда я всего пару месяцев назад написал в каком-то треде, где молодые люниксисты гордо фланировали «На Линуксе вирусов быть не может „паапридилению“, написал, чтобы они не слишком громко гордились, потму что кроме заражения экзешников есть и разные другие спсобы, меня дружно закидали ссаными тряпками.
Ну-ну.
ну сырцы, например, хтмл-страничек (ну это же сырцы, ведь, да? :) ) давно уже могут заражать. и таких вирусов много.
вы убили мою последнюю надежду =(
теперь придется еще и порнуху бекапить :)
вирусы в исходниках же существуют

Существуют, но в действительности не настолько распространены, чтобы говорить о какой-то реальной угрозе с их стороны.
Цель вируса ты никогда не узнаешь, если ты не сего создатель. А вот поиметь приличную icq базу они могли бы.
UFO just landed and posted this here
Являюсь разработчиком. После сегодняшней новости и небольшого расследования выяснилось, что у нас в организации данный вирус появился и стал паразитировать примерно с декабря 2008 года О_о
FYI: У меня самая ранняя дата модификации файла стоит Январь 2008. o_o
Удивительно, но до сих пор никто не начал холиварить…

Хорошо, что я пользуюсь FPC и Lazarus, пока проблема проходит стороной.
Не в защиту линуховодов будет сказано, но такой проблемы не произошло, если бы программисты работали не с правами администратора на машине.
В общем так. Если бы автор не был киддисом (посмотрите на стиль написания) и не допускал бы таких промахов, то ситуация бы кончилась очень грустно (функционала не хватает). Зверюга явно вышла в тираж очень давно, возможно, даже случайно. Путь к крупняку (AIMP/QIP) был явно долгим.

Смотрите, инжект малвари ограничен D7. Сделать инжект для D2005 и старше — ничего сложного нет, совершенно без отличий. Следовательно, есть основания полагать, что вирус «вышел на прогулку» до 2006-2007 года.

Минусы продукта:
— SysConst, это не самый лучший вариант, имхо. Лучше брать поглубже в генофонд, уровень дельфового Init'a ;)
— Открытый исходный код, хотя бы поксорить

Плюсы:
+ AV в пролете
+ Простор для морфа
+ Идеальная среда дистрибуции :)

Если бы это не была шутка:
~ Покрытие всех версий дельфи + учесть последующие выпуски (см. организацию ветки в реестре, сложностей нет)
~ Встроенный небольшой анализатор кода
+ Различные схемы инжекта
+ Обфускация
+ Кодогенерация, свобода для морфа
~ Продуманная схема, при которой вирус глубоко и ОСОЗНАННО проникает в генофонд RTL, built-in VCL компонент
и куча не приятностей.

Ждем парочку модов в ближайшее время. Чую.
Да это наверняка была проба, случайно вывравшаяся на волю. Киддисы тут не при чём. Небось чувак поспорил на ящик пива, что вирус напишет, которые заражает исходники.
Боюсь, что все-таки запах киддиса. У мужей в крови (в генах и т.д.) заложена проверка I/O операций на ошибки, учитывание различных ситуаций и т.д. Тут не важно, на скорость или нет.

В свою очередь, предлагаю контест на моддинг сего креатива. Участвуют дельфисты хабры. Оценивается по следующим критериям:
1. Скорость роста популяции
2. Универсальность
3. Скрытность
4. Quality (speed test, отсутствие ошибок & etc.)

Разработки Квипа к контесту не допускаются :))
:D
Так вы посмотрите ещё раз внимательнее на исходник. Проверка в коде долдна была быть: перед операцией, вызывающей ошибку ввода-вывода, стоит {$I-}, но просто для других целей (для упаковки кода и строковых констант в одну строковую константу) неудачно выбран в качестве служебного символ $. При вставке кода в дельфёвый файл все $ заменяются на ', код вируса из строки 'blah($constant string$)' превращается в blah('constant string'), но и директива {$I-} перестаёт быть директивой, а становится {'I-}.

Нашел у себя. Что удивительно, не квипа не аимпа не стоит, а делфю переставил 2 дня назад… Как??
Ставил только винамп
Ребята из QIP совсем не компетентны, постоянно возникают какие-то проблемы, а тут еще и вирус завелся. Самое ужасное было — это когда переписка из QIP транслировалась в QIP микроблогах.
Sign up to leave a comment.

Articles