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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 5.00
parka242
4 / 2 / 1
Регистрация: 23.02.2014
Сообщений: 133
#1

Возможна ли декомпиляция исходника? - C++

25.06.2014, 11:50. Просмотров 1385. Ответов 12
Метки нет (Все метки)

Возможно ли получить исходник программы на c++? Если да, то как от этого защититься?
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.06.2014, 11:50
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Возможна ли декомпиляция исходника? (C++):

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

Скачивание html исходника - C++
Здравствуйте) Хочу попросить помощи в следующем: Есть интернет страница с полем ввода данных (номер) после ввода номера на странице...

Заменить кусок исходника - C++
Добрый день, Вы уж простите меня, что я так нагло, со своими глупостями, но может подскажет кто из добрых людей. Суть собственно вот...

получения исходника из exe - C++
у меня есть один файл, и я хочу получить его исходник. и у меня такой вопрос:как мне это сделать? P.S. ответов типа "это невозможно"...

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

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

12
Kuzia domovenok
1891 / 1746 / 118
Регистрация: 25.03.2012
Сообщений: 5,926
Записей в блоге: 1
25.06.2014, 11:52 #2
не надо от этого защищаться. Программы никакой ценности представлять не могут.
0
aLarman
642 / 563 / 89
Регистрация: 13.12.2012
Сообщений: 2,109
25.06.2014, 11:53 #3
Цитата Сообщение от parka242 Посмотреть сообщение
Возможно ли получить исходник программы на c++?
адэкватных переводчиков нет, есть только дизассембляторы(ассемблерный код получить), но из него много инфы не вынесешь если приложение достаточно сложное
0
parka242
4 / 2 / 1
Регистрация: 23.02.2014
Сообщений: 133
25.06.2014, 13:31  [ТС] #4
Просто знаю, что с c# код хорошо получают (т.е там все понятно без ассемблера), могут ли сделать это в с++

Добавлено через 1 час 33 минуты
Узнал что можно часть кода прятать на сервер. Как это осуществить?
0
Vourhey
Почетный модератор
6482 / 2256 / 123
Регистрация: 29.07.2006
Сообщений: 12,635
25.06.2014, 13:33 #5
Как этот форум работает? Код на сервере. Тадам.

Добавлено через 24 секунды
А по теме - фигней не страдай.
0
parka242
4 / 2 / 1
Регистрация: 23.02.2014
Сообщений: 133
25.06.2014, 13:36  [ТС] #6
Всмысле фигней. Я делаю программу на с++. Спросил возможно ли получить будет исходник моей программы и как часть кода спрятать на сервер, чтобы даже если исходник получен, то там ничего важного не было. И причем тут форум?
0
Vourhey
Почетный модератор
6482 / 2256 / 123
Регистрация: 29.07.2006
Сообщений: 12,635
25.06.2014, 13:40 #7
Цитата Сообщение от parka242 Посмотреть сообщение
Спросил возможно ли получить будет исходник моей программы
Тебе уже ответили, что нет.
Цитата Сообщение от parka242 Посмотреть сообщение
как часть кода спрятать на сервер, чтобы даже если исходник получен, то там ничего важного не было
Что значит "как?" Просто! Строишь архитектуру своего приложения так, что работает часть у клиента, часть у сервера. Вот тебе форум - пример. У клиента браузер, форум на сервере. Профит, блин.

Добавлено через 20 секунд
Цитата Сообщение от parka242 Посмотреть сообщение
Всмысле фигней.
Да в прямом. Кому сдался твой исходник... Кому надо сломать - сломают без исходника.
0
parka242
4 / 2 / 1
Регистрация: 23.02.2014
Сообщений: 133
25.06.2014, 13:41  [ТС] #8
Я сейчас говорю не про то, что кому он сдался. Раз мне нужно защититься, то значит так. И почему это на с++ нельзя получить исходник, а на с# можно?
0
LifeMoroz
11 / 11 / 3
Регистрация: 12.10.2013
Сообщений: 54
25.06.2014, 13:43 #9
Код прячут на сервере, когда пишут клиент-серверное приложение (ваш случай?).
В любом случае - да можно, если достаточно сильно будет нужно. Другой вопрос, что скорее всего написать заного будет проще чем из дизассемблированного кода восстанавлить исходник в читаемом виде.

А вообще, ваш вопрос для меня звучит так "У меня есть банан, его нужно защитить, возможно ли это???"
0
parka242
4 / 2 / 1
Регистрация: 23.02.2014
Сообщений: 133
25.06.2014, 13:44  [ТС] #10
Да, мой случай
0
DrOffset
7323 / 4423 / 1001
Регистрация: 30.01.2014
Сообщений: 7,260
25.06.2014, 13:44 #11
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
Цитата Сообщение от parka242 Посмотреть сообщение
Просто знаю, что с c# код хорошо получают (т.е там все понятно без ассемблера), могут ли сделать это в с++
Так же просто как в С# не получится. Принципы сборки программ отличаются. С# код компилируется в код на языке MSIL\CIL, при выполнении этот код (байт-код) интерпретируется виртуальной машиной .NET CLR. Существенные отличия в том, что байт-код содержит всю необходимую информацию (т.е. обладает определенной избыточностью), что позволяет без потерь (в автоматизированном режиме и даже в ручном режиме, при определенной сноровке) восстановить оригинальный исходный текст. Результат же компиляции С++, машинный код, никакой избыточности не содержит, более того, очень часто оптимизатор компилятора осуществляет некоторые трансформации для ускорения или сокращению размера. Без знания механизмов этих трансформаций применительно к конкретному компилятору восстановить исходник практически нереально.
Проще говоря, если сложить все факторы вместе и предположить, что твоей программой будет заниматься человек, который:
1) Отлично знает ассемблер для целевой платформы;
2) Отлично знает механизмы оптимизаций в современных компиляторах и умеет раскручивать оптимизированный ассемблерный код;
3) Знает С++ и представляет во что превращается тот или иной код на С++ и какие еще дополнительные операции неявно будут исполнены;
4) Обладает свободным временем и мотивацией изучать твою программу;
так вот, такой человек, после большого количества времени, проведенного в исследовании твоей программы, сможет в 99% случаев только заново написать исходный код, которые делает тоже самое, что и твой. Т.е. это не будет декомпиляцией в полном смысле этого слова. Это будет большая исследовательская работа + написанный собственноручно код, использующий данные этого исследования, пересказ.

Что же касается взлома, раньше ходила такая шутка, про русских shareware-разработчиков, мол "90% кода программы занимает защита от взлома и только 10% полезная функциональность".
Я тебе скажу так, если захотят взломать программу - взломают, и никакие обфускаторы, криптозащиты, генерация кода в рантайме и т.п. приему не спасут. Просто это на какое-то время усложнит жизнь людям с перечисленными выше качествами.
1
Vourhey
Почетный модератор
6482 / 2256 / 123
Регистрация: 29.07.2006
Сообщений: 12,635
25.06.2014, 13:48 #12
Цитата Сообщение от parka242 Посмотреть сообщение
И почему это на с++ нельзя получить исходник, а на с# можно?
Потому что исполняемый формат разный.

Добавлено через 20 секунд
Цитата Сообщение от parka242 Посмотреть сообщение
Раз мне нужно защититься, то значит так.
Тебе не нужно, ты просто сам этого пока не знаешь.

Добавлено через 1 минуту
Не хочешь светить код - пиши сайт и все. Функционал такой же, код целиком на сервере. Все равно твой "клиент" не будет работать без сервера. Так пусть это будет браузер, нечего велосипеды плодить на каждом шагу.
2
Denno
54 / 57 / 9
Регистрация: 21.10.2012
Сообщений: 208
Завершенные тесты: 3
25.06.2014, 13:57 #13
Вот интересный ресурс http://demono.ru/Articles/article_1.aspx
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.06.2014, 13:57
Привет! Вот еще темы с ответами:

декомпиляция exe - C++
вот погуглил немного... вижу, что декомпиляция относительно небольшой программы вполне возможна. Если в самой программе в переменных...

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

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

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


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

Или воспользуйтесь поиском по форуму:
13
Yandex
Объявления
25.06.2014, 13:57
Ответ Создать тему
Опции темы

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