Войти

Показать полную графическую версию : декомпиляция файла


vlasoft
18-09-2011, 09:27
Мне нужно декомпилировать один файл в котором содержится алгоритм кодирования файла в определенный формат. Мне нужно как то вытащит этот алгоритм, но я не знаю как! Из за того что мне исходники не доступны,
то я думаю что стоит прибегнуть дизасамблеру с последующей конвертацией в более высший язык программирования! Получится у меня это? Если да то какие программы для этого подойдут?

P.S. Если я нарушил какое то правило то не закрывайте тему т.к. мне нужен ответ срочно!

lxa85
18-09-2011, 10:04
Насколько мне известно, не существует дизасемблеров, способных восстановить исходный код в C++ допустим. (При условии, что из С++ получен исполняемый файл) Это объясняется дополнительными обработками кода во время компиляции, как то оптимизация, возможно "запутывание кода" и т.д.
Процесс дизассемблирования нетривиален. Поэтому если нет понимания и опыта работы с ассемблером, не говоря про язык высокого уровня, декомпиляция файла невозможна.

vlasoft
18-09-2011, 10:08
Ну а как тогда быть? Если мне нужно получить этот алгоритм из .dll библиотеки!?

Delirium
18-09-2011, 11:57
Если мне нужно получить этот алгоритм из .dll библиотеки »
Подключай библиотеку к проекту и попробуй использовать ее функции, если получится.

vlasoft
18-09-2011, 12:36
Подключай библиотеку к проекту и попробуй использовать ее функции, если получится. »
К какому проекту? Как подключить? Это библиотека игры в которой как я думаю храянятся алгоритмы!

PhilB
18-09-2011, 23:41
Что значит получить алгоритм? Ну получите вы код на ассемблере (пускай даже и на си), но что он вам даст? Что вы от него хотите?
Прежде чем решать задачу, ее необходимо корректно поставить. А как гласит мудрость, правильно поставленный вопрос - уже половина решения.

vlasoft
19-09-2011, 07:42
Что значит получить алгоритм? Ну получите вы код на ассемблере (пускай даже и на си), но что он вам даст? Что вы от него хотите?
Прежде чем решать задачу, ее необходимо корректно поставить. А как гласит мудрость, правильно поставленный вопрос - уже половина решения. »
Мне нужно понять алгоритм кодирования игрового архива! т.е. я думаю что с помощью этой библиотеки кодируется и зашифровывается игровой архив!

yurfed
19-09-2011, 08:00
Ну а как тогда быть? »
Пользуйтесь дебагерами
SoftIce (http://cracklab.ru/art/?action=view&id=281)
OllyDbg (http://cracklab.ru/download.php?action=get&n=OTY1)
http://cracklab.ru/download.php?action=list&n=MTA=

vlasoft
19-09-2011, 17:36
Пользуйтесь дебагерами »
а как ими работать?

lxa85
19-09-2011, 18:00
vlasoft, использование низкоуровневых дебагеров, а другие здесь просто неприменимы, необходимы хорошие знание ассемблера и понимание внутреннего устройства и работы компьютера.

Drongo
19-09-2011, 18:13
необходимы хорошие знание ассемблера и понимание внутреннего устройства и работы компьютера. »Cогласен. Но в этом случае ему будет проще самому написать свою версию аналога, чем дизассемблить.думаю что стоит прибегнуть дизасамблеру с последующей конвертацией в более высший язык программирования! Получится у меня это? »Ответ в принципе дан - нет. Максимум что покажут декомпиляторы это адрес вызова функции, её имя, но не саму реализацию функции.

vlasoft
19-09-2011, 18:15
Ну так как тогда быть??

PhilB
19-09-2011, 18:56
Для начала стоит определиться какую задачу вы решаете.
Здесь возможно 2 варианта
1. прикладную - вам надо закодировать/раскодировать архив. Тогда необходимо использовать dll, подключив к своему проекту. Хотя это не всегда возможно.
2. фундаментальную (в данном случае - исследовательскую) - вы хотите понять принцип работы алгоритма. Тогда для начала надо изучить мат часть. Ассемблер, организацию ЭВМ, аритектуры и т.д... Пока вы изучите, вам этот алгоритм перестанет быть нужным, зато ... вы будете знать матчасть, она вам может еще не раз пригодится.

Флеймовато получилось...

vlasoft
19-09-2011, 18:59
Скорее 1 т.к. мне нужно раскодировать архивы!




© OSzone.net 2001-2012