Как замедлить приложение в браузере
«Война… Война никогда не меняется». Думаю, многим знакома эта фраза. Каждый пользователь ПК хоть раз запускал компьютерную игру. Много компьютерного железа пострадало в баталиях от горячей руки геймера, потерявшего последнюю «жизнь». Иногда появляется мысль: а не поискать ли «читы» и не накрутить ли себе жизней или ресурсов. Так начинается путь читера.
В этой статье я на двух примерах покажу, как с помощью подручных средств можно нечестно играть в игры на HTML5.
Ядро любой HTML5-игры — JavaScript. Единственной, на данный момент, защитой этого ядра является обфускация кода. Согласитесь, увидеть «простыню» в 10 000 строк обфусцированного кода без new-line — это поначалу страшно. Но если немного покопать — логика и архитектура приложения как на ладони. Главное — определить цель читерства (скорость, ресурсы, GodMode). В качестве инструмента используем Chrome и его Web Inspector. Во вкладке Sources можно «на горячую» изменять исполняемый код.
Google Doodles
Основная цель игры — пройти трассу как можно быстрее. В голову сразу приходят несколько уловок:
- повысить скорость лодки;
- убрать препятствия;
- убрать замедление от столкновений;
- «выпрямить» трассу;
- что-нибудь сделать с таймером (обнулить, замедлить).
Нас интересует JavaScript-код игры.
Логично предположить, что это slalom_canoe12-2.js.
Исходный код… немного страшный, правда? Можно автоматом расставить new-line и отформатировать по синтаксису JavaScript. Читаемость значительно улучшиться и анализировать станет легче. Также можно обложить весь код брейкпоинтами и попытаться восстановить алгоритмы. Но не будем стрелять из С-400 по квадрокоптеру…
Начинаем рассуждать. По нажатию клавиши или при прохождении через ворота лодка ускоряется. Следовательно, где-то есть параметр «скорость» и он должен (скорее всего) инкрементироваться. Ищем по коду все операторы «+=» (благо объем и сложность кода позволяют), их находится всего 12. В принципе можно включить метод «научного тыка» и попробовать изменить все 12 по очереди. А можно и подумать.
- this.S+=b.duration — что-то связано с продолжительностью (спасибо, кэп!);
- this.B&&(e+=this.B*(Math.random()-0.5),f+=this.B*(Math.random()-0.5))… e+=this.o*(Math.random()-0.5))— random-0.5 как-то не похоже на скорость…
- R+=Qc*b — хм-м… и начальное значение, и какой-то коэффициент.
Остановимся и проверим. Обновляем страницу (на всякий случай). Открываем Sources slalom_canoe12-2.js. Находим R+=Qc*b. Предположим, что b — коэффициент ускорения. И заменим его на 500 (не забываем нажать Ctrl + S).
Жмем Play в игре и…
Бинго! Наш чудо-катер устремляется к финишу. Теперь можно похвастаться перед друзьями скоростью своих пальцев :)
Отмечу, что приведенный пример — это случай, в котором удалось обойтись малой кровью. И не потребовало глубоких знаний JavaScript, архитектуры, отладки. Только арифметика.
Перейдем к другому примеру.
Spelunky
В этом примере потребуется знать, что такое if и что такое =, а также базовое знание английского языка. Не так давно на Хабре была опубликована статья о Spelunky. Игра, безусловно, заслуживает внимания. Старый добрый хардкор! Но есть в ней несколько «косяков» с управлением и коллизиями, которые мешают пройти игру. Давайте попробуем нарисовать себе жизней, бомб, веревок и прочей радости.
Открываем сайт с игрой. В инспекторе находим index.js, это и есть код игры. Первая мысль: «Какой кошмар».
Однако стоп! Встречаются и понятные слова. Например Bomb, Rope. Это уже интересно. Значит можно попробовать найти кусок кода, который обрабатывает получение предмета. А там где-то должно увеличивать количество оного…
Ищем слово Bomb. Результатов немало — 79. Попробуем Bomb Bag. И вот оно, первым же результатом!
Тут мы видим, что что-то сравнивается с Bomb Bag и если это оно, то делаем global.loc+=3 и куда-то пишется «YOU GOT 3 MORE BOMBS!» соответственно в global.loc у нас лежит количество бомб. Анализируем код, расположенный рядом, и находим переменные, в которых хранятся веревки и прочие радости. Вот краткий список:
- global.loc — бомбы;
- global.soc — липкие бомбы;
- global.woc — веревки.
Открываем Console и вводим следующее.
Отпускаем паузу — и наслаждаемся полученным результатом! Не буду описывать, как нарисовать себе жизней. Пусть читатель сам попробует разобраться с этой переменной.
Вывод: умный в гору не пойдет. Изменение JavaScript-кода — это легче легкого. Обфускация — это не смертельно. Старайтесь мыслить логически. И еще: любое читерство постепенно убивает интерес к игре (во всяком случае у меня), аккуратней с этим.
Команды для замедления воспроизведения содержимого при помощи флеш-плеера могут быть разными в зависимости от используемого вами программного обеспечения. Также управление скоростью воспроизведения в онлайн флеш-играх часто может осуществляться при помощи сторонних программ.
- - флеш-плеер;
- - программа ArtMoney;
- - браузер;
- - подключение к интернету.
Для того чтобы замедлить воспроизведение flash на вашем компьютере, воспользуйтесь кнопками меню в вашем плеере, данная функция доступна практически для всех известных проигрывателей. Также вы можете настроить данный параметр из меню «Воспроизведение», «Действия» и так далее.
В случае если вы хотите замедлить воспроизведение flash в плеере вашего браузера, также воспользуйтесь контекстным меню программы. Если вам нужно замедлить время в онлайн-игре, необходимо знать, какие значения используются разработчиками для настройки скорости течения времени.
После этого сверните игру на панель задач, запустите ArtMoney или другую подобную программу, которую вам удобно использовать, и задайте скорость из специального меню.
Обратите внимание, что большинство разработчиков учитывают данную возможность, поэтому замедленный или ускоренный режим обычно отображает определенные результаты своего использования на вашем компьютере, но данные на сервере обновляются в обычном режиме. Но это также можно использовать в своих целях в зависимости от того, в какую игру вы играете. Также в случае ускорения игрового режима возможны различные сбои.
В случае если вам не помогли стандартные приложения для управления скоростью воспроизведения в онлайн флеш-играх, обратитесь к информации на тематических игровых форумах. Наверняка среди из завсегдатаев есть такие, которые уже пользовались данной функцией и знают, как осуществить ее.
Также обращайте внимание на правила пользования онлайн-играми. В большинстве случаев за применение таких методов достижения результатов вас могут забанить на время или просто удалить аккаунт, поэтому лучше всего пробуйте различные дополнения на альтернативных учетных записях, которые не понадобятся вам в дальнейшем.
Есть игрушка, в которой надо читерским образом набить дофига очков. Время игры ограничено. Игрушка не соревновательная, никто от этого не пострадает.
Есть ли какой-нибудь хак (например экстеншен в Firefox), который может заморозить время, сделать время для приложения в браузере замедленным или что-то такое?
кстати неплоха идея, когда браузер(или ещё какая прога) ненужен делать
kill -SIGSTOP `pidof firefox`
можно запустить браузер с LD_PRELOAD и подрузить библиотеку с обёртками для системых вызовов, относящихся к работе со временем и там в ней замедлять или останавливать его
стиви скатился до браузерок
это не то чтобы браузерка, а интеллектуальная игра со значительным ценным призом. я хочу иметь больше времени на выбор ответа (чтобы успеть позвонить по телефону, от души погуглить, итп). все защиты кроме времени я уже разломал, а вот в жабаскрипте копаться очень влом, если есть более простые уже готовые решения
Она ещё может с сервера время проверять
Игрушка не соревновательная, никто от этого не пострадает.
а интеллектуальная игра со значительным ценным призом
Только нормальные люди в таких случаях проверяют время ответа на сервере. Может, удастся выиграть секунд пять (сервер может подумать, что сеть тормозит), но чтобы значительное время. хотя такое тестирование в принципе даже полезно.
Попробуй, в самом деле, SIGSTOP для начала, а ответ гугли в другом браузере.
proud_anon ★★★★★ ( 21.10.14 00:41:40 )Последнее исправление: proud_anon 21.10.14 00:44:27 (всего исправлений: 1)
она проверяет, но этому уже найдено хитрое_решение (тм)
stevejobs ★★★★☆ ( 21.10.14 00:54:30 )Последнее исправление: stevejobs 21.10.14 00:56:41 (всего исправлений: 1)
и не надо гадать и выдумывать велосипедов
очки проверяются на сервере
Можно попробовать переопределить функции для работы со временем в js,например:
Cheat Engine - это программа, предназначенная для "изменения" игр и приложений, запущенных под операционной системой Windows. Из названия данной программы понятно, что она предназначена для написания различных чит кодов. Программа Cheat Engine достаточно давно зарекомендовала себя как хорошее средство для создания трейнеров, читов и хаков.
Можно сказать, что в теории эта программа используется лишь для однопользовательской игры, но на практике оказывается, что Cheat Engine можно использовать и для онлайн Flash игр, а так же для программ под ОС Windows. Кстати говоря, эту программу сделали известной именно онлайн игры, т.к. они популярнее, чем обычные.
Функционал данной программы позволяет сканировать данные игры/процесса, находящиеся в данный момент в оперативной памяти, и редактировать различного рода значения.
Также в программе присутствует функция Speed Hack, служащая для ускорения работы любого открытого процесса в данный момент. Именно эта функция и понадобится для ускорения вашего браузера.
В данной программе также присутствуют и другие функции. К примеру: отладчик игр, ассемблер, дизассемблер, генератор трейнеров, манипулятор Direct 3D и так далее.
В этой статье мы рассмотрим использование функции Speed Hack для сторонних программ, а именно браузера.
В данном случае Opera.
Установка программы
Итак, сначала скачаем программу Cheat Engine с официального сайта, программа является полностью бесплатной.
Для загрузки кликаем по надписи "Download Cheat Engine".
После того как вы скачали программу, отключите антивирус. Только после этого следует приступить к установке Cheat Engine.
Далее нажимаем кнопку "Next".
Выбираем "I accept the agreement", где вы соглашаетесь с лицензионным соглашением программы.
Кликаем по кнопке "Next".
Выбираем директорию для установки программы, нажав на кнопку "Browse. ". И опять нажимаем "Next".
Можете поставить галочку в поле "Don`t create a Start Menu folder", если не хотите чтобы данная программа отображалась в меню Пуск в списке установленных программ. Снова нажимаем "Next".
В поле "Create a desktop icon" ставим галочку, если хотите чтобы ярлык Cheat Engine отображался на рабочем столе. Нажимаем "Next".
Во время установки Cheat Engine Вам также будет предложено установить ряд других полезных программ - "Hamster Free Zip Archiver" и "TuneUp Utilities". Установка их остается на ваше усмотрение. Далее нажимаем "Install".
Использование программы Cheat Engine
Настройка программы
После установки запускаем программу Cheat Engine и нажимаем на иконке с монитором, которая находится в правом верхнем углу окна программы. Из списка процессов "Process List", находящихся в данное время в оперативной памяти, выбираем процесс с названием вашего браузера. В данном случае - браузер Opera. Кликаем по нему 2 раза, либо нажимаем на кнопку "Open".
Далее в поле "Enable Speedhack" ставим галочку. А ниже при помощи ползунка регулируем ту скорость, с которой будет работать наш браузер, а также все приложения, работающие в нем, например Flash.
Далее нажимаем на кнопку "Apply".
Скорость будет регулироваться практически во всех Flash играх, работающих в этом браузере через Cheat Engine, за исключением некоторых онлайн Flash игр, где скорость игры устанавливается сервером.
Читайте также: