Форум программистов, компьютерный форум CyberForum.ru

Декомпиляция объектных файлов и жестокая реальность - C++

Восстановить пароль Регистрация
 
icpu
 Аватар для icpu
276 / 181 / 36
Регистрация: 10.03.2011
Сообщений: 863
Записей в блоге: 2
03.02.2016, 08:02     Декомпиляция объектных файлов и жестокая реальность #1
Появилось страшно неприодолимое желание подумать над этой темой. Появилось не одно, а вместе с гибелью небольшой папки с небольшим текстом.

Есть папка с релизной сборкой, которая включает набор объектных файлов .obj и exe'шник. Есть точный список всех компиляторов, библиотек и наборов опций компилятора. И... всё.

Вопрос: Что, как и сколько я могу выжать из этих объектных файлов? Я не дурак, исходников не жду, но насколько финальный фарш будет напоминать изначальную хрюшку? И чем можно сий процесс произвести?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.02.2016, 08:02     Декомпиляция объектных файлов и жестокая реальность
Посмотрите здесь:

Декомпиляция программы C++
C++ Поток внутри класса, реальность или плод моей фантазии?
декомпиляция exe C++
C++ Кроссплатфомернная многопоточность, миф или реальность?
Возможна ли декомпиляция исходника? C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ilot
Модератор
Эксперт С++
1767 / 1142 / 223
Регистрация: 16.05.2013
Сообщений: 3,020
Записей в блоге: 5
Завершенные тесты: 1
03.02.2016, 10:38     Декомпиляция объектных файлов и жестокая реальность #2
icpu, объектный файл это то же бинарный код, но без разрешения зависимостей. Т.е. выжать из него можно ровно столько сколько и из бинарника.
icpu
 Аватар для icpu
276 / 181 / 36
Регистрация: 10.03.2011
Сообщений: 863
Записей в блоге: 2
03.02.2016, 11:08  [ТС]     Декомпиляция объектных файлов и жестокая реальность #3
Так, да не так. Всё-таки для каждого файла объектник строится отдельный.

В любом случае, я правильно понимаю, что кроме IDA и Boomerang мне особо никто и не поможет?
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
11841 / 6820 / 771
Регистрация: 27.09.2012
Сообщений: 16,911
Записей в блоге: 2
Завершенные тесты: 1
03.02.2016, 11:11     Декомпиляция объектных файлов и жестокая реальность #4
Цитата Сообщение от icpu Посмотреть сообщение
насколько финальный фарш будет напоминать изначальную хрюшку?
Примерно как котлета напоминает хрюшку, т.е. - никак не будет напоминать.
Оно уже скомпилировано, оптимизировано и ждет своего часа.
Хотя может будет и понятнее,
чем готовый к запуску бинарник разбирать,
т.к. объектник еще через линкер не прошел.
Придется разбираться на асме.
Ilot
Модератор
Эксперт С++
1767 / 1142 / 223
Регистрация: 16.05.2013
Сообщений: 3,020
Записей в блоге: 5
Завершенные тесты: 1
03.02.2016, 11:15     Декомпиляция объектных файлов и жестокая реальность #5
Цитата Сообщение от icpu Посмотреть сообщение
Так, да не так. Всё-таки для каждого файла объектник строится отдельный.
Все правильно. Для каждого файла строиться бинарный код без разрешения зависимостей. Затем линковщик настраивает смещения и собирает все модули в один. Но тем не менее объектные файлы это уже скомпилированные в бинарный исходные коды.
gru74ik
Модератор
 Аватар для gru74ik
3121 / 1347 / 167
Регистрация: 20.02.2013
Сообщений: 3,852
Записей в блоге: 17
03.02.2016, 11:35     Декомпиляция объектных файлов и жестокая реальность #6
Цитата Сообщение от icpu Посмотреть сообщение
Появилось не одно, а вместе с гибелью небольшой папки с небольшим текстом.
И тут я почему-то сразу подумал про Git...
icpu
 Аватар для icpu
276 / 181 / 36
Регистрация: 10.03.2011
Сообщений: 863
Записей в блоге: 2
03.02.2016, 12:00  [ТС]     Декомпиляция объектных файлов и жестокая реальность #7
Ясно. Ветчина. Иными словами, разбор obj файла - разбор dll, у которого просто больше вызовов между модулями.

Не по теме:

Цитата Сообщение от gru74ik Посмотреть сообщение
И тут я почему-то сразу подумал про Git...
Вы хоть про Mercurial думайте, хоть про SVN. "Мопед не мой, я просто разместил объяву."©



Добавлено через 3 минуты
Тогда, если подумать... Если линковать статически библиотеку под LGPL, можно просто отработать препроцессором, потом сбилдить один большой уродливый объектный файл из этого кадавра.i, а потом его раздавать по требованию. То же самое, что и с dll-ками раздавать.
castaway
Эксперт С++
4848 / 2987 / 368
Регистрация: 10.11.2010
Сообщений: 11,028
Записей в блоге: 10
Завершенные тесты: 1
03.02.2016, 12:05     Декомпиляция объектных файлов и жестокая реальность #8
Цитата Сообщение от icpu Посмотреть сообщение
разбор obj файла - разбор dll
Не совсем. Например в объектном файле сохранены имена функций, в то время как в DLL/EXE их может уже и не быть.
icpu
 Аватар для icpu
276 / 181 / 36
Регистрация: 10.03.2011
Сообщений: 863
Записей в блоге: 2
03.02.2016, 12:25  [ТС]     Декомпиляция объектных файлов и жестокая реальность #9
Имена внешних функций? Если так, не особо страшно. Таблица экспорта/импорта и поиск по getProcAddress - это ж практически классика взлома PE-файлов.

Добавлено через 2 минуты
Да и обфускация внутри единого файла - дело не особо сложное.
castaway
Эксперт С++
4848 / 2987 / 368
Регистрация: 10.11.2010
Сообщений: 11,028
Записей в блоге: 10
Завершенные тесты: 1
03.02.2016, 12:29     Декомпиляция объектных файлов и жестокая реальность #10
Цитата Сообщение от icpu Посмотреть сообщение
Имена внешних функций?
Внутренних. Откройте один объектный файл через IDA да посмотрите что там есть. В чём проблема то?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.02.2016, 12:43     Декомпиляция объектных файлов и жестокая реальность
Еще ссылки по теме:

C++ Литература о компиляции, линковке, что содержится в объектных файлах, стеке переменных?
C++ Декомпиля́тор, мечты, реальность и применение
Декомпиляция С++ C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Kastaneda
Модератор
Эксперт С++
 Аватар для Kastaneda
4237 / 2770 / 218
Регистрация: 12.12.2009
Сообщений: 7,104
Записей в блоге: 1
Завершенные тесты: 1
03.02.2016, 12:43     Декомпиляция объектных файлов и жестокая реальность #11
Есть инструменты, которые по ассемблерному коду генерят сишный. Понятно, что результат нужно будет еще долго допиливать руками, оно даже не всегда компилируется. Советую погуглить в эту сторону.
Yandex
Объявления
03.02.2016, 12:43     Декомпиляция объектных файлов и жестокая реальность
Ответ Создать тему
Опции темы

Текущее время: 03:20. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru