Как защитить исполняемый файл от декомпиляции?19.12.2022, 23:10. Показов 1646. Ответов 11
Мы тут немного разобрались с процессом декомпиляции, а потому переходим к главному - как можно защитить исполняемый файл от декомпиляции? Прошу, по возможности, сообщать свои решения подробнее!
0
|
19.12.2022, 23:10 | |
Ответы с готовыми решениями:
11
Как защитить исполняемый файл (.exe) от модификации? Как защитить программу от декомпиляции Как защитить Java-программу от декомпиляции |
419 / 311 / 107
Регистрация: 30.08.2022
Сообщений: 1,195
|
|
19.12.2022, 23:44 | |
Никак. Захотят, вскроют
Вопрос только в целесообразности этого Но если хотите exe packers exe protectors Слова для поиска. Самих их я озвучивать не буду Добавлено через 7 минут Ну и да Ещё обфускация c++ как вариант
0
|
Модератор
![]() ![]() |
|
20.12.2022, 01:14 | |
По сути только сжимают бинарники, полезно для экономии места. Обычно антивирусы ругаются на такую упаковку.
Для плюсов бесполезное занятие, так как в релизных бинарниках нету имен и отсылок к исходному коду. Это обычно помогает на java и подобных языках. А так да, нету невзламываемой защиты (если только логику на сервере выполнять и то не 100% гарантия). Можно только отсрочить взлом. Всегда найдутся люди которые сломают, не изза денег так для утешения самолюбия (типа мол вон что умею сломать). Из защит (если судить по играм) держится denuvo прилично (но и раздувает бинарник до гига если не больше). Но она коммерческая. Обычно хватает "умной" защиты, чтобы уж совсем нубы не обошли, а кому надо сломать сломают. Декомпилируют обычно для взлома или модификации. Для получения исходников глупая затея. Из бинарника в релизной сборке исходники не получить, как уже было сказано в прошлой теме.
0
|
419 / 311 / 107
Регистрация: 30.08.2022
Сообщений: 1,195
|
|
20.12.2022, 01:37 | |
Не в именах же дело. Код можно так запутать что там сам чёрт ногу сломит разбираться
Добавлено через 11 минут 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
|
Модератор
![]() ![]() |
|
20.12.2022, 15:17 | |
Да уж, не знаю был ли клиент на мобильных яблоках до выкупа мелкософтом, но яблоки такое в свой магазин не пускают, для отказа хватает использования непубличных апи, недокументированных возможностей или низкоровневых вызовов.
Знакомая вещь, даже ностальгией повеяло. Особенно переход на 7 винду и выше частенько приводил к поломке системы после установки драйверов защиты. Хотя сейчас есть люди которые собирают игры с ней и снимают ее. Что-то наподобие скайпа думаю написать на чистых плюсах невозможно, тут без ассемблера не обойтись. Это не считая нехилых знаний нужных для данных манипуляций. Или я ошибаюсь? Хотя даже использование самомодифицирующегося на кода на плюсах задачка нетривиальная.
0
|
19413 / 10031 / 2444
Регистрация: 30.01.2014
Сообщений: 17,697
|
|
20.12.2022, 15:27 | |
Нет, не ошибаетесь.
Но некоторые описанные в статье приемы можно повторить и без ассемблера. Добавлено через 4 минуты Кстати, статья из журнала неполная (видимо специально). Вот нашелся черновик самого Мыщъха, где именно технической информации побольше.
0
|
![]() ![]() |
|
29.12.2022, 10:00 | |
не знаю в чём вы там разобрались - декомпиляция и дизассемблирование разные вещи.
первое это обфускация, которая вскрывается элементарно просто. защита от второго - виртуализация (vmprotect, denuvo и прочее).
0
|
29.12.2022, 13:12 | |
Крис Касперски в одной из своих статей показал как можно обфусцировать указатели и строковые литералы до неузнаваемости. Речь об этом, а не про "нечитабельность исходника".
0
|
29.12.2022, 13:12 | |
Помогаю со студенческими работами здесь
12
Как защитить базу данных от декомпиляции? Как защитить свою программу от декомпиляции? Кто знает, как защитить игру от кряков, декомпиляции и нарезки ресурсов в неограниченном количестве? Защитить .net приложение от декомпиляции
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Опции темы | |
|
Новые блоги и статьи
![]() |
||||
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++ продолжается стремительными темпами – каждый новый стандарт приносит функциональность, о которой мы мечтали годами. Звучит слишком громко? Если вы когда-либо боролись с вариадическими. . .
|