|
С# Средство разработки на платформе .Net |
02.06.2011, 18:09
|
#1
|
.
Регистрация: 05.08.2006
Сообщений: 10,429
Написано 3,454 полезных сообщений (для 6,863 пользователей)
|
Ответ: Новости
Вопрос, а как защищаться от декомпиляции?
|
(Offline)
|
|
02.06.2011, 18:11
|
#2
|
Unity/C# кодер
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений (для 5,323 пользователей)
|
Ответ: Новости
Обфускаторами. Некоторые умеют генерировать код, на котором декомпиляторы падают. А в основном переименовывают имена классов, шифруют строки, архивируют ресурсы и т.д.
Часто пользуюсь вот таким бесплатным обфускатором http://www.foss.kharkov.ua/g1/projec...t/Default.aspx
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
02.06.2011, 18:34
|
#3
|
быдло
Регистрация: 05.08.2007
Сообщений: 1,435
Написано 614 полезных сообщений (для 1,489 пользователей)
|
Ответ: Новости
Сообщение от pax
|
Мы такой используем для наших проектов
|
(Offline)
|
|
03.06.2011, 12:41
|
#4
|
ПроЭктировщик
Регистрация: 05.04.2007
Сообщений: 96
Написано 77 полезных сообщений (для 232 пользователей)
|
Ответ: Как защититься от декомпиляторов
А есть вероятность что после использования конкретно этого обфускатора в какой-то момент будет падать проект?
|
(Offline)
|
|
03.06.2011, 13:41
|
#5
|
быдло
Регистрация: 05.08.2007
Сообщений: 1,435
Написано 614 полезных сообщений (для 1,489 пользователей)
|
Ответ: Как защититься от декомпиляторов
на ровном месте ниразу проблем небыло. иногда - когда забываем выключить из обфускации сериализируемые классы - могут начатся проблемы при импортах экспортах ну и прочих функциях завязаных на сериализации, ну а так - никаких проблем
|
(Offline)
|
|
Эти 2 пользователя(ей) сказали Спасибо Dream за это полезное сообщение:
|
|
04.06.2011, 13:34
|
#6
|
Unity/C# кодер
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений (для 5,323 пользователей)
|
Ответ: Как защититься от декомпиляторов
Тут еще несколько моментов есть кроме сериализации:
1. Если используется рефлексия по именам типов и мемберов, то лучше всего их исключать из обфускации.
2. Для Unity проектов (dll плугинов) не работают нормально сопрограммы (coroutine), т.к. обфускатор не исключает из переименования генерируемые классы. А как задать исключение регулярным выражением я не нашел. Для таких dll используем дотфускатор бесплатную версию.
|
(Offline)
|
|
04.06.2011, 14:12
|
#7
|
ПроЭктировщик
Регистрация: 05.04.2007
Сообщений: 96
Написано 77 полезных сообщений (для 232 пользователей)
|
Ответ: Как защититься от декомпиляторов
А имена классов он переименует? Это же для юнити вроде как критично...
|
(Offline)
|
|
04.06.2011, 14:46
|
#8
|
Unity/C# кодер
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений (для 5,323 пользователей)
|
Ответ: Как защититься от декомпиляторов
public имена типов и public имена мемберов в публичных типах он не переименовывает. Переименовывает internal, private (который по умолчанию) и т.д.
|
(Offline)
|
|
04.06.2011, 19:37
|
#9
|
Легенда
Регистрация: 01.10.2006
Сообщений: 3,705
Написано 296 полезных сообщений (для 568 пользователей)
|
Ответ: Новости
Сообщение от pax
Обфускаторами. Некоторые умеют генерировать код, на котором декомпиляторы падают. А в основном переименовывают имена классов, шифруют строки, архивируют ресурсы и т.д.
Часто пользуюсь вот таким бесплатным обфускатором http://www.foss.kharkov.ua/g1/projec...t/Default.aspx
|
Стоит отдавать отчет, что пользуясь готовыми решениями, можно попасться на т.н. де-обфускаторы. Можно написать свой, уникальный обфускатор. Банального запутывания имен будет достаточно.
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
04.06.2011, 21:03
|
#10
|
Unity/C# кодер
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений (для 5,323 пользователей)
|
Ответ: Новости
Сообщение от johnk
Можно написать свой, уникальный обфускатор.
|
Если можно рефы на такие примеры...
|
(Offline)
|
|
05.06.2011, 08:49
|
#11
|
быдло
Регистрация: 05.08.2007
Сообщений: 1,435
Написано 614 полезных сообщений (для 1,489 пользователей)
|
Ответ: Как защититься от декомпиляторов
Хочу сказать что писать каждый раз новый обфускатор просто глупо.
Любую защиту ламают, обфускатор как таковой - вещь полезная - защита от дураков так сказать, те кто поумнее сламаю и самописный обфускатор без особых проблем
|
(Offline)
|
|
05.06.2011, 13:03
|
#12
|
Легенда
Регистрация: 01.10.2006
Сообщений: 3,705
Написано 296 полезных сообщений (для 568 пользователей)
|
Ответ: Новости
Сообщение от pax
Если можно рефы на такие примеры...
|
На данную тему, кстати, есть даже книга. Здесь есть много полезных ссылок по теме: http://jasonhaley.com/Obfuscation/
Кстати, можно поступить иначе: взять один из обфускаторов с открытым кодом и просто поменять механизм запутывания.
Хочу сказать что писать каждый раз новый обфускатор просто глупо.
|
Глупо, да и не нужно. Достаточно одного самопального. Необходимо лишь не допускать распространения своих алгоритмов шифрования имен, строк и т.п в публичный доступ.
|
(Offline)
|
|
Эти 3 пользователя(ей) сказали Спасибо johnk за это полезное сообщение:
|
|
06.06.2011, 13:46
|
#13
|
Unity/C# кодер
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений (для 5,323 пользователей)
|
Ответ: Как защититься от декомпиляторов
А вопрос такой: зачем шифровать имена, если их обычно просто переименовывают? После переименования обычно в коде не разобраться и так если проект средний или большой. Так что на самом деле не вижу необходимости писать свои обфускаторы, а за ссылку спасибо, будет время - почитаю.
|
(Offline)
|
|
Эти 2 пользователя(ей) сказали Спасибо pax за это полезное сообщение:
|
|
06.06.2011, 17:23
|
#14
|
Легенда
Регистрация: 01.10.2006
Сообщений: 3,705
Написано 296 полезных сообщений (для 568 пользователей)
|
Ответ: Как защититься от декомпиляторов
Сообщение от pax
А вопрос такой: зачем шифровать имена, если их обычно просто переименовывают?
|
Опечатался, спасибо за исправление
Мне тоже кажется, что лучшее решение в плане защиты .NET кода - это банальное переименование. Для таких целей, кстати, вышеупомянутого eazfuscator'а хватает выше крыши.
|
(Offline)
|
|
Ваши права в разделе
|
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 12:02.
|