Гайд C# Как сокрыть исходный код скомпилированного приложения от декомпиляторов DnSpy, ILSpy и прочих

Эксперт
Статус
Оффлайн
Регистрация
16 Ноя 2017
Сообщения
1,571
Реакции[?]
1,266
Поинты[?]
4K
Всем привет! Думаю многие знают достаточно большую проблему шарпа - каждый школьник может просто впихнуть ваше приложение в DnSpy и получить код вашей проги.
Однако не все знают, что код можно сокрыть от банальных декомпилов.

Работает в .NET Core проектах

Пожалуйста, авторизуйтесь для просмотра ссылки.


Конечно, это не совсем 100% защита, так как всё таки декомпиллить можно многое, однако если вы будете писать грамотный код, думать и понимать, как работают крякеры, защиту вы сделать сможете. Да и обфускация тоже не помешает. Знаю контору , которая продаёт свой софт, написанный на шарпе, стоит около 50К руб, и крякнули их спустя 3 года продаж) А они не скрывали сурсы, только обфускация

Значит так:
Берём мы свой проект (не важно какой). Я создал тестовый проект:
1591882026226.png
Всё декомпиллится? Ага. А теперь делаем так:
1)
1591882069917.png
2) Указываем папку публикации
3) В целевой среде выполнения ставим "win-x86" вместоавтономное.


Ready To Run как раз и обеспечивает "защиту".
Создать отдельный файл нужен чисто для косметической красоты, можете и не ставить, но в net core проектах уж вещь хорошая.
4) Проверяем:




Вот и всё. Повторюсь: Это не 100% защита. Против лома - нет приёма
 
Последнее редактирование:
SOSi
Забаненный
Статус
Оффлайн
Регистрация
6 Дек 2018
Сообщения
489
Реакции[?]
65
Поинты[?]
0
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Ну это net core а в основном школа пишет на Windows forms
 
Эксперт
Статус
Оффлайн
Регистрация
16 Ноя 2017
Сообщения
1,571
Реакции[?]
1,266
Поинты[?]
4K
SOSi
Забаненный
Статус
Оффлайн
Регистрация
6 Дек 2018
Сообщения
489
Реакции[?]
65
Поинты[?]
0
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
На нет кор не работает bunifi ui, guna и тд
 
Эксперт
Статус
Оффлайн
Регистрация
16 Ноя 2017
Сообщения
1,571
Реакции[?]
1,266
Поинты[?]
4K
На нет кор не работает bunifi ui, guna и тд
Ну тут мне сказать особо нечего: Ищите альтернативы, либо сами делайте интерфейсы кодом)
Возможно на .NET Framework тоже есть ReadyToRun,поищу
 
Забаненный
Статус
Оффлайн
Регистрация
27 Май 2020
Сообщения
16
Реакции[?]
2
Поинты[?]
0
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
спасибо папаша
 
ldloc.s <d0t.net> stloc.s <Reversed>
Пользователь
Статус
Оффлайн
Регистрация
21 Окт 2018
Сообщения
214
Реакции[?]
337
Поинты[?]
1K
Не советую использовать этот метод, вытаскивается за 1 минуту файлик. лучше использовать стандартный конфузер, чем это
 
Эксперт
Статус
Оффлайн
Регистрация
16 Ноя 2017
Сообщения
1,571
Реакции[?]
1,266
Поинты[?]
4K
Не советую использовать этот метод, вытаскивается за 1 минуту файлик. лучше использовать стандартный конфузер, чем это
А как, расскажешь?)
+ Confuser криптор, он просто код зашифрует, а у меня совсем другое. Никто не мешает тебе заюзать Ready To Run + Confuser
 
ldloc.s <d0t.net> stloc.s <Reversed>
Пользователь
Статус
Оффлайн
Регистрация
21 Окт 2018
Сообщения
214
Реакции[?]
337
Поинты[?]
1K
А как, расскажешь?)
+ Confuser криптор, он просто код зашифрует, а у меня совсем другое. Никто не мешает тебе заюзать Ready To Run + Confuser
Мешает, ReadyToRun просто нативная оболочка, которая запускают твою скомпилированную дллку. И никаким обфускатором - протектором ты накрыть не сможешь этот файл, в этом и проблема.
 
Начинающий
Статус
Оффлайн
Регистрация
18 Ноя 2019
Сообщения
12
Реакции[?]
4
Поинты[?]
0
Особенно полезно, когда ILSpy это уже поддерживает(цитата: ".NET Decompiler with support for PDB generation, ReadyToRun, Metadata (&more) - cross-platform!")
 
(noad)
Пользователь
Статус
Оффлайн
Регистрация
21 Мар 2019
Сообщения
273
Реакции[?]
50
Поинты[?]
0
Особенно полезно, когда ILSpy это уже поддерживает(цитата: ".NET Decompiler with support for PDB generation, ReadyToRun, Metadata (&more) - cross-platform!")
Кстати, это правда.
Чисто только-что из-за интереса попробовал.
 
off
Участник
Статус
Оффлайн
Регистрация
7 Сен 2017
Сообщения
696
Реакции[?]
163
Поинты[?]
0
Ну никто не запрещает тебе создать Windows Forms на .NET Core :wink:
4:19
Посмотреть вложение 80452
4:20
Посмотреть вложение 80453

+ с WPF та-же фигня)
в чем проблема накинуть VMP на C# проект? Вроде как поддержка есть, и насколько я знаю никто VMP C# еще не распаковывал.
 
ldloc.s <d0t.net> stloc.s <Reversed>
Пользователь
Статус
Оффлайн
Регистрация
21 Окт 2018
Сообщения
214
Реакции[?]
337
Поинты[?]
1K
в чем проблема накинуть VMP на C# проект? Вроде как поддержка есть, и насколько я знаю никто VMP C# еще не распаковывал.
Уже есть много девиртуализаторов, на серьёзный проект накидывать его не советую
 
Эксперт
Статус
Оффлайн
Регистрация
16 Ноя 2017
Сообщения
1,571
Реакции[?]
1,266
Поинты[?]
4K
off
Участник
Статус
Оффлайн
Регистрация
7 Сен 2017
Сообщения
696
Реакции[?]
163
Поинты[?]
0
вышел покурить
Пользователь
Статус
Оффлайн
Регистрация
17 Май 2018
Сообщения
387
Реакции[?]
100
Поинты[?]
0
У тс'а явно с башкой проблемы. Не проще накрыть билд протектором, а потом условным Enigma Virtual Box? И не будет "видно" ничего в DnSpy?
 
Сверху Снизу