Jump to content

Search the Community

Showing results for tags 'защита'.



More search options

  • Search By Tags

    Type tags separated by commas.
  • Search By Author

Content Type


Forums

  • Russian Section
    • Новости и объявления
    • Пиратия: Документация
    • Пиратия: Релизы
    • Пиратия: Разработка
    • Пиратия: Web
    • Пиратия: Помощь
    • Совместные проекты / набор команды
    • Доска объявлений
    • Программирование
    • Оффтопик
    • Корзина
  • English Section
    • News & Announcements
    • Guides
    • Releases
    • Development
    • Web
    • Questions & Help
    • Shared Projects / Team search
    • Paid services & Requests
    • Programming
    • Offtopic
    • Recycle bin
  • Portuguese Section
    • Dúvidas & Ajuda
  • Spanish Section
    • Preguntas y Ayuda
  • Servers
    • Russian servers
    • English servers

Find results in...

Find results that contain...


Date Created

  • Start

    End


Last Updated

  • Start

    End


Filter by number of...

Joined

  • Start

    End


Group


Found 2 results

  1. Защита сервера от SQL-инъекций JailBreak(MAC), Game.exe(PIN). Автор программы: insider. Как работает защита? Данная защита ставиться между GateServer'ом и GroupServer'ом. В данной защите есть 2 волны фильтрации, которые проходят пакеты. Пакет авторизации → Проверка размера и валидности поля MAC. Пакет смены PIN-кода → Проверка размера и валидности поля PIN. Если одна из волн фильтрации обнаружит в пакете изменения, пакет будет заменён на безопасный, а в файл Packets.bin выведется уведомление. Скриншот: Установка: Скопируйте файлы из архива в папку с сервером Откройте файл Gemini.XFail.xml В поле group укажите следующие параметры: address - IP адрес GroupServer; port - порт из файла GroupServer.cfg в блоке [Main] (Listen_Port) В поле gate укажите следующие параметры: address - IP адрес GateServer; port - порт из файла GateServer.cfg в блоке [GroupServer] (Port) Сохраните конфигурацию, запустите все подсервера (GameServer.exe, AccountServer.exe, GroupServer.cfg, GateServer.cfg), а затем запустите SQLGuard Скачать: Яндекс Диск Проверка на вирусы: Автор программы: insider
  2. Защита GM команд Привет! Предположим, Ваш сервер был взломан и злоумышленник получил доступ к GM-аккаунту. В данной статье я расскажу как обезопасить Ваш сервер от его действий, то есть сделать взлом бессмысленным. Внимание! Особое внимание уделите командам &lua и &lua_all. С их помощью злоумышленник может получить контроль над машиной, где запущен GameServer.exe, со всеми вытекающими из этого последствиями: кража Вашей сборки либо её удаление, вайп базы данных, потеря доступа к машине и так далее. Обсуждение этих команд проходит в данной теме: Все прелести команды &lua. Для обеспечения безопасности Вашего сервера, не используйте имена из примеров данной статьи на своем сервере! Способ №1. Нет GM-команд - нет проблем! Если Вы редко или вообще не пользуетесь GM-командами, то имеет смысл их отключить. Редактировать персонажей и выдавать предметы можно с помощью специальных программ или вручную в базе данных, когда персонаж не в игре. Чтобы отключить GM-команды нужно внести изменения в GameServer.exe. Версия | Размер (КБ) | Адрес --------+-------------+------------ 1.36 | 2 040 | 0x000DE1E8 1.38 | 2 088 | 0x000E6852 2.0 | 3 000 | 0x00161349 Откройте GameServer.exe в любом HEX редакторе и перейдите по адресу из таблицы. Я буду работать с 1.38 GameServer.exe в редакторе HxD. Замените 23 байта начиная с этого адреса на 0x90 Сохраните проделанные изменения и убедитесь, что в игре не работают GM-команды. Способ №2. Переименовывание GM-команд. Злоумышленник не сможет воспользоваться GM-командами, если он не будет знать их названия. Итак, Вам придется переименовать каждую команду. Чтобы изменить название GM-команды, откройте GameServer.exe в любом HEX-редакторе. Затем найдите GM-команду и измените ее название. Длина нового названия должна быть такой же, как и длина старого. Для примера, переименуем команду &make в команду &give. Обратите внимание, что длины строк "make" и "give" равны (по 4 символа). Открываем GameServer.exe в HEX-редакторе и ищем строку "make": Вам будут попадаться строки, которые содержат в себе подстроку "make" (например, "MakeItem", "make failed!", "GMmakeLog" и др.). Игнорируйте их и продолжайте поиск. Когда Вы найдете нужную строку, Вы увидите рядом названия других GM-команд: Заменяем на "give": Сохраните проделанные изменения. Повторите данные действия для каждой GM-команды. Список адресов GM-команд GameServer.exe версии 1.36 (2 040 КБ): GameServer.exe версии 1.38 (2 088 КБ): GameServer.exe версии 2.4 (3 000 КБ): Способ N3. GameServer.exe с функциями HandleChat(), GetGmLv() и SetGmLv() Для реализации данного способа Вам потребуется модифицированный GameServer.exe с функциями HandleChat(), GetGmLv() и SetGmLv(). Функция HandleChat(userdata role, string message) срабатывает, когда игрок пишет сообщение в местный чат. Так как GM-команды отправляются также в местный чат, Вы можете написать скрипт, который будет контролировать выполнение команд. Например, Вы можете сделать так, чтобы GM-команды срабатывали только при условии, что их отправляет персонаж с определенным именем или ID. Плюс ко всему, можно сделать чтобы этот персонаж должен еще состоять в определенной гильдии, в которую входят только администраторы и GM Вашего сервера. Все зависит от Вашей фантазии. Чтобы узнать, что персонаж является GM, используйте функцию GetGmLv(userdata role). С помощью функции SetGmLv(userdata role, number level) можно изменять GM-уровень аккаунта, к которому прикреплен персонаж. Например, в той же функции HandleChat() можно сбрасывать GM-уровень аккаунта в 0, если персонаж не прошел проверку. Реализуем простую систему контроля GM-команд: 1) GM-команды могут выполнять только персонажи с именами: "V3ct0r", "pkodev" и "Administrator"; 2) В случае, если персонаж GM и он не прошел проверку, сбросить GM-уровень до 0, кикнуть персонажа с сервера и отправить сообщение администратору в консоль GameServer.exe. Для начала создадим в файле variable.lua массив с именами персонажей, которые могут использовать GM-команды. Назовем его PlayerCanUseCmd: PlayerCanUseCmd = {} PlayerCanUseCmd["V3ct0r"] = 1 PlayerCanUseCmd["pkodev"] = 1 PlayerCanUseCmd["Administrator"] = 1 Затем напишем скрипт для функции HandleChat() в файле functions.lua: -- Обработчик местного чата function HandleChat(role, message) -- Проверяем что персонаж GM if (GetGmLv(role) > 0) then -- Проверяем что персонаж отправил GM-команду if (string.find(message, "&") == 1) then -- Проверяем имя персонажа local cha_name = GetChaDefaultName(role) if (PlayerCanUseCmd[cha_name] ~= nil) then -- Персонаж может использовать GM-команду return 1 end -- Персонаж не может использовать GM-команду -- Сбрасываем GM-уровень до 0 SetGmLv(role, 0) -- Кикаем персонажа с сервера KickCha(role) -- Пишем сообщение администратору в консоль сервера print("Player [" .. cha_name .."] trying to use GM command!") -- Запрещаем выполнение GM-команды return 0 end end return 1 end Для кика персонажей нам понадобится функция KickCha(), добавьте ее также в functions.lua: function KickCha(character) local pkt = GetPacket() WriteCmd(pkt, 1505) SendPacket(character,pkt) end Тема открыта для обсуждения. Пишите свои вопросы и идеи в комментариях!
×
×
  • Create New...