Извините, ничего не найдено.

Не расстраивайся! Лучше выпей чайку!
Регистрация
Справка
Календарь

Вернуться   forum.boolean.name > Программирование игр для компьютеров > С#

С# Средство разработки на платформе .Net

Ответ
 
Опции темы
Старый 02.06.2011, 18:09   #1
moka
.
 
Регистрация: 05.08.2006
Сообщений: 10,429
Написано 3,454 полезных сообщений
(для 6,863 пользователей)
Ответ: Новости

Вопрос, а как защищаться от декомпиляции?
(Offline)
 
Ответить с цитированием
Старый 02.06.2011, 18:11   #2
pax
Unity/C# кодер
 
Аватар для pax
 
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений
(для 5,323 пользователей)
Ответ: Новости

Обфускаторами. Некоторые умеют генерировать код, на котором декомпиляторы падают. А в основном переименовывают имена классов, шифруют строки, архивируют ресурсы и т.д.

Часто пользуюсь вот таким бесплатным обфускатором http://www.foss.kharkov.ua/g1/projec...t/Default.aspx
__________________
Blitz3d to Unity Wiki
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
moka (02.06.2011)
Старый 02.06.2011, 18:34   #3
Dream
быдло
 
Регистрация: 05.08.2007
Сообщений: 1,435
Написано 614 полезных сообщений
(для 1,489 пользователей)
Ответ: Новости

Сообщение от pax Посмотреть сообщение
Часто пользуюсь вот таким бесплатным обфускатором http://www.foss.kharkov.ua/g1/projec...t/Default.aspx
Мы такой используем для наших проектов
(Offline)
 
Ответить с цитированием
Старый 03.06.2011, 12:41   #4
Sef
ПроЭктировщик
 
Аватар для Sef
 
Регистрация: 05.04.2007
Сообщений: 96
Написано 77 полезных сообщений
(для 232 пользователей)
Ответ: Как защититься от декомпиляторов

А есть вероятность что после использования конкретно этого обфускатора в какой-то момент будет падать проект?
(Offline)
 
Ответить с цитированием
Старый 03.06.2011, 13:41   #5
Dream
быдло
 
Регистрация: 05.08.2007
Сообщений: 1,435
Написано 614 полезных сообщений
(для 1,489 пользователей)
Ответ: Как защититься от декомпиляторов

на ровном месте ниразу проблем небыло. иногда - когда забываем выключить из обфускации сериализируемые классы - могут начатся проблемы при импортах экспортах ну и прочих функциях завязаных на сериализации, ну а так - никаких проблем
(Offline)
 
Ответить с цитированием
Эти 2 пользователя(ей) сказали Спасибо Dream за это полезное сообщение:
Lestar (03.06.2011), pax (04.06.2011)
Старый 04.06.2011, 13:34   #6
pax
Unity/C# кодер
 
Аватар для pax
 
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений
(для 5,323 пользователей)
Ответ: Как защититься от декомпиляторов

Тут еще несколько моментов есть кроме сериализации:
1. Если используется рефлексия по именам типов и мемберов, то лучше всего их исключать из обфускации.
2. Для Unity проектов (dll плугинов) не работают нормально сопрограммы (coroutine), т.к. обфускатор не исключает из переименования генерируемые классы. А как задать исключение регулярным выражением я не нашел. Для таких dll используем дотфускатор бесплатную версию.
__________________
Blitz3d to Unity Wiki
(Offline)
 
Ответить с цитированием
Старый 04.06.2011, 14:12   #7
Sef
ПроЭктировщик
 
Аватар для Sef
 
Регистрация: 05.04.2007
Сообщений: 96
Написано 77 полезных сообщений
(для 232 пользователей)
Ответ: Как защититься от декомпиляторов

А имена классов он переименует? Это же для юнити вроде как критично...
(Offline)
 
Ответить с цитированием
Старый 04.06.2011, 14:46   #8
pax
Unity/C# кодер
 
Аватар для pax
 
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений
(для 5,323 пользователей)
Ответ: Как защититься от декомпиляторов

public имена типов и public имена мемберов в публичных типах он не переименовывает. Переименовывает internal, private (который по умолчанию) и т.д.
__________________
Blitz3d to Unity Wiki
(Offline)
 
Ответить с цитированием
Старый 04.06.2011, 19:37   #9
johnk
Легенда
 
Регистрация: 01.10.2006
Сообщений: 3,705
Написано 296 полезных сообщений
(для 568 пользователей)
Ответ: Новости

Сообщение от pax Посмотреть сообщение
Обфускаторами. Некоторые умеют генерировать код, на котором декомпиляторы падают. А в основном переименовывают имена классов, шифруют строки, архивируют ресурсы и т.д.

Часто пользуюсь вот таким бесплатным обфускатором http://www.foss.kharkov.ua/g1/projec...t/Default.aspx
Стоит отдавать отчет, что пользуясь готовыми решениями, можно попасться на т.н. де-обфускаторы. Можно написать свой, уникальный обфускатор. Банального запутывания имен будет достаточно.
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
moka (05.06.2011)
Старый 04.06.2011, 21:03   #10
pax
Unity/C# кодер
 
Аватар для pax
 
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений
(для 5,323 пользователей)
Ответ: Новости

Сообщение от johnk Посмотреть сообщение
Можно написать свой, уникальный обфускатор.
Если можно рефы на такие примеры...
__________________
Blitz3d to Unity Wiki
(Offline)
 
Ответить с цитированием
Старый 05.06.2011, 08:49   #11
Dream
быдло
 
Регистрация: 05.08.2007
Сообщений: 1,435
Написано 614 полезных сообщений
(для 1,489 пользователей)
Ответ: Как защититься от декомпиляторов

Хочу сказать что писать каждый раз новый обфускатор просто глупо.
Любую защиту ламают, обфускатор как таковой - вещь полезная - защита от дураков так сказать, те кто поумнее сламаю и самописный обфускатор без особых проблем
(Offline)
 
Ответить с цитированием
Старый 05.06.2011, 13:03   #12
johnk
Легенда
 
Регистрация: 01.10.2006
Сообщений: 3,705
Написано 296 полезных сообщений
(для 568 пользователей)
Ответ: Новости

Сообщение от pax Посмотреть сообщение
Если можно рефы на такие примеры...
На данную тему, кстати, есть даже книга. Здесь есть много полезных ссылок по теме: http://jasonhaley.com/Obfuscation/

Кстати, можно поступить иначе: взять один из обфускаторов с открытым кодом и просто поменять механизм запутывания.

Хочу сказать что писать каждый раз новый обфускатор просто глупо.
Глупо, да и не нужно. Достаточно одного самопального. Необходимо лишь не допускать распространения своих алгоритмов шифрования имен, строк и т.п в публичный доступ.
(Offline)
 
Ответить с цитированием
Эти 3 пользователя(ей) сказали Спасибо johnk за это полезное сообщение:
Lestar (05.06.2011), moka (05.06.2011), pax (06.06.2011)
Старый 06.06.2011, 13:46   #13
pax
Unity/C# кодер
 
Аватар для pax
 
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений
(для 5,323 пользователей)
Ответ: Как защититься от декомпиляторов

А вопрос такой: зачем шифровать имена, если их обычно просто переименовывают? После переименования обычно в коде не разобраться и так если проект средний или большой. Так что на самом деле не вижу необходимости писать свои обфускаторы, а за ссылку спасибо, будет время - почитаю.
__________________
Blitz3d to Unity Wiki
(Offline)
 
Ответить с цитированием
Эти 2 пользователя(ей) сказали Спасибо pax за это полезное сообщение:
Dream (06.06.2011), johnk (06.06.2011)
Старый 06.06.2011, 17:23   #14
johnk
Легенда
 
Регистрация: 01.10.2006
Сообщений: 3,705
Написано 296 полезных сообщений
(для 568 пользователей)
Ответ: Как защититься от декомпиляторов

Сообщение от pax Посмотреть сообщение
А вопрос такой: зачем шифровать имена, если их обычно просто переименовывают?
Опечатался, спасибо за исправление
Мне тоже кажется, что лучшее решение в плане защиты .NET кода - это банальное переименование. Для таких целей, кстати, вышеупомянутого eazfuscator'а хватает выше крыши.
(Offline)
 
Ответить с цитированием
Ответ


Опции темы

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


Часовой пояс GMT +4, время: 23:19.


vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot
Style crйe par Allan - vBulletin-Ressources.com