Russian
Интернет находится в нормальном состоянии, крупных эпидемий и других серьезных инцидентов службой мониторинга «Лаборатории Касперского» не зафиксировано. Уровень опасности: 1

Загадка фреймворка Duqu

Игорь Суменков
Эксперт «Лаборатории Касперского»
опубликовано 7 мар 2012, 19:58  MSK
Сюжеты: Duqu
0.5
 

В процессе анализа компонентов Duqu мы обнаружили интересную особенность в его основном компоненте, который реализует практически всю его бизнес-логику — в Payload DLL. Мы хотели бы поделиться полученной информацией и попросить о помощи в анализе данных.

Расположение кода

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

Содержимое секции кода Payload DLL типично для исполняемого файла, скомпонованного из нескольких исходных модулей. Секцию можно условно разделить на несколько разделов, каждый из которых соответствует одному или нескольким файлам исходного кода. Большая часть разделов присутствует в любой программе, написанной на C++, — это, например, функции стандартной библиотеки шаблонов STL, функции стандартной библиотеки языка и собственно код программы. Однако самый большой раздел, реализующий всю логику общения с C&C серверами, отличается от них во всем.


Содержимое секции кода Payload DLL

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

Фреймворк

Особенности

В коде Фреймворка Duqu прослеживаются явные особенности:

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

Объекты

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


Функция-конструктор для класса связного списка

Расположение полей в памяти объекта зависит от конкретного класса. Например, не у всех классов таблица функций находится в начале. При этом у некоторых классов бинарно совместимы таблицы функций, но прямых указаний на наличие у них общего класса-предка, как в других объектно-ориентированных языках, не обнаруживается.


Расположение полей в объекте связного списка. Первые 10 полей — указатели на функции

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


Функция-деструктор для класса связного списка

Методы классов могут вызываться по указателю из таблицы функций (аналогично «виртуальным» функциям C++) или напрямую. В большинстве объектно-ориентированных языков методы получают параметр «this», при этом порядок передачи этого параметра обычно фиксирован — в определенном регистре или параметре в стеке. Однако для классов Фреймворка Duqu этот порядок не фиксирован — параметр может передаваться в любом регистре или в стеке.


Метод класса связного списка. Параметр «this» передается первым параметром в стеке

Событийно-ориентированное программирование

Реализация и содержание объектов в Фреймворке Duqu не совместимо с объектами C++, которые используются во всех других компонентах Duqu. Однако есть ещё одна особенность, которая активно используется во Фреймворке — парадигма событийно-ориентированного программирования.

Фреймворк содержит специальные объекты, которые реализуют свою модель обработки событий:

  • Объект события, использующий системные объекты Windows API.
  • Контексты потоков, хранящие состояния потоков, списки принадлежащих им событий и очереди отложенных вызовов.
  • Объекты обратных вызовов, связывающиеся с объектами событий.
  • Мониторы событий, которые создаются в каждом потоке и отвечают за обратные вызовы по срабатыванию событий.
  • Глобальных объект, хранящий список всех контекстов потоков.

Модель напоминает среду исполнения языка Objective C, однако её реализация не похожа на код Objective C, создаваемый известными нам компиляторами данного языка.


Обработка событий в Фреймворке Duqu

Каждый контекст потока запускает «основной цикл», который следит за появлением новых объектов в списках событий и отложенных вызовов. Большая часть кода Duqu следует единому принципу: создать объект, привязать несколько обратных вызовов к собственным или внешним событиям и выйти. Затем мониторы событий отслеживают срабатывания данных событий и вызывают соответствующие функции обратного вызова в их потоках исполнения.

Пример псевдокода для объекта сетевого сокета:

SocketObjectConstructor {
    NativeSocket = socket();
    SocketEvent = new MonitoredEvent(NativeSocket);
    SocketObjectCallback = new ObjectCallback(this, SocketEvent, OnCallbackFunc);
    connect(NativeSocket, ...);
}
OnCallbackFunc {
    switch(GetType(Event)) {
    case Connected: ...
    case ReadData: ...
...}
}

Выводы

  • Фреймворк Duqu, возможно, написан на неизвестном языке программирования.
  • В отличие от остальных компонентов Duqu, исходный язык Фреймворка— не C++, при этом использован отличный от Microsoft's Visual C++ 2008 компилятор.
  • Событийно-ориентированная архитектура позволяет коду выполняться в разных, в том числе асинхронных средах.
  • С учетом масштаба проекта Duqu можно предположить, что Фреймворк разрабатывала отдельная команда, не связанная с авторами эксплойтов и остальных его компонентов.
  • Загадочный язык программирования — определенно НЕ C++, Objective C, Java, Python, Ada, Lua и не многие другие языки, которые мы проверили.
  • Фреймворк Duqu — одна из особенностей, значительно отличающих Duqu от Stuxnet, который полностью написан на MSVC++.

Фреймворк Duqu: что же это?

Мы потратили много времени на анализ кода и можем с уверенностью утверждать, что Фреймворк Duqu написан не на Visual C++. Возможно, авторы использовали собственные средства для генерации конечного кода на C или написали его на другом языке программирования.

Мы хотели бы обратиться к сообществу разработчиков и попросить любого, кто знает средства разработки, языки или компиляторы, генерирующие подобный Фреймворку код, связаться с нами или оставить комментарий к посту. Мы надеемся, что это поможет нам разгадать и эту загадку в истории Duqu.


89 комментариев

старые сверху
«дерево»
 

firej

07 мар 2012, 23:33
-1
 

паскаль/delphi/object pascal я надеюсь вы рассмотрели?

Александр Гостев

08 мар 2012, 00:01
0
 

Re:

и даже brainfuck с haskell

a--v--k

08 мар 2012, 00:36
2
 

Re:

>>> Каждый контекст потока запускает #171;основной цикл #187;...
Не Qt ли? его часто ошибочно считают фреймворком только для гуя, тогда как у него очень сильная базовая часть именно вот в таком стиле.

Или вообще Smalltalk - оттуда все вот это пошло и в Qt, и в Objective-C.

Игорь Суменков

08 мар 2012, 23:52
0
 

Re: Re:

Qt - фреймворк на известном нам языке. Язык точно не тот.
Попробовали Smalltalk MT (нативная компиляция под Windows) - точно не тот компилятор. Возможно, другой?

Murmoshka

10 мар 2012, 10:22
0
 

Re: Re: Re:

Игорь, точнее, человек, использующий имя Игорь, Вам это зачем?
Ведь давали вы присягу народу и закону служить. А разве это служение народу и закону?

w8m

10 мар 2012, 12:39
1
 

Re: Re: Re: Re:

Без паники, видимо у него хобби такое, выяснять что на чём написано и чем скомпилировано.

bomber

08 мар 2012, 00:19
0
 

Это может быть .NET IL после обработки с помощью ngen.exe?

Игорь Суменков

08 мар 2012, 23:18
-2
 

Re:

Пробовали. Не оно..

TonyBurn

08 мар 2012, 00:40
0
 

Erlang смотрели?

Игорь Суменков

09 мар 2012, 00:09
-1
 

Re:

Смотрели.

Alhel

08 мар 2012, 01:17
0
 

Singularity

http://research.microsoft.com/en-us/projects/singularity/

BSV

08 мар 2012, 04:12
0
 

Язык D рассматривали?

Игорь Суменков

08 мар 2012, 23:22
-1
 

Re:

Да. К сожалению, не похож.

forth

08 мар 2012, 07:03
0
 

Forth

Местами похоже на ООП-расширения Форта, после обработки оптимизатором.

Alik

08 мар 2012, 09:20
0
 

Очень похоже на шитый код. Посмотрите реализации целевых компиляторов Форта.

Ever_IH2

08 мар 2012, 10:07
0
 

OCaml это.

eye-scuzzy

08 мар 2012, 19:56
0
 

Re:

F#

Игорь Суменков

08 мар 2012, 23:41
0
 

Re: Re:

Пробовали и то, и другое. .NET в принципе не вариант, т.к. код нативный.

iarzhannikov

08 мар 2012, 10:57
0
 

Google Go Language может быть?

Игорь Суменков

08 мар 2012, 23:41
0
 

Re:

Пробовали. Генерит много рантайма, вообще не похожего на наш.

Constantin E. Climentieff

08 мар 2012, 11:07
-1
 

Если вспомнить, что в команде Дуку есть люди, не чуждые промышленной автоматизации (вся та же история со Стухнетом) и обратить внимание на событийный подход к программированию, то сразу вспоминаются различные визуальные среды программирования, в которых программы рисуются в виде квадратиков, соединенных стрелочками, а потом все это превращается в СИ-шный или СИ++ код, который потом компилится чем угодно под какую угодно платформу. Возможно, это Isagraf, Codesys, да и тот же STEP 7.

Менее вероятно, но тоже стоит проверить. Похожий код генерит и встроенный компилятор LabWindows/CVI, только ума не приложу, как обойтись без вызовов встроенного RTL. Возможно так же, какая-нибудь среда многоплатформенного компилирования, в том же Microware Hawk тоже есть встроенный С++ компилятор, строящий код в том числе и для x86.

Т.е., вариантов еще много. :)

Игорь Суменков

09 мар 2012, 00:16
-1
 

Re:

Спасибо. Интересные новые варианты для проверки!

Constantin E. Climentieff

09 мар 2012, 12:09
0
 

Re: Re:

Скорей, экзотические. В 90-х годах я видел (но не работал с ними) некоторые разработки этих систем, которые строили промежуточный Си-шный код. Могу ошибаться, но современные версии этих систем строят сразу исполняемый код или, сначала, какой-то внутренний p-код. Проверять надо. :(

Murmoshka

09 мар 2012, 21:01
-1
 

Re: Re: Re:

Ребята, вас элеметарно провоцируют на записи, вычисляют ваши адреса и ставят на контроль, скорее всего НЕ БУДЬТЕ БАРАНАМИ, это ЦИРК

alexdn

08 мар 2012, 11:28
0
 

Событийно-ориентированная архитектура, возможно это выход из каких-то лабораторий, возможно гугла, т.е. сам язык может ещё не открыт, студенты уже пошаливают..

Игорь Суменков

08 мар 2012, 23:55
-1
 

Re:

Объем кода потянет скорее на диссертацию..

Legioner

08 мар 2012, 11:42
0
 

Eiffel же!

vvm13

08 мар 2012, 12:29
0
 

Кандидаты

Коль скоро упоминается Objective C, который является помесью C и Smalltalk, у меня есть пара кандидатов - нетрадиционные Smalltalk'и, умеющие генерировать машинный код (традиционные используют байткод, исполняемый на виртуальной машине). Это
* Smalltalk/MT - http://www.objectconnect.com/release_downloads.htm
* Smalltalk/X - http://www.exept.de/download/
Передавайте привет и наилучшие пожелания, если что.

Игорь Суменков

08 мар 2012, 23:54
0
 

Re: Кандидаты

Спасибо! MT - пробовали, X ещё попробуем.

Impuls

08 мар 2012, 14:46
-1
 

Внесу своих 5 копеек. Есть у вас специалисты по Lisp-у? Смотрите в их сторону: возможно это какая-то модификация, а может и чистый lisp.

eXtremal

08 мар 2012, 19:29
0
 

Создание полноценного компилятора "с нуля", как известно, очень затратно, не очень верится, что сейчас кто-то будет его реализовывать (хотя вероятность всё же есть). Поэтому для начала неплохо бы определить, что именно использовалось для генерации машинного кода. Это может быть компилятор C (msvc, gcc, clang, watcom, borland, Intel C++ и.т.д.), компилятор какого-либо другого языка в машинный код (Delphi разве что вспоминается), общедоступный backend компилятора (их 2 - gcc и llvm).

>>> Однако для классов Фреймворка Duqu этот порядок не фиксирован - параметр может передаваться в любом регистре или в стеке.

Хмм.. вот это отсекает почти все среды генерации кода, разве нет вообще абсолютно никакого соглашения о передаче параметров в функции? Даже в такой гибкой среде, как llvm, используются несколько фиксированных соглашений о передаче параметров (платформонезависимые, как cdecl, либо специфичные для ОС - win32 stdcall, win64 call, и.т.д). Если всё же такого соглашения нет, то похоже, что использовалась сильномодифицированная opensource (скорее всего llvm, ибо там разобраться и что-то переделать на порядок проще, чем в gcc) среда генерации кода, или всё-же что-то самописное - в этом случае frontend компилятора тоже самописный и язык определить будет сложнее.

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

Игорь Суменков

08 мар 2012, 23:39
-1
 

Re:

Вполне вероятно, что исходный код на некотором языке был сначала транслирован в C, а затем уже с оптимизацией скомпилирован чем-то известным, в таком случае наиболее вероятный кандидат - gcc (на msvc не похоже, возможно clang).
В случае, если использовалась межмодульная оптимизация, соглашения вызовов могли быть успешно откинуты.
Исходных языков мы перепробовали много, в том числе и трансляторы в Си - пока без видимого успеха.

eXtremal

09 мар 2012, 00:53
0
 

Re: Re:

>>> В случае, если использовалась межмодульная оптимизация, соглашения вызовов могли быть успешно откинуты.

В теории да, если указано, что функция имеет тип связывания Internal Linkage (в терминах llvm), то никакого соглашения о передаче параметров соблюдать вообще не надо... довольно таки продвинутая оптимизация, может посмотреть, какие инструменты её поддерживают? Причём не просто поддерживают, а умеют распределять регистры произвольным образом, как в исходном коде трояна.

Ещё можно попробовать чисто визуально угадать, что за компилятор=) Открыть в IDA что-нибудь скомпилированное msvc, gcc, clang, попытаться выявить характерные признаки (прологи/эпилоги функций, реализация switch-ей, и.т.д.)

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

Если копать в другом направлении (через язык), то это очень похоже на прототипный подход http://en.wikipedia.org/wiki/Prototype-based_programming (ссылку на русскую страницу движок искажает)
Если язык использует классовый подход, то абсолютно незачем хранить vtable в каждом объекте.. ну только если чтоб запутать исследователей кода :) Там же в википедии есть список языков, которые этот подход используют.

И ещё, по характеру кода довольно просто определить типизацию языка.. по тем фрагментам, что тут выложены, скорее всего используется статическая типизация.. не очень представляю, как язык с динамической типизацией можно настолько сильно оптимизировать. Хотя кто его знает, может и можно, пока ничего подобного не встречалось.

исправлено: eXtremal, 09 мар 2012, 01:07

Constantin E. Climentieff

09 мар 2012, 12:04
-1
 

Re: Re:

Гм. Кстати, мысль. Такие вещи умеет, например, XDS от компании Excelsior. Издохник пишется на Modula-2 или Обероне(в этих языках, кстати, и ООП прикручен), потом либо сразу линкуется, либо - что интересно! - предварительно при помощи XDSC перетранслируеся в C, чтобы можно было использовать любой другой компилятор.

ElfkbntVtyzGj;fkeqcnf

08 мар 2012, 21:48
0
 

Возможно фрагмент кода в первом блоке принадлежит LabView

Пруф линк:
http://forums.ni.com/t5/LabVIEW/Write-to-Binary-File-Function-Append-to-existing-file/td-p/1554594
Другими словами сочитание методов в одном объекте:
append_to_existing
count
Достаточно уникально само по себе.

Кроме того, применение LabView шикарно подходит по контексту:
+ микроконтроллеры
+ windows программа
+ асинхронный ввод - вывод
+ никто (некто) не разрабатывал свой компилятор, а пользовался чем-то стандартным.
+ не получается найти сам язык в виде текста (в LabView - графическое представление текста программы)

исправлено: ElfkbntVtyzGj;fkeqcnf, 08 мар 2012, 22:16

Игорь Суменков

08 мар 2012, 23:32
1
 

Re: Возможно фрагмент кода в первом блоке принадлежит LabView

Методы в дизассемблерном листинге мы назвали сами - это результат анализа кода.
Предположение интересное, спасибо, попробуем. Но, возможно, и не оно - по утверждению авторов LabView, скомпилированные им приложения сильно зависят от внешних библиотек рантайма.

Constantin E. Climentieff

09 мар 2012, 12:21
0
 

Re: Re: Возможно фрагмент кода в первом блоке принадлежит LabView

Я тоже сразу про LabView подумал. Только не про LabView, а про LabWindows/CVI - он строит СИ-шный код для ваткомовского компилятора. Но увы, этот код полностью завязан на обработку сообщений от лицевой панели. Можно ли "отвязать"? Не знаю.

mva

08 мар 2012, 22:34
0
 

хотелось бы подкинуть идею о том, что чисто теоретически сие может быть luajit'ом ;) На мысль натолкнуло заявление автора об реализации им под это дело нечто с названием DynAssembler ;)
Вполне возможно, что туда залинкована статически libluajit и написано на lua с C'шными FFI.
Собственно на идею о Lua тоже наталкивает похожесть на С.

К слову, может это просто FFI+LLVM, даже без привязки к Lua...

Игорь Суменков

08 мар 2012, 23:34
0
 

Re:

Lua'вский jit был проверен одним из первых. Генерит очень много функций рантайма, совсем не похожих на наш экземпляр.

Lyulchenko

09 мар 2012, 01:06
0
 

Jass))))

исправлено: Lyulchenko, 09 мар 2012, 01:44

mt_

09 мар 2012, 03:36
0
 

Передача параметров функций

Такой вопрос: вы анализировали методы передачи параметров в функции? Наверняка да.
Всегда ли они одинаковы? Какие варианты присутствуют?

akakist

09 мар 2012, 04:02
0
 

Событийно ориентированное программирование

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

То, что вы описали - очень похоже.

akakist

09 мар 2012, 04:12
0
 

Поправка
Если объектом считать обычный объект C++, то это называется сервисом. Оно имеет свойства сервера (имеет адрес и ему можно сделать запрос).

Сейчас подобные фреймворки - самый модный тренд, если что.

Murmoshka

09 мар 2012, 18:15
0
 

Я конечно понимаю... но скажу

Привет привет всем!
Зовут меня Маша, Лукьянова, я вам вот что скажу.
Вся эта череда статей насчет вируса Duqu напоминает хорошо заезженный ФСБ-щный спектакль. Цель спектакля, по моему мнению, не узнать подробности насчет Duqu\Stuxnet, а выявить сетевых авторов, которые располагают какими-то знаниями насчет подобных вирусных технологий, открыть на них ДОУ и поставить их на контроль.

Зачем это нужно ФСБ?

Потому что программисты тесно общаются между собой, а даже у нас в Москве есть группы программистов, которые пишут по заказу ФСБ подобные вирусные программы. Некоторые из них прицельно встраиваются на личные страницы бесплатных сетевых вирусов типа Mail.ru или Vkontakte, другие реализуются путем подмены целевых сайтов (например, в режиме эмуляции сервера какой-нибудь газеты).

А ФСБ очень не любит, когда, говоря языком их агентов "кто-то палит конторку". Поэтому я бы на месте всех авторов выше приведенных комментариев не писала бы г-ну Гостеву и иже с ним НИЧЕГО.

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

С уважением, Маша

jman

10 мар 2012, 00:58
1
 

Есть мысль, что исходный код gcc открыт, а следовательно квалифицированному программисту не является проблемой сделать свой С/С++ компилятор, который будет генерировать немного странный код. При этом изначально это может быть вполне себе чистый С++.

Вопрос в том насколько сложно внутри gcc добавить свой собственный call convention или изменить способ генерации кода для vtable. Почему-то мне кажется, что это не есть глобально сложно... а скорее даже глобально несложно :)

Целью всех этих извращений могло быть простое желание запутать анализаторы антивирусов.

Murmoshka

10 мар 2012, 10:16
0
 

Не ведитесь, умоляю Вас, на провокации! Берегите Ваш разум!!!!!!!!!

Хотите правду? Все насчет Duqu / Stuxnet / X67 уже давно известно?
Как?
Потому что кроме самодеятельных подментованных криминалистов, вроде здешних, есть еще огромная агентура СВР и ГРУ. Потому что в разработке вышеупомянутой платформы были задействованы около 4500 программистов в центре разработке программных средств в Санта-Барбаре. Потому что на эту тему была отослана в разведцентр в Тропарево хренова туча донесений и это все было обработано нашими аналитиками, в том числе, из ИК на Профсоюзной.
Вас тут держат некоторые авторы на форуме за откровенных идиотов.
Я еще раз и еще раз повторяю, что им не нужны ваши познания, им не нужна ваша помощь, потому что предоставленные тут данные, скриншоты, явно недостаточны для полноценного криминалистического заключения. Эта серия статей - сама является обманкой, им надо выяснить IP адреса и взять на контроль всех, кто интересуется антивирусной тематикой, потому что ФСБ ведет аналогичные разработки (я имею в виду 18 лабораторию в ЦСТ - Центре специальной техники) и поэтому им надо нейтрализовать всех, кто может потенциально даже рассекретить аналогичные российские разработки. Понятно?
Маша

jman

10 мар 2012, 12:22
1
 

Re: Не ведитесь, умоляю Вас, на провокации! Берегите Ваш разум!!!!!!!!!

Мрак, пойду-ка я наверное шапочку из фольги куплю... :)

Murmoshka

10 мар 2012, 20:23
0
 

Re: Re: Не ведитесь, умоляю Вас, на провокации! Берегите Ваш разум!!!!!!!!!

Не поможет от микроволн. учи биофизику

w8m

10 мар 2012, 07:46
1
 

А какая вообще разница на чём он написан? Специалистам Лаборатории Касперского значит больше заняться нечем? Если любители пишут свои простенькие компиляторы, то и команда программистов которым хорошо платят напишет всё что угодно.
И дайте код посмотреть, а то показали только пару бессмысленных огрызков из IDA и какие-то дурацкие схемки.

исправлено: w8m, 10 мар 2012, 08:48

Murmoshka

10 мар 2012, 10:11
0
 

Re:

Вот именно! Это чистой воды провокация. ФСБ почти наверняка разрабатывает подобные программы, чтобы ставить бесконтактным способом "на контроль" наших оппозиционеров, так что им интересны все, кто в этом хоть что-то понимает, чтобы "нейтрализовать" их деятельность, ведь верно говорят, "не пали конторку".
Вы знаете, я уже шестой год в разведке служу, это стиль совершенно узнаваемый, они могут изменять адреса, пароли, явочные квартиры, сайты, ключи etcetera, но стиль они не меняют! Это очень сложно - изменить стиль.
Маша

w8m

10 мар 2012, 11:36
0
 

Re: Re:

От оппозиции столько шума. В чьей разведке, если не секрет?

Murmoshka

10 мар 2012, 11:38
0
 

Re: Re: Re:

Ну они фашисты по своей морали, так что они будут использовать очень разные и совершенные методы. Ведь перемалывать людей как скот на бойне придумали далеко не нацисты, а англичане во время Англо-Бурской войны. Так и вирусы придумали на Западе, а применяют у нас. Хотя по этике и морали и те и те - палачи

Murmoshka

10 мар 2012, 11:39
0
 

Re: Re: Re:

В нашей (МВД РФ). Это не секрет - думаю, без труда найдете мое ЛД.

w8m

10 мар 2012, 11:43
0
 

Re: Re: Re: Re:

Мало платят?

Murmoshka

10 мар 2012, 12:04
0
 

Re: Re: Re: Re: Re:

Это сведения ограниченного распространения.
Шокирует меня большей частью факт аморального поведения сотрудников "ЛК", являющихся внештатниками в ФСБ.

Murmoshka

10 мар 2012, 12:05
0
 

Re: Re: Re: Re: Re:

Ладно, извините, мне пора идти заниматься.
Пишите на murmoshka(AT)bk.ru.
Спасибо

w8m

10 мар 2012, 12:36
0
 

Re: Re: Re: Re: Re: Re:

И вам спасибо, было приятно познакомиться.

anon

10 мар 2012, 19:39
0
 

Эрланг.Он как раз использует событийно-ориентированную поточную модель.

Murmoshka

10 мар 2012, 20:23
0
 

Re:

Ты прав, друг! Но я поправлю, это не собственно Эрланг, а аналогичный ему язык, разработанный под задачи ЦРУ в недрах этой же организации. Кстати, похожий код обнаружили ребята из ИК ЦСТ в устройствах для бесконтактной связи, которые применяли в москве их шпионы для связи с нашими контрагентами.

anon

11 мар 2012, 00:35
0
 

Re: Re:

В нашем неспокойном мире ЦРУ не котируется, они стараются выглядеть тем, чем не являются.Гораздо опаснее частники.
Сейчас у частников денег и ресурсов побольше будет.

Murmoshka

11 мар 2012, 18:55
0
 

Re: Re: Re:

=))) Тебе рассказать, как умирают такие частники. Нередко через повешение. Почему? Потому что суициды с явной картиной самоповешения и очаровательной запиской типа "Прощайте, прошу считать меня коммунистом" никто и никогда не расследует. И концы в воду. Рассказать тебе про Асанжа?

dmi

11 мар 2012, 01:19
0
 

Была вот например такая штука:
http://citforum.ru/programming/application/flora.shtml

В основе идеологии архитектуры Flora/C+ лежит нелинейная структура памяти, организованная в виде дерева объектов (Objects Tree), узлами которого могут быть элементарные типы данных и производные от них, встроенные объекты, пользовательские объекты, программы и задачи.

Управление деревом объектов выполняется объектной машиной (Objects Engine).

agrep

11 мар 2012, 09:41
0
 

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

sluge

11 мар 2012, 11:40
2
 

а меня вот интересует вопрос-а зачем было вообще огород городить и делать какой-то там фраймворк на каком то там языке? Нафига!? Все что описано, легко можно было сделать на с/с++, или найти готовую реализацию...

Едиственное, что приходит на ум, так это то, что у авторов дуку уже был готовый фреймворк, реализующий событийно-ориентирванную архитектуру, и они решили его заюзать, чтобы с нуля это не делать. Тут я вижу две альтернативы-

1)Этот фреймворк-какая то академическая разработка, что-то типа курсовой или докторской, и кто-то из членов команды дуку или хорошо знаком с ней, или сам ее писал, пока учился в универе

2)Это внутрикорпоративная разработка, которую кто-то из членов дуку упер со своей бывшей работы. Причем он именно над ней работал, и знал всю ее силу. Тут возможен вариант, что работал над фреймворком не сам член команды дуку, а скажем его знакомый, и знакомый чисто для прикола прделился с другом такой прикольной библиотечкой

3)Это какая то разработка спецслужб или военных. Ну тут говорить не о чем, значит или США или Китай причастны к созданию дуку, а это серьезно...

И вообще, парни, которые комают эту дуку, ведут себя крайне глупо, в блогах пишут под настоящими именами, с фотками даже. По моим полсчетам на стукснет/дуку было потрачено около 10 миллионов баксов, причем не только на разработку, но и на всякие силовые акции, типа закинуть вредоносный код ирану или еще чего. Люди с такими деньгами пойдут на все, чтобы не докопаись до истины. Вот иранских ядерщиков скока поубивали в самом же иране...

w8m

11 мар 2012, 18:48
1
 

Re:

> Люди с такими деньгами пойдут на все, чтобы не докопались до истины.
А в коде, судя по приведённым примерам, не было обфускации.

Murmoshka

11 мар 2012, 18:57
0
 

Re:

А ты слышал выражение "На воре шапка горит". Подумай, во-первых, почему Лабораторию Касперского заинтересовал именно Duqu (что на свете мало других вредоносных программ). И ответь на вопрос, почему эта Лаборатория Касперского вдруг работает и на ФСБ, с одной стороны, и на Майкрософт. И ты придешь к совершенно восхитительной мысли о том, что спецслужбы США и России, хотя и враждуют между собой, но некоторые грязные делишки все же делают сообща... Включай воображение, в мире столько всего интересного =)
Маша

tek

11 мар 2012, 14:47
0
 

Попробуйте Gambit Scheme он как раз в С транслирует и у него очень интересный компилятор.

Booch

11 мар 2012, 14:48
0
 

если это и правда очень похоже на LISP, как написали в англоязычных комментах, то у меня есть версия - CLIPS. Компилируется в нативный код, связан с программированием микроконтроллеров...
Удачи!

Для добавления комментариев необходимо


Bookmark and Share
Закладки

Также в аналитике

В блоге