Так уж сложилось, что лицензионных версий игры в России почти не водится. В связи с этим на всех русских шардах отключена проверка СД-КЕЯ средствами bioware. Но из-за этого любой игрок может пропустить проверку логин:пароль и зайти на шард под любым логином.
Способов борьбы с этим опять-же - полно. Кто-то требует ввода в поле Deity специального ключа, генерируемого по имени\логину, кто-то записывает СДКЕЙ в БД. Наверное есть еще варианты. Хотелось бы услышать - кто и как с этим борется.
Добавлено в [mergetime]1087026014[/mergetime] Вот один из вариантов скрипта. Он привязывает СД-КЕЙ, с которым создали персонажа к логину\имени персонажа. Зайти в игру этим персонажем можно только с этим СД-КЕЙем. На случай смены СД-КЕЯ предусмотренна возможность временного отключения проверки из dm-console командой `dm_setmodulevarint SecurityDisable 1`. Включить защиту обратно: `dm_setmodulevarint SecurityDisable 0`
Вызывается из события onClientEnter:
ExecuteScript("_security",OBJECT_SELF);
_security.nss
Код
void main()
{
object oPC = GetEnteringObject();
string sCDKEY = GetPCPublicCDKey(oPC);
string sName = GetName(oPC);
string sPCName = GetPCPlayerName(oPC);
string sID = "(("+sPCName+"))"+sName;
//ДМ-ы должны знать пароль и их обычно не проверяют
if (GetIsDM(oPC)) return;
// Читаем из БД строку по паре логин+имя персонажа
string sReadID = GetCampaignString("Security",sID);
//Дополнительная возможность банить игрока - положить ему в инвентарь итем с тегом "mg_bootstone"
if (!GetLocalInt(GetModule(),"SecurityDisable") &&
GetIsObjectValid(GetItemPossessedBy(oPC,"mg_bootstone")))
{
BootPC(oPC);
return;
}
//Если игрок зашел впервые (только создали) или отключена защита - записываем новый СДКЕЙ
if (sReadID =="" || GetLocalInt(GetModule(),"SecurityDisable"))
{
SetCampaignString("Security",sID,sCDKEY);
return;
}
//Проверяем
if (sReadID != sCDKEY && !GetLocalInt(GetModule(),"SecurityDisable") )
{
BootPC(oPC);
SendMessageToAllDMs("Security: Error! "+sName+" :["+sPCName+"]: with key ="+sCDKEY+ " != "+sReadID);
WriteTimestampedLogEntry("Security: Error! "+sName+" :["+sPCName+"]: with key ="+sCDKEY+ " != "+sReadID);
return;
}
}
Хотелось бы услышать варианты защиты по индивидуальному паролю. Очень интересно.
Цитата
Хотелось бы услышать варианты защиты по индивидуальному паролю. Очень интересно.
Простой вариант (обсуждалось на realms) - взять строку логин+имя персонажа и построить для нее crc32 - число. Сделать форму для регистрации - игрок отсылает логин+пароль (можно и СДКЕЙ задействовать) и получает в ответ число, которое и должен ввести в поле Deity. При входе скрипт считает crc32 и сверяет с тем, что ввели. Сложность - правильно в скрипте подсчтитать это самое crc32, ведь нету функций получить числовое представление символа и все нужно делать через большие switch - case блоки.
Вот простые варианты защиты:
Потребовать ввода в поле deity первых 8 символов СД-КЕЯ, через 1. (simple CD-KEY, именно он виден из игры, а не полный СД-КЕЙ). Сейчас, когда появилась функий SetDeity - можно это делать автоматом, если deity пустое - записать туда CD-KEY, если не пустое - сверить с используемым CD-KEY'ем. (замый простой вариант защиты)
Нет, я имел ввиду индивидуальный пароль на шард, когда, где ИП, вводишь свой пароль.
Цитата
Нет, я имел ввиду индивидуальный пароль на шард, когда, где ИП, вводишь свой пароль.
А такого никогда не было и вероятно не будет. Есть всего два пароля - для игроков и для ДМ-ов (есть еще сервер-админ, но это до сих пор не документированно)
Просто мне рассказывали, что такое было на Темпларе. Или может я что-то путаю? Тугодум, разъясни ситуацию.
2GoDoom
Jun 15 2004, 22:34
а я то тут при чем?
я говорил что можно написать такую фишку (на Си или Дельфи), чтобы даже посмотреть на перса на акке нельзя было
Ну вот, я об этом и говорил.
2GoDoom
Jun 18 2004, 02:15
Ну прога заключается в том, чтобы она коннектилась к мастер-серверу (то есть к игровому) проверяла пароль (в проге нужно логиниться) и если все чики-чики, то прога сворачивается и мастер-серверу разрешается общаться с ИП откуда пришел пароль (то есть добавляет правило в фаирволл или еще что-то)... если не прошла проверка - то игрок вынужден заново ввести код или забит ьна это дело
Аваддон
Jun 18 2004, 17:03
Я шарю немножко в скриптах, но ни разу не пользовался(да и незнаю как) базой данных.
Вот думаю можно при заходе в первый раз если 0 опыта давать 1 опыта, записывать в БД Аккаунт, имя чара, СДкей.
Потом если кто попытается войти этим чаром - он клиент энтер в БД ищется аккаунт, есть ли там такой чар, и подтвержается ли СД кей.
P.S. Зачем биотвари такую заподлянку по LAN сделало? Пароли и логины не проверяются...Да и некуда их записывать.. у нас же нет мастер-сервера.
Цитата
Я шарю немножко в скриптах, но ни разу не пользовался(да и незнаю как) базой данных.
Вот думаю можно при заходе в первый раз если 0 опыта давать 1 опыта, записывать в БД Аккаунт, имя чара, СДкей.
Потом если кто попытается войти этим чаром - он клиент энтер в БД ищется аккаунт, есть ли там такой чар, и подтвержается ли СД кей.
В другом топике тут есть пример такого скрипта.
Цитата
P.S. Зачем биотвари такую заподлянку по LAN сделало? Пароли и логины не проверяются...Да и некуда их записывать.. у нас же нет мастер-сервера.
Плохо читал первый пост

Они сделали, просто у нас никто не играет с лицензионными ключами. Если требовать от сервера проверку ключей - на шарде никого не будет.
2GoDoom
Jun 20 2004, 02:16
Чтобы требовать на сервере проверку ключей - достаточно поставить оригинальный сервер

ЗЫ
Не измененный nwserver.exe
Lazy Ranma
Jun 25 2004, 08:53
Цитата
Просто мне рассказывали, что такое было на Темпларе. Или может я что-то путаю? Тугодум, разъясни ситуацию.
Темплар написал прогу, которая перехватывала траффик, расшифровывала его, делала с ним все необходисые безобразия, шифровала обратно и посылала серверу.
Ignacius
Jul 24 2004, 18:33
А теперь требует за нее уйму денег.
Lexey aka Hawk
Aug 10 2004, 11:13
Цитата(Ignacius @ Jul 24 2004, 18:33)
А теперь требует за нее уйму денег.
1. Про деньги первый раз слышу. Насколько я знаю Сергея, он с самого начала планировал сделать эту прогу freeware после того как отладит ее полностью.
2. Прога работает под Виндами онли.
3. Прога и ее исходники (по его словам) лежат на машине, к которой физически на данный момент нет доступа (почему нет доступа я комментировать не вправе, хотя в курсе этой истории, просто примите данную инфу as is).
Аваддон
Aug 10 2004, 15:08
(почесывает ручки) :this: какая досада... Вот бы доступ появился - счастья то было...
Valleo
Aug 10 2004, 16:02
Эх... Жаль конечно, такая прога пропадает... =)
Но жаль что тока под винду =(
Lexey aka Hawk
Aug 10 2004, 16:42
Могли бы немного помочь исходники, но по факту этот софт придется ваять под каждый тип операционки по новой. Как вариант можно прыгнуть на лицензию после того как 1С выпустит ее в России. Я не думаю, что она будет безумных денег стоить.
Цитата(Lexey aka Hawk @ Aug 10 2004, 16:42)
Могли бы немного помочь исходники, но по факту этот софт придется ваять под каждый тип операционки по новой. Как вариант можно прыгнуть на лицензию после того как 1С выпустит ее в России. Я не думаю, что она будет безумных денег стоить.
Да, это решит кучу проблем. Игроки десять раз подумают, прежде чем станут нарываться на бан по CD-KEY

К тому же разработчикам будет легко сделать общий черный список совсем отмороженных.
Valleo
Aug 14 2004, 12:31
"Черный список"... хых =)
Можно и по никам делать списки, благо некоторые есть кто ненавидят менять ники и слишком в них вживаются...
Балгарат к ним не относится...
А вот то, что от ДМов не надо защищать - это еще оспоримо. Пример - какой-то ДМ нарушает правила, и его нужно срочно лишить прав, пока он не натворил глупостей под психом. В этом числе он исключается из числа ДМов и при заходе на шард бутится. Доступа к БД у него нету, и он ничего не сможет сделать. На некоторых шардах это достаточно удобно реализовано. :boom:
Цитата(NiMH @ Aug 15 2004, 05:48)
Балгарат к ним не относится...
А вот то, что от ДМов не надо защищать - это еще оспоримо. Пример - какой-то ДМ нарушает правила, и его нужно срочно лишить прав, пока он не натворил глупостей под психом. В этом числе он исключается из числа ДМов и при заходе на шард бутится. Доступа к БД у него нету, и он ничего не сможет сделать. На некоторых шардах это достаточно удобно реализовано. :boom:
Если вы с ДМ-ами порядок навести не сможете - о каком порядке на шарде может идти речь?
К тому же для ДМ-ов обязателен пароль, которые несложно поменять.
Никогда не вредно иметь дополнительную систему защиты, не так ли?
Все это конечно хорошо, пароли, защита, итд итп,
но кто то сможет мне обьяснить для чего нужен админ пароль и как им пользоватся ?
iAgressor
Sep 12 2004, 17:16
QUOTE (Wolf @ Sep 8 2004, 16:51) |
Все это конечно хорошо, пароли, защита, итд итп, но кто то сможет мне обьяснить для чего нужен админ пароль и как им пользоватся ? |
никто=),,вернее тут врядли кто-то))
Аваддон
Sep 12 2004, 19:32
Админ пароль ИМХО нужен для удаленного администрирования сервака или измения настроек сервера.
QUOTE (Аваддон @ Sep 12 2004, 19:32) |
Админ пароль ИМХО нужен для удаленного администрирования сервака или измения настроек сервера. |
Это ты так предпологаеш, а мне нужно конкретно что почем и как его юзать, с помощью чего входит на серв и вводить этот пароль ?
он просто не используется.
Hety the Lightbringer
Sep 17 2004, 15:31
playerpassword <password>
Change or set the password required by players to join the game.
Providing no password will remove password protection.
dmpassword <password>
Change or set the password required by DMs to DM the game. Providing
no password will disable DM login.
adminpassword <password>
Change or set the password required to remotely administer the game.
Providing no password will disable admin login. Currently unused.
Выдержка из вывода команды help в консоли сервера.
Oksivarus
Oct 12 2004, 00:47
былобы неплохо еще это и по русски прокоментировать так как в англ полный ну или почти полный 0.
Аваддон
Oct 12 2004, 05:53
Вообщем все ботва.. А последняя строчка гласит:
Админский пароль в данный момент не используется.
Вобщем они его сделали только сами хз зачем
не хрен знает зачем а заложили при разработке, а потом отказались в ходе работы..вот и тянеться ннеиспользованый резерв
Аваддон
Oct 12 2004, 17:32
Нет, наверное он юзается для чего-то. Просто они спецом пишут что мол не используется... Что то скрывают
pitbull
Oct 22 2004, 10:13
у меня такая стоит дмская защита
при заходе проверяет вошедшего на соответствие прописанному в базе айпи, аккаунту, и имени персонажа - если несовпадение бутит. Паралельно записывает всех кто ввел правильный дмпароль но не имеет на это прав - очень удобно.
Lazy Ranma
Oct 24 2004, 00:42
У меня круче. =) ДМ может заходить с любого ip/аккаунта, но с заданым СиДикей. Причем для CD-key считается хэш сумма, так что никакие злобные админы и кулхацкеры не проникнут. =)
Lazy RanmaЗачем тебе этот хэш сидикея? Ведь короткая версия от длинного кея и так, вроде бы, представляет собой некое подобие хэша, то есть сделана без возможности "дешифровки" в длинную версию, чтобы PW и другие серверы их не воровали у лицензионных игроков. Хотя может её и можно "развернуть", не важно. Или ты имел в виду то, что злобный админ подглядит короткую версию и будет ею пользоваться? Хотя это тоже не реально. Я не понял тебя...
Lazy Ranma
Oct 24 2004, 12:12
Мне это было нужно, когда мы хостились на uagames. Там на сервере было 4 рута, а ДМы жаловались на то, что какие-то админы в количестве много штук заходили на сервер. Мне это надоело. А поскольку любой рут может как посмотреть ДМ пароль, так и добавить свой сидикей в базу данных, то я решил сделать так.
Хешировалась именно public часть CD-key'я. Весь смысл в том, что админ сервера не сможет сам посчитать этот хэш и добавить его в БД. А следовательно и зайти на сервер с правами ДМа.
pitbull
Oct 24 2004, 14:09
каждый создает под свои условия
Balgarat
Jul 1 2005, 23:30
QUOTE (NiMH @ Aug 15 2004, 05:48) |
Балгарат к ним не относится... |
Не скажи, я вообще всегда пытаюсь играть под своим ником менять его меня заставляют обстоятельства
Добавлено в 23:33 \\ Привет Ранма, давно тебя не видел
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста,
нажмите сюда.