Гость zhorik001 Опубликовано 29 августа, 2015 Поделиться Опубликовано 29 августа, 2015 Добрый день, играю уже довольно продолжительное время в Killing Floor (в первую часть), естественно, на пиратке. Если в кратце, то в игре имеются 6 перков, каждый надо качать до 6 уровня, выполняя требуемые действия для левелапа (нанести столько-то единиц урона и т.п.) Играя на обычных (классических) серверах, сервер читает файл прокачки, который находится в директории игры, взломать его через СЕ не составляет труда. Даже если не взламывать игровой опыт, прокачка перков до 6 уровня проходит быстро. Но в данной игре еще существуют так называемые RPG-сервера (глубоко-модифицированные админами с помощью модов (мутаторов)). На таких серверах, как правило, уклон делается на увеличении кол-ва уровней, например планка левелапа ограничивается не 6 уровнями, а 100 или 253, тем замым заставляя игроков качаться порою месяцами или даже годами. На сервере в данном случае хранится некоторый файл, называемый условно ServerPerks.ini, в котором содержится база данных с информацией о прокачке для всякого игрока, что заходил на сервер (т.е. его steamID, кол-во опыта для различных перков и прочая инфа). Говоря условно, игрок заходит на сервер, сервер идентифицирует игрока по его steamID, находит (или дописывает, если игрок зашел впервые) в файле ServerPerks.ini соответствующую запись, связанную с текущим steamID (его опыт, кол-во урона и т.д.). При игре на сервере, клиент видит информацию об опыте лишь визуально, но нанося урон мобам (т.е. повышая тем самым себе опыт), клиент игры (т.е. я) должен передавать на сторону сервера информацию о кол-ве нанесенного урона, а сервер, получив эти данные, перезаписывает файл прокачки, приплюсовывая полученный опыт к текущему. И нужно еще сказать, что по такому принципу устроены практически все важные игровые значения (здоровье, броня, патроны, координаты). Все перечисленное вычисляется на стороне сервера и затем передается клиенту. Пытался я искать через СЕ инструкции, отвечающие за данные передачи от игрока к серверу, пробовал со здоровьем, с броней, опытом и прочим, и во всех случаях при изменении соотв. значений инструкции выполнялись по одному шаблону: Пытался нопить каждую из инструкций, искал инструкции в окрестности данных иструкций, результат вобще никакой, либо игра крашится, либо соединение с сервером обрывается, и игра встает. Прошу помочь решить данный вопрос с нахождением соотв. инструкций. Ссылка на комментарий Поделиться на другие сайты Поделиться
LIRW Опубликовано 29 августа, 2015 Поделиться Опубликовано 29 августа, 2015 Если данные хранятся на сервере, то какой смысл ковыряться без толку а уж тем более нупить инструкции... Посмотри сперва сколько адресов обрабатывает на пример mov ecx,[eax] и не удивительно, почему игра вылетает. Хотя вот взять на пример COD 4MW так ведь бессмертие в чите изобрели по игре онлайн,но это спустя какое время уже, там всю игру уже выпотрошили. Ссылка на комментарий Поделиться на другие сайты Поделиться
Гость zhorik001 Опубликовано 29 августа, 2015 Поделиться Опубликовано 29 августа, 2015 LIRWНо ведь мой клиент игры должен посылать информацию о кол-ве нанесенного урона, именно это значение я и пытаюсь найти, но как это сделать я не представляю. Ссылка на комментарий Поделиться на другие сайты Поделиться
LIRW Опубликовано 29 августа, 2015 Поделиться Опубликовано 29 августа, 2015 LIRWНо ведь мой клиент игры должен посылать информацию о кол-ве нанесенного урона, именно это значение я и пытаюсь найти, но как это сделать я не представляю. Это надо думать, пробовать. И ещо не известно,зашифровано он или нет. Ссылка на комментарий Поделиться на другие сайты Поделиться
Afro Опубликовано 29 августа, 2015 Поделиться Опубликовано 29 августа, 2015 (изменено) Можно проснифать трафик и найти нужные пакеты, но скорее всего он зашифрован и придётся искать механизм шифрования.К тому же есть вероятность, что на серверах стоит защита от подобных "накруток", все данные рассчитываются на них и т.д. Изменено 29 августа, 2015 пользователем Afro Ссылка на комментарий Поделиться на другие сайты Поделиться
Гость zhorik001 Опубликовано 30 августа, 2015 Поделиться Опубликовано 30 августа, 2015 К тому же есть вероятность, что на серверах стоит защита от подобных "накруток", все данные рассчитываются на них и т.д.Нее, это очень вряд ли.1) Killing Floor - игра, а точнее модификация к Unreal Tournament 2004 => писалась любителями (ну или почти). Внедрение шифрования трафика - это наверное слишком для мододелов.2) Мутатор, повышающий планку левелов - также является модификацией, которую админ тупо накатил на сервер, значит, защиты от накруток тоже маловероятны Ссылка на комментарий Поделиться на другие сайты Поделиться
LIRW Опубликовано 30 августа, 2015 Поделиться Опубликовано 30 августа, 2015 Вот тут лежит исходной код этого файла, в которые пишутся характеристики http://zombie-rus.ucoz.com/forum/3-60-1 если понимаешь в c++ смотри как там реализовано и подумай, как и что можно реализовать. Ссылка на комментарий Поделиться на другие сайты Поделиться
Гость zhorik001 Опубликовано 30 августа, 2015 Поделиться Опубликовано 30 августа, 2015 LIRWДа, ты прав, синтаксис там дейстительно Си подобный, но для написания мутаторов используется unreal script. А, еще забыл сказать: вот админ ставит на сервер этот мутатор с перками, прикручивает еще всякие кастомные стволы, кастомных мобов, доп. игровые классы.Естественно, все это содержит соотв. графические модели (оружие и мобы), звуки оружия и прочее вспомогательные файлы. Прежде чем зайти на сервер, мой клиент игры качает все эти файлы моделей к себе в директорию Cache, в которой хранятся файлы, скачанные с серверов, где я был (maps, модели оружия, мобов и тд), с той целью, чтобы эти модели отображались у меня в игре (что вроде очевидно). По аналогии с другими файлами, прямиком качается и сам файл мутатора серверперкс с данного сервера.(видимо для того, чтобы мой клиент игры знал, по каким правилам происходит прокачка (т.е. сколько урона надо нанести для левелапа, или сколько единиц здоровья надо вылечить и тд)) Я пытался осуществлять изменения в коде мутатора (декомпилировал, модифицировал, и компилировал вновь) (т.е. подделывал мутатор) и заходил с ним на сервер. Но в игру встроена проверка хэш-сумм файлов. (файл мутатора я изменил, следовательно, изменилась конечная хеш сумма). При подключении к серверу пишет, что несоответветствующая версия контейнера. Поэтому выход скорее всего очевидный: либо асмом (который я вобще не знаю) ковырять бинарник хрен знает где, либо снифером перехватывать какието мифические пакеты (для меня это вобще лес). Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения