Браузерная игра
Использовал Charles для ловли пакетов. Тут проблем не возникло, нашел нужный пакет, установил на его запрос от сервера breakpoint, нашел где меняется нужное мне значение при отправке пакета на сервер , поменял, отправляю на сервер, а в ответ мне вываливается ошибка в игре в виде всплывающего окна с текстом ( он не имеет значения ), в Charles соответственно пакет с вышеупомянутым сообщ. об ошибке тоже приходит
Немного поразкинув мозгами, заметил, что вместе с исходящим от клиента к серверу пакетом в обязательном порядке идёт связка hash и cheksum, пошаманив еще выяснил, что cheksum привязан к msid игрока и не изменяем в рамках одной учетной записи, да и проблем перехватить нет, msid игрока(который хранится на сервере) перехватывается при загрузке профиля. Дальше пошел копать по hash, выяснил что он шифруется в md5 hash, с какого конкретно игрового кода (в котором и запилено нужное нам значение) я не смог никакими танцами с бубном выяснить. Вся проблема в том, что сервер на php , клиент на флеше, а между ними javascript как связующее звено. Понятное дело, что целиком весь код игры php отсылать не будет и не должен в целях безопасности, экономии траффика , да и вообще из всех адекватных соображений.
Схема этой всей ботвы такая, ты изменяешь в клиенте на флеше какое-то значение (например в моем случае покупка вагонов), при нажатии на кнопку в игре в окне покупки вагонов "Купить", срабатывает JavaScript, который на сервер отправляет данные
PHP код:
flash.php?interface=WaggonInterface&method=buyWagg ons
И данные на конкретный параметр buyWaggons , c нужными нам двумя значениями Type (тип ресурса) и amount ( количество). Все бы ничего , если бы ко всем отправляемым данным не крепился hash , который всегда меняется при изменении одного из значений ( либо тип ресурса, либо количество).
В ответ на подмененный пакет сервер отправляет сообщение "бла,бла,бла, ошибка" , и в игре вылезает окошко с ошибкой.
Оно и понятно, hash не совпадает со значением, и сервер это проверяет.
И это касается всего, что есть в игре, взломать за трое суток не удалось ничего от слова совсем, все параметры и значения привязаны и при отправке скриптом генерируется hash md5. Это печаль, дальше я зашел в тупик.
Есть мысль, что JavaScript'ы, которые отправляет клиент(флеш в браузере) на сервер, можно перехватить/извлечь, а уж там поменять значение в самом скрипте не проблема, а потом зашифровать в hash md5 и всё это дело отправить на сервер подменным пакетом, но знаний не хватает. Помогите , энтузиасты кодеры,хакеры,программисты js, за любую крупицу информации буду благодарен, уж очень хочется добить начатое.