30 / 30 / 2
Регистрация: 24.04.2022
Сообщений: 552
Записей в блоге: 2

Как защитить исполняемый файл от декомпиляции?

19.12.2022, 23:10. Показов 1646. Ответов 11

Author24 — интернет-сервис помощи студентам
Мы тут немного разобрались с процессом декомпиляции, а потому переходим к главному - как можно защитить исполняемый файл от декомпиляции? Прошу, по возможности, сообщать свои решения подробнее!
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
19.12.2022, 23:10
Ответы с готовыми решениями:

Как защитить исполняемый файл (.exe) от модификации?
Собираюсь залить в Интернет своё click-once-приложение для скачивания в виде обычного exe-файла. Как защитить исполняемый файл от...

Как защитить программу от декомпиляции
Всем привет. Возникла идея написать прогу, которая бы защищала бинарники от декомпиляции, дабы сохранить все алгоритмы в строгой...

Как защитить Java-программу от декомпиляции
Как можно защитить свою программу от декомпиляции, или хотя бы скрыть переменные, в которых могут хранится данные, которые люди при...

11
419 / 311 / 107
Регистрация: 30.08.2022
Сообщений: 1,195
19.12.2022, 23:44
Никак. Захотят, вскроют
Вопрос только в целесообразности этого
Но если хотите
exe packers
exe protectors
Слова для поиска. Самих их я озвучивать не буду

Добавлено через 7 минут
Ну и да
Ещё обфускация c++ как вариант
0
Модератор
Эксперт Java
 Аватар для alecss131
2743 / 1237 / 391
Регистрация: 11.08.2017
Сообщений: 3,837
Записей в блоге: 2
20.12.2022, 01:14
Цитата Сообщение от brian778 Посмотреть сообщение
exe packers
По сути только сжимают бинарники, полезно для экономии места. Обычно антивирусы ругаются на такую упаковку.
Цитата Сообщение от brian778 Посмотреть сообщение
Ещё обфускация c++
Для плюсов бесполезное занятие, так как в релизных бинарниках нету имен и отсылок к исходному коду. Это обычно помогает на java и подобных языках.

А так да, нету невзламываемой защиты (если только логику на сервере выполнять и то не 100% гарантия). Можно только отсрочить взлом. Всегда найдутся люди которые сломают, не изза денег так для утешения самолюбия (типа мол вон что умею сломать).
Из защит (если судить по играм) держится denuvo прилично (но и раздувает бинарник до гига если не больше). Но она коммерческая.
Обычно хватает "умной" защиты, чтобы уж совсем нубы не обошли, а кому надо сломать сломают.

Декомпилируют обычно для взлома или модификации. Для получения исходников глупая затея.
Из бинарника в релизной сборке исходники не получить, как уже было сказано в прошлой теме.
0
419 / 311 / 107
Регистрация: 30.08.2022
Сообщений: 1,195
20.12.2022, 01:37
Цитата Сообщение от alecss131 Посмотреть сообщение
Для плюсов бесполезное занятие, так как в релизных бинарниках нету имен и отсылок к исходному коду
Не в именах же дело. Код можно так запутать что там сам чёрт ногу сломит разбираться

Добавлено через 11 минут
Цитата Сообщение от alecss131 Посмотреть сообщение
Обычно антивирусы ругаются на такую упаковку
Code signing помогает, правда это не тот случай что тут разбирается (тут вообще не известо какой случай рассматривается)
0
19413 / 10031 / 2444
Регистрация: 30.01.2014
Сообщений: 17,697
20.12.2022, 14:55
Able man, один из подходов: самомодифицирующийся код.
Статья по теме: https://www.esat.kuleuven.be/c... e-1529.pdf

Конкретный пример, где это применялось именно для защиты от взлома: Skype.
В свое время Крис Касперски в журнале Хакер публиковал статью. Эта статья во многом базируется на докладе Philippe Biondi и Fabrice Desclaux с конференции BlackHat Europe в 2006 году, где подробно рассматривались защиты, примененные на тот период в Skype.
Правда наличие подобных материалов также говорит о том, что все эти ухищрения не остановят при желании. Также на вики про skype написано, что взломом его протокола с целью прослушивания занимались целые страны и таки преуспели в этом. В общем у каждого такого решения есть предел прочности, нужно это учитывать, если собираетесь реализовывать нечто подобное. И самое главное, защита не должна быть помехой для пользовательского опыта. В этом ключе можно вспомнить широко применявшуюся в начале 2000х защиту Star Force, которая зачастую даже легальным пользователям мешала использовать защищаемую программу.

-----
PS. Все описанное выше про skype не является применимым к действующему ПО skype от Microsoft. Сейчас у программы другой владелец, другой протокол и код, по большей части, тоже другой.
1
Модератор
Эксперт Java
 Аватар для alecss131
2743 / 1237 / 391
Регистрация: 11.08.2017
Сообщений: 3,837
Записей в блоге: 2
20.12.2022, 15:17
Цитата Сообщение от DrOffset Посмотреть сообщение
журнале Хакер публиковал статью
Да уж, не знаю был ли клиент на мобильных яблоках до выкупа мелкософтом, но яблоки такое в свой магазин не пускают, для отказа хватает использования непубличных апи, недокументированных возможностей или низкоровневых вызовов.
Цитата Сообщение от DrOffset Посмотреть сообщение
защиту Star Force
Знакомая вещь, даже ностальгией повеяло. Особенно переход на 7 винду и выше частенько приводил к поломке системы после установки драйверов защиты. Хотя сейчас есть люди которые собирают игры с ней и снимают ее.

Что-то наподобие скайпа думаю написать на чистых плюсах невозможно, тут без ассемблера не обойтись. Это не считая нехилых знаний нужных для данных манипуляций. Или я ошибаюсь?
Хотя даже использование самомодифицирующегося на кода на плюсах задачка нетривиальная.
0
19413 / 10031 / 2444
Регистрация: 30.01.2014
Сообщений: 17,697
20.12.2022, 15:27
Цитата Сообщение от alecss131 Посмотреть сообщение
Что-то наподобие скайпа думаю написать на чистых плюсах невозможно, тут без ассемблера не обойтись. Это не считая нехилых знаний нужных для данных манипуляций. Или я ошибаюсь?
Нет, не ошибаетесь.
Но некоторые описанные в статье приемы можно повторить и без ассемблера.

Добавлено через 4 минуты
Кстати, статья из журнала неполная (видимо специально). Вот нашелся черновик самого Мыщъха, где именно технической информации побольше.
0
20.12.2022, 15:37

Не по теме:

Был потрясён когда его не стало. Человек реально разбирался во всей кухне

0
617 / 513 / 104
Регистрация: 05.08.2022
Сообщений: 2,768
28.12.2022, 13:29
Цитата Сообщение от alecss131 Посмотреть сообщение
Что-то наподобие скайпа думаю написать на чистых плюсах невозможно
Скайп на дельфи был до MS. Так, из раздела "интересное рядом" и про то можно ли на С++
(про наличие ассемблерных вставок не знаю)
0
19413 / 10031 / 2444
Регистрация: 30.01.2014
Сообщений: 17,697
28.12.2022, 13:43
Цитата Сообщение от KSergey9 Посмотреть сообщение
Скайп на дельфи был до MS.
На делфи там был UI. Остальное на C++.
1
Эксперт С++
 Аватар для _lunar_
3701 / 2835 / 451
Регистрация: 03.05.2011
Сообщений: 5,193
Записей в блоге: 21
29.12.2022, 10:00
Цитата Сообщение от Able man Посмотреть сообщение
Как защитить исполняемый файл от декомпиляции?
не знаю в чём вы там разобрались - декомпиляция и дизассемблирование разные вещи.
первое это обфускация, которая вскрывается элементарно просто.
защита от второго - виртуализация (vmprotect, denuvo и прочее).
0
597 / 419 / 136
Регистрация: 02.10.2008
Сообщений: 1,782
Записей в блоге: 1
29.12.2022, 13:12
Цитата Сообщение от alecss131 Посмотреть сообщение
Для плюсов бесполезное занятие, так как в релизных бинарниках нету имен и отсылок к исходному коду.
Крис Касперски в одной из своих статей показал как можно обфусцировать указатели и строковые литералы до неузнаваемости. Речь об этом, а не про "нечитабельность исходника".
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
29.12.2022, 13:12
Помогаю со студенческими работами здесь

Как защитить базу данных от декомпиляции?
Имеется строка подключения в самом приложении, как сделать так, что бы пароль и все данные от сервера брались из файла с самого сервера? ...

Как защитить свою программу от декомпиляции?
Сабж.

Кто знает, как защитить игру от кряков, декомпиляции и нарезки ресурсов в неограниченном количестве?
Вот в чем вопрос. Слышал про WinLicense (это от кряков), но 1 - не знаю, будет ли работать для игр на Game Maker, и 2 - мне, чтобы получить...

Защитить .net приложение от декомпиляции
Знаю тема заезженная, но подходящего материала для новичка так и не нашел. Хочу написать протектор для .net т.е. упаковать не свое, а чужое...

Защитить свою программу от декомпиляции
Каким образом можно защитить свою программу от декомпиляции? Ну чтобы никто при желании несмог получить исходный код?


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

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

Новые блоги и статьи
SwiftUI Data Flow: Передача данных между представлениями
mobDevWorks 23.03.2025
При первом знакомстве со SwiftUI кажется, что фреймворк предлагает избыточное количество механизмов для передачи данных: @State, @Binding, @StateObject, @ObservedObject, @EnvironmentObject и другие. . . .
Моки в Java: Сравниваем Mockito, EasyMock, JMockit
Javaican 23.03.2025
Как протестировать класс, который зависит от других сложных компонентов, таких как базы данных, веб-сервисы или другие классы, с которыми и так непросто работать в тестовом окружении? Для этого и. . .
Архитектурные паттерны микросервисов: ТОП-10 шаблонов
ArchitectMsa 22.03.2025
Популярность микросервисной архитектуры объясняется множеством важных преимуществ. К примеру, она позволяет командам разработчиков работать независимо друг от друга, используя различные технологии и. . .
Оптимизация рендеринга в Unity: Сортировка миллиона спрайтов
GameUnited 22.03.2025
Помните, когда наличие сотни спрайтов в игре приводило к существенному падению производительности? Время таких ограничений уходит в прошлое. Сегодня геймдев сталкивается с задачами совершенно иного. . .
Образование и практика
Igor3D 21.03.2025
Добрый день А вот каково качество/ эффективность ВУЗовского образования? Аналитическая геометрия изучается в первом семестре и считается довольно легким курсом, что вполне справедливо. Ну хорошо,. . .
Lazarus. Таблица с объединением ячеек.
Massaraksh7 21.03.2025
Понадобилась представление на экране таблицы с объединёнными ячейками. И не одной, а штук триста, и все разные. На Delphi я использовал для этих целей TStringGrid, и то, кривовато получалось. А в. . .
Async/await в Swift: Асинхронное программировани­е в iOS
mobDevWorks 20.03.2025
Асинхронное программирование долго было одной из самых сложных задач для разработчиков iOS. В течение многих лет мы сражались с замыканиями, диспетчеризацией очередей и обратными вызовами, чтобы. . .
Колмогоровская сложность: Приёмы упрощения кода
ArchitectMsa 20.03.2025
Наверное, каждый программист хотя бы раз сталкивался с кодом, который напоминает запутанный лабиринт — чем дальше в него погружаешься, тем сложнее найти выход. И когда мы говорим о сложности кода, мы. . .
PostgreSQL в Kubernetes: Подготовка кластера и настройка
Mr. Docker 20.03.2025
Когда доходит до контейнеризации баз данных и особенно таких требовательных к ресурсам системах как PostgreSQL, многие команды до сих пор колеблются, прежде чем перенести их в контейнерную. . .
C++26: Индексирование пакетов и метапрограммиро­вание
bytestream 20.03.2025
Эволюция C++ продолжается стремительными темпами – каждый новый стандарт приносит функциональность, о которой мы мечтали годами. Звучит слишком громко? Если вы когда-либо боролись с вариадическими. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru