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

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

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

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


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

Значит так:
Берём мы свой проект (не важно какой). Я создал тестовый проект:
1591882026226.png

Всё декомпиллится? Ага. А теперь делаем так:
1)
1591882069917.png

2) Указываем папку публикации
3) В целевой среде выполнения ставим "win-x86" вместоавтономное.
CKVeYNB.png


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

sx3y2Dm.png



Вот и всё. Повторюсь: Это не 100% защита. Против лома - нет приёма
 
Последнее редактирование:
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Ну это net core а в основном школа пишет на Windows forms
 
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
На нет кор не работает bunifi ui, guna и тд
 
На нет кор не работает bunifi ui, guna и тд
Ну тут мне сказать особо нечего: Ищите альтернативы, либо сами делайте интерфейсы кодом)
Возможно на .NET Framework тоже есть ReadyToRun,поищу
 
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
спасибо папаша
 
Не советую использовать этот метод, вытаскивается за 1 минуту файлик. лучше использовать стандартный конфузер, чем это
 
Не советую использовать этот метод, вытаскивается за 1 минуту файлик. лучше использовать стандартный конфузер, чем это
А как, расскажешь?)
+ Confuser криптор, он просто код зашифрует, а у меня совсем другое. Никто не мешает тебе заюзать Ready To Run + Confuser
 
А как, расскажешь?)
+ Confuser криптор, он просто код зашифрует, а у меня совсем другое. Никто не мешает тебе заюзать Ready To Run + Confuser
Мешает, ReadyToRun просто нативная оболочка, которая запускают твою скомпилированную дллку. И никаким обфускатором - протектором ты накрыть не сможешь этот файл, в этом и проблема.
 
Особенно полезно, когда ILSpy это уже поддерживает(цитата: ".NET Decompiler with support for PDB generation, ReadyToRun, Metadata (&more) - cross-platform!")
 
Особенно полезно, когда ILSpy это уже поддерживает(цитата: ".NET Decompiler with support for PDB generation, ReadyToRun, Metadata (&more) - cross-platform!")
Кстати, это правда.
Чисто только-что из-за интереса попробовал.
 
Ну никто не запрещает тебе создать Windows Forms на .NET Core :wink:
4:19
Посмотреть вложение 80452
4:20
Посмотреть вложение 80453

+ с WPF та-же фигня)
в чем проблема накинуть VMP на C# проект? Вроде как поддержка есть, и насколько я знаю никто VMP C# еще не распаковывал.
 
в чем проблема накинуть VMP на C# проект? Вроде как поддержка есть, и насколько я знаю никто VMP C# еще не распаковывал.
Уже есть много девиртуализаторов, на серьёзный проект накидывать его не советую
 
Самое лучшее решение - перейти на C++
 
У тс'а явно с башкой проблемы. Не проще накрыть билд протектором, а потом условным Enigma Virtual Box? И не будет "видно" ничего в DnSpy?
 
А вто на питоне такой хуйни нет:
1596906265666.png
 
Назад
Сверху Снизу