![]() |
Модераторы: Partizan, gambit |
![]() ![]() ![]() |
|
IZ@TOP |
|
|||
![]() Панда-бир! ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 4795 Регистрация: 3.2.2003 Где: Бамбуковый лес Репутация: 1 Всего: 73 |
САБЖ.
Собственно я слышал что есть какие то утилиты которые защищают IL от чужих глаз, но не видел ... кто чего знает по этому поводу ? Пожелания, предложения ? Мне кажется эта тема актуальной, и относится не только к клиентским приложениям, но и WEB Server - Side ... -------------------- Один из розовых плюшевых-всадников апокалипсиса... очень злой... Семь кругов ада для новых элементов языка Мои разрозненные мысли |
|||
|
||||
Case |
|
|||
Новичок Профиль Группа: Участник Сообщений: 22 Регистрация: 29.8.2003 Репутация: нет Всего: нет |
Могу только сказать, что с точки зрения таких приложений как TestComplete и им подобных (имеются в виду программы для тестирования) приложение на .NET являются open project (то есть можно получить доступ ко всем методам и интерфейсам, не говоря уж о контролах).
_______________________ http://tester.com.ua - Сервер тестировщиков. |
|||
|
||||
IZ@TOP |
|
|||
![]() Панда-бир! ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 4795 Регистрация: 3.2.2003 Где: Бамбуковый лес Репутация: 1 Всего: 73 |
Во, во ! Именно об этом я и говорил ... неужели нет ни чего чем можно от халявщиков защититься ? Взяли ILDasm ... и весь IL у тебя ... Правда еще IL надо изучить ![]() -------------------- Один из розовых плюшевых-всадников апокалипсиса... очень злой... Семь кругов ада для новых элементов языка Мои разрозненные мысли |
|||
|
||||
IZ@TOP |
|
|||
![]() Панда-бир! ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 4795 Регистрация: 3.2.2003 Где: Бамбуковый лес Репутация: 1 Всего: 73 |
Значит так, есть шанс что Мелкософтовцы прольют свет на это дело, наше издательство выпустило книгу "Защищенный КОД", сейчас буду смотреть что в ней есть, если чего интересного найду, сообщу.
Для тех кто хотел бы купить, сообщаю что, книга появится в продаже в начале ноября. -------------------- Один из розовых плюшевых-всадников апокалипсиса... очень злой... Семь кругов ада для новых элементов языка Мои разрозненные мысли |
|||
|
||||
stab |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 1839 Регистрация: 1.1.2003 Репутация: 22 Всего: 48 |
"Защищенный КОД" это наверно Safe Code
![]() -------------------- 6, 6, 6 - the number of the beast. |
|||
|
||||
Chess64 |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 122 Регистрация: 25.9.2003 Где: Набережные Челны Репутация: нет Всего: нет |
Спасибо мастерам, что откликнулись на существующий вопрос. А возник он совершено случайно. Создается проект на C# .NET - программисты довольны и уже готовы его сдать... тут одному из них попадается один из дизасмов для .NET (в данном случае .NET Reflector) и начался геморой. Всевозможные ухищерения спрятать нужную часть кода не удавались. А специальные дотфускаторы стоят от1000 $.
Вот поетому я спросил у народа, КАК защитить код .NET. Кстати что за "Защищенный КОД" - о чем ? Возможно куплю. ![]() --------------------
Aleksey Semyonov aKa LfP |
|||
|
||||
stab |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 1839 Регистрация: 1.1.2003 Репутация: 22 Всего: 48 |
скажи, плиз, какие? ни одного не видел. -------------------- 6, 6, 6 - the number of the beast. |
|||
|
||||
Chess64 |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 122 Регистрация: 25.9.2003 Где: Набережные Челны Репутация: нет Всего: нет |
>> cully
к примеру ThInstall его стоимость насколько я знаю составляет лицензия на 1 юзверя = 749 $ лицензия на 2-х юзверей = 1199 $ лицензия на 5 юзверей = 2499 $ В оплату входит год суппорта и апргрейда. Пойдет пример. Самое прикольное что буквально рядом продается антифускатор (правда цена вроде повыше) Есть еще DotFuscator Standart and Professional (395 $ и 1495 $ соответственно). --------------------
Aleksey Semyonov aKa LfP |
|||
|
||||
IZ@TOP |
|
|||
![]() Панда-бир! ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 4795 Регистрация: 3.2.2003 Где: Бамбуковый лес Репутация: 1 Всего: 73 |
Короче, книга как оказалось офигенная, просто обо всем (Это я про "Защищенный код") ...
На ней так же присутствует такая реккомендация: "Обязательное чтение для сотрудников Microsoft" И подпись - Билл Гейтс ![]() Так что всем советую, а как только появится заглавие в PDF - я сюда ссылку кину. Но это будет примерно в ноябре, собственно тогда же ее можно будет приобрести. -------------------- Один из розовых плюшевых-всадников апокалипсиса... очень злой... Семь кругов ада для новых элементов языка Мои разрозненные мысли |
|||
|
||||
NetSharp |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 31 Регистрация: 20.12.2003 Где: Санкт-Петербург Репутация: 1 Всего: 1 |
Есть хороший нетфускатор от Remotesoft (http://www.remotesoft.com/) и совершенно бесплатный!
Что качается антифускаторов, ИМХО, такого невозможно сделать. Буду очень признателен, если Вы, уважаемый Chess64, расскажите мне принцип его работы. |
|||
|
||||
IZ@TOP |
|
|||
![]() Панда-бир! ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 4795 Регистрация: 3.2.2003 Где: Бамбуковый лес Репутация: 1 Всего: 73 |
NetSharp, интересно ...
-------------------- Один из розовых плюшевых-всадников апокалипсиса... очень злой... Семь кругов ада для новых элементов языка Мои разрозненные мысли |
|||
|
||||
NetSharp |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 31 Регистрация: 20.12.2003 Где: Санкт-Петербург Репутация: 1 Всего: 1 |
На 100% ни что не может защитить. Но всё же защищает он хорошо.
|
|||
|
||||
IZ@TOP |
|
|||
![]() Панда-бир! ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 4795 Регистрация: 3.2.2003 Где: Бамбуковый лес Репутация: 1 Всего: 73 |
NetSharp, а что именно делает анитфуксатор? Где об этом можно почитать поподробнее?
-------------------- Один из розовых плюшевых-всадников апокалипсиса... очень злой... Семь кругов ада для новых элементов языка Мои разрозненные мысли |
|||
|
||||
NetSharp |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 31 Регистрация: 20.12.2003 Где: Санкт-Петербург Репутация: 1 Всего: 1 |
Не знаю. На мой взгляд антифускаторов вообще неаозможно сделать. Ведь принцип работы обычных обфускаторов заключается в том, что он меняет названия всех методов, переменных, пространств имен на другие произвольные имена (например на a, b, c, d,... или 1a, 2b, 3c,... или же на FDRTBHH, KIUYTDCF и т.д.). Следовательно, как программа сможет поменять эти имена на первоночальные, если первичные имена нигде не сохранились?
|
|||
|
||||
IZ@TOP |
|
|||
![]() Панда-бир! ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 4795 Регистрация: 3.2.2003 Где: Бамбуковый лес Репутация: 1 Всего: 73 |
NetSharp, бред какой то ...
-------------------- Один из розовых плюшевых-всадников апокалипсиса... очень злой... Семь кругов ада для новых элементов языка Мои разрозненные мысли |
|||
|
||||
NetSharp |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 31 Регистрация: 20.12.2003 Где: Санкт-Петербург Репутация: 1 Всего: 1 |
Почему бред? Все понятно.. Кстати я нашел еще один дотфускатор в перенговой сети Torrent. Бесплатный и с исходниками. Весит он 200 с небольшим метров. Когда скачаю - скажу что там.
|
|||
|
||||
IZ@TOP |
|
|||
![]() Панда-бир! ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 4795 Регистрация: 3.2.2003 Где: Бамбуковый лес Репутация: 1 Всего: 73 |
NetSharp, ок.
На счет "бред", я просто этих технологий не знаю, по этому не буду корчить умника, лучше скажи где почитать об этом можно ![]() -------------------- Один из розовых плюшевых-всадников апокалипсиса... очень злой... Семь кругов ада для новых элементов языка Мои разрозненные мысли |
|||
|
||||
NetSharp |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 31 Регистрация: 20.12.2003 Где: Санкт-Петербург Репутация: 1 Всего: 1 |
Iz@top, важно только понимать, что в .NET сборке PE структура не в native коде, а в IL (managed) коде. И только при выполнении IL код компилируется уже в машинный. Такая структура PE очень удобна, но IL выше assembler кода, что делает дизассемблирование очень простым.
Статьи про обфускацию можно почитать здесь: - Защита .Net продуктов от подглядывания - Обфускация – есть такое слово - Обзор 9Rays.Net Obfuscator - Обфускация в .NET. Том I |
|||
|
||||
NetSharp |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 31 Регистрация: 20.12.2003 Где: Санкт-Петербург Репутация: 1 Всего: 1 |
||||
|
||||
IZ@TOP |
|
|||
![]() Панда-бир! ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 4795 Регистрация: 3.2.2003 Где: Бамбуковый лес Репутация: 1 Всего: 73 |
NetSharp, спасибо за информацию.
-------------------- Один из розовых плюшевых-всадников апокалипсиса... очень злой... Семь кругов ада для новых элементов языка Мои разрозненные мысли |
|||
|
||||
Paradox |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 1135 Регистрация: 18.11.2002 Где: Россия Репутация: 2 Всего: 1 |
На сколько мне известно есть ILDASM именно для дизассемблирования .нет программ, и поставляется он с .нет фреймворк помоему, причем он разбирает код вплось до такого какие классы определены в программе, методы доступа к ним, сингнатуры методов, и так далее
Кстати Iz@top если у тебя есть доступ к книжкам прочти 1-ю главу книги "Программирование для .NET" Джеф Просиз - помоему, там про все это написано подробнее MicroSoft ксати советует защищать исходный код с помощью утилит третьих фирм -------------------- --- |
|||
|
||||
NetSharp |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 31 Регистрация: 20.12.2003 Где: Санкт-Петербург Репутация: 1 Всего: 1 |
Верно. Но это возможности только дизассемблера. Также в природе существуют декомпиляторы, которые managed код позволяют перевести в практически идентичный высокоуровневый код. |
|||
|
||||
IZ@TOP |
|
|||
![]() Панда-бир! ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 4795 Регистрация: 3.2.2003 Где: Бамбуковый лес Репутация: 1 Всего: 73 |
А по моему нет ![]() ![]() -------------------- Один из розовых плюшевых-всадников апокалипсиса... очень злой... Семь кругов ада для новых элементов языка Мои разрозненные мысли |
|||
|
||||
Sniper |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 511 Регистрация: 8.5.2002 Репутация: нет Всего: 2 |
А если посмотреть на всю эту .Net с другой стороны то получается что Микрософт сможет слёгкостью использовать разрабротки всё техже третьих фирм для своих целей! Ведь ЗАЩИТУ КОДА они так и не предоставили!
-------------------- "Я испытываю отвращение к системе, разработаннной для "пользователя", если в слове "пользователь" закодировано уничижительное значение "тупой и примитивный". Кен Томпсон, создатель Unix |
|||
|
||||
stab |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 1839 Регистрация: 1.1.2003 Репутация: 22 Всего: 48 |
[offtop]
Sniper, скорее некие четвертые лица будут использовать наши разработки ![]() [/offtop] а если серьезно, то наша компания именно по этим причинам отказалась от использования .net ![]() -------------------- 6, 6, 6 - the number of the beast. |
|||
|
||||
stab |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 1839 Регистрация: 1.1.2003 Репутация: 22 Всего: 48 |
Люди имеющие опыт применения обфускаторов на практике, пожалуйста, поделитесь впечатлениями. Какие грабли есть, где обфускация применима а где даёт\даст сбой?
-------------------- 6, 6, 6 - the number of the beast. |
|||
|
||||
NetSharp |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 31 Регистрация: 20.12.2003 Где: Санкт-Петербург Репутация: 1 Всего: 1 |
Ни в коем случае. У Microsoft совершенно другая политика. Кроме того, Microsoft же выпустила книгу "Защищенный код" (Writing Secure Code). |
|||
|
||||
IZ@TOP |
|
|||
![]() Панда-бир! ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 4795 Регистрация: 3.2.2003 Где: Бамбуковый лес Репутация: 1 Всего: 73 |
А наше издательство перевело и с успехом продает эту книгу! Среди специалистов считается очень хорошей литературой. На обложке подпись Билла - "Обязательна для чтения сотрудникам Microsoft" ![]() -------------------- Один из розовых плюшевых-всадников апокалипсиса... очень злой... Семь кругов ада для новых элементов языка Мои разрозненные мысли |
|||
|
||||
Finkel |
|
|||
Новичок Профиль Группа: Участник Сообщений: 41 Регистрация: 31.3.2004 Репутация: нет Всего: нет |
и когда же она появится в продаже?
|
|||
|
||||
IZ@TOP |
|
|||
![]() Панда-бир! ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 4795 Регистрация: 3.2.2003 Где: Бамбуковый лес Репутация: 1 Всего: 73 |
Finkel
Вообщем-то эта книга продается уже с ноября 2003 года. Смотри в магазинах своего города. А так же www.ozon.ru & www.bolero.ru. -------------------- Один из розовых плюшевых-всадников апокалипсиса... очень злой... Семь кругов ада для новых элементов языка Мои разрозненные мысли |
|||
|
||||
zeus |
|
|||
Новичок Профиль Группа: Участник Сообщений: 5 Регистрация: 21.5.2004 Репутация: нет Всего: нет |
я тут случайно в темку заглянул.... дык dotfuscator в MS VC 2003 входит вроде ????
|
|||
|
||||
arilou |
|
|||
![]() Великий МунаБудвин ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2646 Регистрация: 15.7.2004 Где: город-герой Минск Репутация: 21 Всего: 61 |
Микрософт теперь поддерживает Open Source
![]() |
|||
|
||||
Гость_Victor |
|
|||
Unregistered |
а есть холявная версия?(e-book)
|
|||
|
||||
December |
|
|||
![]() Antitheorist ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 4423 Регистрация: 14.8.2002 Где: Харьков Репутация: нет Всего: 57 |
Входит, но есть на него многочисленные жалобы. |
|||
|
||||
NiJazz |
|
|||
![]() Jazz coder ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2286 Регистрация: 10.8.2003 Где: Москва Репутация: нет Всего: 23 |
Можно подписывать бинарники. Матушка-криптография никогда не устареет.
![]() |
|||
|
||||
jfx |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 98 Регистрация: 18.10.2004 Репутация: 1 Всего: 1 |
И что это даст? |
|||
|
||||
mike_ |
|
||||
Новичок Профиль Группа: Участник Сообщений: 4 Регистрация: 21.4.2005 Где: vrn Репутация: нет Всего: нет |
Это защитит от сборку от возможности исправлять код в ней. В большинстве случаев этого достаточно. |
||||
|
|||||
jfx |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 98 Регистрация: 18.10.2004 Репутация: 1 Всего: 1 |
"Это" не защитит сборку. Есть как минимум три способа обойти проверку StrongName:
|
|||
|
||||
mike_ |
|
|||
Новичок Профиль Группа: Участник Сообщений: 4 Регистрация: 21.4.2005 Где: vrn Репутация: нет Всего: нет |
No comments... я и не говорил о 100% защите. Потому как предложенный тобой способ обхода знают многие, но не все. И плюс ко всему, этот вариант взлома тоже не 100%. |
|||
|
||||
jfx |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 98 Регистрация: 18.10.2004 Репутация: 1 Всего: 1 |
да ну... |
|||
|
||||
zendao |
|
|||
Unregistered |
Еще есть XenoCode http://www.xenocode.com/setup.msi
Как пример, листинг исходника и декомпилированного кода: http://www.xenocode.com/Articles-Sample.aspx |
|||
|
||||
Ch0bits |
|
|||
![]() Python Dev. ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2124 Регистрация: 21.2.2005 Где: Казань Репутация: 9 Всего: 62 |
Ужасьнах... чего он с кодом сделал!
![]() Ну ничего... и его поломают. ![]() |
|||
|
||||
nikf |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 127 Регистрация: 6.6.2005 Где: город-герой Жирно вск Репутация: нет Всего: 1 |
смех и грех.. если прога ченить стоит, то $1000 на защиту это копейки, а иначе болтовня одна и защищать нечего...
|
|||
|
||||
sammix |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 31 Регистрация: 1.10.2005 Репутация: нет Всего: 2 |
Всё это похоже на триаду:
- новый розвод на деньги от Мелкософт собственной персоной - возможность мелкософтовцам цапать проекты третьих сторон - ну или новая работа для создателей протекторов и обфускаторов. |
|||
|
||||
Budda |
|
|||
Новичок Профиль Группа: Участник Сообщений: 45 Регистрация: 27.9.2004 Где: Украина, Киев Репутация: нет Всего: нет |
Погодите, люди. Если я не ошибаюсь, то ИЛДасм.єхє сможет показать код только public классов. А всё, что нужно спрятать, можно прятать в private... Или не так?
|
|||
|
||||
mr.DUDA |
|
|||
![]() 3D-маньяк ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 8244 Регистрация: 27.7.2003 Где: город-герой Минск Репутация: 110 Всего: 232 |
не так ![]() -------------------- ![]() |
|||
|
||||
Budda |
|
|||
Новичок Профиль Группа: Участник Сообщений: 45 Регистрация: 27.9.2004 Где: Украина, Киев Репутация: нет Всего: нет |
mr.DUDAпроверил, точно private - не прячет код... хм, странно, а зачем сие сделано? В чём смысл? Я ещё понимаю, открывать код public-методов, или protected, но вот private... ?
|
|||
|
||||
Mad |
|
|||
Опытный ![]() ![]() Профиль Группа: Эксперт Сообщений: 656 Регистрация: 18.10.2004 Где: Одесса Репутация: 1 Всего: 19 |
По большому счету, обыный бинарник, сделанный любым компилятором, можно перевести в исфодный код (в автомате на Asm
![]() ![]() так что прятать код както специально, или коробить его, я особого смысла не вижу (тем более платить за енто огромные деньги). Исли комуто понравиться какаято часть твоего кода (имеется в виду, какаято функция, или метод ее реализации), то всеравно он сможет ее вытянуть ![]() |
|||
|
||||
Exception |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 4525 Регистрация: 26.12.2004 Репутация: 29 Всего: 186 |
private нужен не для сокрытия кода, а для сокрытия реализации. а то зачем нужен ООП? ведь в этом и смысл - инкапсуляция..
|
|||
|
||||
Budda |
|
|||
Новичок Профиль Группа: Участник Сообщений: 45 Регистрация: 27.9.2004 Где: Украина, Киев Репутация: нет Всего: нет |
Run-time error, да, понимаю. А то что код можно легко смотреть, то это и есть косвенное следствие наличия манифестов в сборках, верно?
Если есть возможность, запусти, плиз, аську. Я там к тебе постучался... хочу спросить кое-чего... |
|||
|
||||
Гость_Master |
|
|||
Unregistered |
Люди, нет лучшей обфускации, чем ручная обфускация критических участков кода.
.NET позволяет динамически генерировать код, загружать сборки непосредственно с памяти, использовать вместо стандартных вызовов функции CreateInstance, InvokeMethod и т.д. и т.п. |
|||
|
||||
Medved |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 7209 Регистрация: 15.9.2002 Где: Kazakhstan, Astan a Репутация: 3 Всего: 154 |
-------------------- |
|||
|
||||
VisualProgrammerNET |
|
|||
![]() Почётный халявщик ![]() ![]() Профиль Группа: Участник Сообщений: 461 Регистрация: 30.10.2005 Где: Зеленоград Репутация: 4 Всего: 6 |
Это как? ![]() -------------------- 3 ГОДА НА ![]() |
|||
|
||||
mr.DUDA |
|
|||
![]() 3D-маньяк ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 8244 Регистрация: 27.7.2003 Где: город-герой Минск Репутация: 110 Всего: 232 |
неймспейс System.Reflection.Emit а также Microsoft.CSharp -------------------- ![]() |
|||
|
||||
arilou |
|
|||
![]() Великий МунаБудвин ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2646 Регистрация: 15.7.2004 Где: город-герой Минск Репутация: 21 Всего: 61 |
А также System.CodeDom |
|||
|
||||
Lord Dagger |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 103 Регистрация: 14.8.2004 Где: Москва Репутация: 2 Всего: 3 |
Теперь есть возможность использования Unicode-символов в именах переменных, методов и функций. Это может затруднить задачу деобфускации сборок.
--------------------
(+) |
|||
|
||||
mr.DUDA |
|
|||
![]() 3D-маньяк ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 8244 Регистрация: 27.7.2003 Где: город-герой Минск Репутация: 110 Всего: 232 |
Поправьте меня, если я не прав: разве до сих пор нельзя было использовать юникод в вышеперечисленных ситуациях? Например, я могу создать класс с именем Класс1 в студии 2003. ![]() Добавлено @ 21:39 З.Ы. а чем метод отличается от функции ? ![]() -------------------- ![]() |
|||
|
||||
Exception |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 4525 Регистрация: 26.12.2004 Репутация: 29 Всего: 186 |
Угу.
![]() Это сообщение отредактировал(а) Run-time error - 21.12.2005, 21:47 |
|||
|
||||
Lord Dagger |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 103 Регистрация: 14.8.2004 Где: Москва Репутация: 2 Всего: 3 |
mr.DUDA
Конечно, можно было;) Просто именно сейчас на эту возможность обратила внимание общественность ![]() Да и я честно говоря до появления VS 2005 этим не пользовался. Процедуры и функции связываются с классом, они обеспечивают функциональность данных класса и называются методами класса. Главную роль в программной системе играют данные, а функции лишь служат данным. Вот так;) --------------------
(+) |
|||
|
||||
kobra |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 730 Регистрация: 15.6.2005 Где: Грузия, Тбилиси Репутация: 1 Всего: 9 |
||||
|
||||
Danilo |
|
|||
Новичок Профиль Группа: Участник Сообщений: 2 Регистрация: 1.2.2006 Репутация: нет Всего: нет |
У нас в конторе довольно долго обсуждались варианты защиты программного кода и в итоге был написан фрэймворк делающий примерно следующее:
1. После компиляции все модули системы пропускаются через encryptor, который читает сборки, получает тела функций, криптует их одним из алгоритмов шифрования и пишет обратно в сборку. 2. При запуске программы используем .NET Profiling Api позволяющий перед вызовом функции JIT компайлером получить тело метода, дешифровать его и "подсунуть" оригинальное тело метода. Таким образом прочтение кода становится весьма сложной задачей т.к. дешифрованные данные доступны только в runtime, хотя имена классов и функций остаются видны. Предвосхищая вопросы перфоманса могу сказать что он сильно зависит от алгоритмов шифрования, но практика показала что использование симметричных алгоритмов даёт приемлимый (для нашей системы) результат. |
|||
|
||||
jfx |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 98 Регистрация: 18.10.2004 Репутация: 1 Всего: 1 |
Хм, интересный способ, похоже на загрузчики Java. В Java это реализуется почти стандартно, а вот в .NET как? Исли можно пример или ссылки по теме.
Спасибо. |
|||
|
||||
Danilo |
|
|||
Новичок Профиль Группа: Участник Сообщений: 2 Регистрация: 1.2.2006 Репутация: нет Всего: нет |
||||
|
||||
ivashkanet |
|
|||
![]() Кодю потиху ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3684 Регистрация: 23.2.2006 Где: Гомель, Беларусь Репутация: 47 Всего: 149 |
Поднимаю тему.
Вычитал, что все данные, нужные для дезассемблирования берутся из метаданных. Вопрос: возможно ли как-нибудь корректно удалить часть метаданных (я понимаю, что потом нашу сборку нельзя будет корректно подключить к другой сборке). Вопрос чисто теоретический. Просто пришел в голову ![]() |
|||
|
||||
mr.DUDA |
|
|||
![]() 3D-маньяк ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 8244 Регистрация: 27.7.2003 Где: город-герой Минск Репутация: 110 Всего: 232 |
Вряд ли CLR позволит удалить из сборки таблицу метаданных
![]() -------------------- ![]() |
|||
|
||||
ivashkanet |
|
|||
![]() Кодю потиху ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3684 Регистрация: 23.2.2006 Где: Гомель, Беларусь Репутация: 47 Всего: 149 |
Это был чисто теоретический вопрос ![]() |
|||
|
||||
mr.DUDA |
|
|||
![]() 3D-маньяк ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 8244 Регистрация: 27.7.2003 Где: город-герой Минск Репутация: 110 Всего: 232 |
это был чисто теоретический ответ ![]() -------------------- ![]() |
|||
|
||||
sammix |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 31 Регистрация: 1.10.2005 Репутация: нет Всего: 2 |
Кто знает может это всё к лучшему...
сорсы дороже стоят, но в таком случае всем придется делать open-source проекты. |
|||
|
||||
ivashkanet |
|
|||
![]() Кодю потиху ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3684 Регистрация: 23.2.2006 Где: Гомель, Беларусь Репутация: 47 Всего: 149 |
Поднимаю тему опять
jfx, ты извини, но ты совсем не в курсе вопроса ![]() Сборку защищают для того, чтобы ее нельзя было подменить на другую ![]() Проверкой ключей и строгих имен заниматся прога (сборка) использующая защищенную сборку. Если мы удалим publicKey из сборки, то прога будет ругаться на попытку подсунуть ей другую сборку вместо необходимой (защищенной ключем). P.S. Повторяю еще раз: StrongName сборки нужно для защиты ее от подмены ![]() Если сделать хоть какое изменение в сборке мы теряем ее Строгое Имя. После этого все программы, которые используют защищенную сборку будут ругаться на измененную. P.P.S. Механизм подписывания сборок используется так же механизме предоставления прав сборке. Например можно запретить неподписанным (ключем которомы мы доверям) сборкам доступ к реестру, диску С: (можно вообще много чего запретить). После этого если злоумышленник изменит код сборки, то он потеряет ее подпись, а следовательно и возможность навредить ![]() |
|||
|
||||
Rapalex |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 732 Регистрация: 20.1.2006 Где: Украина -> Ник олаев Репутация: 2 Всего: 8 |
Почитал я 3-х летнюю дискусию, и возник вопрос рас уж так исторически вышло что всё можно дизасемблировать, а .нет можно ещё и декомпелировать, тогда КАК ЖЕ НАМ ПРОГРАМЕРАМ ПРИВЯЗЫВАТЬ НАШ ПРОДУКТ К ЖЕЛЕЗУ?
Ведь вся наша проверка видна декомпилятором и легко можно написать кейген используя наш код!!! Я никогда даже не пробывал ломать класические екзешники но знаю что есть всякие отладчики для экзешников, но есть и те программы которые не дают им работать. А что с етим в мире .нет? Не забуддте про вопрос который набран ЗАГЛАВНЫМИ БУКВАМИ. -------------------- In vitium ducit culpae fuga. Желание избежать ошибки вовлекает в другую. (Horatius) |
|||
|
||||
mr.DUDA |
|
|||
![]() 3D-маньяк ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 8244 Регистрация: 27.7.2003 Где: город-герой Минск Репутация: 110 Всего: 232 |
Rapalex, всё решается на самом деле очень просто. Есть такое слово: обфускация. И никакая декомпиляция не поможет
![]() -------------------- ![]() |
|||
|
||||
$tatic |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 651 Регистрация: 28.1.2005 Репутация: 2 Всего: 22 |
Я когда-то устанавливал 9-Rays Obfuscator. Короче там была какая-то примочка, которая помимо обфускации что-то еще делала с бинарником, в результате чего сборку вообще нельзя было загрузить в любой декомпилятор. Они просто выпадают с ошибкой. Не только ILDasm, но и Reflector. Кстати сам 9-Rays Obfuscator именно этой фичей и защищен.
![]()
А если хакер именно эту прогу и поломает? ![]() Может скомпилированную (и обфусцированную) прогу на .NET сжать каким-нибудь упаковщиком и обработать DotFix FakeSigner? Да, и еще. Ведь при запуске проги на .NET управление получает вначале загрузчик, который уже потом запускает mscoree.dll. Можно ли сделать свой загрузчик, который вначале расшифрует код IL, а уже потом отправит его на выполнение? Кстати если бы обфускаторы давали классам имена в юникоде из символов какой-нибудь "левой" кодовой страницы ИМХО было бы весело ![]() |
|||
|
||||
mr.DUDA |
|
|||
![]() 3D-маньяк ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 8244 Регистрация: 27.7.2003 Где: город-герой Минск Репутация: 110 Всего: 232 |
Они и так достаточно "левые", поди разбери что имеется ввиду в коде типа "a._b.c()._d(_e.a);" ![]() -------------------- ![]() |
|||
|
||||
ivashkanet |
|
|||
![]() Кодю потиху ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3684 Регистрация: 23.2.2006 Где: Гомель, Беларусь Репутация: 47 Всего: 149 |
Теоретически, должно измениться ее строгое имя ![]() |
|||
|
||||
$tatic |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 651 Регистрация: 28.1.2005 Репутация: 2 Всего: 22 |
||||
|
||||
ivashkanet |
|
|||
![]() Кодю потиху ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3684 Регистрация: 23.2.2006 Где: Гомель, Беларусь Репутация: 47 Всего: 149 |
"Quis custodiet ipsos custodes" - Кто будет сторожить сторожей?(лат)
Теоретически можно (и нужно) настроить правила безопасности, которые будут запрещать доступ неподписаных (или подписанных неизвестно кем) приложений к критическим ресурсам. Но опять же возникает вопрос, поднятый в начале поста. Где уверенность, что программу безопасности не подменят? Где уверенность, что не подменят сам загрузчик Винды (или другой оси)...? Зато сейчас полностью исключены случаи подмены библиотек (думаю не ошибусь, если скажу, что 70-80% действительно вредоносных вирусов этим промышляют), что уже, ИМХО, проело плешь всему Майкрософту вместе взятому. Не зря же они придумали систему проверки целосности/оригинальности системных библиотек. P.S. $tatic, извини, не врубился (точнее невчитался) в твой вопрос, вот и ответил невпопад ![]() |
|||
|
||||
$tatic |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 651 Регистрация: 28.1.2005 Репутация: 2 Всего: 22 |
Ну я предполагал такую ситуацию: в программе есть защита (допустим она шароварная). Код программы находится в дллке (подписанной) и загружается загрузчиком, который проверяет ее подлинность. Если хакер взламывает дллку для сброса защиты, то подпись файла меняется и загрузчик сильно ругается
![]() Аналогичный случай наблюдался при взломе Windows XP SP1 крякером Reset5, когда недобросовестный ![]() Конечно анализ обфусцированной программы выполнить очень сложно. Но хакеру надо найти именно тот участок, который ответственнен за защиту программы. Ему же не надо полный reverse engineering делать. Естетственно эту проверку можно спрятать среди кучи левых методов, но хакер ведь может получить полный исходник в виде проекта для студии (это может плагин FileDisassembler для Reflector), загрузить его в студию и запустить в режиме отладки. Ведь этот метод фактически недоступен при анализе программ в машинном коде. А вот над измененным загрузчиком IL-кода стоит подумать. ЗЫ. Хакеры давно уже научились обходить проверку подлинности библиотек. Читайте Криса Касперски. |
|||
|
||||
mr.DUDA |
|
|||
![]() 3D-маньяк ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 8244 Регистрация: 27.7.2003 Где: город-герой Минск Репутация: 110 Всего: 232 |
Нормальный обфускатор не позволит дизассемблировать программу в высокоуровневый язык (будут кидаться ошибки), и всё что останется - декомпилировать и отлаживать IL-код, что практически равносильно анализу программ в машинном коде. Кстати, хороший пример защиты исходного кода - как скрыты исходники самого Reflector-а ![]() -------------------- ![]() |
|||
|
||||
Rapalex |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 732 Регистрация: 20.1.2006 Где: Украина -> Ник олаев Репутация: 2 Всего: 8 |
Скажите кто каким обфускатором пользуется?
-------------------- In vitium ducit culpae fuga. Желание избежать ошибки вовлекает в другую. (Horatius) |
|||
|
||||
mr.DUDA |
|
|||
![]() 3D-маньяк ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 8244 Регистрация: 27.7.2003 Где: город-герой Минск Репутация: 110 Всего: 232 |
Пока серьёзным не приходилось пользоваться, DotFuscator community edition юзал.
-------------------- ![]() |
|||
|
||||
VisualProgrammerNET |
|
|||
![]() Почётный халявщик ![]() ![]() Профиль Группа: Участник Сообщений: 461 Регистрация: 30.10.2005 Где: Зеленоград Репутация: 4 Всего: 6 |
Чё меня бесит, так это то, что если допустим в программе есть закрытая переменная с паролем, например
то этот пароль можно просто и без проблем выдрать из программы. Кто-нибудь пробовал открывать экзешник или дллку в блокноте? Даже слепой не сможет не заметить среди тучи слов вполне логичные password2server = 1234567890. Мне не понятен принцип работы обфускатора. Что изменится с исполнительными файлами и библиотеками программы? Будет ли виден пресловутый пароль через блокнот? -------------------- 3 ГОДА НА ![]() |
|||
|
||||
mr.DUDA |
|
|||
![]() 3D-маньяк ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 8244 Регистрация: 27.7.2003 Где: город-герой Минск Репутация: 110 Всего: 232 |
Никто никогда не хранит такие данные в открытом виде. Чаще используют хеши (для сравнения) либо зашифрованные строки.
-------------------- ![]() |
|||
|
||||
ivashkanet |
|
|||
![]() Кодю потиху ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3684 Регистрация: 23.2.2006 Где: Гомель, Беларусь Репутация: 47 Всего: 149 |
mr.DUDA, как можно хранить хэш, если базза требует именно пароль, а не его Хэш? Аааа, ключевое слово --- "для сравнения", тогда понятно ![]() Поподробнее. Насколько сильно нужно их шифровать? Какой-нибудь циклический сдвиг (А->Б, ..., Я->А) подойдет? |
|||
|
||||
arilou |
|
|||
![]() Великий МунаБудвин ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2646 Регистрация: 15.7.2004 Где: город-герой Минск Репутация: 21 Всего: 61 |
||||
|
||||
mr.DUDA |
|
|||
![]() 3D-маньяк ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 8244 Регистрация: 27.7.2003 Где: город-герой Минск Репутация: 110 Всего: 232 |
Чем круче алгоритм шифрования, тем лучше. Ещё лучше - не хранить конфиденциальную информацию в теле программы. -------------------- ![]() |
|||
|
||||
ivashkanet |
|
|||
![]() Кодю потиху ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3684 Регистрация: 23.2.2006 Где: Гомель, Беларусь Репутация: 47 Всего: 149 |
mr.DUDA, а хде
![]() Чувствую ![]() ![]() |
|||
|
||||
mr.DUDA |
|
|||
![]() 3D-маньяк ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 8244 Регистрация: 27.7.2003 Где: город-герой Минск Репутация: 110 Всего: 232 |
Скажи мне, ну нафига хранить секретный логин и пароль в проге ? К чему логин ? И пароль ? -------------------- ![]() |
|||
|
||||
arilou |
|
|||
![]() Великий МунаБудвин ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2646 Регистрация: 15.7.2004 Где: город-герой Минск Репутация: 21 Всего: 61 |
Вот вам паранодиальный (для большинства задач) сценарий создания системы безопасности
![]() 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. А теперь давайте попробуем этот сценарий хакнуть. |
|||
|
||||
Rapalex |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 732 Регистрация: 20.1.2006 Где: Украина -> Ник олаев Репутация: 2 Всего: 8 |
Я так поразмышлял, и удивился как мы можем спрятать код если потом всёравно джит должен его открыть, если мы его спрячем так чтоб не хакнуть то мы его и не запустим
![]() -------------------- In vitium ducit culpae fuga. Желание избежать ошибки вовлекает в другую. (Horatius) |
|||
|
||||
mr.DUDA |
|
|||
![]() 3D-маньяк ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 8244 Регистрация: 27.7.2003 Где: город-герой Минск Репутация: 110 Всего: 232 |
Мы и не прячем код, мы делаем его ооочень неудобочитаемым, где-то на уровне ассемблера или чуть ниже ![]() -------------------- ![]() |
|||
|
||||
andrx |
|
|||
![]() Андрей ![]() Профиль Группа: Участник Сообщений: 109 Регистрация: 16.12.2005 Где: Киев Репутация: 1 Всего: 4 |
А разве плохо защищать код HASP HL ключами ?
(это конечно дополнительные финансовые затраты, но все же) --------------------
Лучше скажи мало, но хорошо. (Козьма Прутков) |
|||
|
||||
st4lk3r0k |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 132 Регистрация: 8.10.2006 Репутация: нет Всего: нет |
так... а теперь вопрос:
Прочитал я всю это ну уже почти 4ёх летнию дискуссию и так и не понял а зачем платить за обфуксаторы? Варез вам в помощь ![]() и всётаки помойму лучший способ защитить код это изкаверкать его до уровня ассемблера и никому не говорить про своё творение тоесть на флэшку и в ящик ![]() а вообще интересно с начала дискуссии прошло 4 года а что изменилось? естьли какиенить новые способы защиты и какие являются наиболее эффективными на сегодняшний день? --------------------
- Чем вы занимаетесь на работе? - Я специалист по ускоренной релокации средств размножения... - Это как? - Х%и пинаю... |
|||
|
||||
mr.DUDA |
|
|||
![]() 3D-маньяк ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 8244 Регистрация: 27.7.2003 Где: город-герой Минск Репутация: 110 Всего: 232 |
Обфускацию за 4 прошедшие года никто не отменил. Так и защищают. Плюс, вешают тайм-бомбы и всяческие противные мессаджбоксы, чтоб жизнь малиной не казалась
![]() -------------------- ![]() |
|||
|
||||
st4lk3r0k |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 132 Регистрация: 8.10.2006 Репутация: нет Всего: нет |
mr.DUDA,
Пасиб, а можно по конкретней про тайм бомбы? чё эт такое и каким мокаром его можно использовать в защите? ..кста нука брысь отсюда, после завтра ответиш! кто к новому году готовится будет? ![]() З.Ы. я уже ушёл ![]() --------------------
- Чем вы занимаетесь на работе? - Я специалист по ускоренной релокации средств размножения... - Это как? - Х%и пинаю... |
|||
|
||||
Partizan |
|
|||
![]() Let's do some .NET ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 2828 Регистрация: 19.12.2005 Где: Санкт-Петербург Репутация: 18 Всего: 67 |
ребят ) нужна помощь...мож кто сталкивался:
после обработки обфускатором от xenocode прога благополучно отваливается на Assembly.GetTypes() =( З.ы. мож как нить можно получить типы сборки без использования функции GetTypes? -------------------- СУВ, Partizan. |
|||
|
||||
Partizan |
|
|||
![]() Let's do some .NET ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 2828 Регистрация: 19.12.2005 Где: Санкт-Петербург Репутация: 18 Всего: 67 |
вопрос решён...
-------------------- СУВ, Partizan. |
|||
|
||||
arilou |
|
|||
![]() Великий МунаБудвин ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2646 Регистрация: 15.7.2004 Где: город-герой Минск Репутация: 21 Всего: 61 |
||||
|
||||
Partizan |
|
|||
![]() Let's do some .NET ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 2828 Регистрация: 19.12.2005 Где: Санкт-Петербург Репутация: 18 Всего: 67 |
arilou, ну в моём конкретном случае помогло отключение обфускации для всех public и protected полей и свойств
-------------------- СУВ, Partizan. |
|||
|
||||
VisualProgrammerNET |
|
|||
![]() Почётный халявщик ![]() ![]() Профиль Группа: Участник Сообщений: 461 Регистрация: 30.10.2005 Где: Зеленоград Репутация: 4 Всего: 6 |
Вопрос такой, а есть ли хороший бесплатный обфускатор? Ничего сверхзашифрованного мне не надо, но хотя бы как-то защитить код нужно.
-------------------- 3 ГОДА НА ![]() |
|||
|
||||
Stepan_Lameroff |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 164 Регистрация: 16.12.2006 Репутация: 9 Всего: 14 |
Open Source - можно по вкусу напильником ![]() SharpObfuscator |
|||
|
||||
4ybaka |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 370 Регистрация: 28.4.2007 Репутация: нет Всего: нет |
и снова она жива!
![]() вот прочел весь этот ТРУД и в итоге толком ничего не нашел:( упомянутый SharpObfuscator имеет Alpha версию,что не внушает доверия.а поиск по инету дал только триальные версии. может кто за это время всеже нашел бесплатный,рабочий обфускатор?признаюсь, SharpObfuscator еще не пробовал,но на сайте файлы уже больше чем полгода как не обновлялись... -------------------- "То,что вы понимаете - это все,что вы понимаете." Брайн Керниган |
|||
|
||||
arilou |
|
|||
![]() Великий МунаБудвин ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2646 Регистрация: 15.7.2004 Где: город-герой Минск Репутация: 21 Всего: 61 |
4ybaka, слишком это "золотая" тема, чтобы бесплатно делать. Посмотри на цены обфускаторов...
|
|||
|
||||
4ybaka |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 370 Регистрация: 28.4.2007 Репутация: нет Всего: нет |
не,ну VS стоит еще больше,однако хорошие аналоги же существуют...конечно может еще просто рано,но это уже другой разговор...
-------------------- "То,что вы понимаете - это все,что вы понимаете." Брайн Керниган |
|||
|
||||
kosten_spb |
|
|||
Новичок Профиль Группа: Участник Сообщений: 33 Регистрация: 2.5.2008 Репутация: нет Всего: нет |
Сейчас у большинства пользователей есть достаточно быстрый инет.
Почему бы не вынести часть функционала в web-service? Тогда конечному пользователю не будет доступен файл с IL кодом. |
|||
|
||||
4ybaka |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 370 Регистрация: 28.4.2007 Репутация: нет Всего: нет |
но это всеже зависит от решаемой задачи...а если необходимо будет все делать в офлайне?что тогда?..
-------------------- "То,что вы понимаете - это все,что вы понимаете." Брайн Керниган |
|||
|
||||
mr.DUDA |
|
|||
![]() 3D-маньяк ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 8244 Регистрация: 27.7.2003 Где: город-герой Минск Репутация: 110 Всего: 232 |
4ybaka, в офлайне ничего ты не защитишь. Вон зачем Mass Effect и прочая братия взялась за продление подписки через инет? Ага, всё потому же - не защитишь ты комп локально, всё сломают за час/день/неделю.
-------------------- ![]() |
|||
|
||||
nildar |
|
|||
Новичок Профиль Группа: Участник Сообщений: 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 |
|||
|
||||
nildar |
|
|||
Новичок Профиль Группа: Участник Сообщений: 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 |
|||
|
||||
Partizan |
|
|||
![]() Let's do some .NET ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 2828 Регистрация: 19.12.2005 Где: Санкт-Петербург Репутация: 18 Всего: 67 |
nildar, хватит уже свою навязчивую рекламу везде тут пихать...
-------------------- СУВ, Partizan. |
|||
|
||||
vikaz |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 869 Регистрация: 15.2.2006 Репутация: нет Всего: 12 |
Всем добрый день! Я только начинаю изучать .NET, но на втором дне изучения, у меня так же возник вопрос о защите программного кода! Я в основном пишу на с++ под WIN 32 и там для себя я нашел оптимальную защиту + цена: Аппаратный ключ защиты SenseLock + Виртуализация отдальных частей кода! А можно ли данные технологии применить тут?
И еще один вопрос! можно ли засунуть главную форму приложения в DLL? Если да, то код в DLL так же будет представлять IL инструкции? -------------------- ![]() Нет ничего настолько исправного, чтобы в нем не было ошибок. /Ф. Петрарка/ |
|||
|
||||
Partizan |
|
|||
![]() Let's do some .NET ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 2828 Регистрация: 19.12.2005 Где: Санкт-Петербург Репутация: 18 Всего: 67 |
всё будет представлять IL инструкции...стандартный способ защиты - обфускация кода.
-------------------- СУВ, Partizan. |
|||
|
||||
vikaz |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 869 Регистрация: 15.2.2006 Репутация: нет Всего: 12 |
Это я уже понял из топика! и действительно хорошо защищает? А можешь опубликовать ссылки на бесплатные обфускаторы, которые заслуживают внимания.....? -------------------- ![]() Нет ничего настолько исправного, чтобы в нем не было ошибок. /Ф. Петрарка/ |
|||
|
||||
vikaz |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 869 Регистрация: 15.2.2006 Репутация: нет Всего: 12 |
-------------------- ![]() Нет ничего настолько исправного, чтобы в нем не было ошибок. /Ф. Петрарка/ |
|||
|
||||
PashaPash |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1233 Регистрация: 3.1.2008 Репутация: 13 Всего: 49 |
vikaz, ломается подменой SenselockWrapper.dll
|
|||
|
||||
hijaq |
|
|||
Новичок Профиль Группа: Участник Сообщений: 14 Регистрация: 24.4.2007 Репутация: нет Всего: нет |
Ну, допустим, SenselockWrapper.dll вы подмените, это действительно не сложно. Только каким образом вы будете решать проблему вытаскивания из ключа функции, которую разработчик переместил из своей программы в ключ, где она уже выполняется и, собственно, пределов ключа не покидает? А без этого подмена dll как бы смысла то и не имеет =) |
|||
|
||||
vikaz |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 869 Регистрация: 15.2.2006 Репутация: нет Всего: 12 |
Я то не настаиваю! И из ключа функции не вытаскиваются, наоборот, в ключ перемещаются функции которые нужно спрятать от глаз, данная функция выполняется внутри ключа и возвращает значение....
И еще, для того чтобы подменить dll, нужно знать что в ней, а если перед этим произвисти виртуализацию переменных и некоторых функций? Что усложнит вскрытие, + часть функций находятся в ключе, а оттуда вообще не достать информацию..... получается понять что делает эта библиотека не возможно на 95%..... Это сообщение отредактировал(а) vikaz - 8.9.2009, 17:29 -------------------- ![]() Нет ничего настолько исправного, чтобы в нем не было ошибок. /Ф. Петрарка/ |
|||
|
||||
PashaPash |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1233 Регистрация: 3.1.2008 Репутация: 13 Всего: 49 |
hijaq, vikaz, покупается одна копия мегапрограммы, делается прокси на SenselockWrapper на одну машину с железным ключом. И для подмены не "нужно знать что в ней", и даже вскрывать ее не надо - public-методы в любом случае видны.
Топик вообще-то о защите исходного кода .net приложений. В ключ можно засунуть .net код? Что-то сомневаюсь. Защита путем "переписать на C" - это не защита. SenseLock - это круто, но тем не менее - оффтоп ;) |
|||
|
||||
vikaz |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 869 Регистрация: 15.2.2006 Репутация: нет Всего: 12 |
Извините! Всем спасибо за ответы и разъяснения!
![]() -------------------- ![]() Нет ничего настолько исправного, чтобы в нем не было ошибок. /Ф. Петрарка/ |
|||
|
||||
maxsus |
|
|||
Новичок Профиль Группа: Участник Сообщений: 3 Регистрация: 27.2.2007 Репутация: нет Всего: нет |
самомодифицируемый код ..... для декомпилятора будет сложен=)
Что касаемо вообще защиты это впринципе невозможно ибо строим програму по законам общеизвесным.....а зная законы Да и вообщем то пришли к такой точке программирования что очень мало народу пишет действитетельно чтото новое....ну если тока алгоритмы построения.... незнаю проще свой написать чем раскапывать тысячи строк. .....как видим даже майкрософт с этим несправляется но это немешает им грбсти бабло лопатой.....такчто тут стока нюансов что общий подход для индивидуального неподойдет. |
|||
|
||||
Rockie |
|
||||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1143 Регистрация: 23.4.2006 Репутация: нет Всего: 31 |
Присоединяюсь! ![]()
Кто-то пробовал? Как впечатления? -------------------- Чтобы иметь большой гардероб - надо иметь большой гардероб. |
||||
|
|||||
Voyager |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 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.
Это сообщение отредактировал(а) Voyager - 16.3.2012, 11:52 |
|||
|
||||
mihavxc |
|
|||
Новичок Профиль Группа: Участник Сообщений: 2 Регистрация: 13.3.2012 Репутация: 1 Всего: 1 |
Если вам нужен именно обфускатор, то ознакомьтесь с обзором на хабре:
http://habrahabr.ru/blogs/net/97062/ Но я бы вам рекомендовал подумать о более тотальной защите вашего ПО, то есть не только сделать обсускацию, но и привязать ПО к программным или аппаратным ключам и реализовать борьбу с отладчиками и прочими нехорошими вещами. Советую ознакомиться с комплектом разработчика Sentinel HASP: http://www.aladdin-rd.ru/catalog/hasp/ |
|||
|
||||
techPro |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 16 Регистрация: 16.3.2012 Репутация: нет Всего: 1 |
Уж если кто-то закрыл, то наверняка кто-то и открыть сможет. Вообще говоря, именно благодаря пиратам на Руси виндовс так популярна...
|
|||
|
||||
Rockie |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1143 Регистрация: 23.4.2006 Репутация: нет Всего: 31 |
какая прелесть))
![]() Добавлено через 40 секунд mihavxc, спасибо за ссылку на обзор! -------------------- Чтобы иметь большой гардероб - надо иметь большой гардероб. |
|||
|
||||
V0fka |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 311 Регистрация: 5.11.2006 Где: Украина Репутация: нет Всего: нет |
Посмотрел тему, посмотрел обзор на хабре, на который ссылка выше. Попробовал Eazfuscator.NET 4.3. При попытке ним воспользоваться в визуал студио выдается предупреждение о том, что программа будет работать ДО такого-то числа. Судя по тому, что последнему посту в теме больше 2 лет, возможно многое поменялось и этот обфускатор уже не бесплатный. Так же возможно появились новые инструменты, исчезли старые.
Вопрос: посоветуйте какой-то бесплатный обфускатор? Ничего сверхъестественного не надо. Не преследую цели защитить код, преследую цель не показывать его всем подряд ![]() Это сообщение отредактировал(а) V0fka - 26.6.2014, 08:55 |
|||
|
||||
![]() ![]() ![]() |
Прежде чем создать тему, посмотрите сюда: | |
|
Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов. Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :) Так же не забывайте отмечать свой вопрос решенным, если он таковым является :) Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |