![]() |
|
Модераторы: Partizan, gambit |
![]()
|
|
| CasperSC |
|
||||||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 203 Регистрация: 27.11.2009 Репутация: нет Всего: 1 |
Смысл темы в том, что давайте поможем начинающим (мне в том числе), как создавать shareware защиту программ, конкретно генератор ключей и проверка в программе, не надо ухищрений как спрятать проверку подальше, это всё можно найти интернете, да и думаю никто особо стараться не будет. Просто нужно на конкретных примерах показать как это делается. Я просмотрел кучу сайтов и ничего не понял, там вообще ничего толком не объясняется. Знаю только, что для это нужно пространство имён System.Security.Cryptography
например шаблон на основе которого нужен конкретный код:
//вызов проверки при загрузке приложения (чисто для примера, а там уже каждый аорганизует как надо)
Можно ещё выдавать код в одном виде, а впрограмме, чтобы он расшифровывался по какому нибудь заранее определённому алгоритму и уже расшифрованный проверялся, незнаю надо это или нет. Помогите, кто нибудь, думаю многим это не составит проблем. нашёл такой код и что-то не пойму где его использовать, можно и его запихать в выше приведённый шаблон:
Если из этой темы, что нибудь выйдет и если я разбирусь с защитой, выложу более менее приличный метод защиты. Это сообщение отредактировал(а) CasperSC - 27.1.2010, 18:38 |
||||||
|
|||||||
| CasperSC |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 203 Регистрация: 27.11.2009 Репутация: нет Всего: 1 |
Неужели никто не умеет? Все программируют, все защищают, никто не умеет? Ну хоть что нибудь напишите.
|
|||
|
||||
| mr.Anderson |
|
|||
![]() iOS Lead Developer ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3374 Регистрация: 20.12.2004 Где: далеко Репутация: 1 Всего: 128 |
Для .NET вразумительных попыток защиты кода сейчас немного. Из нормальных - это обфускация. Есть еще попытки динамической расшифровки кода, но она в стадии разработки, бешеной цены и не кроссплатформенная. Других методов пока не придумано.
|
|||
|
||||
| ДобренькийПапаша |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1278 Регистрация: 14.1.2006 Где: г.Москва Репутация: 3 Всего: 7 |
Я поднимал такую тему. Ссылка
Собственными силами, Вы не напишите адекватной защиты. Это сообщение отредактировал(а) ДобренькийПапаша - 26.1.2010, 19:33 -------------------- Меня зовут Себастьян Парейра, торговец чёрным деревом. |
|||
|
||||
| Sfate |
|
|||
![]() Angry Beaver ![]() Профиль Группа: Участник Сообщений: 111 Регистрация: 7.9.2008 Где: mov AL, BL Репутация: нет Всего: нет |
когда то тоже интересовался защитой кода... нашел программу, которая сжимает размер программы, путем замены некоторых значений на более простые... в итоге, просмотреть код программы тем же net.reflector уже нельзя... но полная работоспособность программы не гарантируется))
--------------------
"Начинающий программист твердо уверен, что в 1 кбайте 1000 байт, а опытный точно знает, что в 1 километре 1024 метра..." © Unknown |
|||
|
||||
| gambit |
|
|||
![]() Эксперт ![]() ![]() ![]() Награды: 1 Профиль Группа: Комодератор Сообщений: 1359 Регистрация: 25.6.2006 Где: я? Репутация: 3 Всего: 40 |
Лучше написать 2 программы, одна полная-вторая урезанная, ибо все защиты тем более в .net на ура ломаются.
Вы можете написать самую невероятную защиту, но в итоге она сведется к одному bool значению, и для работы с программой достаточно его поменять, т.е. изменить один бит и вся ваша защита падает. |
|||
|
||||
| CasperSC |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 203 Регистрация: 27.11.2009 Репутация: нет Всего: 1 |
Можно сделать кучу условий и не только с bool и не в одном методе. Поверь я хоть и новичок ну не на столько глуп. Вообще цель не код защитить, а написать метод для генерации серийников, на основе каких нибудь пользовательских данных. Просто я не знаю как сгенерировать серийник, чтобы выдать пользователю, а дальше сам разберусь. |
|||
|
||||
| gambit |
|
|||
![]() Эксперт ![]() ![]() ![]() Награды: 1 Профиль Группа: Комодератор Сообщений: 1359 Регистрация: 25.6.2006 Где: я? Репутация: 3 Всего: 40 |
||||
|
||||
| CasperSC |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 203 Регистрация: 27.11.2009 Репутация: нет Всего: 1 |
Работает 1 - 5 тамер(ов) Имею ввиду например пользователь вводит пароль и нажимает принять, при этом происходит ложная проверка, можно ещё при ложной проверке как нибудь повлиять на какие нибудь переменные (опять же как нибудь замудрённо, чтобы это небыло очевидно). 1 из 5-ти таймеров проверяет нажимали ли кнопку, если да, то запустить 40 таймеров, 3 - 8 из которых реально проверяют, 1 из 40 таймеров проверяет ту переменную которая была изменена при нажатии на кнопку (где производилась ложная проверка), но в разное время, например 1 через минут 20, остальные позже. и если там переменная не изменена, а программа как бы работает, то завершить программу и удалить себя с компьютера пользователя или низнаю, мож зашифроваться или заархивироваться, короче как нибудь неявно стать неработоспособной. Да вообще можно такого бреда понаписать, что сам потом не разберёшься Это сообщение отредактировал(а) CasperSC - 27.1.2010, 23:00 |
|||
|
||||
| Любитель |
|
|||
|
Программист-романтик ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3645 Регистрация: 21.5.2005 Где: Воронеж Репутация: нет Всего: 92 |
Из всего, что вы написали эффективен только хороший обфускатор (с криптованием строк, с качественной обфускацией control flow, с невалидными конструкциями с точки зрения декомпилеров и т. д.). А в остальном - вы будете мучаться больше, чем взломщик. Проверка на "запущенность" рефлектора вообще убила - рефлектор это дизассемблер/декомпилятор, а не дебаггер! |
|||
|
||||
| gambit |
|
||||||||
![]() Эксперт ![]() ![]() ![]() Награды: 1 Профиль Группа: Комодератор Сообщений: 1359 Регистрация: 25.6.2006 Где: я? Репутация: 3 Всего: 40 |
Правильно, поставим комп на колени.
Это все отсеивается в 2 секунды. Я вам еще раз повторяю, какую бы защиту вы не написали, в итоге все сведется к
Так что все свелось к одному биту.
А вообще улыбнуло, реализуйте, я вам на примере покажу что это хренотень. Добавлено через 1 минуту и 36 секунд
Дочитал до конца, я бы вас принял на работу. Мне так хочется вас уволить. |
||||||||
|
|||||||||
| CasperSC |
|
||||||||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 203 Регистрация: 27.11.2009 Репутация: нет Всего: 1 |
40 таймеров не обязательно работающих с интервалом 100 миллисекунд. можно и раз в час проверять, комп от этого уж точно не встанент на колени, даже не почувствует и вообще это просто грубый пример.
Не спорю, может быть, только интересно чем?
Надо попробовать, правда генерация пароля будет полной лажей, так как не знаю как его генерировать. Мне даже интересно, может это всё и вправду хрень?
Во первых какая работа, я только начал учить C#, да и вообще программирование в целом. Всё что я понаписал я начитался на сайтах по защите кода, правда там писали про Delphi и ещё советовали не использовать VCL (вроде) и API функции. Короче видимо мне запудрили мозги. Ну и практически всё я сочинил на ходу не обдумывая деталей. P.S Ну а вообще, полюбому такой способ, пусть даже не такой замудрённый всё равно доставит проблем, чем просто if(true) {} else {} вот такое думаю как раз в 5 сек и ловиться и выключается. Вообще надо было тему назвать: Генерация ключей. Вопрос как сгенерировать, а не то поможет ли защита такая-то. Люди если кто умеет на C# покажите пример пожалуйста. На любом форуме одно и тоже. Не ответ на вопрос, а просто обсуждение, что это всё фигня и не поможет. Это сообщение отредактировал(а) CasperSC - 28.1.2010, 11:49 |
||||||||
|
|||||||||
| CasperSC |
|
||||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 203 Регистрация: 27.11.2009 Репутация: нет Всего: 1 |
Да Ещё раз спрошу: Как сгенерировать код на основе 3 - ёх каких либо строк, например имя ПК - Пользоватея - ещё что нибудь? |
||||
|
|||||
| gambit |
|
|||
![]() Эксперт ![]() ![]() ![]() Награды: 1 Профиль Группа: Комодератор Сообщений: 1359 Регистрация: 25.6.2006 Где: я? Репутация: 3 Всего: 40 |
самый элементарный md5(имяПК + серийный номер любой платы) Я только не понимаю, какую защиту вам даст получение ключа у пользователя. Мне всегда казалось что это мы должны пользователю ключ давать, а не он нам. Добавлено через 2 минуты и 54 секунды Или схема такая? Программа генерит код, отсылает его вам, потом вы присылаете его пользователю, он вводит и удивляется - как это вы создали код который только на этом компе работает? |
|||
|
||||
| CasperSC |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 203 Регистрация: 27.11.2009 Репутация: нет Всего: 1 |
[QUOTE=gambit,28.1.2010, 14:47]
Слушай, а у тебя есть чувство юмора Вот писал, для друга, он не знает как установить аську, типа учил его. Так вот обработали её 2 обфускатора, будь другом скажи такая защита ломается? По сути паролей и т.д. там нет, просто код реально прочитать? Ведь если его можно прочитать, то и защиту как я понимаю сломать? http://narod.ru/disk/17349523000/Protected...sounds.rar.html Вообще-то, надо, чтобы только на его компе работал этот ключ, а как иначе? Он просто его выложит где нибудь и всё. Это сообщение отредактировал(а) CasperSC - 28.1.2010, 16:26 |
|||
|
||||
![]()
|
| Прежде чем создать тему, посмотрите сюда: | |
|
|
Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов. Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :) Так же не забывайте отмечать свой вопрос решенным, если он таковым является :) Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, Partizan, PashaPash. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | .NET для новичков | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |