Модераторы: Daevaorn

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Преобразование .exe-файла в .cpp, Как преобразовать .exe-файл в .cpp? 
V
    Опции темы
dumb
Дата 6.5.2008, 14:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


sceloglauxalbifacies
****


Профиль
Группа: Экс. модератор
Сообщений: 2929
Регистрация: 16.6.2006

Репутация: 8
Всего: 158



Цитата(Lycifer @  6.5.2008,  15:13 Найти цитируемый пост)
Дизассемблер тебе не поможет понять логику.
серьезно? - а для чего тогда, как ты думаешь, дизассемблер вообще нужен?

Цитата(Lycifer @  6.5.2008,  15:13 Найти цитируемый пост)
Можеш использовать отладчики(sowt-ice
soft-ice.

Цитата(Lycifer @  6.5.2008,  15:13 Найти цитируемый пост)
или встроеный в Windows Debug
"встроенный" отладчик(debug.exe) не предназначен для отладки win32-приложений.
PM MAIL   Вверх
Solomon
Дата 6.5.2008, 14:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 471
Регистрация: 23.1.2006
Где: Украина Киев

Репутация: нет
Всего: 2



...

Это сообщение отредактировал(а) Solomon - 6.5.2008, 14:44


--------------------
Если не идти до конца к поставленным целям и не пытатся их достигнуть, каким бы тяжелым не казался путь, то лучше и не ставь их перед собой, но тот кто не ставит перед собой труднодоступные цели, никогда не ощутит эйфорию настоящей победы... победы над миром...
Соломон 2008
PM MAIL ICQ GTalk YIM   Вверх
Lycifer
Дата 6.5.2008, 15:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 144
Регистрация: 4.11.2007

Репутация: нет
Всего: нет



Цитата

серьезно? - а для чего тогда, как ты думаешь, дизассемблер вообще нужен?


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

Вообщето Дизасемблер нужен для программного кода, ну а логику понять из него(без отладчика) невозможно.
PM MAIL ICQ   Вверх
dumb
Дата 6.5.2008, 15:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


sceloglauxalbifacies
****


Профиль
Группа: Экс. модератор
Сообщений: 2929
Регистрация: 16.6.2006

Репутация: 8
Всего: 158



Lycifer, задавая в одной ветке вопрос "как читать и изменять байты в .exe", не стоит здесь пытаться выдавать свое мнение за непреложную истину, да еще и в таких категоричных выражениях.
по поводу же твоего неуместного сарказма на тему моих возможностей я высказываться не буду. формат общения не тот.
PM MAIL   Вверх
d06osipov
Дата 6.5.2008, 18:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 72
Регистрация: 1.11.2006

Репутация: нет
Всего: нет



Это сделать в точности невозможно, хотя бы потому, что в exe файле не хранятся никакие символы (если он не скомпилирован для отладки). То есть компилятор не сохраняет имена переменных, классов, функций и т. п., они просто не нужны в выходном файле.

А у меня есть ещё пример. Была такая игра --- TTD, Transport Tycoon Delux. Фанаты (а именно, Ludvig Strigeus, автор известной программы uTorrent, см. http://en.wikipedia.org/wiki/Ludvig_Strigeus) дизассемблировали её и переписали полностью на чистый С, получилось продолжение, Open TTD (кстати, Open Source). Я сомневаюсь что это возможно было всё переписать вручную, скорее всего, хоть какая-то автоматизация была. Но при желании, думаю, можно найти больше информации по этой теме.

Это сообщение отредактировал(а) d06osipov - 6.5.2008, 18:43
PM MAIL   Вверх
bsa
Дата 6.5.2008, 23:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

Репутация: 63
Всего: 196



d06osipov, если честно, я не очень понимаю смысла дизассемблирования кода игры - в ней нет, по моему, каких-то очень серьезных алгоритмов, требующих такого подхода, хотя про OpenTTD написано, что он был именно дизассемблирован с помощью IDA, но надо иметь в виду, что это Wiki. Хотя, возможно, что дизассемблированию подвергался код, ответственный за чтение файлов данных.

Lycifer, анализу подвергаются только определенные участки кода (остальные проглядываются "по диагонали" с целью определения точек входа в нужную процедуру). Поверь мне, например, сделать из shareware программы обычную можно минут за 30, если, конечно, сложных защит не понаставлено. И все это делается с помощью дизассемблера и hex-редактора. Никто никогда не будет разбираться в коде отрисовки окошек и пр., так как это можно сделать посвоему с тем же результатом.

Это сообщение отредактировал(а) bsa - 6.5.2008, 23:07
PM   Вверх
Любитель
Дата 7.5.2008, 14:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Программист-романтик
****


Профиль
Группа: Комодератор
Сообщений: 3645
Регистрация: 21.5.2005
Где: Воронеж

Репутация: 24
Всего: 92



Цитата(W4FhLF @  7.12.2007,  13:41 Найти цитируемый пост)
Ну вот буквально недельку назад небеизвестная в определённых кругах группа YAG зарелизила декомпилер от Ильфака(автор IDA) стоимостью 2k$

Прикольно smile

Цитата(Lycifer @  6.5.2008,  15:02 Найти цитируемый пост)
ну а логику понять из него(без отладчика) невозможно. 

Чо правда?  smile 

Цитата(d06osipov @  6.5.2008,  18:35 Найти цитируемый пост)
кстати, Open Source

Эээ, а эт легально?

Цитата(W4FhLF @  7.12.2007,  16:10 Найти цитируемый пост)
exe2compilable_source - это сказка

Ну почему - не всегда smile Если экзешник от какого-нить py2exe, pl2exe, etc. - то достаточно спокойно. Да и дотнетовский - более-менее.



--------------------
PM MAIL ICQ Skype   Вверх
Lycifer
Дата 7.5.2008, 16:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 144
Регистрация: 4.11.2007

Репутация: нет
Всего: нет



bsa, я с тобой согласен, конечно если нет защиты не какой(защита типа в файле лежит пароль), то nop забить легко, ну вот когда идёт речь например о подписи, то там не так всё просто, логику будеш понимать годами.(Это не считая что если программеры, не придумали защиты что-то вроде xml, а для получения которого требуется подключится к SQL - и сколько времени у тебя уйдёт?  - года)

Добавлено через 2 минуты и 30 секунд
Dump, если ты не понял я создал тему в которой речь идёт для получение программно инфу про исполняемый файлы(к примеру: контрольная сумма или изменить exe файл)
PM MAIL ICQ   Вверх
Любитель
Дата 7.5.2008, 17:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Программист-романтик
****


Профиль
Группа: Комодератор
Сообщений: 3645
Регистрация: 21.5.2005
Где: Воронеж

Репутация: 24
Всего: 92



Цитата(Lycifer @  7.5.2008,  16:48 Найти цитируемый пост)
Dump, если ты не понял я создал тему в которой речь идёт для получение программно инфу про исполняемый файлы

При таком подходе - чем он отличается от любого файла? smile

Добавлено через 17 секунд
Цитата(Lycifer @  7.5.2008,  16:48 Найти цитируемый пост)
не придумали защиты что-то вроде xml

Звучит smile 


--------------------
PM MAIL ICQ Skype   Вверх
bsa
Дата 7.5.2008, 22:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

Репутация: 63
Всего: 196



Цитата(Lycifer @ 7.5.2008,  16:48)
bsa, я с тобой согласен, конечно если нет защиты не какой(защита типа в файле лежит пароль), то nop забить легко, ну вот когда идёт речь например о подписи, то там не так всё просто, логику будеш понимать годами.(Это не считая что если программеры, не придумали защиты что-то вроде xml, а для получения которого требуется подключится к SQL - и сколько времени у тебя уйдёт?  - года)

Ты хоть сам понял, что написал?
Я, например, один раз снимал защиту с одной библиотеки, которая хотела серийник. Делов было на 10-20 минут... просто отключил проверку ключа на валидность.
Логику понимать годами вообще не нужно. Алгоритмы цифровых подписей можно по пальцам пересчитать. Поэтому нужно определить какой из них и добыть ключ - остально дело техники.
Если у тебя "что-то вроде xml, а для получения которого требуется подключится к SQL" smile, то кто мешает найти в коде программы, адрес, логин и пароль для подключения к SQL?
Кстати, XML - это открытый текстовый файл, который взламывать смысла нет никакого.
PM   Вверх
d06osipov
Дата 8.5.2008, 14:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 72
Регистрация: 1.11.2006

Репутация: нет
Всего: нет



Цитата(bsa @  6.5.2008,  23:06 Найти цитируемый пост)
если честно, я не очень понимаю смысла дизассемблирования кода игры - в ней нет, по моему, каких-то очень серьезных алгоритмов, требующих такого подхода


Ну, например, чтобы не перерисовывать графику. OpenTTD действительно использует графические файлы GRF из старого TTD. А как понять их формат?

Кроме того, TTD уже была сделана очень добротно и очень хорошо продумана, ведь кроме алгоритмов интерес могут представлять ещё и проектные решения (правда, меня бы очень удивило, если бы их можно было бы выкопать из готовой программы).


Кстати, у меня давно зреет вопрос по этой теме. 
Я сказал, что в exe файле нет никаких символов. Но RTTI позволяет получить по ходу выполнения программы строковое название типа! Откуда он их берёт? Неужели, действительно, названия всех классов лежат в исполняемом файле, если включён RTTI. 


Цитата(Любитель @  7.5.2008,  14:53 Найти цитируемый пост)
Цитата(d06osipov @  6.5.2008,  18:35 Найти цитируемый пост)
кстати, Open Source

Эээ, а эт легально?

А что, Microsoft уже добилась принятия закона о запрете бесплатного и Open Source ПО?

Добавлено через 8 минут и 10 секунд
Бал ещё забавный случай связанный с первыми версиями коммерческой программы FineReader. Разработчики тогда заявили об использовании новейших алгоритмов --- имеющие опыт чтения машинного кода могли убедиться в этом, отыскав их признаки в дизассемблированном коде. Однако, позже выяснилось, что никаких алгоритмов нет, а разработчики специально запутывали код.
PM MAIL   Вверх
Любитель
Дата 8.5.2008, 14:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Программист-романтик
****


Профиль
Группа: Комодератор
Сообщений: 3645
Регистрация: 21.5.2005
Где: Воронеж

Репутация: 24
Всего: 92



Цитата(d06osipov @  8.5.2008,  14:24 Найти цитируемый пост)
Неужели, действительно, названия всех классов лежат в исполняемом файле, если включён RTTI. 

А где же ещё? Читаем матчасть по typeinfo.

Цитата(d06osipov @  8.5.2008,  14:24 Найти цитируемый пост)
А что, Microsoft уже добилась принятия закона о запрете бесплатного и Open Source ПО?

Во-первых, причём тут МС?
Во-вторых, речь, конечно, про дизассемблирование какого-то продукта для осздания его аналога.


--------------------
PM MAIL ICQ Skype   Вверх
Lycifer
Дата 8.5.2008, 17:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 144
Регистрация: 4.11.2007

Репутация: нет
Всего: нет



bsa, не выдумывай глупасти. ТО что ты проставил "nop" вместо проверки значения(а то и просто сделал переход к метке) - это все на энтуитивном уровне понятно. Так вот на счет подпись - почитай прежде чем писать(алгоритмы там не причем). Так что бы забить "nop", лучше  отладчиком чем дизассемблером.
Насчет xml: Защиту строят так что бы "ХАКЕРАМ"   было менее понятно(Например в .xml сохраняется класс и после чего требуется большое время что бы что-то из этого понять, так как его писал не человек, а машина) - так что дизассемблер это чисто так, что бы умнее казатся.

Добавлено через 1 минуту и 20 секунд
Любитель - ну я думаю тебе к дяди Билу
PM MAIL ICQ   Вверх
Любитель
Дата 8.5.2008, 17:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Программист-романтик
****


Профиль
Группа: Комодератор
Сообщений: 3645
Регистрация: 21.5.2005
Где: Воронеж

Репутация: 24
Всего: 92



Цитата(Lycifer @  8.5.2008,  17:15 Найти цитируемый пост)
Так что бы забить "nop", лучше  отладчиком чем дизассемблером

Не, ну вообще и отладчик, и дизасм для редактирования непосредественно не преданзначены (хот ьи обычно поддерживают его как расширение).

Цитата(Lycifer @  8.5.2008,  17:15 Найти цитируемый пост)
Насчет xml: Защиту строят так что бы "ХАКЕРАМ"   было менее понятно(Например в .xml сохраняется класс и после чего требуется большое время что бы что-то из этого понять, так как его писал не человек, а машина) - так что дизассемблер это чисто так, что бы умнее казатся.

При чём тут XML? XML наоброт упрощает разбор smile А дизасм нужен не чтоб умней казаться, а чтоб дизассемблировать smile Хотя ИМХО да - чаще используется в сочетании с отладчиком. Но опять-таки, зачастую проще по асм-коду найти и прореверсить несложный алгоритм проверки ключа (ну и поиск криптосигнатур в помощь иногда), чем бороться с заковыристым антидебагом.

Цитата(Lycifer @  8.5.2008,  17:15 Найти цитируемый пост)
Любитель - ну я думаю тебе к дяди Билу 

Ещё раз - ты это к чему сказал?
Цитата(Lycifer @  8.5.2008,  17:15 Найти цитируемый пост)
чисто так, что бы умнее казатся

?


--------------------
PM MAIL ICQ Skype   Вверх
Lycifer
Дата 8.5.2008, 17:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 144
Регистрация: 4.11.2007

Репутация: нет
Всего: нет



Цитата
Цитата


Dump, если ты не понял я создал тему в которой речь идёт для получение программно инфу про исполняемый файлы


При таком подходе - чем он отличается от любого файла? smile
 - На счет дяди била.
На счет .xml туда стока всего можно заполнить что бкз отладчика разобраться не реально(бывает что просто не реально = человеческой жизни просто не хватит)
Всякие придуманные бинарные данные, если их будет сотен пять(строк) то что бы понять какой какой действительный.... Да, а еще прикольно когда выставляют последовательное сравнение этих строк в хаотическом порядки при чем можно очень долго улучшать защиту= большой логике что поломать в принципе не возможно.

Цитата


Цитата

чисто так, что бы умнее казатся





Я имел ввиду что забить нупами операцию, просто так что бы перед кемнибудь повепендриватся (например перед друзьями)
PM MAIL ICQ   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1073 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.