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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 76, средняя оценка - 4.63
SlesherY
6 / 6 / 1
Регистрация: 14.11.2011
Сообщений: 54
#1

декомпиляция exe - C++

22.11.2011, 14:46. Просмотров 10893. Ответов 9
Метки нет (Все метки)

вот погуглил немного... вижу, что декомпиляция относительно небольшой программы вполне возможна.
Если в самой программе в переменных инициализированные например значения с данными к БД, можно их извлечь при декомпиляции? Интересуют все варианты, включая снова сишный вариант и также ассемблерный.
З.Ы. Вопрос интересует с точки зрения отладки и защиты своего приложения, а не взлома чужего.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.11.2011, 14:46
Здравствуйте! Я подобрал для вас темы с ответами на вопрос декомпиляция exe (C++):

Декомпиляция С++ - C++
Товарисчи с++ разработчики, тут возникла такая проблема, связанная с декомпиляцией с++ приложений. Увы, познания конкретно в этом языке у...

Декомпиляция из dll в C++ - C++
У меня есть библиотека dll, как её можно декомпилировать в C++? Точно знаю, что она написана на C++ Пытался декомпилировать вот тут...

Декомпиляция программы - C++
Люди, никто не знает можно ли декомпелировать программу написаную на языке Си в исходный код?

Возможна ли декомпиляция исходника? - C++
Возможно ли получить исходник программы на c++? Если да, то как от этого защититься?

Декомпиляция dll файла - C++
Читал, все говорят что можно, а чем не пишут. Сам файл размером 101 Кб. Написан он по любому на C и/или C++. Как его можно...

Декомпиляция объектных файлов и жестокая реальность - C++
Появилось страшно неприодолимое желание подумать над этой темой. Появилось не одно, а вместе с гибелью небольшой папки с небольшим текстом....

9
-=ЮрА=-
Заблокирован
Автор FAQ
22.11.2011, 15:00 #2
SlesherY,
Цитата Сообщение от SlesherY Посмотреть сообщение
Если в самой программе в переменных инициализированные например значения с данными к БД, можно их извлечь при декомпиляции?
- вполне, особенно если это строковые литералы. OllyDbg - неплохой дисасемблер (есть пошаговое выполнение и многое другое)
1
SlesherY
6 / 6 / 1
Регистрация: 14.11.2011
Сообщений: 54
22.11.2011, 15:16  [ТС] #3
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
вполне, особенно если это строковые литералы
ну вот так в принципе оно и есть, и єто не может не волновать. И что же делать?
Программа планируется распространятся ссвободно, и подключение будет осуществлятся к централизованной единой БД. Что можете посоветовать? Может, какие материалы?
Если сделать литералы изначально зашифрованными, а походу программы расшифровывать? Но алгоритм шифрования ведь тоже можно проследить...

Добавлено через 7 минут
да, скачал OllyDbg, хотя первый раз работаю с ассемблером, и с этой программой, за 3 минуты в первых 200 строчках нашел данные к своей БД... печально.. как уберечь?
0
-=ЮрА=-
Заблокирован
Автор FAQ
22.11.2011, 15:19 #4
Цитата Сообщение от SlesherY Посмотреть сообщение
И что же делать?
- кто захочет тот всегда взломает, однако можно немножко замутить воду. Скажем вы вбили литерал не буквами а собрали массив с кодами символов, в программе(это уже не так на поверхности лежать будет). 2-е основную функцию подключения и работы с БД делайте с ключом значение которого 0 если все символы литерала совпали, иначе он будет ненулевым, ну и в вычислениях делайте что то типа этого
a = 2 + 2 + key; //Отработает правильно только если key == 0
Поверьте даже если вам сломают условие
if(Введенный пароль != эталон)
выход из программы
else
работа
А ведь так и поступают при крэке, ломатель споткнётся о неверно работающий алгоритм...
1
SlesherY
6 / 6 / 1
Регистрация: 14.11.2011
Сообщений: 54
22.11.2011, 15:36  [ТС] #5
-=ЮрА=-, спасибо...ну хоть какое-то направление...
а то смотрю что эти всякие обфускаторы в принципе штука ненадежная...
0
-=ЮрА=-
Заблокирован
Автор FAQ
22.11.2011, 15:42 #6
SlesherY, помните для опытного ломателя всё наши ухищрения лишь оттягивают неизбежный взлом! Однако "ломают всё" лишь люди с очень высоким уровнем знаний, который должен быть на порядок выше уровня устанавливаемой защиты. Таким образом поставив средний уровень защиты, ломать наши приложения смогут лишь "гуру", а таких людей не очень то и много
0
SlesherY
6 / 6 / 1
Регистрация: 14.11.2011
Сообщений: 54
22.11.2011, 15:49  [ТС] #7
-=ЮрА=-, ну сейчас у многих хакер-тимах появилась очень нехорошая привычка выкладывать свои работы в сеть, и даже делать свои программы с теми же данными, выпуская их в инет...
Но вобщем вы правы.
0
easybudda
Модератор
Эксперт CЭксперт С++
9681 / 5631 / 954
Регистрация: 25.07.2009
Сообщений: 10,808
22.11.2011, 15:59 #8
Цитата Сообщение от SlesherY Посмотреть сообщение
Программа планируется распространятся ссвободно, и подключение будет осуществлятся к централизованной единой БД. Что можете посоветовать?
Вообще как-то идеологически неправильно в свободно распространяемой программе держать пароль от какой-то глобальной базы данных. По-моему правильнее разбить программу на клиентскую и серверную части. С самой БД общается серверная, клиентская часть подключается к ней, при чём, если клиентская часть раздаётся направо/налево, то в ней и пароли по сути никакие не нужны. Из минусов усложнение всего замута, из плюсов - просто так базу будет не порушить, прийдётся удалённо ломать серверную часть, а это совсем не то же самое, что расковырять клиента на своём компе...

Добавлено через 5 минут
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
основную функцию подключения и работы с БД делайте с ключом значение которого 0 если все символы литерала совпали, иначе он будет ненулевым, ну и в вычислениях делайте что то типа этого
a = 2 + 2 + key; //Отработает правильно только если key == 0
Грубо говоря весь взлом будет сводиться к замене JZ на JMP. Классическое "как два байта обнулить"...
2
SlesherY
6 / 6 / 1
Регистрация: 14.11.2011
Сообщений: 54
22.11.2011, 16:07  [ТС] #9
короче я походу просто не с той стороны зашел. Проанализировав все ответы, сделал для себя выводы и все учел. Спасибо, скорее всего, это еще не последние мои обращения...
0
-=ЮрА=-
22.11.2011, 16:17     декомпиляция exe
  #10

Не по теме:

Цитата Сообщение от easybudda Посмотреть сообщение
JZ на JMP
я писал об єтом
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
if(Введенный пароль != эталон)
выход из программы
else
работа
if(Введенный пароль == эталон)
выход из программы
else
работа

Ну а что будете делать если єкзешник заработает но неправильно???

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.11.2011, 16:17
Привет! Вот еще темы с ответами:

Декомпиляция программы - C++
Как декомпилировать программу? И как узнать на каком языке она написана?

Декомпиляция dll - C++
Возможна ли декомпиляция dll'ки, защищенной Themida, если есть ThemidaSDK.h и Obfuscator.cpp, с помощью которых была скомпилирована эта dll...

Почему экзешник make.exe (вернее, его разновидность mingw32-make.exe) принимает неизвестные параметры? - C++
Друзья! У меня есть одна из сборок mingw, а там, как известно файл make.exe отсутствует, а вместо него есть файл mingw32-make.exe Суть...

Создать exe, запускающий exe - C++
Говорю сразу: я ничего не смыслю в програмировании; зачем подался на такой форум? Надеюсь получить ответ на свой вопрос,упавая на то, что...


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

Или воспользуйтесь поиском по форуму:
10
22.11.2011, 16:17
Ответ Создать тему
Опции темы

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