Pull to refresh

Comments 47

Эх… опередил меня. Мне буквально пару часов назад пришла подобная идея. Хотел попробовать через снифер Http Analyzer.
По поводу сниффера — могу посоветовать этот (src). Пользуюсь им уже как пять лет и все это время он ниразу меня не подводил.
Почему под Windows? Хотелось бы и под *nix тоже.
Не знаю как в Google+, но, например, в Фейсбуке и ВКонтакте есть auth_key, который подсчитывается по схеме (user_id + app_id + secret_key) на сервере платформы и сверяется на сервере приложения. Очевидно, подменить user_id уже не получится. А с рекордами, к сожалению, ничего не поделаешь (кроме вышеизложенных способов).

Думаю, что разработчиков можно обвинить в халатности хотя бы за это :)

Signature mismatch! Got: V5rwMEQJS_2diQ8sdZMXBs= computed: gcLO6NdBJtwBtOwrWIpwL9LliuA=

Кстати, для таких целей использую этот сниффер. Работает как прокси сервер. Более того, у него есть возможность ставить брейкпоинты на определенные домены. (Например, Ваш браузер пытается сделать запрос куда-либо, но сниффер ставит его в состояние паузы и дает возможность подкорректировать.)
Извините, Вы не можете использовать указанный пароль. Такой пароль уже использует пользователь Misha. Пожалуйста, придумайте другой пароль.

© bash.org.ru
Не знаю как в Google+, но, например, в Фейсбуке и ВКонтакте есть auth_key, который подсчитывается по схеме (user_id + app_id + secret_key) на сервере платформы и сверяется на сервере приложения.

Почти уверен, что здесь все точно так же. Схема, в общем-то, простая и надежная как топор, если пользоваться ею с умом.

Очевидно, подменить user_id уже не получится.

Очевидно, что получится, если разработчики приложения открытым текстом показывают, каким должен быть auth_key на самом деле :)
Это был, конечно же, ответ на комментарий уровнем выше. Промахнулся-с.
Да просто нарисуйте на скриншоте сколько надо ноликов в фотошопе :-}
Это будет следующий пост о Diamond Dash.
Эх, я помню ломал одну игру таким же способом но там по достижении какогото колличества очков вроде каждую 1000 она отправляла данные на сервер, а это затруднило мое положение.
Если бы сервер при начале партии отсылал seed для потока псевдослучайных чисел, а по окончании партии клиент возвращал бы последовательность сделанных ходов для проверки на сервере, то можно было бы достичь только теоретического максимума для данной партии, поскольку выше головы здесь не прыгнешь ну совсем никак.
Пришлось бы реализовывать свой ГПСЧ, так как ГПСЧ плеера сильно зависит от платформы.
всетаки ботоводство более увлекательно, чем ващ способ. но ваш конечно результативнее :)
Да, такая эйфория, когда бот несет тебе деньги и ресурсы в MMORPG. Все постепенно, а не просто: один раз взломал — и ты самый крутой!
Статья хороша.
В комментах — коллекция сниферов.
Отличное утро!
В своё время писали флеш игрушки, за лучшие результаты в которых ещё и призы давали. Все запросы шифровались, но правда ключом в игрушке. Этого было достаточно от простых сниферов. Если же дампить и анализировать память — там конечно было штук 5-6 левых действий которые считали хитро подпись. Потом игра была уровневой (аналог bejeweled) — каждый переход мы отправляли запрос на сервер и потом робот при финальном считал — а в дельте ли кол-во очков нужное для перехода (как бы нормы для больших уровней сложно посчитать). Ну и самый главный прикол — мы всё по https посылали.
В одной игрушке во ВКонтакте сделан «хитрый» алгоритм подсчета подписи, но от анализа байткода ActionScript'а, вкупе с использованием gdb и брейков на memmove это их не спасло. Ненавижу тупые игрушки предендующие называться MMO, смысл которых сводится к «тыкай кнопочки регулярно и отдавай нам свои деньги, а то будешь лохом». Самое противное что убитая ещё в детстве психика не позволяет сопротивляться и игрушка затягивает. В общем сейчас дописываю бота чтобы он играл за меня…

С https это хорошая идея, вот если бы ещё соединения не через встроенные браузерные средства устанавливались, чтобы нельзя было через инструменты типа firebug запросы отслеживать… Flash ведь позволяет что-то такое? Или нет?
К простеньким казуалкам типа jeweled никаких претензий не имею, только сочувствую что для реализации таблицы результатов приходится такие костыли вкручивать… %(
Умные всегда wireshark возьмут и пофигу на какой порт соединяться :).
И что же им wireshark даст?.. Чтобы расшифровать HTTPS трафик нужно знать как минимум ключ, использующийся на сервере. Но вообще, если быть честным, этого обычно не достаточно — для генерации сеансового ключа при наиболее защищенных комбинациях алгоритмов шифрования и установления соединения в SSL/TLS используется алгоритм Диффи-Хелмана. То есть помимо взлома HTTP-сервера тебе нужно ещё залезть дебаггером в браузер и сняв дамп памяти найти в нем эти ключи. И всё бы хорошо, но расшифрование такого типа SSL трафика в Wireshark не реализовано — там есть только те алгоритмы, в которых для расшифрования достаточно знать закрытые ключи используемого ассиметричного алгоритма шифрования.

Вообщем проще всего залезть отладчиком в libflashplayer, и вылавливать запросы там (конечно же, только в том случае если firebug вдруг отказался нам помогать).
я вообще вам отвечал на вопрос «вот если бы ещё соединения не через встроенные браузерные средства устанавливались, чтобы нельзя было через инструменты типа firebug запросы отслеживать…» Всё остально для меня как бы боян.
Не понимаю, почему в списке возможных методов защиты нет варианта с записью 'демки' на стороне клиента, с последующей прокруткой её сервером с подсчетом очков. Таким образом, сервер сверяет с клиентом стартовое поле и в конце получает дамп действий пользователя, и на основе этих данных считает очки. Понятно, что решение громоздкое :) и избыточное для своих целей, но сам принцип можно было использовать? Нагрузка вроде на сервер должна быть небольшой.Не понимаю, почему в списке возможных методов защиты нет варианта с записью 'демки' на стороне клиента, с последующей прокруткой её сервером с подсчетом очков. Таким образом, сервер сверяет с клиентом стартовое поле и в конце получает дамп действий пользователя, и на основе этих данных считает очки. Понятно, что решение громоздкое :) и избыточное для своих целей, но сам принцип можно было использовать? Нагрузка вроде на сервер должна быть небольшой.
Неделя комментов на хабре — все комментарии удваиваются :) а если серьезно — опера мини чудит, извините
Теоретически можно. Правда, от ботов это все-равно не поможет.
При просчетах определить число кликов мышью, поделить на время… Параметр для топовых корейских старкрафтеров известный — сравнивать с ними. Тупые сверхскоростные боты отсеятся :)
Предлагаю взломать уже к чертям их сервер чтобы снять это дурацкое ограничение в 16 миллионов.
Помню несколько лет назад была подобная история, в нашу игру, (оффлайновая, но использует глобальную таблицу рекордов на сервере) повадился такой же читер постить то маты, то своим ником забьёт всю таблицу и нереально большими рекордами. Приходилось стирать, и править скрипт на сервере: ограничивал максимальное кол-во очков — он подбирал цифру которая максимальная, обрубал по ip — он начинал постить с другого, в общем очень настырный парень. По регистрационному имени обрубить не получалось — он купил игру через портал, где на всех игроков используется 1 регистрационный ключ. В конце концов сделал список его любимых матов и его ника, и тупо вставил в скрипт что если такое содержится — рекорд не добавлять, и ip в чёрный список. Ну и парень этот угомонился вроде, может надоело.

С тех пор мы вставляем в проект libmcript, и им криптуем все запросы, а на сервере раскриптовываем. Уделывает запрос так, что пока никто не умудрился сломать.
Я тоже об этом подумал) А сам в тихоря бота пишу)
Защититься можно, передавать вместе с рекордов запись всей игры. На сервере запись игры можно перепроверить и забанить читера.
Тогда читер напишет более умного бота. И всё равно будет лучше всех.
Нет, тогда бот будет на уровне человека. Сразу за что зацепится обработчику демки:
* одинаковое время между кликами — БОТ!
* время «перемещения мышки» из одного угла в другой не зависит от расстояния — БОТ
* попадание в одну и туже точку элемента поля — БОТ
и тд и тп.
В результате боту придется играть как человек и результаты будут примерно темиже
Человек большую часть времени тратит все-таки на поиск глазами подходящей группы блоков — а компьютер это делает практически мгновенно. Прицеливаться тоже человек может либо медленно, либо побыстрее — сделав линейную зависимость задержки на перемещение курсора мы будем выглядеть как «идеальный» игрок, который быстрее всех реальных, но и запретить которого нельзя. Ну, а добавление небольшого рандома для задержек между кликами и для координат клика уж точно погоды не сделают.

Но в целом, конечно, результаты будут скромнее, чем при отсутствии защиты вовсе.
Опытный человек разделяет время между кликами и поиском, пока кликает в одно, глазами ищет другое. Со стороны выглядит как робот практически.
Все-таки натренироваться быстро прицеливаться нетрудно — а вот с быстрым опознаванием групп по 3 одноцветных кубика уже немного сложнее.

Да в общем-то вместо всех этих заморочек с придумыванием критериев отличий жуликов от крутых игроков в большинстве случаев достаточно сделать таблицы рейтингов «локальными» (только для списка друзей) и, как я уже сказал в статье, вся проблема отпадет.
Так в гуглплюсовском даймонд даше она итак локальная :)
Так я это и отметил в заключении :)
Есть еще один вид поломки: это когда будут сыпать квадратики одного ну или для более приятного лицезрения двух цветов с сохранение бонусов и призов. Охота ведь посмотреть чего в игре дальше будет, может там монстры полезут…
Помню одну викторину на флеше, так не долго думая декомпильнул, изучил, слил все вопросы и ответы, после чего пустил бота играть (со своими куками от сайта), а сам начал поглядывать вопросы и ответы — вот тут самое интересное было… В одном из вопросов правильный ответ считался неправильным, а неправильный правильным, о чём админу и написал (причём написал и номер вопроса, которые простым пользователям не виден, естественно), а вторая флешка там была на скорость реакции и вся игра свелась к запросу на сервер с желаемым временем 7.77 секунд.
После этого с флеш-игрушками закончил и перешёл на игры с вирусами в отладчике в виртуалке ^__^
Если уж речь пошла о снифферах, порекомендуйте какой-нибудь для Ubuntu.

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

image

Для хостинга картинок советую пользоваться специально предназначенным для этого habrastorage.org.

Да, в общем-то, почти чем угодно даже, только не радикалом.
Sign up to leave a comment.

Articles