LINUX.ORG.RU
ФорумTalks

Duqu - вирус, написанный на неизвестном языке программирования


0

2

Собственно, сабж: http://www.securelist.com/ru/blog/41063/Zagadka_freymvorka_Duqu

Для Ъ

"...выглядит как обычная загружаемая библиотека формата Windows PE, скомпилированная Microsoft Visual Studio 2008 (версия компоновщика 9.0). Код, расположенный в точке входа, абсолютно стандартный. Единственная экспортируемая функция под номером 1 тоже написана на MSVC++..."

"...самый большой раздел, реализующий всю логику общения с C&C серверами, отличается во всем. Этот раздел не типичен для C++ программ, потому что его исходный код – не C++. Код внутри раздела не обращается к другим функциям программы, написанным на C++, и не использует стандартную библиотеку языка, хотя используемые парадигмы явно указывают, что исходный текст был написан на объектно-ориентированном языке программирования..."

"...прослеживаются явные особенности:

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

Ваши предположения, что это может быть?

★★★★★

Ваши предположения, что это может быть?

Это оффтопик, инфа 146%.

GotF ★★★★★
()

Не используются функции стандартных библиотек, при этом активно используются функции Windows API

Free Pascal?...

Deleted
()

Да что угодно, хоть делфи.

DNA_Seq ★★☆☆☆
()

Ваши предположения, что это может быть?

таки, может быть, всё же отдел перспективных разработок каспера не зря ест свой хлеб? :)

shty ★★★★★
()

Ваши предположения, что это может быть?

Это вендопроблемы.

Siado ★★★★★
()

C++, C, возможно дополнительно упакован чем-то

стандартные библиотеки использовать никто не заставляет

Harald ★★★★★
()
Ответ на: комментарий от CARS

почему этот код не может быть использован на линуксе ?
потому что активно используются функции Windows API ?

kto_tama ★★★★★
()

Этот раздел не типичен для C++ программ, потому что его исходный код – не C++

не типичен -> не C++

Кто этот бред писал? Мало ли чем оно могло быть скомпилировано и вставлено как ассемблер в проект MSVS?

segfault ★★★★★
()

ну если код небольшой или времени было много, то это ассемблер

luke ★★★★★
()

На картинке видно, что неизвестный кусок полностью окружён кодом на С/С++. Так что это просто тот же С, только на велосипедном фреймворке.

lyset ★★★
()

Суровый челябинский работник лаборатории касперского написал язык программирования специально для создания вирусов.</thread>

vurdalak ★★★★★
()

Да что угодно. Первые два, что пришли в голову - паскаль (дельфи, фри или виртуал) или D.

Deleted
()
Ответ на: комментарий от Artificial_Thought

* Таблица функций объекта находится непосредственно в его памяти и может быть изменена в процессе выполнения.

Я так понимаю, это значит, что все функции виртуальны или ЯП вообще динамический. Во свяком случае, для C++ это нетипично.

Deleted
()
Ответ на: комментарий от Deleted

Я так понимаю, это значит, что все функции виртуальны или ЯП вообще динамический. Во свяком случае, для C++ это нетипично.

Ну так вирусы и не должны использовать типичный код.

selim
()

Вообще если основная чать кода написана на C++, писать отдельные части на чем-нибудь кроме C/C++/asm было бы странно

selim
()
Ответ на: комментарий от hibou

Есть объекты на ассемблероподобном языке, например STL, визуально на ассемблер очень похоже.

coldy ★★
()

Вообще слабо представляю, как можно по сгенерированному с оптимизациями коду более-менее разобрать, какой тут компилятор поработал.

snizovtsev ★★★★★
()
Ответ на: комментарий от snizovtsev

Каждый компилер генерирует вполне узнаваемый машинный код, который можно разгрести. IDA знает много компиляторов, и может даже восстанавливать C/C++ код на основе машинного кода.

Xintrea ★★★★★
() автор топика
Ответ на: комментарий от Xintrea

IDA знает много компиляторов, и может даже восстанавливать C/C++ код на основе машинного кода.

Хм. Hex-Rays уже научился С++ декомпилировать? Или там что-то новое прикрутили?

selim
()

голосую за брейнфак

mrdeath ★★★★★
()
Ответ на: комментарий от hibou

+миллион. Это ж блин логично, если кто-то вложил миллионы бабла в вирус, ессно его будет волновать этот вопрос. Я думаю тут даже британские ученые бы догадались.

mrdeath ★★★★★
()

Не очень понятно, почему им так важно, на каком языке вирус написан.
Всё-равно в руки дизассемблер или отладчик и вперед.

kompas
()
Ответ на: комментарий от kompas

Не очень понятно, почему им так важно, на каком языке вирус написан.

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

Crocodille
()

[EsetMicrosope] says „Stuxnet stores its encrypted configuration data (1860 bytes) in %WINDIR%\inf\mdmcpq3.pnf.”, however, it is just the first part of the 6619 bytes config file in our Stuxnet sample. We don’t yet know the goal for the other 4k. Some papers including [SymantecDossier] identified 0x19790509 as an important magic string used in Stuxnet. However, they don’t mention the magic string 0xAE790509 found in the beginning of the Stuxnet configuration file (and Duqu as well). The two numbers only differ in the first character. In the code below, there is another magic string 0xAE1979DD copied from Stuxnet DLL dropper. This seems to be interesting. The other interesting magic is 0xAE. In Duqu, 0xAE comes up at many different places, so does for Stuxnet. As described above, it’s part of the magic in the config file, and both Duqu and Stuxnet uses 0xAE240682 for configuration file encryption. For Stuxnet, some payload is encrypted with 0x01AE0000 and 0x02AE0000. The bzip2 encoded parts of the keylogger log file have a magic “AEh91AY “BZh91AY...”, so again AE is the magic modification (note, however, that some other affected bzip2 compressed files begin with “ABh91AY”) The question is, if Duqu just reuses parts of the Stuxnet code and the author does not closely relates to the Stuxnet authors, why both use 0xAE so often?

Если бы хорошенько взять за яйца программистов Сименс, столько бы интересных вещей в мире можно было бы узнать.

coldy ★★
()

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

ObjC, например.

note173 ★★★★★
()

Инопланетный язык программирования.

Pidgin ★★
()

Сейчас ходу у журнялюшек НЛО. Скоро будет - НЯП.

Quasar ★★★★★
()
Ответ на: комментарий от LongLiveUbuntu

Сгенерированный. А ты сам попробуй ООПить на асме. Ручками.

hibou ★★★★★
()

Мне кажется, на ЛОРе крайне мало людей, которые по машинному коду могут определить нестандартный ЯП.

Моё имхо - использовался свой ЯП. Это очень эффективный путь для затруднения реверс-инжиниринга.

Legioner ★★★★★
()

В Лаборатории Касперыча похоже открыли для себя обфускацию.

Valeg ★★★
()

так кто-то упоминал labview

visual ★★★
()

Ваши предположения, что это может быть?

КО отвечает: неизвестный язык программирования. Возможно автор назвал его Yoda. Возможно нет.

Turbo_Mascal
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.