Comments 44
UFO just landed and posted this here
просите помощи у общества — сделайте продукт для него бесплатным )
+15
Интересно, OCaml они проверили?
+2
«Куда-то с хабры пропали ссылки. Их запретили, да?»
Отказались от них.
Отказались от них.
0
Жаль полный список проверенных языков не опубликовали. Для интересующихся было бы полезно.
0
Да что тут думать вон на news2.ru спецы уже все установили — news2.ru/story/343326/
-1
Ну если он иранские я. объекты атаковал, то может OO расширение Ады? Пусть в US Mil запрос пошлют :)
0
А может, это банальный MS Visual 6.0 о котором все забыли, но который до сих пор популярен?
-2
Очень интересно! Если там действительно использовался неизвестный язык программирования -это супер! Я как человек интересующийся языками программирования и даже пытающийся разработать собственный, с удовольствием бы ознакомился с новым языком.
А что касается VS 6.0 и прочих — уверен, в Лаборатории Касперского все эти варианты проверили. Более того, судя по описанию, это точно не С++. Я бы скорее поверил в чистый Си, возможно какой-то модифицированный/расширенный компилятор (компиляторов Си ведь гораздо больше чем С++, в силу простоты языка, по той же причине и модифицировать их легче).
А что касается VS 6.0 и прочих — уверен, в Лаборатории Касперского все эти варианты проверили. Более того, судя по описанию, это точно не С++. Я бы скорее поверил в чистый Си, возможно какой-то модифицированный/расширенный компилятор (компиляторов Си ведь гораздо больше чем С++, в силу простоты языка, по той же причине и модифицировать их легче).
-9
Чтобы не надо было искать доп. инфу, приведу несколько цитат и добавлю пару штрихов, чтобы было понятней о чём о идёт речь в данном топике:
Игорь Суменков (эксперт «Лаборатории Касперского») назвал это «Загадка фреймворка Duqu»и применил термин «Событийно-ориентированное программирование».
И в статье на сайте Касперского есть анализ и выводы.
Выводы
Фреймворк Duqu, возможно, написан на неизвестном языке программирования.
В отличие от остальных компонентов Duqu, исходный язык Фреймворка— не C++, при этом использован отличный от Microsoft's Visual C++ 2008 компилятор.
Событийно-ориентированная архитектура позволяет коду выполняться в разных, в том числе асинхронных средах.
С учетом масштаба проекта Duqu можно предположить, что Фреймворк разрабатывала отдельная команда, не связанная с авторами эксплойтов и остальных его компонентов.
Загадочный язык программирования — определенно НЕ C++, Objective C, Java, Python, Ada, Lua и не многие другие языки, которые мы проверили.
Фреймворк Duqu — одна из особенностей, значительно отличающих Duqu от Stuxnet, который полностью написан на MSVC++.
или как пишут на ньюс2:
По словам эксперта, при изучении Duqu аналитиками «Лаборатории Касперского» было проверено около трех десятков языков «включая Brainfuck и Haskell». «Мы пытаемся распознать его с ноября 2011 г. Мы спросили самых крутых специалистов-реверсеров в Microsoft, но не нашли языка, который бы создавал подобный код», — говорит Александр Гостев
Игорь Суменков (эксперт «Лаборатории Касперского») назвал это «Загадка фреймворка Duqu»и применил термин «Событийно-ориентированное программирование».
И в статье на сайте Касперского есть анализ и выводы.
Выводы
Фреймворк Duqu, возможно, написан на неизвестном языке программирования.
В отличие от остальных компонентов Duqu, исходный язык Фреймворка— не C++, при этом использован отличный от Microsoft's Visual C++ 2008 компилятор.
Событийно-ориентированная архитектура позволяет коду выполняться в разных, в том числе асинхронных средах.
С учетом масштаба проекта Duqu можно предположить, что Фреймворк разрабатывала отдельная команда, не связанная с авторами эксплойтов и остальных его компонентов.
Загадочный язык программирования — определенно НЕ C++, Objective C, Java, Python, Ada, Lua и не многие другие языки, которые мы проверили.
Фреймворк Duqu — одна из особенностей, значительно отличающих Duqu от Stuxnet, который полностью написан на MSVC++.
или как пишут на ньюс2:
По словам эксперта, при изучении Duqu аналитиками «Лаборатории Касперского» было проверено около трех десятков языков «включая Brainfuck и Haskell». «Мы пытаемся распознать его с ноября 2011 г. Мы спросили самых крутых специалистов-реверсеров в Microsoft, но не нашли языка, который бы создавал подобный код», — говорит Александр Гостев
+1
Мне кажется логика dll может быть написана на любом языке программирования. А, уже после компиляции, какой-нибудь утилитой типа криптопро пытается перепутать отдельные исполняемые блоки в памяти. В случае с Duqu, крипт добрался внутрь лексем языка (то есть перепутал исполняемые блоки функций стандартных библиотек), после чего стало сложнее идентифицировать язык, на котором dll написана.
-5
Подозреваю, особо фанатичные вирусописатели могли, устав мучаться с невменяемым обросшим горой легаси Си++, просто написали свой язык. Пишут же виртуальные машины. Тем более, в наши дни есть gcc/clang, не надо с нуля компилятор писать. Если так, то сделано неплохо, хотя, конечно, то, что они в конструкторе заполняют таблицу виртуальных функций, вызывает вопрос, а нафига, эффективней же сделать классы и общую таблицу.
Тот факт, что используются безклассовые объекты, конечно, немного запутывает ситуацию, какие есть похожие на безклассовые языки, с деструктором и без сборки мусора? Я что-то с ходу не припомню. Разве что Objective-C. Или бейсик какой-нибудь.
Ну и эксперты тоже немалую работу проделали, чтобы в неизвестном языке найти мониторы событий и прочие штуки.
Написали бы что ли побольше подробностей. Какие конструкции есть в языке, есть ли следы оптимизации ассемблерного кода, и т.д.
Тот факт, что используются безклассовые объекты, конечно, немного запутывает ситуацию, какие есть похожие на безклассовые языки, с деструктором и без сборки мусора? Я что-то с ходу не припомню. Разве что Objective-C. Или бейсик какой-нибудь.
Ну и эксперты тоже немалую работу проделали, чтобы в неизвестном языке найти мониторы событий и прочие штуки.
Написали бы что ли побольше подробностей. Какие конструкции есть в языке, есть ли следы оптимизации ассемблерного кода, и т.д.
+3
Может сначала попросить прощения? 8 гигабайт… 8 чертовых гигабайт, Батлфилд 3 стока не жрет…
-6
c-- ;-)
+3
UFO just landed and posted this here
Я не понимаю только одного — а зачем выяснять что за язык!?
+8
Lisp же.
0
Ассемблер с FSM логикой? :)
+1
Шитый код же почти. Форт это самопальный.
0
Возможно высокоуровневый язык типа C#/Java, оттранслированный собственной тулзой в СИ. Тулза генерит код, который в добавок обфусцирует его. Получаем на выходе ни на что не похожий код. Писать новый язык не нужно, транслятор для C#/Java пишется на ура. Единственно сложное место — это чем заменить GC, по коду должно быть видно как освобождаются объекты (а освобождаются ли? может все статические). Т.е. использовать можно GC и это будет видно, либо подсчет ссылок, и это тоже будет видно, вот если удаление совсем ручное, тогда это дает мало информации.
0
И нестандартное распределение аргументов по регистрам и стеку?
Хотя информации конечно крайне мало. Очень была бы кстати подробная статья с описанием всех особенностей в сравнении с реализацией аналогичных вещей на С++.
К примеру, я так понимаю что в С++ сначала выделяется память (оператор new — отдельная функция), а затем вызывается конструктор — другая отдельная функция. Это делается в том числе и для того, чтобы конструкторы могли работать как на динамической, так и на стековой и глобальной памяти. В листинге здесь выделение памяти происходит в теле конструктора, то есть объекты могут быть только динамическими, и это сделано на уровне языка, или «конструкторы» — это просто функции, которые вручную выделяют память под структуру и ее заполняют. А это уже похоже на Си. Но опять же нестандартный порядок передачи аргументов вроде не сделать даже на Си…
Хотя информации конечно крайне мало. Очень была бы кстати подробная статья с описанием всех особенностей в сравнении с реализацией аналогичных вещей на С++.
К примеру, я так понимаю что в С++ сначала выделяется память (оператор new — отдельная функция), а затем вызывается конструктор — другая отдельная функция. Это делается в том числе и для того, чтобы конструкторы могли работать как на динамической, так и на стековой и глобальной памяти. В листинге здесь выделение памяти происходит в теле конструктора, то есть объекты могут быть только динамическими, и это сделано на уровне языка, или «конструкторы» — это просто функции, которые вручную выделяют память под структуру и ее заполняют. А это уже похоже на Си. Но опять же нестандартный порядок передачи аргументов вроде не сделать даже на Си…
0
Это все проделки инопланетян, и язык программирования их!
+4
Как по мне, так очень на модификацию Lisp смахивает. По крайней мере стоит задуматься над этим.
0
UFO just landed and posted this here
А, собственно, откуда у граждан из лаборатории такая уверенность, что использовался какой-то специальный язык?
Берём макроассемблер с хорошо прокачанной макро-частью, пишем библиотеку макросов и в бой.
Бонусом — никаких ограничений ни на calling convention, ни на структуру объектов.
Берём макроассемблер с хорошо прокачанной макро-частью, пишем библиотеку макросов и в бой.
Бонусом — никаких ограничений ни на calling convention, ни на структуру объектов.
0
Ничего себе познания у ребят! Хвала вам!
0
Sign up to leave a comment.
Лаборатория Касперского просит помощи сообщества