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

Поиск:

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


Опытный
**


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

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



Такой вопрос: как можно (если вообще можно) преобразовать файл формата .exe в файл формата .cpp?

PM MAIL WWW   Вверх
zkv
Дата 3.12.2007, 16:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата



****


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

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



можешь считать что никак.
PM MAIL   Вверх
KaraKum
Дата 3.12.2007, 16:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



А можно сделать как-нибудь так, чтобы хоть как-то понятен код стал. В формате .obj понять код, по-моему, нет шансов  smile .
PM MAIL WWW   Вверх
zkv
Дата 3.12.2007, 16:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата



****


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

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



Цитата(KaraKum @  3.12.2007,  16:32 Найти цитируемый пост)
В формате .obj понять код

а причем тут .obj ?

Цитата(KaraKum @  3.12.2007,  16:32 Найти цитируемый пост)
А можно сделать как-нибудь так, чтобы хоть как-то понятен код стал.

дизассемблируй и изучай (ехешник)
PM MAIL   Вверх
KaraKum
Дата 3.12.2007, 16:45 (ссылка)    | (голосов:3) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата(zkv @ 3.12.2007,  16:35)
дизассемблируй

Вот-вот. А разве после дизассемблирования получается не файл формата .obj? Я имею в виду из .exe файла можно сделать файл формата языка C++?
PM MAIL WWW   Вверх
zkv
Дата 3.12.2007, 16:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата



****


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

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



Цитата(KaraKum @  3.12.2007,  16:45 Найти цитируемый пост)
Я имею в виду из .exe файла можно сделать файл формата языка C++?

можно, изучи логику и напиши программу заново. Других путей не вижу  smile 
Цитата(KaraKum @  3.12.2007,  16:45 Найти цитируемый пост)
А разве после дизассемблирования получается не файл формата .obj

получается файл формата .asm те программа на ассемблере.
PM MAIL   Вверх
JackYF
Дата 3.12.2007, 16:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


полуавантюрист
****


Профиль
Группа: Участник
Сообщений: 5814
Регистрация: 28.8.2004
Где: страна тысячи озё р

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



Цитата(KaraKum @  3.12.2007,  16:45 Найти цитируемый пост)
Я имею в виду из .exe файла можно сделать файл формата языка C++? 

дизассемблирование даёт ассемблерный код.


--------------------
Пожаловаться на меня как модератора можно здесь.
PM MAIL Jabber   Вверх
KaraKum
Дата 3.12.2007, 16:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



 smile . А ассемблерный код в формат языка C++ перевести никак нельзя?
PM MAIL WWW   Вверх
zkv
Дата 3.12.2007, 17:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата



****


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

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



Цитата(KaraKum @  3.12.2007,  16:58 Найти цитируемый пост)
А ассемблерный код в формат языка C++ перевести никак нельзя? 


Цитата(zkv @  3.12.2007,  16:47 Найти цитируемый пост)
можно, изучи логику и напиши программу заново. Других путей не вижу

 smile 
PM MAIL   Вверх
JackYF
Дата 3.12.2007, 17:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


полуавантюрист
****


Профиль
Группа: Участник
Сообщений: 5814
Регистрация: 28.8.2004
Где: страна тысячи озё р

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



Цитата(KaraKum @  3.12.2007,  16:58 Найти цитируемый пост)
А ассемблерный код в формат языка C++ перевести никак нельзя? 

а ты сначала головой и руками попробуй, а там увидишь, насколько легко переводить ассемблерный код в С++-ный. smile


--------------------
Пожаловаться на меня как модератора можно здесь.
PM MAIL Jabber   Вверх
Alexeis
Дата 3.12.2007, 17:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Амеба
Group Icon


Профиль
Группа: Админ
Сообщений: 11743
Регистрация: 12.10.2005
Где: Зеленоград

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



Современные дизассемблеры типа Ida кой в чем может помочь. Например, определить что там присвоение строки, построить дерево вызовов функций. Иногда можно определить фрагмент стандартной библиотеки. Прожка DeDe может неплохо экзешник билдера разобрать. Но все это лишь частично.


--------------------
Vit вечная память.

Обсуждение действий администрации форума производятся только в этом форуме

гениальность идеи состоит в том, что ее невозможно придумать
PM ICQ Skype   Вверх
KaraKum
Дата 3.12.2007, 17:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



5 минут назад дизассемблировал собственную программу размером в 2500 строк (160Кб) (на языке С++), а получилась программа на языке ассемблера, наверное, в миллиард строк, а что делать с прогами в десятки мегабайт? Стоит пытаться понять такие программы или жизни не хватит?
PM MAIL WWW   Вверх
SABROG
Дата 3.12.2007, 17:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Hacker
****


Профиль
Группа: Завсегдатай
Сообщений: 2481
Регистрация: 18.9.2006

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



Ассемблер - язык для творческих личностей, один и тот же алгоритм можно написать в большом количестве вариаций. Иногда эти вариации бывают такие, что точную логику программы ты понять не сможешь. Простой пример умножение на 2. На ассемблере для этого можно использовать mul/imul, а можно shl/sal.

Если компилятор оптимизировал код, то твой exe2cpp дизассемблер может выдать что-то вроде этого:

Код

unsigned char a = 1;
a = a << 1;


А не 

Код

unsigned char a = 1;
a *= 2;


Возникнут сразу мысли о том, какие программисты были хитрые, что так зашифровали свой код ;)


--------------------
Национальная группа Russian Federation на QtCentre.
PM MAIL   Вверх
KaraKum
Дата 3.12.2007, 17:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Мне понравилась фраза "exe2cpp дизассемблер". Она звучит как: "Существует программа, которая преобразует .exe файлы в .cpp файлы". Я прав?
PM MAIL WWW   Вверх
bsa
Дата 3.12.2007, 17:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



SABROG, ха. очень может быть, что в результате выйдет unsigned char a = 2; smile

Добавлено через 49 секунд
Цитата(KaraKum @ 3.12.2007,  17:43)
Мне понравилась фраза "exe2cpp дизассемблер". Она звучит как: "Существует программа, которая преобразует .exe файлы в .cpp файлы". Я прав?

речь идет о гипотетической программе.
PM   Вверх
SABROG
Дата 3.12.2007, 17:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Hacker
****


Профиль
Группа: Завсегдатай
Сообщений: 2481
Регистрация: 18.9.2006

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



Ну есть такая программа, сам не пробывал, возможно там есть вирус. Конвертит exe в Си и Asm: http://www.bbs.motion-bg.com/dl.php?file=19

Добавлено через 1 минуту и 34 секунды
Цитата(bsa @ 3.12.2007,  17:45)
SABROG, ха. очень может быть, что в результате выйдет unsigned char a = 2; smile

Верно, как вариант может быть и такое. В зависимости от степени оптимизации smile


--------------------
Национальная группа Russian Federation на QtCentre.
PM MAIL   Вверх
KaraKum
Дата 3.12.2007, 17:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата(bsa @ 3.12.2007,  17:45)
Цитата(KaraKum @ 3.12.2007,  17:43)
Мне понравилась фраза "exe2cpp дизассемблер". Она звучит как: "Существует программа, которая преобразует .exe файлы в .cpp файлы". Я прав?

речь идет о гипотетической программе.

А, чёрт!  smile .
В дизассемблерном файле даже не понятно где кончается стандартный набор Windows функций и начинается текст самой программы  smile .
PM MAIL WWW   Вверх
SABROG
Дата 3.12.2007, 18:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Hacker
****


Профиль
Группа: Завсегдатай
Сообщений: 2481
Регистрация: 18.9.2006

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



Цитата(KaraKum @ 3.12.2007,  17:58)
Цитата(bsa @ 3.12.2007,  17:45)
Цитата(KaraKum @ 3.12.2007,  17:43)
Мне понравилась фраза "exe2cpp дизассемблер". Она звучит как: "Существует программа, которая преобразует .exe файлы в .cpp файлы". Я прав?

речь идет о гипотетической программе.

А, чёрт!  smile .
В дизассемблерном файле даже не понятно где кончается стандартный набор Windows функций и начинается текст самой программы  smile .

smile а если он еще запакован каким-нибудь UPX, то вы вообще получишь только код распаковщика вместо алгоритма программы.


--------------------
Национальная группа Russian Federation на QtCentre.
PM MAIL   Вверх
KaraKum
Дата 3.12.2007, 18:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



То есть всё? Пиши пропало?
У меня есть такой пример: давным давно (ну поехали...) когда мне нравилась игра WarCraft3 и я в неё играл (и сейчас нравится) я встречал программу AMAI, сделанную поклонниками игры (как я слышал), которую нужно было устанавливать поверх игры и представляла она из себя противника который был гораздо сильнее компьютера от самого разроботчика игры "Blizzard".
Так вот, это правда фанаты дизассемблировали игру и создали к ней приложение AMAI (ужас! игра весит около гигабайта!) или вероятнее это продукт от "Blizzard"?

Это сообщение отредактировал(а) KaraKum - 3.12.2007, 18:21
PM MAIL WWW   Вверх
SABROG
Дата 3.12.2007, 18:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Hacker
****


Профиль
Группа: Завсегдатай
Сообщений: 2481
Регистрация: 18.9.2006

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



Зависит от твоих задач. "Поклонники" и алгоритм запаковки определят и структуру файла и библиотеку напишут для распаковки и хуки расставят в нужных местах, чтобы найти адрес где вызывается искусственный интеллект и напишут свой интеллект, и напишут патчер памяти, чтобы приаттачиться к процессу и заменить 4 байта адреса оригинального AI на свой.

Мало кто дизассемблирует программу, чтобы понять какой алгоритм защиты стоит и попробывать найти в нем уязвимости. Обычно все идут по пути меньшего сопротивления, ищут слабые места, такие как поиск условий при которых программа думает, что она зарегистрирована.

Это сообщение отредактировал(а) SABROG - 3.12.2007, 18:37


--------------------
Национальная группа Russian Federation на QtCentre.
PM MAIL   Вверх
MAKCim
Дата 3.12.2007, 18:45 (ссылка) |    (голосов:3) Загрузка ... Загрузка ... Быстрая цитата Цитата


Воін дZэна
****


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

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



Цитата(KaraKum @  3.12.2007,  18:21 Найти цитируемый пост)
То есть всё? Пиши пропало?

нет конечно
тут важны 3 составляющие: время, голова, желание  smile 


--------------------
Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі ©

PM MAIL   Вверх
KaraKum
Дата 3.12.2007, 18:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



В принципе моя задача по принципу как у "поклонников": создать приложение к уже существующей программе и получить возможность получать данные о некоторых внутренних для программы объектах.
Получается мне остаётся до конца освоить ассемблер (немножко уже знаю!  smile   smile ), узнать что такое алгоритм запаковки, библиотека для распаковки, жуки, патчер памяти и приаттачиваться и всё я буду  smile ?
PM MAIL WWW   Вверх
Dims
Дата 3.12.2007, 19:26 (ссылка) |    (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1016
Регистрация: 21.11.2006

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



На современных технологиях, в автоматическом режиме, это невозможно.

Дело в том, что когда компьютер переводит с языка Си++ на машинный язык (это называется "компилированием") он выполняет операцию, которую можно было бы называть "аналитической". Он берёт конструкции на языке высокого уровня (например, Си++) и разбивает их на элементарные составляющие (машинные команды). 

Такие задачи с самого своего рождения компьютеры решали хорошо.

А вот обратную операцию, которую можно было бы назвать "синтетической", компьютеры решают плохо. Сюда относится и обратный перевод с машинного языка, и распознавание образов и речи. Многие из этих задач традиционно относятся к сфере так называемого "искусственного интеллекта". Эти задачи состоят в том, чтобы агрегировать множество частностей (например, машинных команд или пикселей) и распознать в них целостный образ (например, конструкцию языка Си++ или напечатанную букву).

Интересно заметить, что люди характеризуются обратным свойством: даже самые бестолковые из нас легко распознают образы (например, узнают знакомые лица, картины, символы и другое), и с большим трудом раскладывают образ на составляющие (например, способны узнаваемо нарисовать своего приятеля или выразить в словах какое-то переживание или впечатление).
PM MAIL   Вверх
KaraKum
Дата 3.12.2007, 20:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Мда. Не обнадёживающий прогноз.
Можете посоветовать какую-нибудь литературу, что поможет в данном вопросе? Я вроде освоил ассемблер по учебнику В Юров. Assembler, но слова библиотека распаковки, жуки, приаттачиваться и патчер памяти для меня новые  smile .
PM MAIL WWW   Вверх
bsa
Дата 3.12.2007, 20:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



Цитата(Dims @ 3.12.2007,  19:26)
Дело в том, что когда компьютер переводит с языка Си++ на машинный язык (это называется "компилированием") он выполняет операцию, которую можно было бы называть "аналитической". Он берёт конструкции на языке высокого уровня (например, Си++) и разбивает их на элементарные составляющие (машинные команды).

Если бы все было именно так, то давно бы были написаны декомпиляторы для всех компиляторов (конечно, шаблоны они бы не восстанавливали).
Компиляторы не просто раскладывают на "элементарные составляющие", но еще и оптимизируют. Так вот иногда после оптимизации код становится совершенно непохожим на оригинал.
Кому интересно, соберите какой-нибудь проект на C++ с помощью GCC указав опции -O2 -g3 (оптимизация + отладка) и попробуйте пройтись отладчиком. Будете сильно удивлены поведению отладчика. Я, например, как-то пол дня потратил на то, чтобы понять, почему у меня не входит в тело оператора if, хотя судя по переменным должно было.

Добавлено через 2 минуты и 16 секунд
Цитата(KaraKum @ 3.12.2007,  20:20)
но слова библиотека распаковки, жуки, приаттачиваться и патчер памяти для меня новые  smile .

не "жуки", а "хуки". Читай "перехватчики".
"Патчер памяти" - это программа, способная изменять память любого процесса.
PM   Вверх
KaraKum
Дата 3.12.2007, 20:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Вот-вот. Я имею в виду где об этом можно узнать не понаслышке Есть какая-нибудь подходящая для такого дела литература?
PM MAIL WWW   Вверх
MAKCim
Дата 3.12.2007, 22:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Воін дZэна
****


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

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



KaraKum
ссылки на другие форумы - это конечно не хорошо, но все-таки советую заглянуть сюда


--------------------
Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі ©

PM MAIL   Вверх
Dims
Дата 4.12.2007, 00:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1016
Регистрация: 21.11.2006

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



Цитата(bsa @  3.12.2007,  20:23 Найти цитируемый пост)
Если бы все было именно так, то давно бы были написаны декомпиляторы для всех компиляторов (конечно, шаблоны они бы не восстанавливали).

Давным давно я что-то такое встречал. Когда ещё оптимизаторов было мало.
PM MAIL   Вверх
SABROG
Дата 4.12.2007, 12:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Hacker
****


Профиль
Группа: Завсегдатай
Сообщений: 2481
Регистрация: 18.9.2006

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



Цитата(KaraKum @ 3.12.2007,  20:34)
Вот-вот. Я имею в виду где об этом можно узнать не понаслышке Есть какая-нибудь подходящая для такого дела литература?

Подумай лишний раз надо это тебе или нет. Многим геймерам хватает ArtMoney.
Я как-то в эти дебри лазил, использовал SoftIce, IDA Pro, программы для снятия дампа памяти процесса, чтобы на винт сбросить ту же программу в exe файл, но уже полностью распакованную.
Писал патчеры/тренеры на fasme, изучал алгоритмы шифрования, чтобы редактировать save файлы и т.п. Просто занимался кряком программ, кейгенами. 

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

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


--------------------
Национальная группа Russian Federation на QtCentre.
PM MAIL   Вверх
KaraKum
Дата 7.12.2007, 10:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



С помощью какой программы можно дизассемблировать .exe файлы?
PM MAIL WWW   Вверх
regis
Дата 7.12.2007, 13:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Цитата(KaraKum @ 7.12.2007,  10:30)
С помощью какой программы можно дизассемблировать .exe файлы?

Ну вот, например, стандартная U*X-овская утилита "objdump" умеет (в числе прочего) и дисассемблировать машинный код. Поищите порт под Win -- он работает и с объектными файлами, и с EXE формата PE. Подробнее об этом: http://en.wikipedia.org/wiki/Objdump

А по поводу восстановления объектных файлов до исходников на языке высокого уровня, есть старая аналогия: "Это примерно так же просто, как восстановить живую корову из кучи говяжих котлет ." ;)


--------------------
В. В чем разница между hardware и software?О. В отличие от второго, по первому можно двинуть кулаком или пнуть ногой.
PM MAIL WWW   Вверх
KaraKum
Дата 7.12.2007, 13:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата(regis @ 7.12.2007,  13:09)
А по поводу восстановления объектных файлов до исходников на языке высокого уровня, есть старая аналогия: "Это примерно так же просто, как восстановить живую корову из кучи говяжих котлет ." ;)

сложновато...
PM MAIL WWW   Вверх
Loony
Дата 7.12.2007, 13:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Цитата

В принципе моя задача по принципу как у "поклонников": создать приложение к уже существующей программе и получить возможность получать данные о некоторых внутренних для программы объектах.


А какого рода приложение и с какой целью это делается? Возможно уже есть SDK от разработчиков! 
PM MAIL   Вверх
W4FhLF
Дата 7.12.2007, 13:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


found myself
****


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

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



Ну вот буквально недельку назад небеизвестная в определённых кругах группа YAG зарелизила декомпилер от Ильфака(автор IDA) стоимостью 2k$. 

Вот примерчик:

user posted image

А вот результата работы над той же функцией шестнадцатиричныхлучей:

user posted image

Так, что можешь найти сие творение гениальных рук без проблем и облегчить себе жизнь, если совесть позволит конечно smile


--------------------
"Бог умер" © Ницше
"Ницше умер" © Бог
PM ICQ   Вверх
Loony
Дата 7.12.2007, 13:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Цитата

Ну вот, например, стандартная U*X-овская утилита "objdump" умеет (в числе прочего) и дисассемблировать машинный код. Поищите порт под Win -- он работает и с объектными файлами, и с EXE формата PE.


Помоему ему это не очень подходит! Получит он кучу ассемблерных листингов и что делать будет с ними!? Тут должны помочь либо IDA, либо Olly, т.е. дабагер. Только все равно тут работы, в зависимости от сложности защиты программы и наличия необходимых знаний, от нескольких дней до бесконечности! Имхо, не простая это задача в наше время!

Это сообщение отредактировал(а) Loony - 7.12.2007, 13:59
PM MAIL   Вверх
Puoar
Дата 7.12.2007, 15:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



А я видел bat2asm от китайских вундеркиндов
PM MAIL   Вверх
SABROG
Дата 7.12.2007, 15:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Hacker
****


Профиль
Группа: Завсегдатай
Сообщений: 2481
Регистрация: 18.9.2006

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



Цитата(Puoar @ 7.12.2007,  15:23)
А я видел bat2asm от китайских вундеркиндов

Скажем так, сейчас все языки программирования это HLL2ASM, а вот обратное фиг. Только Hex Rays, да и то из того что я увидел врятли он сильно поможет.

Это сообщение отредактировал(а) SABROG - 7.12.2007, 15:50


--------------------
Национальная группа Russian Federation на QtCentre.
PM MAIL   Вверх
W4FhLF
Дата 7.12.2007, 16:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


found myself
****


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

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



Цитата(SABROG @  7.12.2007,  15:49 Найти цитируемый пост)
Только Hex Rays, да и то из того что я увидел врятли он сильно поможет.


exe2compilable_source - это сказка. В любом случае надо обтачивать результат руками и тут у HexRays проблемы, ибо интерактивность листинга с Pseudocode фактически нулевая. В любом случае сначала надо поработать над asm-листингом, а далее уже и псевдокод можно до ума довести. Т.е. без знания ассемблера и процесса дизассемблирования опять же никуда. Но плагин очень хороший, тем более пока только первая версия, если такие вот сливы на паблик не снизят инициативы в его развитии, со стороны автора, то продукт обещает быть очень полезным. 


--------------------
"Бог умер" © Ницше
"Ницше умер" © Бог
PM ICQ   Вверх
KaraKum
Дата 9.12.2007, 07:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата(W4FhLF @ 7.12.2007,  16:10)
Т.е. без знания ассемблера и процесса дизассемблирования опять же никуда.

Основы ассемблера я знаю, но если будет нужно, то освою и весь - дело того стоит, но проблема в том, что я, например, скомпилировав такое консольное приложение :

Код

main()
{
     int a = 4+5;
     return a;
}


после его дизассемблирования получил текстовый файл размером почти 2 мегабайта! Это же роман "Война и мир"! Я понимаю, что и на ассемблере этот фрагмент состоит из нескольких строк, а остальное занимает код стандартных функций Windows, но всё же... 

Это сообщение отредактировал(а) KaraKum - 9.12.2007, 07:55
PM MAIL WWW   Вверх
JackYF
Дата 9.12.2007, 11:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


полуавантюрист
****


Профиль
Группа: Участник
Сообщений: 5814
Регистрация: 28.8.2004
Где: страна тысячи озё р

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



Цитата(KaraKum @  9.12.2007,  07:51 Найти цитируемый пост)
после его дизассемблирования получил текстовый файл размером почти 2 мегабайта!

оо... ты чем компилировал и с какими настройками?..



--------------------
Пожаловаться на меня как модератора можно здесь.
PM MAIL Jabber   Вверх
MAKCim
Дата 9.12.2007, 12:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Воін дZэна
****


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

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



Цитата(KaraKum @  9.12.2007,  07:51 Найти цитируемый пост)
после его дизассемблирования получил текстовый файл размером почти 2 мегабайта! Это же роман "Война и мир"! Я понимаю, что и на ассемблере этот фрагмент состоит из нескольких строк, а остальное занимает код стандартных функций Windows, но всё же... 

что все же?  smile 
Цитата(KaraKum @  9.12.2007,  07:51 Найти цитируемый пост)
Основы ассемблера я знаю, но если будет нужно, то освою и весь - дело того стоит, но проблема в том, что я, например, скомпилировав такое консольное приложение :

кроме ассемблера обязательно нужно знание формата исполняемых файлов (или библиотек)
тогда можно быстро отметать ненужную тебе информацию


--------------------
Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі ©

PM MAIL   Вверх
KaraKum
Дата 9.12.2007, 13:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата(JackYF @ 9.12.2007,  11:17)
оо... ты чем компилировал и с какими настройками?..

Visual C++ 7. Никакие настройки не менял. Есть возможность сократить размер конечного файла?
PM MAIL WWW   Вверх
JackYF
Дата 9.12.2007, 14:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


полуавантюрист
****


Профиль
Группа: Участник
Сообщений: 5814
Регистрация: 28.8.2004
Где: страна тысячи озё р

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



Цитата(KaraKum @  9.12.2007,  13:22 Найти цитируемый пост)
Есть возможность сократить размер конечного файла?

Да. Раз у тебя визуалка, просмотри настройки компилятора, там их не мало и скомпиль в релиз-варианте.


--------------------
Пожаловаться на меня как модератора можно здесь.
PM MAIL Jabber   Вверх
KaraKum
Дата 11.12.2007, 17:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата

А какого рода приложение и с какой целью это делается? Возможно уже есть SDK от разработчиков!

Вобщем, всё что нужно - это возможность получать информацию о динамическом изменении уже созданной программы и способность отправлять этой программе сообщения, подобно пользователю.
Проблема заключается в получении информации из работающей программы. Декомпилированный .exe файл этой программы весит 7Mb в текстовом формате  smile !

Это сообщение отредактировал(а) KaraKum - 11.12.2007, 19:06
PM MAIL WWW   Вверх
Lycifer
Дата 6.5.2008, 14:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Цитата

5 минут назад дизассемблировал собственную программу размером в 2500 строк (160Кб) (на языке С++), а получилась программа на языке ассемблера, наверное, в миллиард строк, а что делать с прогами в десятки мегабайт? Стоит пытаться понять такие программы или жизни не хватит?

Конечно, так как С++ тянет всё что ему пожелается(то и есть заголовочные файлы, стандартные функции...)

Дизассемблер тебе не поможет понять логику.
Можеш использовать отладчики(sowt-ice, с его установкой помочь не могу), ну или встроеный в Windows Debug(то и есть (отладчик==дзенщик)=true)
 smile 
PM MAIL ICQ   Вверх
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   Вверх
bsa
Дата 8.5.2008, 18:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



Цитата(Lycifer @ 8.5.2008,  17:15)
bsa, не выдумывай глупасти.
Я ничего не выдумываю.
Цитата(Lycifer @ 8.5.2008,  17:15)
ТО что ты проставил "nop" вместо проверки значения(а то и просто сделал переход к метке) - это все на энтуитивном уровне понятно.
А я как-то сильно этим не горжусь, я просто привел пример успешного взлома защиты.
Цитата(Lycifer @ 8.5.2008,  17:15)
Так вот на счет подпись - почитай прежде чем писать(алгоритмы там не причем).
Я прекрасно знаю, что такое подпись. Но кроме нее, существует еще процедуры, которые ее считают, проверяют и делают выводы. Кто мешает их отключить? Пусть даже там все шифруется, кто мешает узнать алгоритм с ключем и расшифровать своими методами?
Цитата(Lycifer @ 8.5.2008,  17:15)
Так что бы забить "nop", лучше  отладчиком чем дизассемблером.
Чтобы забить NOP, нужно пользоваться Hex-редактором, а чтобы найти куда забить, лучше всего пользоваться дизассемблером.
Цитата(Lycifer @ 8.5.2008,  17:15)
Насчет xml: Защиту строят так что бы "ХАКЕРАМ"   было менее понятно(Например в .xml сохраняется класс и после чего требуется большое время что бы что-то из этого понять, так как его писал не человек, а машина) - так что дизассемблер это чисто так, что бы умнее казатся.
Ты то сам про XML что-нибудь знаешь? Просто у меня в проекте этих XML несколько штук (и некоторые генерируются автоматически при сборке), но я бы не сказал, что это сильно кому-то затруднит взлом, скорее наоборот.
Кстати, когда содержимое класса куда-то сохраняется, то это, по моему, зовется сериализацией. Думаю, эта процедура не заслуживает, чтобы ей занимались через дизассемблер.

Ладно. Все это был оффтопик.
А по теме могу сказать, что существуют два типа действий: обратимые и необратимые. Так вот, компиляция - это необратимое действие, так как исходный текст программы получить невозможно в принципе, а при очень большом везении (компилятор в принципе не знает, что такое оптимизация) можно получить исходный текст похожий на оригинал только с относительно низкоуровневых языков (С, Pascal). А программу написанную на С++ еще сложнее преобразовать к исходному тексту, так как там используются шаблоны и пространства имен...
PM   Вверх
Lycifer
Дата 8.5.2008, 18:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Цитата

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

С этим я стобой согласен

xml: у меня сейчас в проекте их тысячи(проект пишу понятное дело не сам), как раз  в этом проекте используется xml файл для защиты(правда не только он), Сначала программа была написана для сериализации ключа, в проекте xml дисиализуется и проверка происходит со сравнениями(при этом всем проверка в нескольких файлах), также идет  в набор к этом key.snk(если ты знаеш что это, если не знаеш то почитай)

Добавлено через 47 секунд
Насчет key.snk - товзлом отладчиком здесь ой как нужен
PM MAIL ICQ   Вверх
dumb
Дата 8.5.2008, 18:55 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


sceloglauxalbifacies
****


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

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



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

на воре шапка горит (с) народ

но ты выбрал не лучшее место для своего пальцо-загибательства.
PM MAIL   Вверх
Любитель
Дата 9.5.2008, 00:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


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


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

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



Цитата(Lycifer @  8.5.2008,  17:50 Найти цитируемый пост)
На счет .xml туда стока всего можно заполнить что бкз отладчика разобраться не реально(бывает что просто не реально = человеческой жизни просто не хватит)Всякие придуманные бинарные данные, если их будет сотен пять(строк) то что бы понять какой какой действительный.... Да, а еще прикольно когда выставляют последовательное сравнение этих строк в хаотическом порядки при чем можно очень долго улучшать защиту= большой логике что поломать в принципе не возможно.

При чём тут именно XML? ;) Короче весь разговор об XML реально ни о чём smile Дизасм часто полезен. И говорить, что дизасм нужен, чтоб "умней казаться" по меньшей мере глупо.

ЗЫ Предлагаю закончить обсуждение smile

Добавлено через 2 минуты и 18 секунд
Цитата(Lycifer @  8.5.2008,  18:19 Найти цитируемый пост)
Насчет key.snk - товзлом отладчиком здесь ой как нужен

Сам понял, что сказал? Понятия не имею, что за key.snk, знаю, что *.snk в .Net используются для цифровой подписи (strong name key). При чём отладчик и что значит "взлом key.snk"?


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


Шустрый
*


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

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



Если когото редактирования exe файла не повергает в шок - значит он совсем не знает что такое серьезная программа.
Я не хочу больше с вами спорить - это бесполезно
PM MAIL ICQ   Вверх
KaraKum
Дата 16.5.2008, 10:31 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Именно.
Приблизительно можно посчитать время, которое потратится на перевод .exe-файла в .cpp: время её создания умноженное на количество людей, которые её делали + сложность, связанная с непониманием того как именно разроботчики реализовывали те или иные вещи. Вообщем на переделку какой-нибудь среднестатистической игры может уйти с десяток лет - проще самому написать новую.
PM MAIL WWW   Вверх
bsa
Дата 16.5.2008, 12:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



KaraKum, а никто не пытается восстанавливать исходный код программы - это бессмысленно. Дизассемблирование нужно исключительно с целью "понять, как же они это сделали" и не более того. Большинство функций можно восстановить просто зная входные и выходные данные.
PM   Вверх
klfd
Дата 18.5.2008, 11:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



...

Это сообщение отредактировал(а) klfd - 18.5.2008, 11:34
PM MAIL   Вверх
500mhz
Дата 18.5.2008, 11:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


шайтан
***


Профиль
Группа: Завсегдатай
Сообщений: 1017
Регистрация: 5.5.2008
Где: Киев / Italy

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



http://boomerang.sourceforge.net/
вот вам "преобразователь"


--------------------

PM MAIL ICQ   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

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

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

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

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


 




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


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

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