ограничение программы с помощью ключа c# (вопросы)
| |
aalla | Дата: Четверг, 15 Ноября 2012, 20:09 | Сообщение # 1 |
постоянный участник
Сейчас нет на сайте
| язык c# (для тех кто в танке, и не читает название темы) вообщем возник такой вопрос: как сделать 2 версии программы(или одну, но предвидеть обстоятельства описанного ниже) в которых будет не много отличатся интерфейс, и будет проще работать, далее подробнее. мне нужно реализовать что то вроде ввод ключа, после которого у пользователя который установил мою программу не будет появляться при запуске сообщение(может быть банер) о том что это не зарегистрированная версия программы(как в WinRar в бесплатной версии), и собственно вопрос в том как проектировать сие чудо, а точнее алгоритм с ключами. я пока вижу это решение так: заранее придумать алгоритм шифровки, и на его основании потом уже генерировать ключи для пользователей, и чтоб сама программа могла их распознать. сразу хочу отметить что программа будет полезна только определенному кругу людей, и делать для нее кейгены, и прочую ересь просто нет смысла, а это я делаю ради хоть какой-то компенсации себе, за свой труд. не нужно мне советовать книги по c#, я сама знаю что мне читать, и когда(исключением будет книга по реализации подобной вопросу) пожалуйста пишите только если у вас есть определенные мысли на этот счет, о всем остальном лучше не пишите.
|
|
| |
TreinDSM | Дата: Четверг, 15 Ноября 2012, 20:25 | Сообщение # 2 |
почетный гость
Сейчас нет на сайте
| Тут многое упирается в то, как Вы собираетесь распространять ключи.
|
|
| |
aalla | Дата: Четверг, 15 Ноября 2012, 20:39 | Сообщение # 3 |
постоянный участник
Сейчас нет на сайте
| TreinDSM, ну допустим что клиент будет знать мой r кошелек на вебмани, ну или любой другой валюте. И пожертвование будет делать с пометкой например "покупка программы 'название программы'", после этого я высылаю ключ, ну это так одна из пришедших идей пока
|
|
| |
romgerman | Дата: Четверг, 15 Ноября 2012, 20:42 | Сообщение # 4 |
старожил
Сейчас нет на сайте
| Можно так: сделать прогу для генерации ключа - пусть она сгенерирует 100 случайных ключей - эти ключи автоматом будут прикрепляться к копии программы - пользователь вводит ключ - инфа идёт на сервер, там проверяется совпадение с созданными и уже введёнными ключами - если всё хорошо, то прога активируется, на сервере записывается, что этот ключ был введён... Что-то типа такого. Я об этом думал, но на счёт ограничения при создании ключей я не думал Я хз, как сделать чтобы они генерировались не ограниченно. Добавлено (15.11.2012, 20:42) --------------------------------------------- Долго писал, т.к. с телефона.
|
|
| |
aalla | Дата: Четверг, 15 Ноября 2012, 20:45 | Сообщение # 5 |
постоянный участник
Сейчас нет на сайте
| TreinDSM, а про ключи я думаю что нужно еще и сделать так чтоб ключи не повторялись, и при онлайн регистрации этот ключ уходил в отстойник, даже например заносился в базу данных где то на сервере, и при генерации ключа этот ключ уже не повторялся, или считался не действительным. Но тогда получается проблемма в активации программы при помощи интернета( Добавлено (15.11.2012, 20:45) --------------------------------------------- romgerman, а вдруг мне нужно будет больше чем 100, и мне еще и в проге замароки свои иметь, нет спасибо
|
|
| |
romgerman | Дата: Четверг, 15 Ноября 2012, 20:46 | Сообщение # 6 |
старожил
Сейчас нет на сайте
| aalla, мне вообще всё равно что ты хочешь делать в своей проге. Ты сказал предложить, я предложил.
|
|
| |
aalla | Дата: Четверг, 15 Ноября 2012, 20:48 | Сообщение # 7 |
постоянный участник
Сейчас нет на сайте
| я вообше вижу это в виде одной программы уже), которая и полная программа, и не зареганная. Так как 2 копии писать смысла нет вообще, так как вася отдаст прогу пете, и будут юзать полную версию оба.
Добавлено (15.11.2012, 20:48) --------------------------------------------- Quote (romgerman) мне вообще всё равно что ты хочешь делать в своей проге. Ты сказал предложить, я предложил. я вижу что ты предложил, ну я и ответила что мне такое не подходит, и я не он!
Сообщение отредактировал aalla - Четверг, 15 Ноября 2012, 20:49 |
|
| |
TreinDSM | Дата: Четверг, 15 Ноября 2012, 20:50 | Сообщение # 8 |
почетный гость
Сейчас нет на сайте
| Если ключ не обязан быть быть уникальным для каждого пользователя, а Вы, в свою, очередь не опасаетесь того, что кто-то может залезть во внутреннюю реализацию, то можно просто зашить в приложение n-ое кол-во ключей и их же выдавать пользователям. А в программе просто сравнивать безо всяких преобразований.
Если ключ, опять же, не обязан быть уникальным, но Вы опасаетесь декомпиляции, то можно использовать асимметричные алгоритмы шифрования. Пользователю предоставляется секретный ключ, который он вводит при активации программы. Этот ключ используется, чтобы "подписать" определенную Вами последовательность. В программе с помощью открытого ключа происходит вычисление прообраза. Данный прообраз сравнивается с определенной Вами последовательностью. Если он совпадает, то ключ - верный.
Если же нужно обеспечить уникальность ключа для каждого клиента, то нужно налаживать взаимодействие с удаленным ресурсом, где будут храниться какие-нибудь идентификационные данные пользователя и его ключ.
|
|
| |
romgerman | Дата: Четверг, 15 Ноября 2012, 20:51 | Сообщение # 9 |
старожил
Сейчас нет на сайте
| aalla, хорошо,ты уж извини за "НЕГО". Просто не часто встретишь девушку в этом деле ')
|
|
| |
TreinDSM | Дата: Четверг, 15 Ноября 2012, 20:55 | Сообщение # 10 |
почетный гость
Сейчас нет на сайте
| Если все взаимодействие будет внутри программы происходить, то ключей все одно ограниченное кол-во будет. А уникальные ключи - только при поддержке сервака.
|
|
| |
aalla | Дата: Четверг, 15 Ноября 2012, 21:08 | Сообщение # 11 |
постоянный участник
Сейчас нет на сайте
| TreinDSM, на сервер тратится не очень охота, так как может быть мне в убыток такая программа) TreinDSM, идея не плохая зашить в программу энное кол-во ключей), ну я пока не знаю на сколько она будет популярной среди группы пользователей, так как эта группа обычный полулохотрон,который собирают базу клиентов. Точное кол-во клиентов я даже не предполагаю, но есть возможность её распространить в этой группе, а уж сколько народу ею будет пользоваться зависит от меня, как я её реализую), скорей всего я просто откажусь от этой идеи, и буду нагло показывать свои кошельки при запуске программы обоим плюсы поставлю если смогу) за ваши советы, спасибо!)
Сообщение отредактировал aalla - Четверг, 15 Ноября 2012, 21:19 |
|
| |
arthurfok | Дата: Четверг, 15 Ноября 2012, 21:28 | Сообщение # 12 |
частый гость
Сейчас нет на сайте
| aalla, Quote Так как 2 копии писать смысла нет вообще, так как вася отдаст прогу пете, и будут юзать полную версию оба. Тут есть решение. У каждого компа есть свой номер ( серийник платы, который не повторяется ,,, то есть нету 2 компа с одинаковым серийникам платы). Вот, можешь связывать твою прогу с этим серийникам при первом запуске. А на остальных запусках , уже проверяешь , если запуск произведен из того же компа, то все ОК , а если нет, то гуд бай май лав. Воть
|
|
| |
aalla | Дата: Четверг, 15 Ноября 2012, 21:32 | Сообщение # 13 |
постоянный участник
Сейчас нет на сайте
| arthurfok, тоесть этот вариант подходит для 2-ух разный версий программ, одна демо, вторая которая уже будет регатся на плату? меня уже устроил вариант который описан мною выше), если кому-то надо будет более расширенную версию программы, то свяжутся со мной.)
Сообщение отредактировал aalla - Четверг, 15 Ноября 2012, 21:33 |
|
| | |
aalla | Дата: Четверг, 15 Ноября 2012, 21:36 | Сообщение # 15 |
постоянный участник
Сейчас нет на сайте
| arthurfok, дак и этож все равно придется где то у клиента хранить номер платы), хотя о чем я вообще)), безопасности особой такой и не требуется, так как контингент пользователей в основном умеет только почту проверять, и vk.com набрать
|
|
| |
arthurfok | Дата: Четверг, 15 Ноября 2012, 21:40 | Сообщение # 16 |
частый гость
Сейчас нет на сайте
| aalla, )))))) да ты права )) а хранить можно в бинарном файле ,, где прочитать содержимое можешь только ты в твоей проге. (это если тебе надо 99% безопасность xD )
|
|
| |
aalla | Дата: Четверг, 15 Ноября 2012, 21:45 | Сообщение # 17 |
постоянный участник
Сейчас нет на сайте
| а как это делают в других программных продуктах? например таких как фотошоп? Мне кажется там примерно что-то отдаленно похожее на мой вариант который был в первом посте, ведь ломают их в основном с кейгенами, и частенько нужно отключать инет. И флаг регистрации просто заносится локально в регистр.(риестр сорри )
Добавлено (15.11.2012, 21:45) --------------------------------------------- arthurfok, да можно даже не в бинарном), а в простом txt, просто засунуть туду куда обычный пользователь пк ни когда не залезет), да и если залезет то просто не поймет что это за файл, и зачем он нужен. Так что это уже лишко))
Сообщение отредактировал aalla - Четверг, 15 Ноября 2012, 21:49 |
|
| |
arthurfok | Дата: Четверг, 15 Ноября 2012, 21:48 | Сообщение # 18 |
частый гость
Сейчас нет на сайте
| Quote а как это делают в других программных продуктах? на сколько я знаю, там у них свои алгоритмы кейгена, и взломщики узнают их с помощью дизассемблера (смотрят исх код программы на машинном языке ) . Quote и частенько нужно отключать инет лично я никогда не отключал инет когда крякал такие проги как фотошоп.
|
|
| |
aalla | Дата: Четверг, 15 Ноября 2012, 21:50 | Сообщение # 19 |
постоянный участник
Сейчас нет на сайте
| arthurfok, ну факт в том что они не хранят ключи где-то на стороннем сервере), и кейген умеет подбирать ключ на основе определенного алгоритма.
|
|
| |
arthurfok | Дата: Четверг, 15 Ноября 2012, 21:56 | Сообщение # 20 |
частый гость
Сейчас нет на сайте
| aalla, да да, это факт Добавлено (15.11.2012, 21:56) --------------------------------------------- в твоем случае легко делать 2 версии. с начало делай полную версию. а потом, во 2ом проге, добавь свои рекламы или что там еще ))))
|
|
| |
|