Вообще странно, ведь, по сути, почти любой «язык» итак можно написать поверх Си… Разве что соглашение о вызовах функций будет тяжеловато какое-нибудь другое использовать ;)
Плюс изначально строились догадки, что использовался чуть-ли не свой собственный язык разработанный в тайных лабораториях третьего рейха.
На самом деле если почитать все статьи на тему дуку на securelist, то это скорее роман, чем описание технических подробностей работы зловредной программы.
Ммм, недопонял что-то: ведущие специалисты не смогли сразу установить, что код написан на одном из самых распространенных языков и скомпилирован при помощи одного из самых распространенных компиляторов?
Просто так получилось, что исследование поручили именно автору Duqu. Если бы он сразу все раскрыл, то это было бы слишком легко и неинтересно. А так вот какая эпопея получилась…
Т.е. «ведущие специалисты» оказались не в курсе, что на C можно писать в ОО-стиле? Однако…
Тогда вот такое им лучше вообще не показывать, а то, боюсь, шаблон у них не только порвётся, но и вывернется наизнанку.
На С написано много ОО языков программирования. Программирование на голом С в объектном стиле очень подобно использованию фреймворка-надстройки над С или более высокоуровнего языка программирования.
Компилятору на фреймворки пофиг — он тупо транслирует операторы/структуры данных. Чего там взбрело в голову создателям фреймворков, его абсолютно не интересует — для него это обычный валидный С-код.
Страуструп сам себя опровергает в том же абзаце: «To build that, **I first used C** to write a „C with Classes“-to-C preprocessor.» То, что в конце концов С++ смог **позже** компилировать сам себя из исходников на самом себе (а это умеют все серьезные ЯВУ — Лисп, Смолтолк, Форт, ...) — не исключает использование Си на первом этапе разработки С++. Без Си из упомянутых языков обошлись лишь Лисп и Форт, т.к. оба старше, чем Си :)
«Quite frankly, even if the choice of C were to do *nothing* but keep the C++ programmers out, that in itself would be a huge reason to use C.»/Torvalds/
Это было хитроспланированной провокацией.
Логика ребят из ЛК была следующая:
1) давайте объявим «это» неизвестным языком программирования.
2) хацкеры все самолюбивы, поэтому автор услышав это обязательно где нибудь опубликует разоблачительный пост «вы — уроды, я писал на Си!»
3) вот тут мы его с схватим!
Авантюра не удалась. Тег [шутка] вставлять по вкусу.
Я кстати был прав насчет Си (в предыдущей статье). Чем-то похоже на олдскульный код эмуляции ООП через сишные структуры. Жалко конечно, что это не какой-нибудь новый язык системного программирования… Я так надеялся:)
Забавно другое: все глумились очень долго и упорно, но что-то никто не поспешил четко изложить данные из статьи, открыть, что это именно С, показав свою высокую квалификацию.
Мне кажется, или все-таки репутацию конторы не стали бы ставить на кон из-за ерундового вопроса? как-то вот и конкуренты не метнулись впереди паровоза ткнуть носом неумелых собратьев? ;)
Это может означать, что задача действительно сложная и конкуренты (по продажам, а не по исследованиям) тоже не смогли помочь. Зато сколько зеленой желчи выше.
Может, действительно, не всё не так, как кажется…
А, если ключевой вопрос исследования это изучение переносимости программы на уровне исходного кода?
Тогда, можно предположить, как скоро можно ожидать подобное на других платформах…
Прежде чем критиковать аналитиков из ЛК, все же стоит признать, что они проделали немалый труд по анализу файла, распознать и разобрать в ассемблерном коде все эти очереди событий, объекты и прочее, все же не так и просто.
Но странно, что Си не узнали. Видимо, хакеры использовали объектный файл без стандартных библиотек и стандартного сишного пролога?
Загадочный язык программирования фреймворка Duqu определён