Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
Ильфак никогда не говорил, что результатом плагина (Hex-Rays Decompiler plugin) является «Си-код» (по Вашему выражению выше). Результатом работы плагина является псевдокод. И это отнюдь не одно и то же.
Конечно, еще одно направление — это выдача кода на языке высокого уровня, например С, т.е. написание декомпилятора. Задача достойная, и мы над ней работаем. Очень много деталей, которые нужно учитывать для работы с программами из реальной жизни.
Тут надо сразу сказать, что декомпилятор никогда не будет входить в состав IDA. Если (и это — большое «если») декомпилятор будет сделан, то только в виде отдельного продукта.
TanaT: Декомпилятор на язык С был бы отличным инструментов для многих профессионалов в reverse engineering. Думаете, это реально?
Ильфак: Это реально, если ставить перед собой разумные цели. Если цель — сделать систему, которая выдаст код для последующей компиляции и использования в составе другой программы, то ответ отрицательный. Вернее, такой декомпилятор сделать можно, и даже очень легко, но это меня лично совсем не интересует. Такая система была бы очень удобна для кражи кода. Если кто хочет заниматься этим, то, пожалуйста, без меня. Да, если хорошенько поискать, то такие системы можно найти в Интернете.
Если же целью является облегчение понимания программ, т.е. представление логики программы на языке высокого уровня так, чтобы это было читаемо человеком, то задача намного сложнее, но тоже решаема. Объем работ очень велик, а рынок для декомпиляторов — маленький. Может этим и объясняется тот факт, что настоящих декомпиляторов, способных разбирать реальные программы, не существует?
Кстати, уже существует маленький декомпилятор на основе IDA. Он был создан одним студентом как master thesis. Вы можете найти сайт, поискав его по имени: desquirr.
Не советую питать иллюзии по поводу результатов плагина, хотя для «Hello, World» будет «вполне» Сишный результат!
Я встречал в Интернете упоминания, что полученный, с помощью плагина HexRays «псевдокод» Си, вполне успешно переводился в реальный Си-код.Это известный факт, более того, могу подтвердить, что среди таких проектов были достаточно серьёзные. Но подобная процедура — это далеко не тривиальная задача, а людей, способных на подобные подвиги, можно на пальцах пересчитывать. И речь идёт об серьёзных проектах, а не тех, где Си-шные исходники всего-то на сотню другую строк.
Почти слезу пустил. =)
По сути. Забыли упомянуть про УК РФ и тп при реверсе приложений.
и оффтоп: а проект OllyDbg еще жив ?
Reversing для чайников — ассемблер x86 и код на С (для начинающих/ADHD friendly)