The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"Открыт код McSema, фреймворка для преобразования машинного к..."
Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Изначальное сообщение [ Отслеживать ]

"Открыт код McSema, фреймворка для преобразования машинного к..."  +/
Сообщение от opennews (??) on 13-Авг-14, 01:49 
Компания Trail of Bits объявила (http://blog.trailofbits.com/2014/08/07/mcsema-is-officially-.../) об открытии под лицензией BSD исходных текстов фреймфорка McSema (https://github.com/trailofbits/mcsema) (MC-Semantics), предназначенного для анализа и преобразования машинного кода  в промежуточный биткод (http://llvm.org/docs/BitCodeFormat.html) LLVM (RISC-подобные виртуальные инструкции LLVM IR). Фреймворк поддерживает машинный код архитектуры x86, включая целочисленные вычисления, операции с плавающей запятой (FPU) и векторные инструкции (SSE). Проект разработан при поддержке Агентства по перспективным оборонным научно-исследовательским разработкам США (DARPA).


В качестве основных областей применения McSema отмечаются (http://blog.trailofbits.com/2014/06/23/a-preview-of-mcsema/) анализ и обратный инжиниринг программ. Например, становится возможным применение инструментов отладки и анализа (KLEE, PAGAI, LLBMC), поддерживающих LLVM IR. При этом преобразование машинного кода в промежуточное представление LLVM открывает такие потенциальные возможности, как обеспечение запуска на других аппаратных архитектурах и трансляция в более понятные для разбора исходные тексты на высокоуровневых языках. McSema также позволяет упростить сложные схемы трансформации кода с сохранением изначальной функциональности. Например, полученный биткод LLVM при помощи компилятора Emscripten (http://www.opennet.me/opennews/art.shtml?num=35313)  можно преобразовать в представление на языке JavaScript, пригодное для выполнения внутри браузера.


В состав McSema входит несколько доступных для обособленного использования субпроектов, выполняющих функции восстановления управляющего потока, трансляции инструкций, разбора бинарных файлов и тестирования. На первом этапе при помощи программы bin_descend производится восстановления управляющего потока и построение графа структуры программы, определяющего базовые блоки кода и информацию о внешних вызовах с сохранением семантики инструкций оригинальной архитектуры. Граф с информацией об управляющем потоке сериализируется с использованием протокола Google Protocol Buffer и передаётся для обработки программе cfg_to_bc, которая выполняет преобразование инструкций и формирует биткод LLVM.

Из других открытых проектов, занимающихся решением задачи преобразования исполняемых файлов в промежуточное представление LLVM можно отметить Dagger (http://dagger.repzret.org), Fracture (https://github.com/draperlaboratory/fracture) и  libbeauty (https://github.com/jcdutton/libbeauty), но они пока не выходят за рамки экспериментальных разработок и подходят в для трансляции простейших программ.

URL: https://news.ycombinator.com/item?id=8148669
Новость: http://www.opennet.me/opennews/art.shtml?num=40375

Ответить | Правка | Cообщить модератору

Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "Открыт код McSema, фреймворка для преобразования машинного к..."  +/
Сообщение от Аноним (??) on 13-Авг-14, 01:49 
Так все же можно будет транслировать x86 в, к примеру, arm, или нет?
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

3. "Открыт код McSema, фреймворка для преобразования машинного к..."  +3 +/
Сообщение от Аноним (??) on 13-Авг-14, 10:14 
Qemu это и сейчас умеет. Только оптимальность всего этого далеко не 1 к 1.
Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

9. "Открыт код McSema, фреймворка для преобразования машинного к..."  +1 +/
Сообщение от Аноним (??) on 13-Авг-14, 13:22 
С оптимизационными возможностями llvm этот коэффициент улучшится очень сильно.
Ответить | Правка | ^ к родителю #3 | Наверх | Cообщить модератору

11. "Открыт код McSema, фреймворка для преобразования машинного к..."  +/
Сообщение от Аноним (??) on 13-Авг-14, 13:47 
Спасибо, я видел как этот ваш LLVM работает. Там скорее коэффициент глючности улучшится очень сильно.
Ответить | Правка | ^ к родителю #9 | Наверх | Cообщить модератору

22. "Открыт код McSema, фреймворка для преобразования машинного к..."  +/
Сообщение от x0r (??) on 16-Авг-14, 22:57 
это вам к товарищу mamaih - он игры с x86 на arm портирует успешно
Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

4. "Открыт код McSema, фреймворка для преобразования машинного к..."  –1 +/
Сообщение от beerseller (ok) on 13-Авг-14, 10:21 
Если бы это работало, то по идее можно будет сделать какой скайп под x86_64
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

5. "Открыт код McSema, фреймворка для преобразования машинного к..."  +/
Сообщение от Comrade_Flammpanzer on 13-Авг-14, 10:54 
Это просто замечательно!

Да какой там скайп, вот бы хорошо всякие Middleware для токенов заинжинирить, драйвера, вот это всё.

Всякие старые, но годные игры тоже. Да много чего ещё.. Только бы Winelib научить ещё с LLVM работать ))

Ответить | Правка | ^ к родителю #4 | Наверх | Cообщить модератору

12. "Открыт код McSema, фреймворка для преобразования машинного к..."  +2 +/
Сообщение от Аноним (??) on 13-Авг-14, 13:49 
> Да какой там скайп, вот бы хорошо всякие Middleware для токенов заинжинирить,
> драйвера, вот это всё.

Вам так хочется чтобы проприетарные кидалова и бэкдоры работали и у вас? :)

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

Ответить | Правка | ^ к родителю #5 | Наверх | Cообщить модератору

23. "Открыт код McSema, фреймворка для преобразования машинного к..."  +/
Сообщение от Comrade_Flammpanzer on 19-Авг-14, 11:22 
Дело не в доверии, а в заказчике, который анально ограничил использование VPN именно при помощи алладиновских. Предлагал рутокен, отказались.

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

К сожалению, в корпоративном секторе не всегда всё так гладко.

Ответить | Правка | ^ к родителю #12 | Наверх | Cообщить модератору

6. "Открыт код McSema, фреймворка для преобразования машинного к..."  +/
Сообщение от Аноним (??) on 13-Авг-14, 11:09 
Люди, *имея* на руках исходный код, чешут репу над тем, как заставить его работать на разных архитектурах, а тут уже который
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

7. "Открыт код McSema, фреймворка для преобразования машинного к..."  +/
Сообщение от Аноним (??) on 13-Авг-14, 11:09 
... который раз рекламируют счастье для дураков.
Ответить | Правка | ^ к родителю #6 | Наверх | Cообщить модератору

13. "Открыт код McSema, фреймворка для преобразования машинного к..."  +2 +/
Сообщение от Аноним (??) on 13-Авг-14, 13:50 
> ... который раз рекламируют счастье для дураков.

А Фабрис уже давно свой транслятор сделал. Без лишних пoнтов и маркетингового булшита. Так что если хочется прозрачно запустить ARMовый бинарь в х86 системе - это можно...

Ответить | Правка | ^ к родителю #7 | Наверх | Cообщить модератору

10. "Открыт код McSema, фреймворка для преобразования машинного к..."  +/
Сообщение от Аноним (??) on 13-Авг-14, 13:29 
> Люди, *имея* на руках исходный код, чешут репу над тем, как заставить его работать на разных архитектурах

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

> который раз рекламируют счастье для дураков

Это правда, ибо только дурак будет пользоваться проприетарщиной которую без таких костылей на другой архитектуре не запустить. Однако тебе что, жалко? Переписывать это всё равно никто не будет, а привязка к архитектуре мешает внедрению новых более эффективных архитектур, того-же ARM. Хотя и уменьшает шансы что проприетарщине будет написан f/oss аналог.

Ответить | Правка | ^ к родителю #6 | Наверх | Cообщить модератору

18. "Открыт код McSema, фреймворка для преобразования машинного к..."  +/
Сообщение от freehck email(ok) on 13-Авг-14, 22:39 
> Ну так люди и не должны писать код раз у них такое гoвно получается. Код должны писать программисты, так как при наличии минимальной квалификации он получается замечательно портабельным, тем более что усилий для этого прилагать почти не надо.

Вот хороший вопрос: минимальная квалификация - это какая?

Ответить | Правка | ^ к родителю #10 | Наверх | Cообщить модератору

8. "Открыт код McSema, фреймворка для преобразования машинного к..."  +/
Сообщение от Аноним (??) on 13-Авг-14, 11:13 
по сути это дизассемблер, а как известно дизассемблировать в автоматическом режиме можно мало чего, не зря всякие IDA придумали.
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

14. "Открыт код McSema, фреймворка для преобразования машинного к..."  –1 +/
Сообщение от Аноним (??) on 13-Авг-14, 13:51 
> по сути это дизассемблер, а как известно дизассемблировать в автоматическом режиме можно
> мало чего, не зря всякие IDA придумали.

Есть некая разница между технической трансляцией в код который сделает то же самое и получением человеко-читаемого текста.

Ответить | Правка | ^ к родителю #8 | Наверх | Cообщить модератору

20. "Открыт код McSema, фреймворка для преобразования машинного к..."  –1 +/
Сообщение от папа on 14-Авг-14, 10:32 
Ошибаетесь. Проблема распознать где данные а где код - именно это IDA перекладывает на человека. Вообщем правильно будет конвертировать далеко не 100% программ
Ответить | Правка | ^ к родителю #14 | Наверх | Cообщить модератору

15. "Открыт код McSema, фреймворка для преобразования..."  +2 +/
Сообщение от arisu (ok) on 13-Авг-14, 16:34 
чего только не сделают пользователи проприетарщины, когда исходников нет…

гвозди бы из них делать.

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

17. "Открыт код McSema, фреймворка для преобразования машинного к..."  –2 +/
Сообщение от Аноним (??) on 13-Авг-14, 18:21 
Ждем DirectX для свободных операционных систем.
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

19. "Открыт код McSema, фреймворка для преобразования машинного к..."  +/
Сообщение от Аноним (??) on 14-Авг-14, 07:42 
хм ... скачал сорцы, а оно под винду :( и на вход, судя по доке, берет только виндовые бинарники.
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

21. "Открыт код McSema, фреймворка для преобразования машинного к..."  +/
Сообщение от Zenitarka on 14-Авг-14, 16:36 
Прочитал "преобразование машинного кода в биткоин". :(
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру