Форум: "Потрепаться";
Текущий архив: 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.029 c