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

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

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 5.00
parka242
4 / 2 / 1
Регистрация: 23.02.2014
Сообщений: 133
25.06.2014, 11:50     Возможна ли декомпиляция исходника? #1
Возможно ли получить исходник программы на c++? Если да, то как от этого защититься?
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.06.2014, 11:50     Возможна ли декомпиляция исходника?
Посмотрите здесь:

Декомпиляция программы C++
C++ получения исходника из exe
Заменить кусок исходника C++
декомпиляция exe C++
C++ Скачивание html исходника
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Kuzia domovenok
 Аватар для Kuzia domovenok
1882 / 1737 / 116
Регистрация: 25.03.2012
Сообщений: 5,907
Записей в блоге: 1
25.06.2014, 11:52     Возможна ли декомпиляция исходника? #2
не надо от этого защищаться. Программы никакой ценности представлять не могут.
aLarman
636 / 557 / 89
Регистрация: 13.12.2012
Сообщений: 2,109
25.06.2014, 11:53     Возможна ли декомпиляция исходника? #3
Цитата Сообщение от parka242 Посмотреть сообщение
Возможно ли получить исходник программы на c++?
адэкватных переводчиков нет, есть только дизассембляторы(ассемблерный код получить), но из него много инфы не вынесешь если приложение достаточно сложное
parka242
4 / 2 / 1
Регистрация: 23.02.2014
Сообщений: 133
25.06.2014, 13:31  [ТС]     Возможна ли декомпиляция исходника? #4
Просто знаю, что с c# код хорошо получают (т.е там все понятно без ассемблера), могут ли сделать это в с++

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

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

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

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

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

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

Добавлено через 1 минуту
Не хочешь светить код - пиши сайт и все. Функционал такой же, код целиком на сервере. Все равно твой "клиент" не будет работать без сервера. Так пусть это будет браузер, нечего велосипеды плодить на каждом шагу.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.06.2014, 13:57     Возможна ли декомпиляция исходника?
Еще ссылки по теме:

Массив: при компилировании исходника компилятор выдает ошибку C++
C++ Возможна ли рекурсия или цикл?
C++ Возможна ли константная наследуемость?

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

Или воспользуйтесь поиском по форуму:
Denno
50 / 50 / 6
Регистрация: 21.10.2012
Сообщений: 185
Завершенные тесты: 3
25.06.2014, 13:57     Возможна ли декомпиляция исходника? #13
Вот интересный ресурс http://demono.ru/Articles/article_1.aspx
Yandex
Объявления
25.06.2014, 13:57     Возможна ли декомпиляция исходника?
Ответ Создать тему
Опции темы

Текущее время: 00:38. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru