Взлом флеш игры - PullRequest
       2

Взлом флеш игры

3 голосов
/ 06 октября 2010

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

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

Ответы [ 5 ]

2 голосов
/ 06 октября 2010

Итак, как приложение flash сообщает серверу, что головоломка решена? Используя TamperData , злоумышленник может перехватить / изменить / воспроизвести этот запрос, даже если он выполняется по протоколу HTTPS. Если вы попытаетесь вставить секрет, его можно получить, декомпилировав приложение флэш-памяти или даже отладив флэш-память, пока ваше приложение работает, и найдите секрет в памяти.

Обычно я бы сказал, что то, что вы пытаетесь сделать, невозможно. Но давайте повеселимся с этой загадкой мета-безопасности. Это головоломки, верно? Таким образом, это означает, что есть только 1 решение этой головоломки. Таким образом, вы можете использовать некоторую криптографию для решения этой проблемы, решение очень похоже на код аутентификации сообщений , но это немного другое.

Когда головоломка запускается, приложение флэш запрашивает кусочки головоломки. Назначьте случайное число каждой части головоломки вместе со случайным местоположением, которое передается на сторону вспышки. Когда она решена, вы объединяете каждое число в зависимости от того, где находятся кусочки головоломки. Так что на стороне вспышки всегда объединяйте числа слева направо, а затем вниз. Когда флэш-клиент получает головоломку, числа будут не в порядке, единственный способ, которым они будут в правильном порядке, - это если головоломка была решена. Когда все решено, возьмите хеш из объединенных чисел. В идеале вы должны использовать sha256, хотя md5 будет работать, потому что злоумышленник не знает значения хэша, поэтому столкновения не вступают в игру

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

0 голосов
/ 03 сентября 2015

Редактирование пакетов, они могут использовать что-то вроде wireshark для захвата пакетов, если время записано в их браузере, они получат пакет, который сообщит им об использованном времени, и они могут использовать прокси-сервер, чтобы сделать человека в середине атаки, где они редактируют пакет, говоря, что вы потратили меньше времени, или просто создаете простого отправителя UDP-пакета в Python.и даже если вы не устанавливаете игру, они все еще ее запускают, они могут просто загрузить флэш-игру, найдя swf в исходном коде HTML.ссылка на страницу, где хранится эта игра.

0 голосов
/ 21 октября 2010

imho, единственный способ избежать читов в клиент-серверных играх - сделать клиентскую часть просто графическим интерфейсом и подтверждать каждое действие пользователя на сервере. если это так, то идеальное клиентское приложение не должно даже знать, как ответить пользователю (пока сервер не отправит что-то вроде «играть анимацию 5 в направлении 7 на плитке 21-17»)

0 голосов
/ 07 октября 2010

Извините, опции комментария там не было на самом деле я использовал XML-файл, чтобы описать местоположение головоломки (каждый). и на время он скрыт и, используя подделанный дайа, он может видеть только случайное нет. что вы можете сказать, как s.no MySQL. Это как проверить время и игровое время каждый с различными строками поэтому мой вопрос заключается в том, могут ли некоторые использовать мой xm-файл для определения местоположения головоломки и создания приложения, которое поместит каждый кусок головоломки в нужное место всего за один клик

0 голосов
/ 06 октября 2010

Да, его можно взломать. Во-первых, не слишком доверяйте своей защите от «флэш-заставки». Определенный злоумышленник сможет получить код - в конце концов, код - это на компьютере пользователя, иначе он не сможет работать.

Во-вторых, «случайное местоположение» не обязательно много значит. Если на элементах есть какие-либо уникальные идентификаторы или если рандомизация выполняется на стороне клиента, их легко разместить на своих местах. Вы должны как минимум рандомизировать формы разрезов. И даже тогда было бы не сложно написать быстрый решатель, учитывая исходное изображение.

О, и все это предполагает, что ваш сервер выполняет больше проверок, чем просто говорит, когда пользователь это сделал. Вы должны убедиться, что они действительно решили образ - но я далеко не убежден, что это сложная задача ИИ; Кажется, что даже если бы ваш флэш-код был непробиваемым, если набор изображений был небольшим, было бы достаточно просто определить правильную ориентацию и положение каждого фрагмента.

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