Модераторы: Partizan, gambit

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Защита исходного кода .NET приложений, От любителей халявы ... и не только 
:(
    Опции темы
IZ@TOP
  Дата 25.9.2003, 16:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Панда-бир!
****


Профиль
Группа: Участник
Сообщений: 4795
Регистрация: 3.2.2003
Где: Бамбуковый лес

Репутация: 1
Всего: 73



САБЖ.
Собственно я слышал что есть какие то утилиты которые защищают IL от чужих глаз, но не видел ... кто чего знает по этому поводу ? Пожелания, предложения ?

Мне кажется эта тема актуальной, и относится не только к клиентским приложениям, но и WEB Server - Side ...



--------------------
Один из розовых плюшевых-всадников апокалипсиса... очень злой...

Семь кругов ада для новых элементов языка
Мои разрозненные мысли
PM MAIL WWW ICQ Skype GTalk   Вверх
Case
Дата 25.9.2003, 17:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 22
Регистрация: 29.8.2003

Репутация: нет
Всего: нет



Могу только сказать, что с точки зрения таких приложений как TestComplete и им подобных (имеются в виду программы для тестирования) приложение на .NET являются open project (то есть можно получить доступ ко всем методам и интерфейсам, не говоря уж о контролах).

_______________________
http://tester.com.ua - Сервер тестировщиков.
PM MAIL WWW ICQ   Вверх
IZ@TOP
Дата 25.9.2003, 17:14 (ссылка) |  (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Панда-бир!
****


Профиль
Группа: Участник
Сообщений: 4795
Регистрация: 3.2.2003
Где: Бамбуковый лес

Репутация: 1
Всего: 73



Цитата
приложение на .NET являются open project

Во, во ! Именно об этом я и говорил ... неужели нет ни чего чем можно от халявщиков защититься ? Взяли ILDasm ... и весь IL у тебя ... Правда еще IL надо изучить smile.gif Хотя говорят, что чтобы использовать все прелести .NET надо программить на чистом IL ... это для любителей гимора ...


--------------------
Один из розовых плюшевых-всадников апокалипсиса... очень злой...

Семь кругов ада для новых элементов языка
Мои разрозненные мысли
PM MAIL WWW ICQ Skype GTalk   Вверх
IZ@TOP
Дата 26.9.2003, 11:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Панда-бир!
****


Профиль
Группа: Участник
Сообщений: 4795
Регистрация: 3.2.2003
Где: Бамбуковый лес

Репутация: 1
Всего: 73



Значит так, есть шанс что Мелкософтовцы прольют свет на это дело, наше издательство выпустило книгу "Защищенный КОД", сейчас буду смотреть что в ней есть, если чего интересного найду, сообщу.

Для тех кто хотел бы купить, сообщаю что, книга появится в продаже в начале ноября.



--------------------
Один из розовых плюшевых-всадников апокалипсиса... очень злой...

Семь кругов ада для новых элементов языка
Мои разрозненные мысли
PM MAIL WWW ICQ Skype GTalk   Вверх
stab
Дата 26.9.2003, 17:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Экс. модератор
Сообщений: 1839
Регистрация: 1.1.2003

Репутация: 22
Всего: 48



"Защищенный КОД" это наверно Safe Code smile.gif и ни чего общего с Software Protection не имеет, хотя как знать...


--------------------
6, 6, 6 - the number of the beast.
PM MAIL WWW   Вверх
Chess64
Дата 26.9.2003, 18:39 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 122
Регистрация: 25.9.2003
Где: Набережные Челны

Репутация: нет
Всего: нет



Спасибо мастерам, что откликнулись на существующий вопрос. А возник он совершено случайно. Создается проект на C# .NET - программисты довольны и уже готовы его сдать... тут одному из них попадается один из дизасмов для .NET (в данном случае .NET Reflector) и начался геморой. Всевозможные ухищерения спрятать нужную часть кода не удавались. А специальные дотфускаторы стоят от1000 $.
Вот поетому я спросил у народа, КАК защитить код .NET.

Кстати что за "Защищенный КОД" - о чем ? Возможно куплю.

sad.gif( Проект так и не увидел свет!
--------------------
Aleksey Semyonov aKa LfP
PM MAIL WWW ICQ   Вверх
stab
Дата 26.9.2003, 19:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Экс. модератор
Сообщений: 1839
Регистрация: 1.1.2003

Репутация: 22
Всего: 48



Цитата
А специальные дотфускаторы стоят от1000 $.


скажи, плиз, какие? ни одного не видел.


--------------------
6, 6, 6 - the number of the beast.
PM MAIL WWW   Вверх
Chess64
Дата 27.9.2003, 14:42 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 122
Регистрация: 25.9.2003
Где: Набережные Челны

Репутация: нет
Всего: нет



>> cully
к примеру ThInstall его стоимость насколько я знаю составляет
лицензия на 1 юзверя = 749 $
лицензия на 2-х юзверей = 1199 $
лицензия на 5 юзверей = 2499 $
В оплату входит год суппорта и апргрейда.
Пойдет пример. Самое прикольное что буквально рядом продается антифускатор (правда цена вроде повыше)
Есть еще DotFuscator Standart and Professional (395 $ и 1495 $ соответственно).
--------------------
Aleksey Semyonov aKa LfP
PM MAIL WWW ICQ   Вверх
IZ@TOP
Дата 8.10.2003, 17:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Панда-бир!
****


Профиль
Группа: Участник
Сообщений: 4795
Регистрация: 3.2.2003
Где: Бамбуковый лес

Репутация: 1
Всего: 73



Короче, книга как оказалось офигенная, просто обо всем (Это я про "Защищенный код") ...
На ней так же присутствует такая реккомендация:
"Обязательное чтение для сотрудников Microsoft"
И подпись - Билл Гейтс biggrin.gif

Так что всем советую, а как только появится заглавие в PDF - я сюда ссылку кину. Но это будет примерно в ноябре, собственно тогда же ее можно будет приобрести.


--------------------
Один из розовых плюшевых-всадников апокалипсиса... очень злой...

Семь кругов ада для новых элементов языка
Мои разрозненные мысли
PM MAIL WWW ICQ Skype GTalk   Вверх
NetSharp
Дата 2.1.2004, 06:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 31
Регистрация: 20.12.2003
Где: Санкт-Петербург

Репутация: 1
Всего: 1



Есть хороший нетфускатор от Remotesoft (http://www.remotesoft.com/) и совершенно бесплатный!

Что качается антифускаторов, ИМХО, такого невозможно сделать. Буду очень признателен, если Вы, уважаемый Chess64, расскажите мне принцип его работы.
PM MAIL WWW ICQ MSN   Вверх
IZ@TOP
Дата 4.1.2004, 06:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Панда-бир!
****


Профиль
Группа: Участник
Сообщений: 4795
Регистрация: 3.2.2003
Где: Бамбуковый лес

Репутация: 1
Всего: 73



NetSharp, интересно ...
Цитата
http://www.remotesoft.com/
... а он действительно защитит на 100% ?


--------------------
Один из розовых плюшевых-всадников апокалипсиса... очень злой...

Семь кругов ада для новых элементов языка
Мои разрозненные мысли
PM MAIL WWW ICQ Skype GTalk   Вверх
NetSharp
Дата 4.1.2004, 08:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 31
Регистрация: 20.12.2003
Где: Санкт-Петербург

Репутация: 1
Всего: 1



На 100% ни что не может защитить. Но всё же защищает он хорошо.
PM MAIL WWW ICQ MSN   Вверх
IZ@TOP
Дата 6.1.2004, 14:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Панда-бир!
****


Профиль
Группа: Участник
Сообщений: 4795
Регистрация: 3.2.2003
Где: Бамбуковый лес

Репутация: 1
Всего: 73



NetSharp, а что именно делает анитфуксатор? Где об этом можно почитать поподробнее?


--------------------
Один из розовых плюшевых-всадников апокалипсиса... очень злой...

Семь кругов ада для новых элементов языка
Мои разрозненные мысли
PM MAIL WWW ICQ Skype GTalk   Вверх
NetSharp
Дата 6.1.2004, 14:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 31
Регистрация: 20.12.2003
Где: Санкт-Петербург

Репутация: 1
Всего: 1



Не знаю. На мой взгляд антифускаторов вообще неаозможно сделать. Ведь принцип работы обычных обфускаторов заключается в том, что он меняет названия всех методов, переменных, пространств имен на другие произвольные имена (например на a, b, c, d,... или 1a, 2b, 3c,... или же на FDRTBHH, KIUYTDCF и т.д.). Следовательно, как программа сможет поменять эти имена на первоночальные, если первичные имена нигде не сохранились?
PM MAIL WWW ICQ MSN   Вверх
IZ@TOP
Дата 9.1.2004, 13:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Панда-бир!
****


Профиль
Группа: Участник
Сообщений: 4795
Регистрация: 3.2.2003
Где: Бамбуковый лес

Репутация: 1
Всего: 73



NetSharp, бред какой то ...


--------------------
Один из розовых плюшевых-всадников апокалипсиса... очень злой...

Семь кругов ада для новых элементов языка
Мои разрозненные мысли
PM MAIL WWW ICQ Skype GTalk   Вверх
NetSharp
Дата 9.1.2004, 16:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 31
Регистрация: 20.12.2003
Где: Санкт-Петербург

Репутация: 1
Всего: 1



Почему бред? Все понятно.. Кстати я нашел еще один дотфускатор в перенговой сети Torrent. Бесплатный и с исходниками. Весит он 200 с небольшим метров. Когда скачаю - скажу что там.
PM MAIL WWW ICQ MSN   Вверх
IZ@TOP
Дата 9.1.2004, 17:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Панда-бир!
****


Профиль
Группа: Участник
Сообщений: 4795
Регистрация: 3.2.2003
Где: Бамбуковый лес

Репутация: 1
Всего: 73



NetSharp, ок.
На счет "бред", я просто этих технологий не знаю, по этому не буду корчить умника, лучше скажи где почитать об этом можно smile.gif


--------------------
Один из розовых плюшевых-всадников апокалипсиса... очень злой...

Семь кругов ада для новых элементов языка
Мои разрозненные мысли
PM MAIL WWW ICQ Skype GTalk   Вверх
NetSharp
Дата 9.1.2004, 23:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 31
Регистрация: 20.12.2003
Где: Санкт-Петербург

Репутация: 1
Всего: 1



Iz@top, важно только понимать, что в .NET сборке PE структура не в native коде, а в IL (managed) коде. И только при выполнении IL код компилируется уже в машинный. Такая структура PE очень удобна, но IL выше assembler кода, что делает дизассемблирование очень простым.

Статьи про обфускацию можно почитать здесь:
- Защита .Net продуктов от подглядывания
- Обфускация – есть такое слово
- Обзор 9Rays.Net Obfuscator
- Обфускация в .NET. Том I
PM MAIL WWW ICQ MSN   Вверх
NetSharp
Дата 10.1.2004, 21:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 31
Регистрация: 20.12.2003
Где: Санкт-Петербург

Репутация: 1
Всего: 1



Кстати, обфускатор от Remotesoft можете скачать здесь.
PM MAIL WWW ICQ MSN   Вверх
IZ@TOP
Дата 13.1.2004, 13:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Панда-бир!
****


Профиль
Группа: Участник
Сообщений: 4795
Регистрация: 3.2.2003
Где: Бамбуковый лес

Репутация: 1
Всего: 73



NetSharp, спасибо за информацию.


--------------------
Один из розовых плюшевых-всадников апокалипсиса... очень злой...

Семь кругов ада для новых элементов языка
Мои разрозненные мысли
PM MAIL WWW ICQ Skype GTalk   Вверх
Paradox
Дата 27.2.2004, 09:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник
Сообщений: 1135
Регистрация: 18.11.2002
Где: Россия

Репутация: 2
Всего: 1



На сколько мне известно есть ILDASM именно для дизассемблирования .нет программ, и поставляется он с .нет фреймворк помоему, причем он разбирает код вплось до такого какие классы определены в программе, методы доступа к ним, сингнатуры методов, и так далее

Кстати Iz@top если у тебя есть доступ к книжкам прочти 1-ю главу книги "Программирование для .NET" Джеф Просиз - помоему, там про все это написано подробнее

MicroSoft ксати советует защищать исходный код с помощью утилит третьих фирм


--------------------
---
PM MAIL WWW   Вверх
NetSharp
Дата 12.3.2004, 00:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 31
Регистрация: 20.12.2003
Где: Санкт-Петербург

Репутация: 1
Всего: 1



Цитата
На сколько мне известно есть ILDASM именно для дизассемблирования .нет программ, и поставляется он с .нет фреймворк помоему, причем он разбирает код вплось до такого какие классы определены в программе, методы доступа к ним, сингнатуры методов, и так далее

Верно. Но это возможности только дизассемблера. Также в природе существуют декомпиляторы, которые managed код позволяют перевести в практически идентичный высокоуровневый код.
PM MAIL WWW ICQ MSN   Вверх
IZ@TOP
Дата 27.3.2004, 18:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Панда-бир!
****


Профиль
Группа: Участник
Сообщений: 4795
Регистрация: 3.2.2003
Где: Бамбуковый лес

Репутация: 1
Всего: 73



Цитата
Кстати Iz@top если у тебя есть доступ к книжкам прочти 1-ю главу книги "Программирование для .NET" Джеф Просиз - помоему, там про все это написано подробнее

А по моему нет sad.gif точнее там как раз и сказано про третьих лиц, но ни чего про реализацию sad.gif


--------------------
Один из розовых плюшевых-всадников апокалипсиса... очень злой...

Семь кругов ада для новых элементов языка
Мои разрозненные мысли
PM MAIL WWW ICQ Skype GTalk   Вверх
Sniper
Дата 14.4.2004, 18:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 511
Регистрация: 8.5.2002

Репутация: нет
Всего: 2



А если посмотреть на всю эту .Net с другой стороны то получается что Микрософт сможет слёгкостью использовать разрабротки всё техже третьих фирм для своих целей! Ведь ЗАЩИТУ КОДА они так и не предоставили!


--------------------
"Я испытываю отвращение к системе, разработаннной для "пользователя", если в слове "пользователь" закодировано уничижительное значение "тупой и примитивный".
Кен Томпсон, создатель Unix
PM MAIL   Вверх
stab
Дата 20.4.2004, 21:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Экс. модератор
Сообщений: 1839
Регистрация: 1.1.2003

Репутация: 22
Всего: 48



[offtop]
Sniper, скорее некие четвертые лица будут использовать наши разработки smile.gif
[/offtop]

а если серьезно, то наша компания именно по этим причинам отказалась от использования .net sad.gif жаль



--------------------
6, 6, 6 - the number of the beast.
PM MAIL WWW   Вверх
stab
Дата 30.4.2004, 19:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Экс. модератор
Сообщений: 1839
Регистрация: 1.1.2003

Репутация: 22
Всего: 48



Люди имеющие опыт применения обфускаторов на практике, пожалуйста, поделитесь впечатлениями. Какие грабли есть, где обфускация применима а где даёт\даст сбой?


--------------------
6, 6, 6 - the number of the beast.
PM MAIL WWW   Вверх
NetSharp
Дата 4.5.2004, 02:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 31
Регистрация: 20.12.2003
Где: Санкт-Петербург

Репутация: 1
Всего: 1



Цитата
А если посмотреть на всю эту .Net с другой стороны то получается что Микрософт сможет слёгкостью использовать разрабротки всё техже третьих фирм для своих целей! Ведь ЗАЩИТУ КОДА они так и не предоставили!

Ни в коем случае. У Microsoft совершенно другая политика. Кроме того, Microsoft же выпустила книгу "Защищенный код" (Writing Secure Code).
PM MAIL WWW ICQ MSN   Вверх
IZ@TOP
Дата 12.5.2004, 20:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Панда-бир!
****


Профиль
Группа: Участник
Сообщений: 4795
Регистрация: 3.2.2003
Где: Бамбуковый лес

Репутация: 1
Всего: 73



Цитата
"Защищенный код" (Writing Secure Code).

А наше издательство перевело и с успехом продает эту книгу! Среди специалистов считается очень хорошей литературой. На обложке подпись Билла - "Обязательна для чтения сотрудникам Microsoft" biggrin.gif


--------------------
Один из розовых плюшевых-всадников апокалипсиса... очень злой...

Семь кругов ада для новых элементов языка
Мои разрозненные мысли
PM MAIL WWW ICQ Skype GTalk   Вверх
Finkel
Дата 7.6.2004, 01:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 41
Регистрация: 31.3.2004

Репутация: нет
Всего: нет



и когда же она появится в продаже?
PM MAIL   Вверх
IZ@TOP
Дата 8.6.2004, 10:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Панда-бир!
****


Профиль
Группа: Участник
Сообщений: 4795
Регистрация: 3.2.2003
Где: Бамбуковый лес

Репутация: 1
Всего: 73



Finkel
Вообщем-то эта книга продается уже с ноября 2003 года. Смотри в магазинах своего города. А так же www.ozon.ru & www.bolero.ru.


--------------------
Один из розовых плюшевых-всадников апокалипсиса... очень злой...

Семь кругов ада для новых элементов языка
Мои разрозненные мысли
PM MAIL WWW ICQ Skype GTalk   Вверх
zeus
Дата 11.6.2004, 23:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 5
Регистрация: 21.5.2004

Репутация: нет
Всего: нет



я тут случайно в темку заглянул.... дык dotfuscator в MS VC 2003 входит вроде ????
PM MAIL   Вверх
arilou
Дата 15.7.2004, 13:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Великий МунаБудвин
****


Профиль
Группа: Экс. модератор
Сообщений: 2646
Регистрация: 15.7.2004
Где: город-герой Минск

Репутация: 21
Всего: 61



Микрософт теперь поддерживает Open Source biggrin.gif




--------------------
user posted imageuser posted image
PM WWW ICQ   Вверх
Гость_Victor
Дата 20.7.2004, 10:21 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











а есть холявная версия?(e-book)
  Вверх
December
Дата 23.8.2004, 22:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Antitheorist
****


Профиль
Группа: Участник
Сообщений: 4423
Регистрация: 14.8.2002
Где: Харьков

Репутация: нет
Всего: 57



Цитата(zeus @ 11.6.2004, 23:07)
dotfuscator в MS VC 2003 входит вроде

Входит, но есть на него многочисленные жалобы.


--------------------
Для друзей с винграда - скидки на разработку сайтов
PM MAIL WWW ICQ   Вверх
NiJazz
Дата 3.2.2005, 13:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Jazz coder
****


Профиль
Группа: Экс. модератор
Сообщений: 2286
Регистрация: 10.8.2003
Где: Москва

Репутация: нет
Всего: 23



Можно подписывать бинарники. Матушка-криптография никогда не устареет. smile
PM MAIL   Вверх
jfx
Дата 20.4.2005, 12:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 98
Регистрация: 18.10.2004

Репутация: 1
Всего: 1



Цитата
Можно подписывать бинарники

И что это даст?
PM MAIL   Вверх
mike_
Дата 21.4.2005, 09:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 4
Регистрация: 21.4.2005
Где: vrn

Репутация: нет
Всего: нет



Цитата(jfx @ 20.4.2005, 12:28)
Цитата
Можно подписывать бинарники

И что это даст?

Это защитит от сборку от возможности исправлять код в ней. В большинстве случаев этого достаточно.
PM MAIL WWW ICQ   Вверх
jfx
Дата 21.4.2005, 10:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 98
Регистрация: 18.10.2004

Репутация: 1
Всего: 1



Цитата
Это защитит сборку

"Это" не защитит сборку. Есть как минимум три способа обойти проверку StrongName:
  1. В заголовке сборки обнулить длину PublicKey - это приведет просто к отключению проверкии вообще. sn -v assm.dll выдаст "assm.dll does not represent a strongly named assembly".
  2. Разобрать сборку с помощью ildasm, в исходниках убрать секцию с PublicKey и собрать сборку вновь. Результат тот же что и в первом варианте.
  3. Просто переподписать исправленную сборку новым ключом, предварительно заменив в сборке PublicKey на тот для которого известен PrivateKey.
Таким образом защита с помощью StrongName приравнивается к нулю. Ваши коментарии?

PM MAIL   Вверх
mike_
Дата 21.4.2005, 15:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 4
Регистрация: 21.4.2005
Где: vrn

Репутация: нет
Всего: нет



Цитата(jfx @ 21.4.2005, 10:28)
Таким образом защита с помощью StrongName приравнивается к нулю. Ваши коментарии?


No comments...

я и не говорил о 100% защите. Потому как предложенный тобой способ обхода знают многие, но не все. И плюс ко всему, этот вариант взлома тоже не 100%.
PM MAIL WWW ICQ   Вверх
jfx
Дата 21.4.2005, 16:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 98
Регистрация: 18.10.2004

Репутация: 1
Всего: 1



Цитата
тоже не 100%

да ну...
PM MAIL   Вверх
zendao
Дата 5.6.2005, 19:47 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Еще есть XenoCode http://www.xenocode.com/setup.msi

Как пример, листинг исходника и декомпилированного кода: http://www.xenocode.com/Articles-Sample.aspx
  Вверх
Ch0bits
Дата 5.6.2005, 22:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Python Dev.
****


Профиль
Группа: Завсегдатай
Сообщений: 2124
Регистрация: 21.2.2005
Где: Казань

Репутация: 9
Всего: 62



Ужасьнах... чего он с кодом сделал! smile
Ну ничего... и его поломают. smile
PM WWW   Вверх
nikf
Дата 8.6.2005, 17:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 127
Регистрация: 6.6.2005
Где: город-герой Жирно вск

Репутация: нет
Всего: 1



смех и грех.. если прога ченить стоит, то $1000 на защиту это копейки, а иначе болтовня одна и защищать нечего...
PM MAIL   Вверх
sammix
Дата 2.10.2005, 11:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 31
Регистрация: 1.10.2005

Репутация: нет
Всего: 2



Всё это похоже на триаду:
- новый розвод на деньги от Мелкософт собственной персоной
- возможность мелкософтовцам цапать проекты третьих сторон
- ну или новая работа для создателей протекторов и обфускаторов.
PM MAIL   Вверх
Budda
Дата 23.10.2005, 05:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 45
Регистрация: 27.9.2004
Где: Украина, Киев

Репутация: нет
Всего: нет



Погодите, люди. Если я не ошибаюсь, то ИЛДасм.єхє сможет показать код только public классов. А всё, что нужно спрятать, можно прятать в private... Или не так?
PM WWW   Вверх
mr.DUDA
Дата 23.10.2005, 12:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


3D-маньяк
****


Профиль
Группа: Экс. модератор
Сообщений: 8244
Регистрация: 27.7.2003
Где: город-герой Минск

Репутация: 110
Всего: 232



Цитата(Budda @ 23.10.2005, 05:24)
Или не так?

не так smile


--------------------
user posted image
PM MAIL WWW   Вверх
Budda
Дата 23.10.2005, 19:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 45
Регистрация: 27.9.2004
Где: Украина, Киев

Репутация: нет
Всего: нет



mr.DUDAпроверил, точно private - не прячет код... хм, странно, а зачем сие сделано? В чём смысл? Я ещё понимаю, открывать код public-методов, или protected, но вот private... ?
PM WWW   Вверх
Mad
Дата 24.10.2005, 13:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Эксперт
Сообщений: 656
Регистрация: 18.10.2004
Где: Одесса

Репутация: 1
Всего: 19



По большому счету, обыный бинарник, сделанный любым компилятором, можно перевести в исфодный код (в автомате на Asm smile), просто для .Net гораздо проще написать не просто дисасемблер, а именно декомпилятор smile
так что прятать код както специально, или коробить его, я особого смысла не вижу (тем более платить за енто огромные деньги). Исли комуто понравиться какаято часть твоего кода (имеется в виду, какаято функция, или метод ее реализации), то всеравно он сможет ее вытянуть smile


--------------------
user posted image
PM MAIL   Вверх
Exception
Дата 24.10.2005, 14:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 4525
Регистрация: 26.12.2004

Репутация: 29
Всего: 186



private нужен не для сокрытия кода, а для сокрытия реализации. а то зачем нужен ООП? ведь в этом и смысл - инкапсуляция..
PM   Вверх
Budda
Дата 24.10.2005, 14:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 45
Регистрация: 27.9.2004
Где: Украина, Киев

Репутация: нет
Всего: нет



Run-time error, да, понимаю. А то что код можно легко смотреть, то это и есть косвенное следствие наличия манифестов в сборках, верно?

Если есть возможность, запусти, плиз, аську. Я там к тебе постучался... хочу спросить кое-чего...
PM WWW   Вверх
Гость_Master
Дата 12.12.2005, 11:08 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Люди, нет лучшей обфускации, чем ручная обфускация критических участков кода.
.NET позволяет динамически генерировать код, загружать сборки непосредственно с памяти, использовать вместо стандартных вызовов функции CreateInstance, InvokeMethod и т.д. и т.п.
  Вверх
Medved
Дата 20.12.2005, 20:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 7209
Регистрация: 15.9.2002
Где: Kazakhstan, Astan a

Репутация: 3
Всего: 154





--------------------
http://extreme.sport-express.ru/
...и неважно сколько падал, важно сколько ты вставал...
PM MAIL WWW ICQ Skype GTalk   Вверх
VisualProgrammerNET
Дата 21.12.2005, 13:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Почётный халявщик
**


Профиль
Группа: Участник
Сообщений: 461
Регистрация: 30.10.2005
Где: Зеленоград

Репутация: 4
Всего: 6



Цитата
.NET позволяет динамически генерировать код

Это как? smile


--------------------
3 ГОДА НА user posted image 
PM MAIL ICQ   Вверх
mr.DUDA
Дата 21.12.2005, 16:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


3D-маньяк
****


Профиль
Группа: Экс. модератор
Сообщений: 8244
Регистрация: 27.7.2003
Где: город-герой Минск

Репутация: 110
Всего: 232



Цитата(VisualProgrammerNET @ 21.12.2005, 12:38)
Это как? 

неймспейс System.Reflection.Emit
а также Microsoft.CSharp


--------------------
user posted image
PM MAIL WWW   Вверх
arilou
Дата 21.12.2005, 17:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Великий МунаБудвин
****


Профиль
Группа: Экс. модератор
Сообщений: 2646
Регистрация: 15.7.2004
Где: город-герой Минск

Репутация: 21
Всего: 61



Цитата(mr @ 21.12.2005, 16:05)
неймспейс System.Reflection.Emit
а также Microsoft.CSharp

А также System.CodeDom


--------------------
user posted imageuser posted image
PM WWW ICQ   Вверх
Lord Dagger
Дата 21.12.2005, 21:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 103
Регистрация: 14.8.2004
Где: Москва

Репутация: 2
Всего: 3



Теперь есть возможность использования Unicode-символов в именах переменных, методов и функций. Это может затруднить задачу деобфускации сборок.
--------------------
(+)  
PM MAIL WWW ICQ   Вверх
mr.DUDA
Дата 21.12.2005, 21:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


3D-маньяк
****


Профиль
Группа: Экс. модератор
Сообщений: 8244
Регистрация: 27.7.2003
Где: город-герой Минск

Репутация: 110
Всего: 232



Цитата(Lord @ 21.12.2005, 20:30)
Теперь есть возможность использования Unicode-символов в именах переменных, методов и функций.

Поправьте меня, если я не прав: разве до сих пор нельзя было использовать юникод в вышеперечисленных ситуациях? Например, я могу создать класс с именем Класс1 в студии 2003. smile
Добавлено @ 21:39
З.Ы. а чем метод отличается от функции ? smile


--------------------
user posted image
PM MAIL WWW   Вверх
Exception
Дата 21.12.2005, 21:43 (ссылка) |    (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 4525
Регистрация: 26.12.2004

Репутация: 29
Всего: 186



Угу.
Код
class ПодиДогадайсяЧтоЯЗаКласс{
private ЕщеФигЗнаетЧтоЗаКласс СуперСекретноеПоле;
void БлаБлаБла(int ?, int $){
while(true) int ¤ = ?* $;
//ненужный метод для ухудшения понимания кода 
}
}

smile


Это сообщение отредактировал(а) Run-time error - 21.12.2005, 21:47
PM   Вверх
Lord Dagger
Дата 21.12.2005, 21:50 (ссылка) |   (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 103
Регистрация: 14.8.2004
Где: Москва

Репутация: 2
Всего: 3



mr.DUDA
Конечно, можно было;)
Просто именно сейчас на эту возможность обратила внимание общественностьsmile
Да и я честно говоря до появления VS 2005 этим не пользовался.

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

Вот так;)
--------------------
(+)  
PM MAIL WWW ICQ   Вверх
kobra
Дата 19.1.2006, 12:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 730
Регистрация: 15.6.2005
Где: Грузия, Тбилиси

Репутация: 1
Всего: 9



Цитата(Гость_Master @ 12.12.2005, 11:08 Найти цитируемый пост)

.NET позволяет динамически генерировать код, загружать сборки непосредственно с памяти, использовать вместо стандартных вызовов функции CreateInstance, InvokeMethod и т.д. и т.п.
но как етим можно зашитить код от чужых глаз? не понемаю.
может кто обяснит.

PM MAIL   Вверх
Danilo
Дата 1.2.2006, 23:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 2
Регистрация: 1.2.2006

Репутация: нет
Всего: нет



У нас в конторе довольно долго обсуждались варианты защиты программного кода и в итоге был написан фрэймворк делающий примерно следующее:

1. После компиляции все модули системы пропускаются через encryptor, который читает сборки, получает тела функций, криптует их одним из алгоритмов шифрования и пишет обратно в сборку.
2. При запуске программы используем .NET Profiling Api позволяющий перед вызовом функции JIT компайлером получить тело метода, дешифровать его и "подсунуть" оригинальное тело метода.

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

Предвосхищая вопросы перфоманса могу сказать что он сильно зависит от алгоритмов шифрования, но практика показала что использование симметричных алгоритмов даёт приемлимый (для нашей системы) результат.


PM MAIL   Вверх
jfx
Дата 6.2.2006, 14:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 98
Регистрация: 18.10.2004

Репутация: 1
Всего: 1



Хм, интересный способ, похоже на загрузчики Java. В Java это реализуется почти стандартно, а вот в .NET как? Исли можно пример или ссылки по теме.
Спасибо.
PM MAIL   Вверх
Danilo
Дата 12.2.2006, 23:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 2
Регистрация: 1.2.2006

Репутация: нет
Всего: нет



Цитата(jfx @ 6.2.2006, 14:35)
Если можно пример или ссылки по теме.


Почитать можно например здесь.
PM MAIL   Вверх
ivashkanet
Дата 19.6.2006, 10:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Кодю потиху
****


Профиль
Группа: Участник Клуба
Сообщений: 3684
Регистрация: 23.2.2006
Где: Гомель, Беларусь

Репутация: 47
Всего: 149



Поднимаю тему.
Вычитал, что все данные, нужные для дезассемблирования берутся из метаданных. 
Вопрос: возможно ли как-нибудь корректно удалить часть метаданных (я понимаю, что потом нашу сборку нельзя будет корректно подключить к другой сборке). 
Вопрос чисто теоретический. Просто пришел в голову  smile  
PM MAIL WWW ICQ   Вверх
mr.DUDA
Дата 19.6.2006, 20:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


3D-маньяк
****


Профиль
Группа: Экс. модератор
Сообщений: 8244
Регистрация: 27.7.2003
Где: город-герой Минск

Репутация: 110
Всего: 232



Вряд ли CLR позволит удалить из сборки таблицу метаданных smile 


--------------------
user posted image
PM MAIL WWW   Вверх
ivashkanet
Дата 20.6.2006, 07:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Кодю потиху
****


Профиль
Группа: Участник Клуба
Сообщений: 3684
Регистрация: 23.2.2006
Где: Гомель, Беларусь

Репутация: 47
Всего: 149



Цитата(mr.DUDA @  19.6.2006,  20:19 Найти цитируемый пост)
Вряд ли CLR позволит удалить из сборки таблицу метаданных

Это был чисто теоретический вопрос  smile  
PM MAIL WWW ICQ   Вверх
mr.DUDA
Дата 20.6.2006, 11:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


3D-маньяк
****


Профиль
Группа: Экс. модератор
Сообщений: 8244
Регистрация: 27.7.2003
Где: город-герой Минск

Репутация: 110
Всего: 232



Цитата(ivashkanet @  20.6.2006,  07:48 Найти цитируемый пост)
Это был чисто теоретический вопрос  

это был чисто теоретический ответ  smile 


--------------------
user posted image
PM MAIL WWW   Вверх
sammix
Дата 20.6.2006, 21:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 31
Регистрация: 1.10.2005

Репутация: нет
Всего: 2



Кто знает может это всё к лучшему...

сорсы дороже стоят, но в таком случае всем придется делать open-source проекты. 
PM MAIL   Вверх
ivashkanet
Дата 30.8.2006, 12:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Кодю потиху
****


Профиль
Группа: Участник Клуба
Сообщений: 3684
Регистрация: 23.2.2006
Где: Гомель, Беларусь

Репутация: 47
Всего: 149



Поднимаю тему опять
Цитата(jfx @  21.4.2005,  10:28 Найти цитируемый пост)
Есть как минимум три способа обойти проверку StrongName:

  1. В заголовке сборки обнулить длину PublicKey - это приведет просто к отключению проверкии вообще. sn -v assm.dll выдаст "assm.dll does not represent a strongly named assembly".
  2. Разобрать сборку с помощью ildasm, в исходниках убрать секцию с PublicKey и собрать сборку вновь. Результат тот же что и в первом варианте.
  3. Просто переподписать исправленную сборку новым ключом, предварительно заменив в сборке PublicKey на тот для которого известен PrivateKey.
Таким образом защита с помощью StrongName приравнивается к нулю. Ваши коментарии?


jfx, ты извини, но ты совсем не в курсе вопроса  smile 
Сборку защищают для того, чтобы ее нельзя было подменить на другую smile 
Проверкой ключей и строгих имен заниматся прога (сборка) использующая защищенную сборку.
Если мы удалим publicKey из сборки, то прога будет ругаться на попытку подсунуть ей другую сборку вместо необходимой (защищенной ключем).
P.S. Повторяю еще раз: StrongName сборки нужно для защиты ее от подмены smile
Если сделать хоть какое изменение в сборке мы теряем ее Строгое Имя. После этого все программы, которые используют защищенную сборку будут ругаться на измененную. 
P.P.S. Механизм подписывания сборок используется так же механизме предоставления прав сборке.
Например можно запретить неподписанным (ключем которомы мы доверям) сборкам доступ к реестру, диску С:  (можно вообще много чего запретить).
После этого если злоумышленник изменит код сборки, то он потеряет ее подпись, а следовательно и возможность навредить smile

PM MAIL WWW ICQ   Вверх
Rapalex
Дата 31.8.2006, 11:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 732
Регистрация: 20.1.2006
Где: Украина -> Ник олаев

Репутация: 2
Всего: 8



Почитал я 3-х летнюю дискусию, и возник вопрос рас уж так исторически вышло что всё можно дизасемблировать, а .нет можно ещё и декомпелировать, тогда КАК ЖЕ НАМ ПРОГРАМЕРАМ ПРИВЯЗЫВАТЬ НАШ ПРОДУКТ К ЖЕЛЕЗУ?

Ведь вся наша проверка видна декомпилятором и легко можно написать кейген используя наш код!!!

Я никогда даже не пробывал ломать класические екзешники но знаю что есть всякие отладчики для экзешников, но есть и те программы которые не дают им работать.

А что с етим в мире .нет?

Не забуддте про вопрос который набран ЗАГЛАВНЫМИ БУКВАМИ.


--------------------
In vitium ducit culpae fuga.
Желание избежать ошибки вовлекает в другую.
(Horatius)
PM ICQ   Вверх
mr.DUDA
Дата 2.9.2006, 11:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


3D-маньяк
****


Профиль
Группа: Экс. модератор
Сообщений: 8244
Регистрация: 27.7.2003
Где: город-герой Минск

Репутация: 110
Всего: 232



Rapalex, всё решается на самом деле очень просто. Есть такое слово: обфускация. И никакая декомпиляция не поможет smile


--------------------
user posted image
PM MAIL WWW   Вверх
$tatic
Дата 3.9.2006, 15:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 651
Регистрация: 28.1.2005

Репутация: 2
Всего: 22



Я когда-то устанавливал 9-Rays Obfuscator. Короче там была какая-то примочка, которая помимо обфускации что-то еще делала с бинарником, в результате чего сборку вообще нельзя было загрузить в любой декомпилятор. Они просто выпадают с ошибкой. Не только ILDasm, но и Reflector. Кстати сам 9-Rays Obfuscator именно этой фичей и защищен. smile
Цитата(ivashkanet @  30.8.2006,  13:20 Найти цитируемый пост)
Проверкой ключей и строгих имен заниматся прога (сборка) использующая защищенную сборку

А если хакер именно эту прогу и поломает? smile
Может скомпилированную (и обфусцированную) прогу на .NET сжать каким-нибудь упаковщиком и обработать DotFix FakeSigner?
Да, и еще. Ведь при запуске проги на .NET управление получает вначале загрузчик, который уже потом запускает mscoree.dll. Можно ли сделать свой загрузчик, который вначале расшифрует код IL, а уже потом отправит его на выполнение?
Кстати если бы обфускаторы давали классам имена в юникоде из символов какой-нибудь "левой" кодовой страницы ИМХО было бы весело smile
PM MAIL   Вверх
mr.DUDA
Дата 3.9.2006, 17:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


3D-маньяк
****


Профиль
Группа: Экс. модератор
Сообщений: 8244
Регистрация: 27.7.2003
Где: город-герой Минск

Репутация: 110
Всего: 232



Цитата($tatic @  3.9.2006,  15:33 Найти цитируемый пост)
Кстати если бы обфускаторы давали классам имена в юникоде из символов какой-нибудь "левой" кодовой страницы ИМХО было бы весело

Они и так достаточно "левые", поди разбери что имеется ввиду в коде типа "a._b.c()._d(_e.a);" smile


--------------------
user posted image
PM MAIL WWW   Вверх
ivashkanet
Дата 3.9.2006, 18:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Кодю потиху
****


Профиль
Группа: Участник Клуба
Сообщений: 3684
Регистрация: 23.2.2006
Где: Гомель, Беларусь

Репутация: 47
Всего: 149



Цитата($tatic @  3.9.2006,  15:33 Найти цитируемый пост)
А если хакер именно эту прогу и поломает? 

Теоретически, должно измениться ее строгое имя smile 
PM MAIL WWW ICQ   Вверх
$tatic
Дата 3.9.2006, 19:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 651
Регистрация: 28.1.2005

Репутация: 2
Всего: 22



Цитата(ivashkanet @  3.9.2006,  19:54 Найти цитируемый пост)
Теоретически, должно измениться ее строгое имя

И где это будет проверено?
PM MAIL   Вверх
ivashkanet
Дата 4.9.2006, 08:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Кодю потиху
****


Профиль
Группа: Участник Клуба
Сообщений: 3684
Регистрация: 23.2.2006
Где: Гомель, Беларусь

Репутация: 47
Всего: 149



"Quis custodiet ipsos custodes" - Кто будет сторожить сторожей?(лат) 

Теоретически можно (и нужно) настроить правила безопасности, которые будут запрещать доступ неподписаных (или подписанных неизвестно кем) приложений к критическим ресурсам. 
Но опять же возникает вопрос, поднятый в начале поста. Где уверенность, что программу безопасности не подменят? Где уверенность, что не подменят сам загрузчик Винды (или другой оси)...?

Зато сейчас полностью исключены случаи подмены библиотек (думаю не ошибусь, если скажу, что 70-80% действительно вредоносных вирусов этим промышляют), что уже, ИМХО, проело плешь всему Майкрософту вместе взятому. Не зря же они придумали систему проверки целосности/оригинальности системных библиотек.

P.S. $tatic, извини, не врубился (точнее невчитался) в твой вопрос, вот и ответил невпопад smile 
PM MAIL WWW ICQ   Вверх
$tatic
Дата 4.9.2006, 09:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 651
Регистрация: 28.1.2005

Репутация: 2
Всего: 22



Ну я предполагал такую ситуацию: в программе есть защита (допустим она шароварная). Код программы находится в дллке (подписанной) и загружается загрузчиком, который проверяет ее подлинность. Если хакер взламывает дллку для сброса защиты, то подпись файла меняется и загрузчик сильно ругается smile. Так вот я имел в виду, что загрузчик тоже теоретически можно подменить, даже если и он был подписан. Тут все дело в том, что если пользователь использует кряк, то он знает, что ему придется отключать систему безопасности фреймворка.
Аналогичный случай наблюдался при взломе Windows XP SP1 крякером Reset5, когда недобросовестный smile пользователь должен был загрузить систему в безопасном режиме, чтобы ему не мешала система проверки целостности библиотек SFC.
Конечно анализ обфусцированной программы выполнить очень сложно. Но хакеру надо найти именно тот участок, который ответственнен за защиту программы. Ему же не надо полный reverse engineering делать. Естетственно эту проверку можно спрятать среди кучи левых методов, но хакер ведь может получить полный исходник в виде проекта для студии (это может плагин FileDisassembler для Reflector), загрузить его в студию и запустить в режиме отладки. Ведь этот метод фактически недоступен при анализе программ в машинном коде.
А вот над измененным загрузчиком IL-кода стоит подумать.
ЗЫ. Хакеры давно уже научились обходить проверку подлинности библиотек. Читайте Криса Касперски.
PM MAIL   Вверх
mr.DUDA
Дата 4.9.2006, 11:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


3D-маньяк
****


Профиль
Группа: Экс. модератор
Сообщений: 8244
Регистрация: 27.7.2003
Где: город-герой Минск

Репутация: 110
Всего: 232



Цитата($tatic @  4.9.2006,  09:31 Найти цитируемый пост)
Конечно анализ обфусцированной программы выполнить очень сложно. Но хакеру надо найти именно тот участок, который ответственнен за защиту программы. Ему же не надо полный reverse engineering делать. Естетственно эту проверку можно спрятать среди кучи левых методов, но хакер ведь может получить полный исходник в виде проекта для студии (это может плагин FileDisassembler для Reflector), загрузить его в студию и запустить в режиме отладки. Ведь этот метод фактически недоступен при анализе программ в машинном коде.

Нормальный обфускатор не позволит дизассемблировать программу в высокоуровневый язык (будут кидаться ошибки), и всё что останется - декомпилировать и отлаживать IL-код, что практически равносильно анализу программ в машинном коде. Кстати, хороший пример защиты исходного кода - как скрыты исходники самого Reflector-а  smile.


--------------------
user posted image
PM MAIL WWW   Вверх
Rapalex
Дата 4.9.2006, 14:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 732
Регистрация: 20.1.2006
Где: Украина -> Ник олаев

Репутация: 2
Всего: 8



Скажите кто каким обфускатором пользуется?


--------------------
In vitium ducit culpae fuga.
Желание избежать ошибки вовлекает в другую.
(Horatius)
PM ICQ   Вверх
mr.DUDA
Дата 4.9.2006, 15:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


3D-маньяк
****


Профиль
Группа: Экс. модератор
Сообщений: 8244
Регистрация: 27.7.2003
Где: город-герой Минск

Репутация: 110
Всего: 232



Пока серьёзным не приходилось пользоваться, DotFuscator community edition юзал.


--------------------
user posted image
PM MAIL WWW   Вверх
VisualProgrammerNET
Дата 4.9.2006, 16:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Почётный халявщик
**


Профиль
Группа: Участник
Сообщений: 461
Регистрация: 30.10.2005
Где: Зеленоград

Репутация: 4
Всего: 6



Чё меня бесит, так это то, что если допустим в программе есть закрытая переменная с паролем, например
Код

private string password2server = "1234567890";

то этот пароль можно просто и без проблем выдрать из программы. Кто-нибудь пробовал открывать экзешник или дллку в блокноте? Даже слепой не сможет не заметить среди тучи слов вполне логичные password2server = 1234567890. Мне не понятен принцип работы обфускатора. Что изменится с исполнительными файлами и библиотеками программы? Будет ли виден пресловутый пароль через блокнот?  


--------------------
3 ГОДА НА user posted image 
PM MAIL ICQ   Вверх
mr.DUDA
Дата 5.9.2006, 08:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


3D-маньяк
****


Профиль
Группа: Экс. модератор
Сообщений: 8244
Регистрация: 27.7.2003
Где: город-герой Минск

Репутация: 110
Всего: 232



Никто никогда не хранит такие данные в открытом виде. Чаще используют хеши (для сравнения) либо зашифрованные строки.


--------------------
user posted image
PM MAIL WWW   Вверх
ivashkanet
Дата 5.9.2006, 09:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Кодю потиху
****


Профиль
Группа: Участник Клуба
Сообщений: 3684
Регистрация: 23.2.2006
Где: Гомель, Беларусь

Репутация: 47
Всего: 149



Цитата(mr.DUDA @  5.9.2006,  08:31 Найти цитируемый пост)
Чаще используют хеши (для сравнения)

mr.DUDA, как можно хранить хэш, если базза требует именно пароль, а не его Хэш?
Аааа, ключевое слово --- "для сравнения", тогда понятно smile
Цитата(mr.DUDA @  5.9.2006,  08:31 Найти цитируемый пост)
зашифрованные строки.

Поподробнее. Насколько сильно нужно их шифровать? Какой-нибудь циклический сдвиг (А->Б, ..., Я->А) подойдет?
PM MAIL WWW ICQ   Вверх
arilou
Дата 5.9.2006, 10:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Великий МунаБудвин
****


Профиль
Группа: Экс. модератор
Сообщений: 2646
Регистрация: 15.7.2004
Где: город-герой Минск

Репутация: 21
Всего: 61



Цитата(VisualProgrammerNET @  4.9.2006,  16:11 Найти цитируемый пост)
Чё меня бесит, так это то, что если допустим в программе есть закрытая переменная с паролем, например

некоторые обфускаторы шифруют строки. сорри, конкретных примеров не помню.


--------------------
user posted imageuser posted image
PM WWW ICQ   Вверх
mr.DUDA
Дата 5.9.2006, 10:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


3D-маньяк
****


Профиль
Группа: Экс. модератор
Сообщений: 8244
Регистрация: 27.7.2003
Где: город-герой Минск

Репутация: 110
Всего: 232



Цитата(ivashkanet @  5.9.2006,  09:33 Найти цитируемый пост)
Поподробнее. Насколько сильно нужно их шифровать? Какой-нибудь циклический сдвиг (А->Б, ..., Я->А) подойдет?

Чем круче алгоритм шифрования, тем лучше.
Ещё лучше - не хранить конфиденциальную информацию в теле программы.


--------------------
user posted image
PM MAIL WWW   Вверх
ivashkanet
Дата 5.9.2006, 11:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Кодю потиху
****


Профиль
Группа: Участник Клуба
Сообщений: 3684
Регистрация: 23.2.2006
Где: Гомель, Беларусь

Репутация: 47
Всего: 149



mr.DUDA, а хде smile
Чувствую  smile Хотя про защиту smile
PM MAIL WWW ICQ   Вверх
mr.DUDA
Дата 5.9.2006, 11:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


3D-маньяк
****


Профиль
Группа: Экс. модератор
Сообщений: 8244
Регистрация: 27.7.2003
Где: город-герой Минск

Репутация: 110
Всего: 232



Цитата(ivashkanet @  5.9.2006,  11:01 Найти цитируемый пост)
mr.DUDA, а хде

Скажи мне, ну нафига хранить секретный логин и пароль в проге ? К чему логин ? И пароль ?


--------------------
user posted image
PM MAIL WWW   Вверх
arilou
Дата 5.9.2006, 11:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Великий МунаБудвин
****


Профиль
Группа: Экс. модератор
Сообщений: 2646
Регистрация: 15.7.2004
Где: город-герой Минск

Репутация: 21
Всего: 61



Вот вам паранодиальный (для большинства задач) сценарий создания системы безопасности  smile 

1) Создается private/public key pair
2) Им подписываются сборки
3) В сборках с помощью System.Security прописывается, чтобы вызывающий код был подписан, и чтоб public key подписи совпадал с public key из п.1
4) Все это обрабатывается обфускатором

Для клиент-серверной дополнительно шифруется траффик, например с помощью sink'ов. Для шифрования от сервера к клиенту используется public/private key pair из п.1. Для шифрования от клиента к серверу используется другой, временно создаваемый сервером, key pair. 

Все это добро работает под MS .NET 2.0. А теперь давайте попробуем этот сценарий хакнуть.


--------------------
user posted imageuser posted image
PM WWW ICQ   Вверх
Rapalex
Дата 4.10.2006, 11:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 732
Регистрация: 20.1.2006
Где: Украина -> Ник олаев

Репутация: 2
Всего: 8



Я так поразмышлял, и удивился как мы можем спрятать код если потом всёравно джит должен его открыть, если мы его спрячем так чтоб не хакнуть то мы его и не запустим smile


--------------------
In vitium ducit culpae fuga.
Желание избежать ошибки вовлекает в другую.
(Horatius)
PM ICQ   Вверх
mr.DUDA
Дата 4.10.2006, 17:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


3D-маньяк
****


Профиль
Группа: Экс. модератор
Сообщений: 8244
Регистрация: 27.7.2003
Где: город-герой Минск

Репутация: 110
Всего: 232



Цитата(Rapalex @  4.10.2006,  11:44 Найти цитируемый пост)
Я так поразмышлял, и удивился как мы можем спрятать код если потом всёравно джит должен его открыть, если мы его спрячем так чтоб не хакнуть то мы его и не запустим

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


--------------------
user posted image
PM MAIL WWW   Вверх
andrx
Дата 4.10.2006, 19:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Андрей
*


Профиль
Группа: Участник
Сообщений: 109
Регистрация: 16.12.2005
Где: Киев

Репутация: 1
Всего: 4



А разве плохо защищать код HASP HL ключами ? 
(это конечно дополнительные финансовые затраты, но все же)
--------------------
Лучше скажи мало, но хорошо. (Козьма Прутков)
PM MAIL ICQ   Вверх
st4lk3r0k
Дата 31.12.2006, 01:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 132
Регистрация: 8.10.2006

Репутация: нет
Всего: нет



так... а теперь вопрос:

Прочитал я всю это ну уже почти 4ёх летнию дискуссию и так и не понял а зачем 
платить за обфуксаторы? Варез вам в помощь smile 

и всётаки помойму лучший способ защитить код это изкаверкать его до уровня ассемблера и никому не говорить про своё творение тоесть на флэшку и в ящик smile

а вообще интересно с начала дискуссии прошло 4 года а что изменилось?

естьли какиенить новые способы защиты и какие являются наиболее эффективными на сегодняшний день?
--------------------
- Чем вы занимаетесь на работе? - Я специалист по ускоренной релокации средств размножения... - Это как? - Х%и пинаю...
PM MAIL   Вверх
mr.DUDA
Дата 31.12.2006, 13:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


3D-маньяк
****


Профиль
Группа: Экс. модератор
Сообщений: 8244
Регистрация: 27.7.2003
Где: город-герой Минск

Репутация: 110
Всего: 232



Обфускацию за 4 прошедшие года никто не отменил. Так и защищают. Плюс, вешают тайм-бомбы и всяческие противные мессаджбоксы, чтоб жизнь малиной не казалась smile. Это я про платные библиотеки, они в мире .NET самый ходовой товар.


--------------------
user posted image
PM MAIL WWW   Вверх
st4lk3r0k
Дата 31.12.2006, 14:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 132
Регистрация: 8.10.2006

Репутация: нет
Всего: нет



mr.DUDA
Пасиб, а можно по конкретней про тайм бомбы? чё эт такое и каким мокаром его можно использовать в защите?
..кста нука брысь отсюда, после завтра ответиш! кто к новому году готовится будет?  smile 

З.Ы. я уже ушёл smile

--------------------
- Чем вы занимаетесь на работе? - Я специалист по ускоренной релокации средств размножения... - Это как? - Х%и пинаю...
PM MAIL   Вверх
Partizan
Дата 16.8.2007, 09:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Let's do some .NET
****


Профиль
Группа: Модератор
Сообщений: 2828
Регистрация: 19.12.2005
Где: Санкт-Петербург

Репутация: 18
Всего: 67



ребят ) нужна помощь...мож кто сталкивался:

после обработки обфускатором от xenocode прога благополучно отваливается на Assembly.GetTypes() 

=(



З.ы. мож как нить можно получить типы сборки без использования функции GetTypes?


--------------------
СУВ,
       Partizan.
PM MAIL WWW ICQ Skype GTalk Jabber   Вверх
Partizan
Дата 16.8.2007, 15:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Let's do some .NET
****


Профиль
Группа: Модератор
Сообщений: 2828
Регистрация: 19.12.2005
Где: Санкт-Петербург

Репутация: 18
Всего: 67



вопрос решён...


--------------------
СУВ,
       Partizan.
PM MAIL WWW ICQ Skype GTalk Jabber   Вверх
arilou
Дата 16.8.2007, 17:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Великий МунаБудвин
****


Профиль
Группа: Экс. модератор
Сообщений: 2646
Регистрация: 15.7.2004
Где: город-герой Минск

Репутация: 21
Всего: 61



Цитата(Partizan @  16.8.2007,  15:17 Найти цитируемый пост)
вопрос решён... 

Как?


--------------------
user posted imageuser posted image
PM WWW ICQ   Вверх
Partizan
Дата 17.8.2007, 09:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Let's do some .NET
****


Профиль
Группа: Модератор
Сообщений: 2828
Регистрация: 19.12.2005
Где: Санкт-Петербург

Репутация: 18
Всего: 67



arilou, ну в моём конкретном случае помогло отключение обфускации для всех public и protected полей и свойств


--------------------
СУВ,
       Partizan.
PM MAIL WWW ICQ Skype GTalk Jabber   Вверх
VisualProgrammerNET
Дата 30.9.2007, 10:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Почётный халявщик
**


Профиль
Группа: Участник
Сообщений: 461
Регистрация: 30.10.2005
Где: Зеленоград

Репутация: 4
Всего: 6



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


--------------------
3 ГОДА НА user posted image 
PM MAIL ICQ   Вверх
Stepan_Lameroff
Дата 30.9.2007, 11:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 164
Регистрация: 16.12.2006

Репутация: 9
Всего: 14



Цитата(VisualProgrammerNET @  30.9.2007,  10:45 Найти цитируемый пост)
Ничего сверхзашифрованного мне не надо, но хотя бы как-то защитить код нужно. 

Open Source - можно по вкусу напильником  smile 
SharpObfuscator
PM MAIL   Вверх
4ybaka
Дата 23.1.2008, 01:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 370
Регистрация: 28.4.2007

Репутация: нет
Всего: нет



и снова она жива! smile 
вот прочел весь этот ТРУД и в итоге толком ничего не нашел:( упомянутый SharpObfuscator  имеет Alpha версию,что не внушает доверия.а поиск по инету дал только триальные версии. может кто за это время всеже нашел бесплатный,рабочий обфускатор?признаюсь, SharpObfuscator еще не пробовал,но на сайте файлы уже больше чем полгода как не обновлялись...


--------------------
"То,что вы понимаете - это все,что вы понимаете."
 Брайн Керниган
PM MAIL WWW   Вверх
arilou
Дата 23.1.2008, 11:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Великий МунаБудвин
****


Профиль
Группа: Экс. модератор
Сообщений: 2646
Регистрация: 15.7.2004
Где: город-герой Минск

Репутация: 21
Всего: 61



4ybaka, слишком это "золотая" тема, чтобы бесплатно делать. Посмотри на цены обфускаторов... 


--------------------
user posted imageuser posted image
PM WWW ICQ   Вверх
4ybaka
Дата 23.1.2008, 22:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 370
Регистрация: 28.4.2007

Репутация: нет
Всего: нет



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


--------------------
"То,что вы понимаете - это все,что вы понимаете."
 Брайн Керниган
PM MAIL WWW   Вверх
kosten_spb
Дата 8.5.2008, 22:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 33
Регистрация: 2.5.2008

Репутация: нет
Всего: нет



Сейчас у большинства пользователей есть достаточно быстрый инет.
Почему бы не вынести часть функционала в web-service?
Тогда конечному пользователю не будет доступен файл с IL кодом.
PM MAIL WWW ICQ   Вверх
4ybaka
Дата 8.5.2008, 23:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 370
Регистрация: 28.4.2007

Репутация: нет
Всего: нет



но это всеже зависит от решаемой задачи...а если необходимо будет все делать в офлайне?что тогда?..


--------------------
"То,что вы понимаете - это все,что вы понимаете."
 Брайн Керниган
PM MAIL WWW   Вверх
mr.DUDA
Дата 8.5.2008, 23:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


3D-маньяк
****


Профиль
Группа: Экс. модератор
Сообщений: 8244
Регистрация: 27.7.2003
Где: город-герой Минск

Репутация: 110
Всего: 232



4ybaka, в офлайне ничего ты не защитишь. Вон зачем Mass Effect и прочая братия взялась за продление подписки через инет? Ага, всё потому же - не защитишь ты комп локально, всё сломают за час/день/неделю.


--------------------
user posted image
PM MAIL WWW   Вверх
nildar
Дата 17.11.2008, 17:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 6
Регистрация: 3.10.2008

Репутация: нет
Всего: нет



Для защиты можно использовать разные продукты
например бесплатный обфускатор NetObf-Protector

Что умеет:
- Переименование классов, методов, полей в набор бессмысленных символов (не читабельные символы); 
- Поддержка атрибутов управления обфускацией (System.Reflection.ObfuscationAttribute) 
- Шифрование строк; 
- Объединение сборок;
- Поддержка подписи сборок с использованием ключей .SNK или .PFX 

Подробнее:
http://netobf.com/
http://netobf.com/netobf-protector

Скачать:
http://netobf.com/download


Или можно использовать более мощьный продукт Inquartos Obfuscator




PM MAIL WWW   Вверх
nildar
Дата 26.12.2008, 20:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 6
Регистрация: 3.10.2008

Репутация: нет
Всего: нет



 бесплатная утилита защиты NetObf-Protector

Назначение: защита приложений от взлома (декомпиляция, изучение кода), написанных на C#, VB, ... (.NET)

Функциональные возможности:

- Символьная обфускация. Переименование классов, методов, полей в набор бессмысленных символов (не читабельные символы); 
- Поддержка атрибутов управления обфускацией (System.Reflection.ObfuscationAttribute) 
- Обфускация символьных данных (шифрование строк); 
- Объединение сборок;
- Strong name. Поддержка подписи сборок с использованием ключей .SNK или .PFX 
- Поддержка .NET Framework: 1.1/2.0/3.0/3.5
Утилита проста в применении.
Поддерживает 2-а режима работы
- Создание защищенного закрытого проекта.
- Создание защищенного открытого проекта (плагины, библиотеки классов для внешнего использования)

Подробнее:
http://netobf.com/
http://netobf.com/netobf-protector
Скачать:
http://netobf.com/download

PM MAIL WWW   Вверх
Partizan
Дата 26.12.2008, 20:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Let's do some .NET
****


Профиль
Группа: Модератор
Сообщений: 2828
Регистрация: 19.12.2005
Где: Санкт-Петербург

Репутация: 18
Всего: 67



nildar, хватит уже свою навязчивую рекламу везде тут пихать...


--------------------
СУВ,
       Partizan.
PM MAIL WWW ICQ Skype GTalk Jabber   Вверх
vikaz
Дата 7.9.2009, 22:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 869
Регистрация: 15.2.2006

Репутация: нет
Всего: 12



Всем добрый день! Я только начинаю изучать .NET, но на втором дне изучения, у меня так же возник вопрос о защите программного кода! Я в основном пишу на с++ под WIN 32 и там для себя я нашел оптимальную защиту +  цена: Аппаратный ключ защиты SenseLock + Виртуализация отдальных частей кода! А можно ли данные технологии применить тут?
И еще один вопрос! можно ли засунуть главную форму приложения в DLL? Если да, то код в DLL так же будет представлять IL инструкции?


--------------------
user posted image

Нет ничего настолько исправного, чтобы в нем не было ошибок. /Ф. Петрарка/ 
PM MAIL ICQ Skype   Вверх
Partizan
Дата 7.9.2009, 23:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Let's do some .NET
****


Профиль
Группа: Модератор
Сообщений: 2828
Регистрация: 19.12.2005
Где: Санкт-Петербург

Репутация: 18
Всего: 67



всё будет представлять IL инструкции...стандартный способ защиты - обфускация кода.


--------------------
СУВ,
       Partizan.
PM MAIL WWW ICQ Skype GTalk Jabber   Вверх
vikaz
Дата 8.9.2009, 06:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 869
Регистрация: 15.2.2006

Репутация: нет
Всего: 12



Цитата(Partizan @  7.9.2009,  23:05 Найти цитируемый пост)
всё будет представлять IL инструкции...стандартный способ защиты - обфускация кода. 

Это я уже понял из топика! и действительно хорошо защищает? А можешь опубликовать ссылки на бесплатные обфускаторы, которые заслуживают внимания.....?




--------------------
user posted image

Нет ничего настолько исправного, чтобы в нем не было ошибок. /Ф. Петрарка/ 
PM MAIL ICQ Skype   Вверх
vikaz
Дата 8.9.2009, 09:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 869
Регистрация: 15.2.2006

Репутация: нет
Всего: 12



и как Вам этот подход?
SenseLock


--------------------
user posted image

Нет ничего настолько исправного, чтобы в нем не было ошибок. /Ф. Петрарка/ 
PM MAIL ICQ Skype   Вверх
PashaPash
Дата 8.9.2009, 15:57 (ссылка) |   (голосов:3) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1233
Регистрация: 3.1.2008

Репутация: 13
Всего: 49



vikaz, ломается подменой SenselockWrapper.dll


--------------------
PM MAIL WWW   Вверх
hijaq
Дата 8.9.2009, 16:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 14
Регистрация: 24.4.2007

Репутация: нет
Всего: нет



Цитата(PashaPash @ 8.9.2009,  15:57)
vikaz, ломается подменой SenselockWrapper.dll

Ну, допустим, SenselockWrapper.dll вы подмените, это действительно не сложно. Только каким образом вы будете решать проблему вытаскивания из ключа функции, которую разработчик переместил из своей программы в ключ, где она уже выполняется и, собственно, пределов ключа не покидает? А без этого подмена dll как бы смысла то и не имеет =)
PM MAIL WWW   Вверх
vikaz
Дата 8.9.2009, 17:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 869
Регистрация: 15.2.2006

Репутация: нет
Всего: 12



Я то не настаиваю! И из ключа функции не вытаскиваются, наоборот, в ключ перемещаются функции которые нужно спрятать от глаз, данная функция выполняется внутри ключа и возвращает значение.... 

И еще, для того чтобы подменить dll, нужно знать что в ней, а если перед этим произвисти виртуализацию переменных и некоторых функций? Что усложнит вскрытие, + часть функций находятся в ключе, а оттуда вообще не достать информацию..... получается понять что делает эта библиотека не возможно на 95%.....

Это сообщение отредактировал(а) vikaz - 8.9.2009, 17:29


--------------------
user posted image

Нет ничего настолько исправного, чтобы в нем не было ошибок. /Ф. Петрарка/ 
PM MAIL ICQ Skype   Вверх
PashaPash
Дата 8.9.2009, 18:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1233
Регистрация: 3.1.2008

Репутация: 13
Всего: 49



hijaqvikaz, покупается одна копия мегапрограммы, делается прокси на SenselockWrapper на одну машину с железным ключом. И для подмены не "нужно знать что в ней", и даже вскрывать ее не надо - public-методы в любом случае видны. 

Топик вообще-то о защите исходного кода .net приложений. В ключ можно засунуть .net код? Что-то сомневаюсь. Защита путем "переписать на C" - это не защита. SenseLock - это круто, но тем не менее - оффтоп ;) 



--------------------
PM MAIL WWW   Вверх
vikaz
Дата 8.9.2009, 19:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 869
Регистрация: 15.2.2006

Репутация: нет
Всего: 12



Извините! Всем спасибо за ответы и разъяснения!  smile 


--------------------
user posted image

Нет ничего настолько исправного, чтобы в нем не было ошибок. /Ф. Петрарка/ 
PM MAIL ICQ Skype   Вверх
maxsus
Дата 20.2.2010, 21:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 3
Регистрация: 27.2.2007

Репутация: нет
Всего: нет



самомодифицируемый код ..... для декомпилятора будет сложен=)
Что касаемо вообще защиты это впринципе невозможно ибо строим програму по законам общеизвесным.....а зная законы
Да и вообщем то пришли к такой точке программирования что очень мало народу пишет действитетельно чтото новое....ну если тока алгоритмы построения.... незнаю проще свой написать чем раскапывать тысячи строк. 
.....как видим даже майкрософт с этим несправляется но это немешает им грбсти бабло лопатой.....такчто тут стока нюансов что общий подход для индивидуального неподойдет.
PM MAIL   Вверх
Rockie
Дата 9.3.2010, 15:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1143
Регистрация: 23.4.2006

Репутация: нет
Всего: 31



Цитата(4ybaka @  23.1.2008,  01:11 Найти цитируемый пост)
 может кто за это время всеже нашел бесплатный,рабочий обфускатор?

Присоединяюсь! smile Тоже ищу обфускатор для .NET C#
Цитата
 бесплатная утилита защиты NetObf-Protector

Назначение: защита приложений от взлома (декомпиляция, изучение кода), написанных на C#, VB, ... (.NET)

Функциональные возможности:
...

Кто-то пробовал? Как впечатления?


--------------------
Чтобы иметь большой гардероб - надо иметь большой гардероб.
PM   Вверх
Voyager
Дата 10.2.2012, 10:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 532
Регистрация: 8.2.2005

Репутация: 3
Всего: 18



Попробуйте ILProtector

Описание:
ILProtector protects your .NET code against reverse engineering, decompiling and modifying. ILProtector transforms Intermediate Language (MSIL) code into a Virtual Machine ("VM") specific form that is not recognized by disassemblers and decompilers such as IL DASM or .NET Reflector.
Цитата

- Software code protection
- High performance
- Full reflection support for protected assemblies
- Supports .NET Framework 2.0/3.0/3.5/4.0
- Supports Windows x32/x64


Это сообщение отредактировал(а) Voyager - 16.3.2012, 11:52
PM   Вверх
mihavxc
Дата 13.3.2012, 16:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 2
Регистрация: 13.3.2012

Репутация: 1
Всего: 1



Если вам нужен именно обфускатор, то ознакомьтесь с обзором на хабре:
http://habrahabr.ru/blogs/net/97062/

Но я бы вам рекомендовал подумать о более тотальной защите вашего ПО, то есть не только сделать обсускацию, но и привязать ПО к программным или аппаратным ключам и реализовать борьбу с отладчиками и прочими нехорошими вещами.
Советую ознакомиться с комплектом разработчика Sentinel HASP:
http://www.aladdin-rd.ru/catalog/hasp/
PM MAIL   Вверх
techPro
Дата 23.3.2012, 21:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 16
Регистрация: 16.3.2012

Репутация: нет
Всего: 1



Уж если кто-то закрыл, то наверняка кто-то и открыть сможет. Вообще говоря, именно благодаря пиратам на Руси виндовс так популярна...
PM MAIL   Вверх
Rockie
Дата 26.3.2012, 09:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1143
Регистрация: 23.4.2006

Репутация: нет
Всего: 31



какая прелесть))
user posted image

Добавлено через 40 секунд
mihavxc, спасибо за ссылку на обзор!


--------------------
Чтобы иметь большой гардероб - надо иметь большой гардероб.
PM   Вверх
V0fka
Дата 26.6.2014, 08:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 311
Регистрация: 5.11.2006
Где: Украина

Репутация: нет
Всего: нет



Посмотрел тему, посмотрел обзор на хабре, на который ссылка выше. Попробовал Eazfuscator.NET 4.3. При попытке ним воспользоваться в визуал студио выдается предупреждение о том, что программа будет работать ДО такого-то числа. Судя по тому, что последнему посту в теме больше 2 лет, возможно многое поменялось и этот обфускатор уже не бесплатный. Так же возможно появились новые инструменты, исчезли старые.

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

Это сообщение отредактировал(а) V0fka - 26.6.2014, 08:55
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема »


 




[ Время генерации скрипта: 0.3568 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.