Первое место в игре за 10 минут
Из облаков: anna, firebug, flash-игра, hack, swf-decompiler, взлом
Сегодня утром мне Азим пишет, что хотел бы занятся изучением технологии Adobe Flash, а в идеале — сделать простую браузерную игрушку наподобие BomberMan. Он даже пример привёл — игра Anna’s Memory Lane. Это, конечно, не BomberMan, а обычная логическая игра, но, чтобы сделать даже её, надо обладать знаниями в разработке подобных игр.
Решил я в эту игру сыграть =) правила просты (обычный MemoryGame) — надо нажимать по два квадратика, на которых открываются фотографии. Если открыл две одинаковые, то подсвечиваются. Цель игры — наиболее бысто найти все одинаковые фотки. Поиграл-поиграл я в эту игру: минуты за две я её прошёл, ввёл своё имя и… оказался на триста каком-то месте. А таблица рекордов выглядела так:
| 1 | Azeem | 0:53.88 | 24, 6, 2007 |
| 2 | Draco | 0:54.13 | 20, 6, 2007 |
| 3 | ibdrummer | 1:01.46 | 20, 6, 2007 |
| 4 | Draco | 1:02.29 | 27, 5, 2007 |
| 5 | takamathrax | 1:06.46 | 1, 6, 2007 |
| 6 | will | 1:07.50 | 30, 5, 2007 |
| 7 | vi | 1:08.25 | 3, 6, 2007 |
| 18 | Ibdrummer – YEA | 1:10.88 | 11, 6, 2007 |
| 9 | I beat will | 1:11.8 | 30, 5, 2007 |
| 10 | will | 1:12.58 | 24, 5, 2007 |
После моей игры она стала выглядеть совсем по-другому…
Конечно, я сразу заметил, что почему-то Азим здесь на первом месте! Он мне признался, что интересным способом попал на первое место:
Eunix (09:13:07 26/06/2007)
Читер? :-)
Azeem (09:13:57 26/06/2007)
Ну да. Спасибо С++ и WinApi
Azeem (09:16:28 26/06/2007)
Совесть меня не мучает – парень реально зазнавался :)
I’m still waiting for someone to top my score on the ‘Memory Lane’ game.
Azeem (09:17:04 26/06/2007)
Вот и дождался :)
Хм… а если я не буду использовать C++, я смогу сделать что-нибудь подобное? И я тут же запустил FireBug — расширение для Firefox, которое помогает web-разработсикам. Оно полностью показывает всё, что происходит на странице: DOM-объекте, JS, изменения в коде, передача GET и POST, все заголовки и ответы от сервера.
Поиграв в игру, я, во-первых, понял, что игре передаётся XML-файл secury.xml, содержащее какой-то код для игры:
1
2
3
4
5
6 <?xml version="1.0" encoding="ISO-8859-1"?>
<feed>
<general>
<secure>aF6766629</secure>
</general>
</feed>
А после окончания всё передаётся на файл process.php: вот и его я и стал изучать. Но, к сожалению, с помощью Firebug мне не удалось отловить заголовок POST, который передаётся серверу.
Я решил поступить совсем нагло =) я скачал SWF Decompiler. Конечно, с помощью него я сразу понял, зачем им понадобился секретный код:
1 2 3 4 | if (this.firstChild.childNodes[f].childNodes[0].firstChild.nodeValue == "aF6766629") { Tableau.secure = true; } // end if |
И ещё немного покопавшись в коде я наконец-то нашёл, какие переменные слать файлу:
1 2 3 4 5 6 7 8 9 | function sendData() { comOut.nom = nom.text; comOut.timeElapsedChron = Tableau.timeElapsedChron; comOut.sendAndLoad("process.php", comIn, "POST"); Tableau.processing = true; Tableau.processingTotal = comIn.getBytesLoaded(); gotoAndStop("loader"); } // End of the function |
Написав небольшую HTML-страничку, я отправил нужные результаты на их сервер:
В итоге… теперь страница с результатами выглядит так:
Видимо разработчик совсем не проверяет нулевые значения и вообще все входные данные. Посмотрим, как они потом усовершенствуют свою игру.







9 коммент.
Eunix @
Всё-таки они увидели, чем я занимался :) удалили все мои результаты, так как я в первый раз кучу пустых запросов накидал.
Можно прочитать их форум: http://annafaris.net/forum2007/viewtopic.php?t=5
ErliZz @
Eunix @
Eunix @
ErliZz @
«регруппе надавали по жопе за пеар» ©
ER @
Впервой чтоль банют? %)
Eunix @
Вот, что у них сейчас написано
Ярославль в Сан Франциско | Regruppa @
[...] Кстати, совсем недавно этот сервис помог администраторам наконец-то понять, что на их игру посмотрели изнутри: после этого они всё быстренько исправили… по крайней мере они так думают [...]
edelweisse @