Перейти к содержанию

Взлом опыта Killing Floor


Гость zhorik001

Рекомендуемые сообщения

Добрый день, играю уже довольно продолжительное время в Killing Floor (в первую часть), естественно, на пиратке.

Если в кратце, то в игре имеются 6 перков, каждый надо качать до 6 уровня, выполняя требуемые действия для левелапа (нанести столько-то единиц урона и т.п.)

Играя на обычных (классических) серверах, сервер читает файл прокачки, который находится в директории игры, взломать его через СЕ не составляет труда.

Даже если не взламывать игровой опыт, прокачка перков до 6 уровня проходит быстро.

 

Но в данной игре еще существуют так называемые RPG-сервера (глубоко-модифицированные админами с помощью модов (мутаторов)).

На таких серверах, как правило, уклон делается на увеличении кол-ва уровней, например планка левелапа ограничивается не 6 уровнями, а 100 или 253, тем замым заставляя игроков качаться порою месяцами или даже годами.

 

На сервере в данном случае хранится некоторый файл, называемый условно ServerPerks.ini, в котором содержится база данных с информацией о прокачке для всякого игрока, что заходил на сервер (т.е. его steamID, кол-во опыта для различных перков и прочая инфа).

Говоря условно, игрок заходит на сервер, сервер идентифицирует игрока по его steamID, находит (или дописывает, если игрок зашел впервые) в файле ServerPerks.ini соответствующую запись, связанную с текущим steamID (его опыт, кол-во урона и т.д.).

 

При игре на сервере, клиент видит информацию об опыте лишь визуально, но нанося урон мобам (т.е. повышая тем самым себе опыт), клиент игры (т.е. я) должен передавать на сторону сервера информацию о кол-ве нанесенного урона, а сервер, получив эти данные, перезаписывает файл прокачки, приплюсовывая полученный опыт к текущему.

 

И нужно еще сказать, что по такому принципу устроены практически все важные игровые значения (здоровье, броня, патроны, координаты). Все перечисленное вычисляется на стороне сервера и затем передается клиенту.

 

Пытался я искать через СЕ инструкции, отвечающие за данные передачи от игрока к серверу, пробовал со здоровьем, с броней, опытом и прочим, и во всех случаях при изменении соотв. значений инструкции выполнялись по одному шаблону:

 

7f3bf63804cc56552e6b017b9ad5f082.jpg

 

Пытался нопить каждую из инструкций, искал инструкции в окрестности данных иструкций, результат вобще никакой, либо игра крашится, либо соединение с сервером обрывается, и игра встает.

 

Прошу помочь решить данный вопрос с нахождением соотв. инструкций.

Ссылка на комментарий
Поделиться на другие сайты

Если данные хранятся на сервере, то какой смысл ковыряться без толку O-=  а уж тем более нупить инструкции... Посмотри сперва сколько адресов обрабатывает на пример mov ecx,[eax]  и не удивительно, почему игра вылетает. Хотя вот взять на пример COD 4MW  :)  так ведь бессмертие в чите изобрели по игре онлайн,но это спустя какое время уже, там всю игру уже выпотрошили.

Ссылка на комментарий
Поделиться на другие сайты

LIRW

Но ведь мой клиент игры должен посылать информацию о кол-ве нанесенного урона, именно это значение я и пытаюсь найти, но как это сделать я не представляю.

Ссылка на комментарий
Поделиться на другие сайты

LIRW

Но ведь мой клиент игры должен посылать информацию о кол-ве нанесенного урона, именно это значение я и пытаюсь найти, но как это сделать я не представляю.

 

Это надо думать, пробовать. И ещо не известно,зашифровано он или нет. 

Ссылка на комментарий
Поделиться на другие сайты

Можно проснифать трафик и найти нужные пакеты, но скорее всего он зашифрован и придётся искать механизм шифрования.
К тому же есть вероятность, что на серверах стоит защита от подобных "накруток", все данные рассчитываются на них и т.д.

Изменено пользователем Afro
Ссылка на комментарий
Поделиться на другие сайты

К тому же есть вероятность, что на серверах стоит защита от подобных "накруток", все данные рассчитываются на них и т.д.

Нее, это очень вряд ли.

1) Killing Floor - игра, а точнее модификация к Unreal Tournament 2004 => писалась любителями (ну или почти). Внедрение шифрования трафика - это наверное слишком для мододелов.

2) Мутатор, повышающий планку левелов - также является модификацией, которую админ тупо накатил на сервер, значит, защиты от накруток тоже маловероятны

Ссылка на комментарий
Поделиться на другие сайты

Вот тут лежит исходной код этого файла, в которые пишутся характеристики http://zombie-rus.ucoz.com/forum/3-60-1   если понимаешь в c++ смотри как там реализовано и подумай, как и что можно реализовать.

Ссылка на комментарий
Поделиться на другие сайты

LIRW

Да, ты прав, синтаксис там дейстительно Си подобный, но для написания мутаторов используется unreal script.

 

А, еще забыл сказать: вот админ ставит на сервер этот мутатор с перками, прикручивает еще всякие кастомные стволы, кастомных мобов, доп. игровые классы.

Естественно, все это содержит соотв. графические модели (оружие и мобы), звуки оружия и прочее вспомогательные файлы.

 

Прежде чем зайти на сервер, мой клиент игры качает все эти файлы моделей к себе в директорию Cache, в которой хранятся файлы, скачанные с серверов, где я был (maps, модели оружия, мобов и тд), с той целью, чтобы эти модели отображались у меня в игре (что вроде очевидно).

 

По аналогии с другими файлами, прямиком качается и сам файл мутатора серверперкс с данного сервера.(видимо для того, чтобы мой клиент игры знал, по каким правилам происходит прокачка (т.е. сколько урона надо нанести для левелапа, или сколько единиц здоровья надо вылечить и тд))

 

Я пытался осуществлять изменения в коде мутатора (декомпилировал, модифицировал, и компилировал вновь) (т.е. подделывал мутатор) и заходил с ним на сервер. Но в игру встроена проверка хэш-сумм файлов. (файл мутатора я изменил, следовательно, изменилась конечная хеш сумма). При подключении к серверу пишет, что несоответветствующая версия контейнера.

 

Поэтому выход скорее всего очевидный: либо асмом (который я вобще не знаю) ковырять бинарник хрен знает где, либо снифером перехватывать какието мифические пакеты (для меня это вобще лес).

Ссылка на комментарий
Поделиться на другие сайты

×
×
  • Создать...

Важная информация

Находясь на нашем сайте, Вы автоматически соглашаетесь соблюдать наши Условия использования.