· Начало · Отвђтить · Статистика · Поиск · FAQ · Правила · Установки · Язык · Выход · WASM.RU · Noir.Ru ·

 WASM Phorum —› WASM.RESEARCH —› Мечта реверсера

. 1 . 2 . >>

Посл.отвђт Сообщенiе


Дата: Сен 26, 2004 17:15:37

Народ, я тут закачал дему моего интерактивного декомпилера. Что скажете?
Правда, доки лень писать. Хотя, кому они нужны, и так разберетесь.


Дата: Сен 26, 2004 17:21:41

http://wasm.ru/forum/index.php?action=vthread&forum=5&topic=5107&page=0#5
Наконец-то , я было хотел напоминать , что уже сентябрь заканчиваеться :)


Дата: Сен 26, 2004 17:30:11

http://shulgaaa.at.tut.by/screen.jpg , что-то не пашет линк .
А как екзешку в этот декомпилер загнать , чтоб попробывать , только .dc открывает ?


Дата: Сен 26, 2004 18:05:05

http://shulgaaa.at.tut.by/screen.png
вот рабочий линк.. :)
нашел методом .. подумав..
т.к http://shulgaaa.at.tut.by/screen_s.png :)


Дата: Сен 26, 2004 18:45:39

Прикольная штука, вот только пока она exe'шник не открывает тестить нечего.


Дата: Сен 26, 2004 19:06:52

Не впечатляет.


Дата: Сен 26, 2004 21:57:27

По-моему, ништяк... тока доработать бы её до Full =)


Дата: Сен 26, 2004 22:35:14

Ну, во-первых, тестировать прогу рано, т.к. половина инструкций еще не реализована. Там явных багов тьма, не говоря о недостающих фичах.
Во-вторых по поводу exe-шников. Я в readme.txt упомянул, что парсер выдран, поэтому, нет смысла пытаться скормить софтине что-нибудь помимо родимых .dc-шников (кто не знает, это то же самое что .doc для M$ Worda). Зато смело можно терзать прилагаемый сэмпл, пока она(прога) не форматнет ваш винчестер (шутка). А если без шуток, то для ввода данных я собираюсь написать плагин к детищу дяди Ильфака. Таким макаром юзер сможет выбирать интересующий код и данные вместе со всеми потрохами (типа лэйблов и аттрибутов) и отправлять далее в декомпилер на перемолку. Ведь сами понимаете, писать еще один интерактивный дизассемблер - это ж столько гемммороя, когда есть готовый. Лучше сконцентрироваться на вылизывании ядра декомпилера.
Ну вы меня поняли...


Дата: Сен 28, 2004 00:53:13

А вот эта идея - уже ничего. Хорошо придумал.


Дата: Сен 28, 2004 01:36:04

я б накорябал сполпинка такое если бы придумал как НАЗЫВАТЬ переменные и метки. ну в самом деле, нафига декомпилить если все имена типа @kaamghcvd(аля борланд цпп4.5)


Дата: Сен 28, 2004 14:11:32

andruha123
Загрузив прилагаемый .dc в Revenge.exe и внимательно посмотрев различные представления (assembled, unfold, etc) и сопоставив код между ними, могу сказать, что Andrey Shulga поработал очень хорошо. Он отслеживает историю преобразований переменных и т.п. Т.е. анализирует не только control-flow, но и data-flow. Только пока непонятно, сколько нужно потратить ручного труда, чтобы из бинарного кода получился такой результат? Если почти все, что представлено в demo файле, сгенерила программа (естественно, кроме вменяемых наименований переменных и функций. это дело человека.), то это одно дело. Если нужно много указывать "руками", то другое. Как, например, определяется стиль вызова функций (pascal, cdecl, etc)?


Дата: Сен 28, 2004 23:13:02

Значит, все что представлено, было получено после перемола прогой сырых ассемблерных листингов, взятых из дизассемблера. Ручная доводка свелась к следующему:

  1. Удаление лишних(продублированных) структур путем их слияния. Поскольку, декомпу скармливается произвольный материал (в любой последовательности), то при анализе типов данных некоторые указатели на структуры не трассируются в одно место. Это и приводит к генерации лишних структур. В принципе, без структур вообще можно обойтись, код будет компилируем, хотя и зас..н приведением типов.
  2. Были переименованы имена функций, структур, их полей, некоторых глобальных и локальных переменных в осмысленные (тут я особо не мудрил, т.к. у меня есть оригинальные исходники того проекта, don't worry - it's open-source).


На все у меня ушло ~4 часа. Я даже не стал править блочную организацию функций (if, else, switch, &&, ||). Все это заложено в авто-анализе, хотя, чтобы, например, превратить goto [eax] в switch(..), достаточно одного нажатия кнопки.

По поводу типов вызовов функций (calling conventions) - тут все тоже до-безобразия просто. Но об этом как нибудь потом.


Дата: Сен 29, 2004 11:27:06 · Поправил: semen

andruha123
Вещь мега-рульная - excellent work - но когда можно будет грузить реальный код, или генерировать эти самые dc файлы?
„т.к. у меня есть оригинальные исходники того проекта, don't worry - it's open-source“
Что за проект? Можно линк?


Дата: Сен 30, 2004 02:47:46

уже года полтора назад попал на сайт, посвященный сабжу,
все ждал :) приятно видеть, что хоть как-то оживает.
надеюсь проект все же реализуется, очень интересный.
(особенно нравится восстановление с++ классов, из
скрина видно, что вроде Andromeda это умеет)

только вот в одиночку непросто все это воплощать в жизнь,
мне кажется это слишком сложно.

и распространять вы его как собираетесь ? платно/бесплатно ? может стоит помощников поискать ?


Дата: Окт 1, 2004 21:34:09

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

. 1 . 2 . >>


Powered by miniBB 1.6 © 2001-2002
Время загрузки страницы (сек.): 0.066