dave
> Этот ваш "исходник" он вообще компилируется?
Декомпилированные листинги обратно скомпилировать обычно не получается (информацию о многих элементах восстановить не удается). Приходится вручную перерабатывать весь код (при этом желательно разбираться в предметной области) и, по возможности, находить и подключать внешние библиотеки, использованные при компиляции и линковке оригинала. На модули с размером .text (секция кода) > 1 Mb может уйти больше года (при наличии pdb).
Правда с волшебным декомпилятором C++, который юзал Pasha199, время РИ может сократиться в разы (при условии частичного или полного восстановления инфы о наследовании).
destrator
Я так и думал.
Давно пробовал IDA декомпилировать одну прогу. Он тогда еще в ассемблер выдавал код.
destrator
> Правда с волшебным декомпилятором C++
возьми hex-rays 1.1 и удивись, насколько он волшебнее чем 1.0
wad
> возьми hex-rays 1.1 и удивись, насколько он волшебнее чем 1.0
Так у меня вроде и есть 1.1 (точно сказать не могу, я не дома). Но производит листинг на C и не восстанавливает иерархию. В лучшем случае показывает смещение в vtable, а дальше все приходится делать ручками.
P.S. Могу ошибаться на счет версии.
ну конечно не восстанавливает, это же С. откуда там классы, наследование, иерархия и проч.
vtables наверно можно вытащить отдельно, написав свой плагин к иде.
wad
А в начале треда речь шла про C++. Поэтому я и хотел бы знать про "волшебный" C++ декомпилятор :)
> vtables наверно можно вытащить отдельно, написав свой плагин к иде.
Теоретически можно при наличии PDB, но слишком много инфы для анализа. К тому же я никогда не писал плагины для IDE и изучать некогда :) Для меня большинстве случаев проще восстановить вручную. Вот если бы ребята из hex-rays этим занялись, я был бы им очень признателен :)
Тема в архиве.