Как защитить исполняемый файл.NET от de4dot или аналогичных инструментов?
Я попытался запутать с помощью следующих обфускаторов, но ни один из них не работает против инструмента de40 [https://bitbucket.org/0xd4d/de4dot/]
Очень больно видеть, как это легко... просто перетащите запутанный.net exe на de4dot.exe, и вы получите исходный код...
Обфускаторы пробовали:
Agile.NET (он же CliSecure) Babel.NET CodeFort CodeVeil CodeWall CryptoObfuscator DeepSea Обфускатор Dotfuscator .NET Реактор Eazfuscator.NET Goliath.NET ILProtector MaxtoCode MPRESS Rummage Skater.NET SmartAssembly Spices.Net Xen
Все бесполезны.. это действительно расстраивает..
Можете ли вы дать лучшее решение для защиты от этого инструмента?
7 ответов
de4dot будет совместим с большинством обфускаторов / защитников там очень скоро, а если нет, то что-то еще будет.
Что бы я сделал, это скачал Confuser из codeplex и использовал вкладку дополнительных функций.
То, что я делаю, ВСЕГДА работает и не может быть отменено, это я:
Запутать все, кроме "уменьшить мета" в "Advanced" в Confuser. Я тогда, Сожмите сборку с упаковщиком RPX. Затем я снова перепутал сжатую сборку с 'Resource encryption' в Confuser.
Это делает сборку почти полностью необратимой (всегда есть люди, которые являются хорошими взломщиками). Я бы также предложил добавить шифрование md5/sha-1 к вашим строкам в исходном коде.
При всех этих методах защиты я бы официально сказал, что ваша сборка.net очень надежно защищена.
Как и сегодня, похоже, что последняя версия De4dot может деофусцировать ILProtector.
Защита кода Agile.net от Secureteam.net говорит, что побеждает de4dot среди других deobfuscators, но я еще не пробовал. Я отредактирую свой ответ, как только протестирую его.
Я столкнулся с той же проблемой и до сих пор не мог ее решить. Я слежу за релизами некоторых обфускаторов. Я проверил, что была выпущена последняя версия ILProtector, поэтому я попробовал ее защитить исполняемый файл.NET и могу сказать, что ILProtector определенно работает против de4dot. de4dot не может декомпилировать защищенные сборки.
Лучше попробовать упаковку с помощью собственного упаковщика. Весь коммерческий упаковщик может быть декомпилирован тем или иным распаковщиком.
Удачи.
Обфускатор Skater .NET успешно работает против de4dot. Деобфускатор переименовывает имена элементов сборки, защищенных исходным кодом, в удобочитаемые строки. Скейтер борется с этим!
Недавно группа MindSystemm выпустила специальный инструмент под названием Skater.NetDeobfuscator [url: https://github.com/MindSystemm/Skater.NetDeobfuscator], который использует уязвимости обфускатора Skater .NET. Компания Rustemsoft получила сигнал о срочной необходимости защитить критически важные алгоритмы обфускатора Skater .NET и программную инфраструктуру, чтобы предоставить пользователям Skater более надежную защиту исходного кода. Это было решено.
Никогда не было возможности по-настоящему защитить какие-либо сборки от обратного проектирования — ни для .NET, ни для машинного кода. Однако обратный инжиниринг собственного кода сложнее. Лучшее, что вы можете сделать, — это позволить другим использовать ваше программное обеспечение только как услугу (т. е. запустить веб-сайт, который использует ваше программное обеспечение в качестве службы в своей серверной части или, что еще лучше, просто получает данные, которые ваше программное обеспечение производит с другого сервера). ваш бэкэнд). Также вы можете рассмотреть возможность простого экспорта центральной логики каждой из ваших функций в такой бэкэнд, который требует соединения с вашими серверами, и соединить его с лицензией на программное обеспечение и зашифрованным программным обеспечением, которое использует клиентские компиляции, которые близки к уникальным. Таким образом, вы можете написать большую часть своего кода (т.е. пользовательский интерфейс) на C# и использовать только часть кода удаленно. Однако для этого людям необходимо постоянно находиться в сети, и если спрос на ваше программное обеспечение невелик, они могут вместо этого рассмотреть возможность использования программного обеспечения ваших конкурентов, поскольку оно работает и в автономном режиме.
Проверил сегодня 4-5 обфускаторов. Основная цель обфускатора не должна заключаться в сокрытии вашего лицензионного кода, а в защите вашего программного обеспечения / алгоритма от простого написания программистом, просто увидев код. Потому что если любое программное обеспечение, такое как Windows, SQL Server, Adobe и т. Д., Можно легко взломать, то у вас нет шансов скрыть свой лицензионный код. В моем случае я разработал несколько программ на C#, которые можно легко воспроизвести, если у кого-то есть доступ к его коду внутри событий нажатия кнопки. Итак, я протестировал несколько обфускаторов, которые реализуют "обфускацию потока кода", что действительно затрудняет понимание потока / алгоритма выполнения кода. Фактически, когда я выполнял "обфускацию потока кода" в своем программном обеспечении, я не мог понять сам код, не говоря уже о том, что могли понять другие.
Представьте, что вы потратили несколько недель на разработку алгоритма, который может выполнять определенную задачу, например: вы можете получить авиабилеты со всех веб-сайтов и отобразить их в программном обеспечении. Если кто-то может видеть его код, он / она может просто создать то же программное обеспечение за день. Итак, лучше так перемешать алгоритм, чтобы его было очень сложно понять.
Я пробовал: Dotfuscator, Eziriz .NET Reactor и Crypto Obfuscator и rustemsoft Skater .NET Obfuscator. (И еще несколько)
Вот мои результаты:
- Все шифрование строк / переменных / функций всеми обфускаторами легко деобфускировалось де-обфускатором de4dot. Итак, нет смысла шифровать строки / переменные / функции.
- Я использовал максимальный уровень "Обфускации потока кода" для всех 3. Я не мог использовать rustemsoft Skater.NET, потому что его программное обеспечение сильно зависало, а пользовательский интерфейс сбивал меня с толку. А в бесплатной / ознакомительной версии не было включено "Обфускации потока кода" для оценки. Итак, Dotfuscator проделал лучший разбор кода. И тогда.NET Reactor и Crypto Obfuscator были того же уровня, но их обфускация намного уступала Dotfuscator.
- Вы можете попытаться виртуализировать программное обеспечение с помощью программного обеспечения виртуализации, которое должно предотвратить прямую деобфускацию с помощью de4dot, но опять же exe можно легко распаковать с помощью любого хорошего распаковщика, а затем извлеченную сборку можно де-запутать с помощью de4dot. Программное обеспечение виртуализации используется для упаковки основных exe, dll и других ресурсов в один большой exe, поэтому вам не нужно создавать файл установки и т. Д. И запускать exe непосредственно на любом компьютере. Итак, в этом случае вы можете зашифровать сборку.NET в одном зашифрованном exe. Но, как я уже сказал, его легко распаковать. На YouTube есть много видео по этой теме. Он не выполняет "обфускацию потока управления", что было моей основной целью.
Итак, наконец, что я сделал:
Обфусцируйте поток управления с помощью Dotfuscator, затем снова "поток управления" запутайте запутанный исполняемый файл с помощью.NET Reactor или Crypto Obfuscator. После этого, если я деобфускирую exe, код не сможет понять любой программист среднего уровня.