Vetalll 2 Опубликовано 9 октября, 2022 Всем привет.. как хобби ковыряю сервер снуля.. были тут от меня вопросы.. Я программист с опытом на разных платформах. Но есть одна задача которую я никак не могу решить... Это архитектура без круговых зависимостей. К примеру. есть игрок который должен знать о мире который должен знать о всех игроках. что-то подобное с сокетами. Есть сокет который завернут в клиент который внутри игрока. и вот когда приходит новый пакет то клиент должен дать команду игроку или миру. ну потом обратная реакция от игрока или мира. Кто-то пытался вообще решить эту проблему? Сделать красиво? Часть проблемы могу решить через Observer паттерн. Но часть нет. особенно та что с сокетом. Ни литературы ни статей толковых не нашел. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Evolution 243 Опубликовано 9 октября, 2022 (изменено) 8 часов назад, Vetalll сказал: Всем привет.. как хобби ковыряю сервер снуля.. были тут от меня вопросы.. Я программист с опытом на разных платформах. Но есть одна задача которую я никак не могу решить... Это архитектура без круговых зависимостей. К примеру. есть игрок который должен знать о мире который должен знать о всех игроках. что-то подобное с сокетами. Есть сокет который завернут в клиент который внутри игрока. и вот когда приходит новый пакет то клиент должен дать команду игроку или миру. ну потом обратная реакция от игрока или мира. Кто-то пытался вообще решить эту проблему? Сделать красиво? Часть проблемы могу решить через Observer паттерн. Но часть нет. особенно та что с сокетом. Ни литературы ни статей толковых не нашел. Там же тема такая что клиент шлет набор байтов игроку и сервер игроку распарсивает. Есть фреймфорк для работы с сокетами netty. Или я не понял что ты хочешь) Изменено 9 октября, 2022 пользователем Evolution Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Vetalll 2 Опубликовано 11 октября, 2022 Не ты не понял.. байты это я все понимаю. Просто сама логика. К примеру Пакет Чат.. Socket -> Client -> Player -> World -> Player -> Client -> Socket Получается классы знаю про классы на уровень выше. А не должны.. в моем понимании должно быть что-то КАКАЯТО_МАГИЯ -> World -> Player -> Client -> Socket и вот вся суть в КАКАЯТО_МАГИЯ. разве что подписку реализовать на пакеты... Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Edgar 356 Опубликовано 11 октября, 2022 (изменено) AOP, mvvm. Но опять же всё сводится к скорости отклика что важнее соблюдения solid Изменено 11 октября, 2022 пользователем Edgar Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Vetalll 2 Опубликовано 11 октября, 2022 Ну чисто для боевого сервера мой вариант не проканает.. Но моя основная цель - Сделать Архитектуру довольно большого сервера пименно по SOLID и с паттернами.. Так как сказать визитку на Гит хабе. Если интересно вот https://github.com/lebedynskyi/L2Server А еще если покапаться в моих репах то там и бот который обходит Акуму ) Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
EasyGameProtection 23 Опубликовано 11 октября, 2022 2 часа назад, Vetalll сказал: А еще если покапаться в моих репах то там и бот который обходит Акуму ) https://github.com/asweigart/pyautogui/blob/master/pyautogui/_pyautogui_win.py Тут используются обычные keybd_event / mouse_event , которые не сложно контрятся (например SetWindowsHookEx и WH_KEYBOARD_LL / WH_MOUSE_LL хуки с проверкой флага INJECTED) Вы утверждаете, что Akumu не знает об этих базовых вещах?) Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Vetalll 2 Опубликовано 11 октября, 2022 (изменено) 1 hour ago, EasyGameProtection said: https://github.com/asweigart/pyautogui/blob/master/pyautogui/_pyautogui_win.py Тут используются обычные keybd_event / mouse_event , которые не сложно контрятся (например SetWindowsHookEx и WH_KEYBOARD_LL / WH_MOUSE_LL хуки с проверкой флага INJECTED) Вы утверждаете, что Akumu не знает об этих базовых вещах?) Да.. как первая часть.. И она контрится тем же смарт гвардом на проверку isInjected event Но если посомтреть глубже class ArduinoKeyboard(Keyboard): Маленькая железяка которая за $5 + OpenCV. = обходит абсолютно все. Нет инжекта в процессы или память или еще куда.. просто парсинг екрана и вытаскивание всей инфы. Управление клиентов через физичесскую клавиатуру через сокет с ардуинкой. ПРУФ - Изменено 11 октября, 2022 пользователем Vetalll 1 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
EasyGameProtection 23 Опубликовано 11 октября, 2022 18 минут назад, Vetalll сказал: Маленькая железяка которая за $5 + OpenCV Если так, то отлично Но там в запасе теоретически есть еще один трюк - можно запретить приложениям захватывать изображение с определенного окна Надо еще железка, чтобы забирать изображение прямо из HDMI Тогда в системе вообще не будет никаких признаков бота, и, соответственно, нечего будет детектить античиту Но все же стоит отметить, что бот будет проигрывать по возможностям "традиционным" ботам, которые взаимодействуют непосредственно с клиентом игры, плюс надежность распознавания объектов в игре тоже вызывает вопросы Это явно решение не для массового потребителя Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Vetalll 2 Опубликовано 11 октября, 2022 8 minutes ago, EasyGameProtection said: Если так, то отлично Но там в запасе теоретически есть еще один трюк - можно запретить приложениям захватывать изображение с определенного окна Надо еще железка, чтобы забирать изображение прямо из HDMI Тогда в системе вообще не будет никаких признаков бота, и, соответственно, нечего будет детектить античиту Но все же стоит отметить, что бот будет проигрывать по возможностям "традиционным" ботам, которые взаимодействуют непосредственно с клиентом игры, плюс надежность распознавания объектов в игре тоже вызывает вопросы Это явно решение не для массового потребителя Да.. проигрывает и колосально.. На выходе все равно это смесь Автокликера + частички разума.. Это все делалось для личного пользования.. Акуму я писал еще весной. Там реально трудно отхендлить это все. а захват делается примитивно.. просто скрин всего экрана.. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
EasyGameProtection 23 Опубликовано 11 октября, 2022 (изменено) 18 минут назад, Vetalll сказал: а захват делается примитивно.. просто скрин всего экрана Если сделать определенный трюк, то даже при скрине всего экрана на месте клиента игры будет просто черный прямоугольник Правда от этого пострадают стримеры. Но все же некоторые игры так делают 18 минут назад, Vetalll сказал: Там реально трудно отхендлить это все. Не сложно, а в принципе невозможно) Можно лишь максимально затруднить такой сценарий использования для потенциального ботовода, но из-за этого пострадает часть валидных игроков Но таких игроков с "аппаратным" ботом наверное тысячные доли процента от общей массы. Также учитывая сильную ограниченность таких ботов - особо экономике сервера это не навредит Изменено 11 октября, 2022 пользователем EasyGameProtection Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
KillMilk 257 Опубликовано 11 октября, 2022 Ахахаха я так давно не смеялся) ардуино жабать ахахаха это как прикол про джаву и питон и ооп Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Vetalll 2 Опубликовано 11 октября, 2022 4 hours ago, KillMilk said: Ахахаха я так давно не смеялся) ардуино жабать ахахаха это как прикол про джаву и питон и ооп Ну и дурак.. есть скрипты даже для Пилота.. От туда и черпнул идею. С Января на Реборне стоит SmartGuard.. Работает на ура по сей день. Каптча парсится.. Спойл спойлится.. Манор манорится и здается в 2 замка с 99% вероятностью Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
KillMilk 257 Опубликовано 11 октября, 2022 (изменено) 22 минуты назад, Vetalll сказал: Ну и дурак.. есть скрипты даже для Пилота.. От туда и черпнул идею. С Января на Реборне стоит SmartGuard.. Работает на ура по сей день. Каптча парсится.. Спойл спойлится.. Манор манорится и здается в 2 замка с 99% вероятностью Я юзаю шарной адрик на смарте на любом сервере) и?) чем меня удивить? питон не плох, я не говорил что он уг, он реально божественен особенно после 3.9 Изменено 11 октября, 2022 пользователем KillMilk Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты