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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
icpu
321 / 226 / 43
Регистрация: 10.03.2011
Сообщений: 1,091
Записей в блоге: 2
#1

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

03.02.2016, 08:02. Просмотров 414. Ответов 10
Метки нет (Все метки)

Появилось страшно неприодолимое желание подумать над этой темой. Появилось не одно, а вместе с гибелью небольшой папки с небольшим текстом.

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

Вопрос: Что, как и сколько я могу выжать из этих объектных файлов? Я не дурак, исходников не жду, но насколько финальный фарш будет напоминать изначальную хрюшку? И чем можно сий процесс произвести?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ilot
Модератор
Эксперт С++
1807 / 1164 / 226
Регистрация: 16.05.2013
Сообщений: 3,060
Записей в блоге: 5
Завершенные тесты: 1
03.02.2016, 10:38     Декомпиляция объектных файлов и жестокая реальность #2
icpu, объектный файл это то же бинарный код, но без разрешения зависимостей. Т.е. выжать из него можно ровно столько сколько и из бинарника.
icpu
321 / 226 / 43
Регистрация: 10.03.2011
Сообщений: 1,091
Записей в блоге: 2
03.02.2016, 11:08  [ТС]     Декомпиляция объектных файлов и жестокая реальность #3
Так, да не так. Всё-таки для каждого файла объектник строится отдельный.

В любом случае, я правильно понимаю, что кроме IDA и Boomerang мне особо никто и не поможет?
Croessmah
Модератор
Эксперт CЭксперт С++
13054 / 7317 / 815
Регистрация: 27.09.2012
Сообщений: 18,053
Записей в блоге: 3
Завершенные тесты: 1
03.02.2016, 11:11     Декомпиляция объектных файлов и жестокая реальность #4
Цитата Сообщение от icpu Посмотреть сообщение
насколько финальный фарш будет напоминать изначальную хрюшку?
Примерно как котлета напоминает хрюшку, т.е. - никак не будет напоминать.
Оно уже скомпилировано, оптимизировано и ждет своего часа.
Хотя может будет и понятнее,
чем готовый к запуску бинарник разбирать,
т.к. объектник еще через линкер не прошел.
Придется разбираться на асме.
Ilot
Модератор
Эксперт С++
1807 / 1164 / 226
Регистрация: 16.05.2013
Сообщений: 3,060
Записей в блоге: 5
Завершенные тесты: 1
03.02.2016, 11:15     Декомпиляция объектных файлов и жестокая реальность #5
Цитата Сообщение от icpu Посмотреть сообщение
Так, да не так. Всё-таки для каждого файла объектник строится отдельный.
Все правильно. Для каждого файла строиться бинарный код без разрешения зависимостей. Затем линковщик настраивает смещения и собирает все модули в один. Но тем не менее объектные файлы это уже скомпилированные в бинарный исходные коды.
gru74ik
Модератор
Эксперт CЭксперт С++
4106 / 1751 / 197
Регистрация: 20.02.2013
Сообщений: 4,856
Записей в блоге: 21
03.02.2016, 11:35     Декомпиляция объектных файлов и жестокая реальность #6
Цитата Сообщение от icpu Посмотреть сообщение
Появилось не одно, а вместе с гибелью небольшой папки с небольшим текстом.
И тут я почему-то сразу подумал про Git...
icpu
321 / 226 / 43
Регистрация: 10.03.2011
Сообщений: 1,091
Записей в блоге: 2
03.02.2016, 12:00  [ТС]     Декомпиляция объектных файлов и жестокая реальность #7
Ясно. Ветчина. Иными словами, разбор obj файла - разбор dll, у которого просто больше вызовов между модулями.

Не по теме:

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



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

Добавлено через 2 минуты
Да и обфускация внутри единого файла - дело не особо сложное.
castaway
Эксперт С++
4881 / 3017 / 370
Регистрация: 10.11.2010
Сообщений: 11,076
Записей в блоге: 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++ Поток внутри класса, реальность или плод моей фантазии?
C++ Раздельная компиляция (нюансы использования заголовочных файлов и файлов реализации)
Сравнить содержимое файлов между собой, и если оно совпадает, то вывести на экран имена этих файлов C++

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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru