Защита кода и привязка к компу

Язык C#: программирование на C#, портирование кода C# на VB и VB на C#.

Модератор: Ramzes

DirectXManiac
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1543
Зарегистрирован: 03.11.2005 (Чт) 13:32
Откуда: из DirectX SDK

Защита кода и привязка к компу

Сообщение DirectXManiac » 20.01.2011 (Чт) 14:11

Привет! Интересует вопрос защиты кода .NET от глаз долой. Смысл в чем. Я разрабатываю программу и привязываю её жестко к компьютеру пользователя при помощи USB-хвоста. Но если код моей программы легко доступен, то смысла нет. Для других сред не CLI я использовал бы Obsidium, но с .NET он не работает, да и не должен по определению. Читал про обсфукацию(мб я ошибся в написании :roll: ), но хотел бы посоветоваться, может кто-то пользовался для случая с физической защитой данных. Заранее спасибо за информацию.
P.S. Если защита достаточно серьезная готов купить утилиту оффициально, если оно того стоит :D
#define ROFL 0xDDDD

Joo
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 762
Зарегистрирован: 14.08.2008 (Чт) 11:55
Откуда: Казахстан

Re: Защита кода и привязка к компу

Сообщение Joo » 20.01.2011 (Чт) 15:03

Ну хороший обфускатор поможет защитить код программы, но не так хорошо, как это делается для нативных приложений.
В любом случае прибегнуть к обфускации стоит, не кто же не отказывается от пакеров для нативных приложений, хотя все прекрасно знают, что абсолютно все пакеры хорошо или плохо но все же распаковываются.

Добавлено:
Вот неплохой: http://www.eziriz.com/dotnet_reactor.htm
"Им будет не просто, тем кто полагается на истину авторитета, вместо того чтобы полагаться на авторитет Истины"
Джеральд Месси, Египтолог

FireFenix
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1640
Зарегистрирован: 25.05.2007 (Пт) 10:24
Откуда: Mugen no Sora

Re: Защита кода и привязка к компу

Сообщение FireFenix » 20.01.2011 (Чт) 17:08

dotFuscator идёт вместе с 2010 студией (с другими версиями - не помню), но я больше склоняюсь к SmartAssembly от RedGate (владелец Reflector'a), почти самую свежую версию можно скачать на рутрекере

Интересует вопрос защиты кода .NET от глаз долой

Обфускаторы для .нет именно только от глаз, т.е. при наличии терпения и воли к победе - всё можно получить

Если нужно сильнее запротектить, то самое то будет сделать упакованный нативный клиент, который из своих ресурсов распаковывает .net программку и запускает (почти как работа скайп в исследованиях криса касперски :D )
Последний раз редактировалось FireFenix 20.01.2011 (Чт) 19:00, всего редактировалось 1 раз.
Птицей Гермеса меня называют, свои крылья пожирая... сам себя я укрощаю
私はヘルメスの鳥 私は自らの羽根を喰らい 飼い慣らされる

Joo
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 762
Зарегистрирован: 14.08.2008 (Чт) 11:55
Откуда: Казахстан

Re: Защита кода и привязка к компу

Сообщение Joo » 20.01.2011 (Чт) 17:56

FireFenix писал(а):dotFuscator идёт вместе с 2010 студией

Та, что идет вместе со студией не какого интереса не представляет, а Enterprice стоит не мало.
FireFenix писал(а):я больше склоняюсь к SmartAssembly от RedGate

Судя про отзывам в интернете вполне себе нормально анализируется, код в IL можно просмотреть в рефлекторе, да и стоит тоже от 795$ (варианты с кряками не рассматриваю). Да после SA приложение в некоторых случаях начинает падать с ошибками которых до обфускации не было.
FireFenix писал(а):который из своих ресурсов распаковывает .net программку и запускает

Ага, и тогда действия крякера сведутся вообще к минимуму.
FireFenix писал(а):криса касперского

Криса Касперски

Еще советую посмотреть вот эту штуку http://www.eziriz.com/intellilock.htm от создателей .NET Ractor, прога заточена под лицензирование.
"Им будет не просто, тем кто полагается на истину авторитета, вместо того чтобы полагаться на авторитет Истины"
Джеральд Месси, Египтолог

FireFenix
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1640
Зарегистрирован: 25.05.2007 (Пт) 10:24
Откуда: Mugen no Sora

Re: Защита кода и привязка к компу

Сообщение FireFenix » 20.01.2011 (Чт) 19:05

Joo писал(а):
FireFenix писал(а):я больше склоняюсь к SmartAssembly от RedGate

Судя про отзывам в интернете вполне себе нормально анализируется, код в IL можно просмотреть в рефлекторе, да и стоит тоже от 795$ (варианты с кряками не рассматриваю).

ну я юзал старенький крякнутый... При правильных настройках тоже не даст открыть в рефлекторе :)
Joo писал(а): Да после SA приложение в некоторых случаях начинает падать с ошибками которых до обфускации не было.

2 раза юзал - не замечал
Joo писал(а):
FireFenix писал(а):который из своих ресурсов распаковывает .net программку и запускает

Ага, и тогда действия крякера сведутся вообще к минимуму.

Ну для этого нудны знания... чисто .NET легко ломаются, а покопаться в упакованном нативном коде не каждый сможет
Joo писал(а):
FireFenix писал(а):криса касперского

Криса Касперски

My Fail, забыл, что не склоняется
Птицей Гермеса меня называют, свои крылья пожирая... сам себя я укрощаю
私はヘルメスの鳥 私は自らの羽根を喰らい 飼い慣らされる

Joo
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 762
Зарегистрирован: 14.08.2008 (Чт) 11:55
Откуда: Казахстан

Re: Защита кода и привязка к компу

Сообщение Joo » 20.01.2011 (Чт) 20:28

FireFenix писал(а):При правильных настройках тоже не даст открыть в рефлекторе

Да, можно, что Рефлектор падает, но тот-же WinDbg запросто показывает IL код.
FireFenix писал(а):Ну для этого нудны знания... чисто .NET легко ломаются, а покопаться в упакованном нативном коде не каждый сможет

Не ну как доп. защиту можно юзать, сначала обфусцировать, а потом еще в нативное приложение запихать, по которому пройтись протектором.
Да, вот утилита поможет так поизвращаться http://www.vmware.com/products/thinapp/, заодно поможет запускать прогу без установленного .NET Framework, но придется поплатиться размером исполняемого файла.
FireFenix писал(а):My Fail, забыл, что не склоняется

:)
"Им будет не просто, тем кто полагается на истину авторитета, вместо того чтобы полагаться на авторитет Истины"
Джеральд Месси, Египтолог

DirectXManiac
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1543
Зарегистрирован: 03.11.2005 (Чт) 13:32
Откуда: из DirectX SDK

Re: Защита кода и привязка к компу

Сообщение DirectXManiac » 21.01.2011 (Пт) 1:18

Спасибо! Моя задача не стоит в том чтобы сделать самую лучшую защиту, задача в том, чтобы это было не выгодно. Допустим защита Armadillo у интересующей меня программы ломается, но мне на это придется убить месяц, не надо оно мне. Такая же логика должно быть и с моей программой, тем более цена будет не заоблачная. Защита USB полюбому будет, вопрос в том чтобы не вскрыли код, хотя я нашел ключи которые сами шифруют .NET приложения(в комплекте идет офф версия программы для упаковки). Спасибо за информацию...
#define ROFL 0xDDDD

Joo
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 762
Зарегистрирован: 14.08.2008 (Чт) 11:55
Откуда: Казахстан

Re: Защита кода и привязка к компу

Сообщение Joo » 21.01.2011 (Пт) 7:17

DirectXManiac писал(а):Допустим защита Armadillo у интересующей меня программы ломается, но мне на это придется убить месяц

Если занимаешься распаковкой Armadillo впервые.
DirectXManiac писал(а):тем более цена будет не заоблачная

Вот! Это правильно, если программа хорошая, а цена разумная, то и ломать не буду, тем более если это связано с геморроем.
DirectXManiac писал(а):Спасибо за информацию...

Пожалуйста
"Им будет не просто, тем кто полагается на истину авторитета, вместо того чтобы полагаться на авторитет Истины"
Джеральд Месси, Египтолог

Денис
Доктор VB наук
Доктор VB наук
Аватара пользователя
 
Сообщения: 2734
Зарегистрирован: 07.11.2006 (Вт) 13:55
Откуда: Ейск, Краснодарский край

Re: Защита кода и привязка к компу

Сообщение Денис » 21.01.2011 (Пт) 8:52

А если рассмотреть такой вариант:
Загрузчик (враппер) распаковывает рабочую программу из своих ресурсов и запускает.
Причем запускает ее вызовом к.-л. экспортируемой процедуры (т.е. сама по себе программа не запустилась бы)
Программа при запуске ищет процесс враппера и посылает ему сообщение с кодом авторизации.
Если она не посылает сообщений или сообщение некорректное, враппер убивает ее.
Если пришло корректное сообщение, враппер посылает сообщение с ответом.
Если враппер не посылает сообщений, или сообщение некорректное, программа убивает себя.
В течении работы программа так же продолжает опрашивать враппер на работоспособность, и если он исчезает, программа убивает себя.
Программирование — богоизбранная дисциплина! Если бог и есть, то вселенную он скомпилировал, не иначе.

DirectXManiac
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1543
Зарегистрирован: 03.11.2005 (Чт) 13:32
Откуда: из DirectX SDK

Re: Защита кода и привязка к компу

Сообщение DirectXManiac » 21.01.2011 (Пт) 10:42

Денис
Тоже самое, только с аппаратным ключом :)
По поводу распаковки незнаю, но ключик нужно.
Последний раз редактировалось DirectXManiac 21.01.2011 (Пт) 11:00, всего редактировалось 2 раз(а).
#define ROFL 0xDDDD

Joo
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 762
Зарегистрирован: 14.08.2008 (Чт) 11:55
Откуда: Казахстан

Re: Защита кода и привязка к компу

Сообщение Joo » 21.01.2011 (Пт) 10:48

Денис писал(а):Загрузчик (враппер) распаковывает рабочую программу из своих ресурсов и запускает.

И что мешает крякеру извлечь программу и потом подлечить её от проверок враппера?
"Им будет не просто, тем кто полагается на истину авторитета, вместо того чтобы полагаться на авторитет Истины"
Джеральд Месси, Египтолог

DirectXManiac
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1543
Зарегистрирован: 03.11.2005 (Чт) 13:32
Откуда: из DirectX SDK

Re: Защита кода и привязка к компу

Сообщение DirectXManiac » 21.01.2011 (Пт) 11:00

Joo
Речь идет о полном дизассемблировании с целью получения алгоритмов работы, а не отлома... Отломанная есть и так :)
#define ROFL 0xDDDD

FireFenix
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1640
Зарегистрирован: 25.05.2007 (Пт) 10:24
Откуда: Mugen no Sora

Re: Защита кода и привязка к компу

Сообщение FireFenix » 21.01.2011 (Пт) 12:30

Joo писал(а):
Денис писал(а):Загрузчик (враппер) распаковывает рабочую программу из своих ресурсов и запускает.

И что мешает крякеру извлечь программу и потом подлечить её от проверок враппера?

Симметричное шифрование (к примеру AES) + ключик к проге содержащий запакованный ключ шифра. Если покупатели не выложат ключ + прогу, то ещё долго не взломают :)
Птицей Гермеса меня называют, свои крылья пожирая... сам себя я укрощаю
私はヘルメスの鳥 私は自らの羽根を喰らい 飼い慣らされる

Денис
Доктор VB наук
Доктор VB наук
Аватара пользователя
 
Сообщения: 2734
Зарегистрирован: 07.11.2006 (Вт) 13:55
Откуда: Ейск, Краснодарский край

Re: Защита кода и привязка к компу

Сообщение Денис » 21.01.2011 (Пт) 13:28

FireFenix писал(а):Симметричное шифрование (к примеру AES) + ключик к проге содержащий запакованный ключ шифра. Если покупатели не выложат ключ + прогу, то ещё долго не взломают

А если еще программа будет отсылать на свой сервер инфу о своей регистрации, то можно еще и банить скомпрометированные ключики. Что, собственно и делают 95% производителей.
Программирование — богоизбранная дисциплина! Если бог и есть, то вселенную он скомпилировал, не иначе.

NET Coder
Новичок
Новичок
 
Сообщения: 25
Зарегистрирован: 06.02.2008 (Ср) 0:18

Re: Защита кода и привязка к компу

Сообщение NET Coder » 24.01.2011 (Пн) 2:35

Думаю Inquartos Obfuscator сможет помочь.
Описание
Цены

DirectXManiac
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1543
Зарегистрирован: 03.11.2005 (Чт) 13:32
Откуда: из DirectX SDK

Re: Защита кода и привязка к компу

Сообщение DirectXManiac » 25.01.2011 (Вт) 11:01

Пока решаю проблему приобретением guardant-а. www.guardant.ru - usb ключики с поддержкой выше перечисленного в том числе обфускации и защиты для .NET. Как поковыряю отпишусь как работает :)
#define ROFL 0xDDDD

krukovis84
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 108
Зарегистрирован: 04.08.2009 (Вт) 11:16
Откуда: Кочевник

Re: Защита кода и привязка к компу

Сообщение krukovis84 » 23.08.2012 (Чт) 16:09

DirectXManiac писал(а):Пока решаю проблему приобретением guardant-а. http://www.guardant.ru - usb ключики с поддержкой выше перечисленного в том числе обфускации и защиты для .NET. Как поковыряю отпишусь как работает :)

Добрый день!
Как успехи с этой прогой? Приложение не убивает? Как общее впечатление?

Я столкнулся с проблемой защиты кода. Есть приложение на C#. Работает с БД Sql Server CE 4.0 с помощью Entity Framework. После обфускации с помощью .NET Reactor или встроенным в 2010 студию Dotuscator'ом работать корректно отказывается. Сначала вообще не мог понять в чем дело. Теперь локализовал проблему до обращения к БД. А точнее при сохранении данных в БД и чтении где то возникает ошибка. Я грешу на то, что обфускатор переименовывает какие то объекты, а привязка к ним идет по названию объектов (кажется это называется рефлексия). И после обфускации соответсвенно идет конфликт. Некий объект объявлен на Object1 , привязка сформирована к @"Object1", а после обфускации он уже не Object1 какой нить объект а1348 и все ломается. Или так быть не может и в чем то другом проблема? Может кто сталкивался?

FireFenix
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1640
Зарегистрирован: 25.05.2007 (Пт) 10:24
Откуда: Mugen no Sora

Re: Защита кода и привязка к компу

Сообщение FireFenix » 23.08.2012 (Чт) 17:28

Изучить свойства обусфактора и выбрать те режимы, которые не влияют на логику данного кода
Птицей Гермеса меня называют, свои крылья пожирая... сам себя я укрощаю
私はヘルメスの鳥 私は自らの羽根を喰らい 飼い慣らされる


Вернуться в C#

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 7

    TopList