Кто-нибудь пытался создать аналог DeDe только для прог использующих MFC ? Лично я нашёл только одну утилиту и то – в зачаточном состоянии. Есть желание сделать что-то подобное. Вопрос в том, не хочу ли я создать велосипед, если нет – то интересно Ваше виденье такой утилиты.
Quantum Ида довольно не плохо работает с сигнатурами MFC. Лично я больше связан с реверсом как таковым. Поэтому мне интересней узнать какие уведомления обрабатывает приложение, было бы неплохо это увидеть в самой студи... я имею ввиду воссоздание cpp и хидеров с классами, их вирт.функциями... а также воссоздание rc и resource.h То есть главная цель не дублировать работу Иды а дополнить её. Сама же навигациями по функциям и классам с помощью Visual Assist довольно привлекательная.
чего захотел код, генерируемый Delphi отличается от MFC (точнее сишного). Тут уже придется декомпилятор C/C++ писать
rmn Я не хочу создавать именно чистый декомпилятор в виде кода на псевдосишке - цель была бы слишком фантастической . Достаточно чтоб в хидере указывалось название функции полученое с "message map-a" и RVA. Дальше можно будеть и скрипт для Иды создать. Мне интересен именно Ваш взгляд на функциональность такой проги. Например: в студии открываеться ресурс диалога, вибыраеться кнопка и пользователь видит все функции которые обрабатываються даной кнопкой. Что то похожее именно на смысл DeDe - декопилятор самого кода посредственный, но воссоздание pas-файлов и dfm -прекрасная вещь.
под отличием в коде Dephi/C я имел в виду то, что в C символьная инфа не сохраняется в exe, как в дельфях. Так что, о именах функций, классов, переменных забудь.
Я вообщето в курсе Речь немного о другом: 1) найти vtbl address и разобрать по функциям (получаем например GetMessageMap, OnNotify...) 2) message map - определить обработчики уведомлений (если WM_DESTROY - то дать название функции OnDestroy...) То есть классы унаследованые от стандартных разобрать (пусть и с горем пополам) можна. А значит и дать им осмысленные названия, а значит и воссоздать хотя бы классы диалогов (для начала).
DelExe Наверное это было бы удобно, чтобы не бегать по таблицам методов. Кстати, DeDe не является декомпилятором, даже посредственным, и pas-файлы не воссоздает, хотя очень много полезной информации и дает.
Между прочим это весьма реально... Visual C++ компилит код всегда одинаково Я бился 3 часа и смог востановить класс из проги так, что он компилировался почти байт-в-байт как в EXE
CnCVK Что ты имеешь в виду под словом одинаково? И что, сложность кода не зависит от оптимизации? Самое сложное в декомпиляторе - проанализировать структуру кода и выявить конструкции if, if-else, loop, switch, если использовалась оптимизация. Декомпилировать линейные участки легче, хотя и здесь тоже есть свои сложности.
а кто нибудь видел, что ms vc++ 7.0 делает из: Код (Text): extern int a[256]; int s = 0; for(int i = 0; i < 256; ++i) s += a[i]; при максимальной оптимизации? Это же просто кошмар какой-то... глядя на код догадаться довольно трудно, что вначале все было так просто...
DelExe Кстати, в связи с твоим пожеланием открывать ресурсы и показывать их на экране, у меня вопрос: как ты будешь отображать контролы, не являющиеся "знакомыми" для Дельфи? К примеру, навороченный лист-бокс, унаследованный от стандартного (и даже не прямой потомок стандартного)?
[offtop] crypto Это очень качественный фарш - в смысле быстро работает. Системные программисты у мелкософта сильные, в отличии от прикладных :[] [/offtop]
crypto Отображать можно как простой контрол, а в конструкторе класса передавать ID ресурса. Другими словами - подход такойже как и при нормальном использовании стиля MFC в студии: потомков станд.класса много, конструктор через ":m_ID(ID)" принимает идентификатор контрола. Хотя, безусловно, я согласен - наглядности в ресурсах контрол иметь не будет. Но с другой стороны - это абсолютно прозрачно именно для реверса. Насчёт Дельфи - не совсем понял о чём речь. Суть в том что хидера и cpp открываються именно в VC. reverser Благодарю.
reverser Двигается народ потихоньку Хотя многое и так уже известно. DelExe Подумал, что ты на Дельфях это будешь реализовывать.