Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.88/26: Рейтинг темы: голосов - 26, средняя оценка - 4.88
4 / 2 / 0
Регистрация: 23.02.2014
Сообщений: 133

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

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

Студворк — интернет-сервис помощи студентам
Возможно ли получить исходник программы на c++? Если да, то как от этого защититься?
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
25.06.2014, 11:50
Ответы с готовыми решениями:

Русификация исходника
Помогите- Подскажите. Как внедрить глифы (кириллические) в FLA файл. Пытаюсь русифицироавть flash шаблон с сайта ТМ. Кто знает как...

Компиляция исходника
Нужна небольшая помощь. Есть исходник, нужно скомпилировать програму. Она небольшая - форма + график + немного мат. вычислений. Проблема в...

Поиск исходника в 1С
Мне надо вытащить один модуль из встроенного языка 1С. Я не пользовался никогда этой программой. Не подскажете ли последовательность...

12
 Аватар для Kuzia domovenok
4268 / 3327 / 926
Регистрация: 25.03.2012
Сообщений: 12,532
Записей в блоге: 1
25.06.2014, 11:52
не надо от этого защищаться. Программы никакой ценности представлять не могут.
0
654 / 575 / 164
Регистрация: 13.12.2012
Сообщений: 2,124
25.06.2014, 11:53
Цитата Сообщение от parka242 Посмотреть сообщение
Возможно ли получить исходник программы на c++?
адэкватных переводчиков нет, есть только дизассембляторы(ассемблерный код получить), но из него много инфы не вынесешь если приложение достаточно сложное
0
4 / 2 / 0
Регистрация: 23.02.2014
Сообщений: 133
25.06.2014, 13:31  [ТС]
Просто знаю, что с c# код хорошо получают (т.е там все понятно без ассемблера), могут ли сделать это в с++

Добавлено через 1 час 33 минуты
Узнал что можно часть кода прятать на сервер. Как это осуществить?
0
Почетный модератор
7393 / 2639 / 281
Регистрация: 29.07.2006
Сообщений: 13,696
25.06.2014, 13:33
Как этот форум работает? Код на сервере. Тадам.

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

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

А вообще, ваш вопрос для меня звучит так "У меня есть банан, его нужно защитить, возможно ли это???"
0
4 / 2 / 0
Регистрация: 23.02.2014
Сообщений: 133
25.06.2014, 13:44  [ТС]
Да, мой случай
0
19497 / 10102 / 2461
Регистрация: 30.01.2014
Сообщений: 17,808
25.06.2014, 13:44
Лучший ответ Сообщение было отмечено parka242 как решение

Решение

Цитата Сообщение от parka242 Посмотреть сообщение
Просто знаю, что с c# код хорошо получают (т.е там все понятно без ассемблера), могут ли сделать это в с++
Так же просто как в С# не получится. Принципы сборки программ отличаются. С# код компилируется в код на языке MSIL\CIL, при выполнении этот код (байт-код) интерпретируется виртуальной машиной .NET CLR. Существенные отличия в том, что байт-код содержит всю необходимую информацию (т.е. обладает определенной избыточностью), что позволяет без потерь (в автоматизированном режиме и даже в ручном режиме, при определенной сноровке) восстановить оригинальный исходный текст. Результат же компиляции С++, машинный код, никакой избыточности не содержит, более того, очень часто оптимизатор компилятора осуществляет некоторые трансформации для ускорения или сокращению размера. Без знания механизмов этих трансформаций применительно к конкретному компилятору восстановить исходник практически нереально.
Проще говоря, если сложить все факторы вместе и предположить, что твоей программой будет заниматься человек, который:
1) Отлично знает ассемблер для целевой платформы;
2) Отлично знает механизмы оптимизаций в современных компиляторах и умеет раскручивать оптимизированный ассемблерный код;
3) Знает С++ и представляет во что превращается тот или иной код на С++ и какие еще дополнительные операции неявно будут исполнены;
4) Обладает свободным временем и мотивацией изучать твою программу;
так вот, такой человек, после большого количества времени, проведенного в исследовании твоей программы, сможет в 99% случаев только заново написать исходный код, которые делает тоже самое, что и твой. Т.е. это не будет декомпиляцией в полном смысле этого слова. Это будет большая исследовательская работа + написанный собственноручно код, использующий данные этого исследования, пересказ.

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

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

Добавлено через 1 минуту
Не хочешь светить код - пиши сайт и все. Функционал такой же, код целиком на сервере. Все равно твой "клиент" не будет работать без сервера. Так пусть это будет браузер, нечего велосипеды плодить на каждом шагу.
2
98 / 101 / 30
Регистрация: 21.10.2012
Сообщений: 320
25.06.2014, 13:57
Вот интересный ресурс http://demono.ru/Articles/article_1.aspx
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
25.06.2014, 13:57
Помогаю со студенческими работами здесь

Запуск исходника
Мне нужно очень срочно использовать скомпилировать этот исходник https://www.sendspace.com/file/a2uri9 он выдает ошибку компонентов...

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

Программа без исходника
Привет всем! Нету исходника .cpp, но есть данные БД в формате .db. Посоветуйте, чем открыть этот формат. В инете искал про BDE (Borland...

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

Компиляция исходника Delphi
Извините за нубский вопрос), но есть готовый файл он состоит из 3х компонентов test.dll, test.ini, test.asi. Также есть исходники. Пробовал...


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

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru