Форум программистов, компьютерный форум, киберфорум
C# .NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.73/15: Рейтинг темы: голосов - 15, средняя оценка - 4.73
14 / 14 / 5
Регистрация: 15.12.2014
Сообщений: 90

Защита от декомпилирования .net файлов

18.08.2016, 13:45. Показов 3272. Ответов 25
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Собственно сабж. Неоднократно выручал Reflector, но теперь интересуюсь способами его обхода, чтобы рядовой программист не смог декомпилировать все обратно в C# (шарящий все равно вырвет код, если будет нужно).
Есть ли какие-либо решения этого? (в курсе про Dotfuscator, но хотелось бы понять сам принцип защиты от рефлектора, а не использовать готовое ПО)
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
18.08.2016, 13:45
Ответы с готовыми решениями:

Как защитить программу от декомпилирования? (С, C++, C#)
Дело было с C# выложил программу в открытый доступ (Уже удалил), через некоторое время прислали архив с кодом, правда классы формы били...

Защита .Net сборки
Здавствуйте. подскажите на сколько стойкой будет защита программы если ее упаковать пакером типа themida или enigma и, упакованное,...

Защита кода .NET Обфускаторы
Недавно я столкнулся с открытостью кода на .NET. Подскажите пожалуйста, какие существуют методы защиты. Прочитал про обфускаторы. На...

25
Master of Orion
Эксперт .NET
 Аватар для Psilon
6102 / 4958 / 905
Регистрация: 10.07.2011
Сообщений: 14,522
Записей в блоге: 5
18.08.2016, 16:09
Msey, принцип простой - вставляем мусорные инструкции, и переименовывем всё в непонятную кашу. Более продвинутый уровень - наворачивать виртуальную машину поверх CLR, более надежное решение, тормозит всё еще более безбожно.

А вообще для дотнета (как и большинства самоинспектирующих языков) защита как правило дороже потенциальной выгоды.
0
14 / 14 / 5
Регистрация: 15.12.2014
Сообщений: 90
18.08.2016, 16:23  [ТС]
Цитата Сообщение от Psilon Посмотреть сообщение
вставляем мусорные инструкции, и переименовывем всё в непонятную кашу
Но если проект гигантский, то этот метод будет слишком потным..
Под виртуальной машиной подразумевается output-controller, который будет искажать "те, которые хотим защитить" исходящие данные из приложения?
0
484 / 397 / 68
Регистрация: 14.02.2014
Сообщений: 1,930
18.08.2016, 17:53
А много ли коммерческих продуктов на C# мы знаем, продающихся на открытом рынке?
0
Master of Orion
Эксперт .NET
 Аватар для Psilon
6102 / 4958 / 905
Регистрация: 10.07.2011
Сообщений: 14,522
Записей в блоге: 5
18.08.2016, 18:02
Цитата Сообщение от Msey Посмотреть сообщение
Но если проект гигантский, то этот метод будет слишком потным..
Какая разница, какого размера проект?
Цитата Сообщение от Msey Посмотреть сообщение
Под виртуальной машиной подразумевается output-controller, который будет искажать "те, которые хотим защитить" исходящие данные из приложения?
Под виртуальной машиной я имею ввиду виртуальную машину. Когда на выходе скомпилированного исходника не программа, а байт-код этой виртуальной машины + сама виртуальная машина. То же, что делает csc (IL + CLR), но только еще одним слоем сверху.
0
Эксперт .NET
 Аватар для insite2012
5548 / 4311 / 1218
Регистрация: 12.10.2013
Сообщений: 12,371
Записей в блоге: 2
18.08.2016, 18:03
Цитата Сообщение от aquaMakc Посмотреть сообщение
много ли коммерческих продуктов на C#
Не целиком на NET, но достаточно много либ на нем в одной довольно хорошей игре-шутере (Far Cry-4, если быть точным). Игра хорошая, это чисто мое мнение, сам играл. Причем либы ничем не закрыты, декомпилируются на раз.
0
Master of Orion
Эксперт .NET
 Аватар для Psilon
6102 / 4958 / 905
Регистрация: 10.07.2011
Сообщений: 14,522
Записей в блоге: 5
18.08.2016, 18:04
aquaMakc, ну я могу привести разве что решарпер и INSSIDER. Причем последний я для образовательных целей изучал весьма основательно, да...
0
484 / 397 / 68
Регистрация: 14.02.2014
Сообщений: 1,930
18.08.2016, 18:10
INSSIDER обфусцирован слегка
0
burning1ife
 Аватар для kenny69
1466 / 1287 / 294
Регистрация: 21.09.2008
Сообщений: 3,438
Записей в блоге: 9
19.08.2016, 00:15
Msey, всю логику лучше держать на сервере. Если нужно offline решение, то здесь есть несколько способов. И они упираются в стоимость продукта -> стоимость ключей для защиты. Серебряной пули нет, надо находить компромиссы в каждой отдельной ситуации.
1
Эксперт .NET
 Аватар для insite2012
5548 / 4311 / 1218
Регистрация: 12.10.2013
Сообщений: 12,371
Записей в блоге: 2
19.08.2016, 09:41
Цитата Сообщение от kenny69 Посмотреть сообщение
всю логику лучше держать на сервере
Поддерживаю. Если есть возможность сделать клиент-серверное приложение - лучший вариант. Максимум что получит взломщик - код отображения данных. Вся логика будет на сервере, также как и аутентификация/авторизация (при их наличии).
0
Футболист
 Аватар для Goal
533 / 435 / 142
Регистрация: 31.10.2011
Сообщений: 1,010
19.08.2016, 10:43
Обфускацией можно гугли -.NET Reactor
0
14 / 14 / 5
Регистрация: 15.12.2014
Сообщений: 90
20.08.2016, 00:42  [ТС]
Цитата Сообщение от kenny69 Посмотреть сообщение
Msey, всю логику лучше держать на сервере.
Кстати да. О таком варианте я даже не задумывался) Спасибо.
0
Неадекват
 Аватар для freeba
1501 / 1237 / 248
Регистрация: 02.04.2010
Сообщений: 2,807
22.08.2016, 08:33
Можно сделать банальный упаковщик на сях, который будет шифровать сборку, например, aes и запихнуть все в один exe. Такой файл рефлектором не откроешь, но опытный крякер - взломает подобную защиту за 10 минут.
0
Master of Orion
Эксперт .NET
 Аватар для Psilon
6102 / 4958 / 905
Регистрация: 10.07.2011
Сообщений: 14,522
Записей в блоге: 5
22.08.2016, 12:14
freeba, можно прям общий шаблон составить:
Можно сделать %actionname%. Такой файл рефлектором не откроешь, но опытный крякер - взломает подобную защиту за %n% минут.
Всего 2 параметра меняешь, и получаешь целый список возможных действий
2
 Аватар для iDReeM
64 / 68 / 18
Регистрация: 21.10.2015
Сообщений: 228
26.08.2016, 05:56
все игры на движке Unity Engine на шарпе, декомпилятся на раз-два, Rust, Contract Wars (в соц сетях который) и прочие прочие прочие. Более годный ответ пост #5. А если уж по проще, то самописные проверки.
0
169 / 132 / 29
Регистрация: 16.02.2013
Сообщений: 867
26.08.2016, 12:58
Цитата Сообщение от Msey Посмотреть сообщение
Собственно сабж. Неоднократно выручал Reflector, но теперь интересуюсь способами его обхода, чтобы рядовой программист не смог декомпилировать все обратно в C# (шарящий все равно вырвет код, если будет нужно).
Есть ли какие-либо решения этого? (в курсе про Dotfuscator, но хотелось бы понять сам принцип защиты от рефлектора, а не использовать готовое ПО)
есть ConfuserEx, смотришь исходники, как работает, и делаешь что-то свое.
2
 Аватар для Serg34
100 / 100 / 33
Регистрация: 20.09.2014
Сообщений: 457
Записей в блоге: 3
21.09.2016, 16:40
Winhttp22, Скачал исходник, но там проект dnlib пустой
А у Вас все нормально?
0
Почетный модератор
Эксперт .NET
 Аватар для NickoTin
8728 / 3680 / 404
Регистрация: 14.06.2010
Сообщений: 4,513
Записей в блоге: 9
21.09.2016, 19:12
Serg34, репозиторий нужно вытянуть вместе с зависимыми модулями (http://stackoverflow.com/quest... submodules)
0
 Аватар для Serg34
100 / 100 / 33
Регистрация: 20.09.2014
Сообщений: 457
Записей в блоге: 3
21.09.2016, 21:16
NickoTin, нашел недостающий проект, но даже с ним приложение не собирается - около 20 ошибок
Позже, попробую еще.

Еще по обфуксации хотел уточнить: оригинальные имена все-таки где-то хранятся в обработанной сборке?
0
Почетный модератор
Эксперт .NET
 Аватар для NickoTin
8728 / 3680 / 404
Регистрация: 14.06.2010
Сообщений: 4,513
Записей в блоге: 9
21.09.2016, 21:48
Цитата Сообщение от Serg34 Посмотреть сообщение
нашел недостающий проект
Вам не нужно его искать, последняя версия проекта может значительно отличаться от той, что используется в нужном Вам. Нужно выбрать именно конкретную версию - по приведенной мною ссылке всё расписано как раз.

Цитата Сообщение от Serg34 Посмотреть сообщение
оригинальные имена все-таки где-то хранятся в обработанной сборке?
Не обязательно.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
21.09.2016, 21:48
Помогаю со студенческими работами здесь

Защита .Net приложения
Добрый день! Прошу помочь в решении проблемы. Есть на страницах элементы, которые должны быть активны\видимы только для пользователей...

Защита страниц ASP.NET не срабатывает
для того чтобы клиенты не могли обращаться напрямую к любой странице приложения не пройдя авторизацию я прописал в web.config: ...

Работа с Word на ASP. Net Защита от сбоев
Все доброго времени суток! Разрабатываю веб-приложение, ввожу некоторые данные, и по ним формирую некоторые документ word из шаблона....

Защита от DDoS средствами VB.NET
Как и какие средства VB.NET использовать? Что можно почитать на эту тему?

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


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru