Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Потрепаться";
Текущий архив: 2004.02.25;
Скачать: [xml.tar.bz2];

Вниз

Регистрация   Найти похожие ветки 

 
cyborg   (2004-02-03 21:05) [0]

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


 
RealRascal   (2004-02-03 21:30) [1]

Поркякают сразу.

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

Я где то видел оригинальный способ защиты от копирования основанный на Dos-именах файлов с длинным именем(оно зависит от порядка копирования), но в деталях не помню.


 
Дремучий   (2004-02-03 21:35) [2]


> cyborg ©

Реестр "ломается" элементарно.
Метки на диске тоже отслеживаются.
Если у кого-то и есть нормальный способ защиты, то он его держит в секрете, потому как раскажет -- то эта защита уже будет не защитой. ;PPP


 
Nous Mellon   (2004-02-03 21:40) [3]


> cyborg © (03.02.04 21:05)

Если вещь стоящая кракеры все равно взломают. Вопрос только во времени.
Поэтому советую сделать так: напиши сначала простенькую защиту на основе тех же записей в реестр и файл(причем реализуй к примеру отдельную процедуру проверки регистрации не только вначале работы программы но и по ходу работы), меня бы к примеру это озадачило :) Причем не используй одни и те же методы в процедурах в начале и по ходу(но это уже не такая уж и простенькая защита полумается :)). А то несложно поставить bpx на RegOpenKey и RegQueryValue и это тебе ничего не даст потому как SoftIce послушно выплывет как только наткнется на бряк. Ну написал ты к примеру перый вариант регистрации, потом смотри по сети не появился ли кряк. Как только появится меня схему защиты в след. версии.
Можешь использовать криптеры-протектеры(AS например). Новичков отпугнет.
Только платить придется. Потому как кряченые версии протектера уже имеют распаковщики. А какой толк от протектера который можно распаковать одним щелчком? :)


 
Nous Mellon   (2004-02-03 21:42) [4]


> Реестр "ломается" элементарно.
> Метки на диске тоже отслеживаются.

Чего уж об этом говорит если даже Майкрософтовские продукты успешно сломаны.:)


 
Makhanev A.S.   (2004-02-03 21:46) [5]


> cyborg © (03.02.04 21:05)

пиши ключ в реестре.
тут методик несколько...
например ключ и username.
и между ними есть зависимость.

заморочки с защитой на первом этапе выпуска коммерческой версии, как правило, преждевременны.

Лучше тратить это время на функционал и всё такое..


 
Vlad   (2004-02-03 22:02) [6]


> RealRascal © (03.02.04 21:30) [1]

Часом не вот это имеешь ввиду ?
http://delphibase.endimus.com/?action=viewfunc&topic=appprotect&id=10461

Помнить надо героев своего форума :-)


 
cyborg   (2004-02-03 22:06) [7]

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


 
cyborg   (2004-02-03 22:11) [8]

Впринципе вопрос стоит не в "как зашифровать ключи?", а в "куда спрятать регистрационную информацию?" наверное желательно в нескольких местах?. Может сделать часть ключа в файле, часть в реестре и третья часть в ini каком нибудь?


 
NailMan   (2004-02-04 09:49) [9]

Я у себя для защиты режима разработчика(когда можно с двиглом делать все что хочешь и даже большее) сделал такую весчь(если какая-то стадия не проходит, то "гуляй Вася" - DEV mode не включается):

пишется DLL-ка в которой реализуется набор функций, делающих следующее:
1) при инициалиации, программа ищет наличие файла DLL-ки у себя в каталоге,
если найдено, то идем на следующую проверку.
2) Начинается опрос DLL на наличие функции с определенным именем, если найдена, то она вызывается. Функция возвращает некую строку, которая содержит что эта DLL-ка является "ключом" для открытия Dev mode.
3) далее программа запрашивает DLL-ку на генерацию он-лайн ключа. DLL его выдает в виде integer-а и прога этот ключ сохраняет у себя.
4) далее это число используется как ключ для шифрования(самого простенького). DLL-ке посылается сгенеренная фраза, зашифрованная этим ключом. DLL-ка его принимает, расшифровывает и хранит у себя.
5) когда прога выполняет действие связанное с защищаемым режимом(установка некоторых DEV_ переменных движка) перед применением изменений происходит посылка DLL-ке зашифрованной фразы, которая расшифровавшись уже в DLL-ке сравнивается с запомненной. Если ок, то DLL выдает добро на применение изменений.

Для твоего случая, имеет смысл сохранить такую DLL-ку в мастдайной папке под каким-нить "системным" названием и юзать ее для определения "установленности" игры(ну и для чего-нить еще).


 
NailMan   (2004-02-04 09:54) [10]

Для того чтобы вместе с DLL-кой не перенесли, надо в реестре(где-нибудь) но не в HKLM/SOFTWARE или HKCU/SOFTWARE сделать ключик с каким-нить содержимым, который если DLL-кой обнаружится, то все гуд, игра не переносилась, ну а если нет такого контента(лучше использовать бинарное поле) в ключе или ключа нет, то нещадно материть юзверя обвиняя в попытке взлома/кражи.


 
mfender   (2004-02-04 09:55) [11]

Регистрация по почте с высылкой ключа. Привязать к нумеру винта. При повторной инсталяции - новая цурюмония обмена username с ключом.
Самый древний способ.


 
cyborg   (2004-02-04 17:08) [12]

[11] mfender © (04.02.04 09:55)
К железу привязывать нельзя! С какой стати я, например, купивший программу должен кого-то просить о ключе при апгрейде?


 
_none_   (2004-02-04 17:15) [13]

to [Nous Mellon] разве ms ставили себе задачу сделать неломаемую систему?


 
cyborg   (2004-02-04 17:30) [14]

[9] NailMan © (04.02.04 09:49)
Чего даёт такой способ проверки ключа в отличии от такого же способа, но в самой программе?


 
NailMan   (2004-02-04 17:39) [15]

- Дополнительная степень защиты, т.к. имя DLL-ки при поиске(первая стадия) можно генерить в потоке кода, скрыв явно в экзеке имя(типа если константа).
- Ловить что-то в динамически подключаемой библиотеке сложнее чем в прямиком в программе.

Хотя насчет втогого могу и ошибаться.


 
Anatoly Podgoretsky   (2004-02-04 17:43) [16]

Да, а генератор уехал на Багамы в отпуск.


 
NailMan   (2004-02-04 17:47) [17]

Anatoly Podgoretsky ©
Тоесть?


 
cyborg   (2004-02-04 17:48) [18]

Мне кажется, что крякеры первым делом ловят библиотеки, которые вызывает программа. Так, что хоть 10 раз генерируй имя библиотеке, всё равно узнают.


 
NailMan   (2004-02-04 17:56) [19]

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

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


 
Nous Mellon   (2004-02-04 18:01) [20]


> to [Nous Mellon] разве ms ставили себе задачу сделать неломаемую
> систему?

ИМХО они ставили задачу побольше заработать :)
И если возможность сделать несломаемую была бы то они бы уж поверь мне потрудились над энтим делом :)


 
RealRascal   (2004-02-04 19:55) [21]


> Vlad © (03.02.04 22:02) [6]

в яблочко...



Страницы: 1 вся ветка

Форум: "Потрепаться";
Текущий архив: 2004.02.25;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.5 MB
Время: 0.034 c
6-80054
samalex
2003-12-18 14:19
2004.02.25
Про Socket


8-80031
Jonson
2003-10-22 19:19
2004.02.25
DelphiX для Delphi6 - ошибки!


1-79806
ИМХО
2004-02-13 22:05
2004.02.25
По поводу DateSeparator и ShortDateFormat


1-79819
kirilln
2004-02-11 10:25
2004.02.25
помогите с осями в TChart


14-80286
jack128
2004-02-01 12:48
2004.02.25
Намагничена, поляризована...





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский