|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
12.01.2013, 22:05 | #1 |
Новичок
Джуниор
Регистрация: 12.01.2013
Сообщений: 1
|
Вопрос по LLVM
Приветствую уважаемых коллег. Есть следующая задача. По байткоду некоторого скриптового языка нужно восстановить исходник. Безусловно не требуется восстанавливать комментарии и даже имена переменных, но программа должна без проблем восприниматься компилятором и приемлемо читаться человеком.
Как я хотел действовать с самого начала. Обезьяний подход. Т.е. изучить, что выдает компилятор и на основе этого написать некоторую грамматику, для того же ANTLR хотя бы, которая по каким-то характерным последовательностям байткодов восстановит программу. Но такой подход сулит неприятности. Возможно код будет оптимизирован, обработан обсфукатором и т.п. Тут метод "обезьяна смотрит обезьяна делает" уже не прокатит. Попытка номер 2. По байткоду написать код для LLVM. Применить к нему оптимизации для очистки от возможного мусора (следов обсфукатора например). А потом, средствами той же LLVM получить граф, соответствующий высокоуровневому представлению. Из всего этого первые два пункта примерно понятны. Но третий пункт не ясен абсолютно. Сколько доки ни читал. Отсюда вопрос к знатокам. Может ли LLVM каким-то образом помочь в построении высокоуровневой структуры программы (то что потом можно отдампить на языке высокого уровня) ? Мне кажется что да. Но как это делается я не нашел. Просьба, знатоки, ткните носом ! |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Вопрос по mySQL + Вопрос по RichEdit | HTL | Общие вопросы Delphi | 4 | 01.01.2010 20:22 |
Вопрос | laxe | Общие вопросы C/C++ | 4 | 22.09.2009 10:06 |
Вопрос наверное про функции, а так точно даже не знаю про что. (Вопрос начинющего #6) | Albert2008 | Общие вопросы Delphi | 4 | 21.08.2008 15:33 |
вопрос по сокетам и общение как в ICQ.Сложный вопрос... | Руслантус | Общие вопросы C/C++ | 2 | 12.08.2008 21:10 |