The OpenNET Project / Index page

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

Представлен Dagger, декомпилятор исполняемых файлов в промежуточное представление LLVM

07.05.2013 16:52

На состоявшейся в Париже конференции разработчиков LLVM представлен (видео, слайды) новый проект Dagger, в рамках которого развивается фреймворк для декомпиляции исполняемых файлов в промежуточное представление кода LLVM (IR, Intermediate Representation). Исходные тексты проекта планируется открыть одновременно с первым релизом, Dagger, который ожидается в течение нескольких недель.

Преобразование производится в несколько этапов: вначале на основе анализа семантики инструкций, специфичные для определённой аппаратной платформы машинные инструкции транслируются в представление абстрактной архитектуры Mir (micro-IR), которое затем преобразуется в промежуточное представление LLVM, над которым допускается выполнение всех поддерживаемых в LLVM трансформаций, в том числе генерация кода для иных платформ с применением дополнительных методов статической и динамической оптимизации или дальнейшая декомпиляция IR в код на языке Си.

  1. Главная ссылка к новости (http://www.reddit.com/r/Revers...)
Лицензия: CC-BY
Тип: Программы
Короткая ссылка: https://opennet.ru/36874-dagger
Ключевые слова: dagger, llvm, decompile
При перепечатке указание ссылки на opennet.ru обязательно
Обсуждение (36) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Имя (?), 16:56, 07/05/2013 [ответить] [﹢﹢﹢] [ · · · ]  
  • –10 +/
    Почему-то мне думается что декомпилировать-то можно быстро, а вот слой библиотек для запуска приложений буду лет 15 делать (см. wine)
     
     
  • 2.2, ВовкаОсиист (ok), 17:08, 07/05/2013 [^] [^^] [^^^] [ответить]  
  • +1 +/
    какой слой библиотек %)
     
     
  • 3.4, Имя (?), 17:29, 07/05/2013 [^] [^^] [^^^] [ответить]  
  • –3 +/
    а приложения у нас что на голом железе работают? и функции ОС не вызывают?
     
     
  • 4.5, Аноним (-), 17:51, 07/05/2013 [^] [^^] [^^^] [ответить]  
  • +4 +/
    Нет. Именно поэтому разрабатывать новые библиотеки не придётся — уже есть старые.
     
     
  • 5.7, Имя (?), 17:59, 07/05/2013 [^] [^^] [^^^] [ответить]  
  • –7 +/
    > Нет. Именно поэтому разрабатывать новые библиотеки не придётся — уже есть старые.

    Также, наверно, думали разработчики wine. А нет, хрен там, до сих пор переписывают.

     
     
  • 6.8, Аноним (-), 18:10, 07/05/2013 [^] [^^] [^^^] [ответить]  
  • +15 +/
    Такого хаоса и набора бессвязнных обрывочных знаний в голове я еще  ни разу не видел.
     
     
  • 7.16, Имя (?), 20:53, 07/05/2013 [^] [^^] [^^^] [ответить]  
  • –4 +/
    Не хочется в ответ вас оскорблять, поэтому ...
    Может видео поглядишь, наведёт на мысли какие-нибудь.
    Ребята пытаются парсить x86 (и только его в данный момент) в Mir, потом в IR.
    Далее они надеются сделать обратное преобразование в Си.
    До запуска готовых бинарных файлов им ещё далеко.
    Отрывочные сведения утверждают что API/ABI им вызывать тоже придется.
    Вызывать они пока не умеют.
    Этот проект ближе к wine, чем к универсальной запускалке любого кода на любой платформе.
     
     
     
    Часть нити удалена модератором

  • 9.27, nc (?), 09:12, 08/05/2013 [ответить]  
  • +/
    Да я кажется понял что тут имеется в виду Допустим, у нас есть пирацкая софтина... текст свёрнут, показать
     
     
  • 10.28, Карбофос (ok), 11:16, 08/05/2013 [^] [^^] [^^^] [ответить]  
  • +2 +/
    так ведь можно пытаться запихивать флешки в дисковод результат будет таким же ... текст свёрнут, показать
     
  • 10.32, винке (?), 23:23, 08/05/2013 [^] [^^] [^^^] [ответить]  
  • +/
    это не работает даже в теории и это не является целью декомпилятора даже наполов... текст свёрнут, показать
     
  • 8.31, Adolfus (?), 18:24, 08/05/2013 [^] [^^] [^^^] [ответить]  
  • +/
    x86 вот блин А я тут губу раскатал навител поисследовать да карты их расщиф... текст свёрнут, показать
     
  • 2.3, Аноним (-), 17:26, 07/05/2013 [^] [^^] [^^^] [ответить]  
  • –4 +/
    Нед)
     
  • 2.26, Карбофос (ok), 09:00, 08/05/2013 [^] [^^] [^^^] [ответить]  
  • –1 +/
    простите великодушно, вы тоже являетесь представителем джава-программистов?
     

  • 1.6, inferrna (ok), 17:53, 07/05/2013 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Хорошая штука для ведроида. Да и вообще - теперь можно будет взять старый бинарник под вынь (игрушку, например) и пересобрать под arm, например. Затем собираем wine под arm и играемся во что-нибудь эдакое на смарте/планшете.
     
     
  • 2.12, имя (?), 19:45, 07/05/2013 [^] [^^] [^^^] [ответить]  
  • +/
    > Хорошая штука для ведроида

    Так и представляю себе более длительный по времени и более прожорливый по ресурсам процесс инсталляции. Нет уж, спасибо, из дальвика компилировать быстрее будет.

     
     
  • 3.25, inferrna (ok), 05:36, 08/05/2013 [^] [^^] [^^^] [ответить]  
  • +/
    Вам инсталлировать или пользоваться? Да и не о том речь, а о ndk и об отличных от arm платформах. MIPS, например.
     

  • 1.9, IMHO (?), 18:39, 07/05/2013 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    LLVM уже будет инструмент для reverse engineering
    торт
     
     
  • 2.14, Аноним (-), 20:06, 07/05/2013 [^] [^^] [^^^] [ответить]  
  • +1 +/
    не будет
    потому что это только IR будет
    а кто будет писать декомпилятор IR -> С ? например
     
     
  • 3.20, IMHO (?), 00:01, 08/05/2013 [^] [^^] [^^^] [ответить]  
  • –2 +/
    декомпилятор хорошо когда хоть в исполнительной программе есть отладочная информация, а часто ее нет, и Сшного там будт мало при такой декомпиляции, и иногда  хоть приблизительный вид будет нормально глянуть, может я заблуждаюсь и не праивльно мыслю (
     
     
  • 4.23, ВовкаОсиист (ok), 02:48, 08/05/2013 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Когда есть отладочная информация(например логи) то и декомпилятор ненужен. А если онных нету, то декомпилятор не слишком поможет, может как то упростит понимание что куда записалось/считалось, потому что это воспринять из дизасма не очень легко. Но всё равно, без логов, что так, что так - понять логику сложно.
     
     
  • 5.29, Crazy Alex (??), 12:58, 08/05/2013 [^] [^^] [^^^] [ответить]  
  • +/
    Имеливь в виду debug symbols, надо полагать, а не логи. Тогда да, код совсем понимабельный. Но и без них жить можно, особенно если есть обращения к системным апи. В этом плане досовские програмы страшнее всего были для дизасма :-)
     
  • 3.37, Аноним (-), 20:37, 13/05/2013 [^] [^^] [^^^] [ответить]  
  • +/
    > а кто будет писать декомпилятор IR -> С ? например

    удивишься, но он уже есть

     

  • 1.10, Macil (ok), 19:15, 07/05/2013 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    «... чайникам они бесполезны, профи — насрать, а вот вирусописатели...» (С)
     
  • 1.11, Аноним (-), 19:20, 07/05/2013 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    kaspersky будет интересно посмотреть)
    и comodo)))
     
     
  • 2.15, Zifix (?), 20:22, 07/05/2013 [^] [^^] [^^^] [ответить]  
  • +/
    Декомпиляция в промежуточный код, смотреть нечего. А исходники каспера есть в интернетах, можно глянуть при желании.
     

  • 1.17, oWeRQ (??), 22:06, 07/05/2013 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Насколько я понимаю, единственное применение этого чуда - запуск проприетарщины на другой архитектуре, возможно, в песочницах вроде PNaCl, иногда может оказаться полезно.

    Судя по всему, профита для декомпиляции в читаемый и редактируемый вид это не даст, только лишний этап.

     
     
  • 2.18, Аноним (-), 22:14, 07/05/2013 [^] [^^] [^^^] [ответить]  
  • +/
    это не лишний этап
    это первый шаг, между прочим дядя ильфак в hexrays уже давно и этот первичный этап в IR придумал и реализовал, так и вторичный, третичный итд, такой как оптимизация IR, трансформация в AST дерево, транформация AST дерева в код C

    так что llvm опоздали лет так.. у ильфака это с 2001 года, а сечас 2013
    вот и считайте =)))

     
     
  • 3.19, Имя (?), 22:48, 07/05/2013 [^] [^^] [^^^] [ответить]  
  • –2 +/
    скажем так, тот дядя сделал отличный декомпилятор, жаль что 200-300 локальных переменных в функции бывает.
    Так что есть куда стремиться.
     
     
  • 4.21, Аноним (-), 00:57, 08/05/2013 [^] [^^] [^^^] [ответить]  
  • +2 +/
    специалисты работающие годами никогда такого не видели,
    сможете продемонстрировать общественности сий выхлоп? или балабол недоучка ?

    а если есть силенки, можете попробовать создать и лучше ?)
    мы (специалисты) с радостью прийдем к вам и купим

     
  • 3.34, arisu (ok), 02:30, 09/05/2013 [^] [^^] [^^^] [ответить]  
  • +/
    > дядя ильфак … придумал и реализовал

    дядядолбак это тупо купил. специалисты… убивать надо таких специалистов.

     
     
  • 4.35, hexrays (?), 08:57, 09/05/2013 [^] [^^] [^^^] [ответить]  
  • +/
    лол у кого купил? в 2001 году этого вообще еще нигде небыло
     
     
  • 5.36, arisu (ok), 13:20, 09/05/2013 [^] [^^] [^^^] [ответить]  
  • +/
    долбак, ты? залогинься нормально.
     

  • 1.22, _yurkis__ (?), 01:54, 08/05/2013 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    И потом в свете новых тенденций апеобразовать в какой-то Asm.js. Хочу знаете- ли Fallout 2 на планшете в браузере.

    PS Хоть и дико звучит, но в каждой шутке...

     
     
  • 2.30, Crazy Alex (??), 13:00, 08/05/2013 [^] [^^] [^^^] [ответить]  
  • +/
    угу, и пальцами тыкать в то, что на пальцы и близко не рассчитано...
     

  • 1.33, arisu (ok), 02:27, 09/05/2013 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    молодцы, переизобретают TCG из qemu. мощная всё-таки штука «гугель»: чуть-чуть полуркал — и найден очередной велосипед для переизобретения.

    планы-то — как всегда — наполеоновские. ну ладно, может dynamic instrumentation из пепла таки восстанет.

     
  • 1.38, увы Аноним (?), 18:00, 20/06/2013 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    я бы хотел Age of Wonders 2: Shadow magic какой нить нативно на линуксе (ну или героев 2/3, демиургов 2 там)... но подозреваю что не светит из-за ДХ и винапи ?
     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Спонсоры:
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

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