Изменение скорости выполнения процесса (альтернатива Cheat Engine в качестве Flash Game Speed ​​Hack)

Изменение скорости выполнения процесса (альтернатива Cheat Engine в качестве Flash Game Speed ​​Hack)

В Windows есть инструмент для Flash-игр, который называетсяЧит-движокчто может ускорить/замедлить процесс на X величину, делая время, необходимое для выполнения задачи в игре, более быстрым или медленным, чем в реальном мире. Это особенно полезно для игр на время, которые заставляют вас ждать X величину времени для завершения строительства, сбора урожая и т. д. Это также применимо к играм, в которых вам нужно, чтобы они шли медленнее, чтобы вы могли защищаться от нескольких врагов (игры про зомби и т. д.) или игры, сложность которых заключается в том, как быстро можно что-то завершить.

Но это не ограничивается веб-играми Flash. Cheat Engine также может ускорять/замедлять другие игры (Half-Life, Quake 3 и т. д.).

Есть ли способ сделать это в Ubuntu?

ВотСПИДХАКЯ имею в виду вариант с использованием инструмента «Cheat Engine» в Windows, и на самом деле это тот вариант, который 99,99% пользователей Cheat Engine используют для:

введите описание изображения здесь

Я должен упомянуть, что я не ищу способ приостанавливать процесс каждые миллисекунды (например, замедлять Firefox или Chrome вместо замедления игры Flash). Например, замедление Firefox не сработает, поскольку оно также замедляет все остальное, так что это будет не столько Speed ​​hack, сколько замедление процесса в целом, включая все действия пользователя. По сути, все будет то же самое, просто медленнее. То же самое касается и ускорения процесса.

Я ищу способ сделать это с веб-играми Flash и/или играми, эмулируемыми Wine.

решение1

Короткий ответ: нет. Кнопки 2x для планирования процессов нет. Лучшее, что вы можете сделать, это использовать cgroups для того, что вам интересно, чтобы получить больше процессорного времени за счет другого процесса. Если бы мне пришлось угадывать, причина, по которой speedhack вообще работает, заключается в том, что он делает свое дело, манипулируя средой выполнения Flash, или просто называйте его виртуальной машиной. Дело не в том, что он ускоряет программу, он изменяет фундаментальные параметры, на которых основана вся виртуальная машина. Я полагаю, то же самое было бы возможно с чем-то вроде Java или Python.

Ну что ж, думаю, тебе придется продолжать читерить в Farmville на Windows. Позор.

решение2

Они могут помочь замедлить процессы, но не ускорить их...

1) SIGSTOP и SIGCONT:

Команда killможет выдавать сигналы a STOPи a CONTпроцессу с заданным pid. Я уже использовал ее для «приостановки» и «регулирования» скриптов python, и она отлично подходит для этой цели.

Вот пример в скрипте bash (передайте PID соответствующего процесса в качестве параметра командной строки):

PID=$1
while true; do 
    sleep 0.5
    kill -s STOP $PID
    sleep 0.5
    kill -s CONT $PID
done

Чтобы уменьшить подергивание, длительность этих снов (в секундах) нужно будет значительно сократить, но больший интервал сделает это более очевидным для тестирования.

Как только вы будете довольны определенным интервалом, вы сможете сделать соотношение снов регулируемым с помощью переменной.

2) Еще одна возможность для регулирования — «cpulimit»:

sudo apt-get install cpulimit

Чтобы ограничить Firefox до 30% загрузки ЦП:

cpulimit -e firefox -l 30

решение3

Я бы предложил пару вещей. Если это действительно farmville/что-то, во что играют в сети (как предложил ppetraki), я считаю, что один из путей - пойти по маршруту greasemonkey (это платформа, позволяющая запускать все скрипты на основе javascript, чтобы обеспечить более продвинутую настройку на всех уровнях браузера/отрисовки страниц). Не меньше, я очень быстро прочитал все остальные ответы, и, что удивительно, не увидел, чтобы кто-то упомянул Winehttp://www.winehq.org/documentation.

Точнее, если обычный Wine не работает (что мне удалось сделать, лучше всего попробовать 32-битную версию), надежда не потеряна, так как это звучит как идеальный кандидат для программы в стиле расширения/дополнения Wine, «Wine-Hacks», она предлагает пользователю пошаговую инструкцию по установке различных частей программного обеспечения, которые соответствуют определенным требованиям/и т. д. (это очень простой путь, если традиционная конфигурация Wine не работает). Это интересная затруднительная ситуация, и важно помнить, что Linux в целом дает пользователю гораздо большую платформу для настройки и настройки различных процессов/потоков/и т. д. на всех уровнях... Однако, как правило, большой объем чтения приходится на него. На более низком уровне можно было бы, если игра использует межпроцессное взаимодействие, настроить скорости на самих сокетах (команды 'vmstat'/'top'/'ps'/'ss' - это лишь малая часть того, что предлагает Linux), и хотя это не будет иметь такой же короткой кривой обучения/простоты использования, но эти инструменты являются отправной точкой для анализа активности на уровне процессов/управления памятью.

Но, глядя на ваше изображение и самостоятельно скачав приложение, понимая, как работает приложение, и тот факт, что оно считывает биты памяти, сканирует адреса памяти и т. д., оно ускользает от понимания того, что оно делает именно это, настраивает память/межпроцессное взаимодействие на низком уровне (однако, следуя этим путем, вы создадите свою собственную хакерскую версию «Cheat-Engine», это можно очень легко сделать с помощью gdb (gcc-debugger, инструмент разработчика/безопасности, поскольку выполнение таких задач является обычной частью работы разработчика, чтобы лучше оценить, как работает приложение/его общая производительность., действует аналогично в более ограниченной области). Вы просто будете использовать другой инструмент для управления памятью/последовательностью взаимодействия на уровне сокетов. Тем не менее, сценарий Wine будет работать, и я попробовал его вкратце (однако, я не знаю, в какую целевую игру вы играете, лол!!).

В заключение, чтобы все было ясно, один из способов — перенастроить процессы/потоки процессов (задачи) в Linux и найти различные адреса памяти и биты, используемые в межпроцессном/сокетном взаимодействии с помощью утилит или отладчика (уже упомянутого). Затем еще один более простой способ, который использует логику самого «Cheat-engine» в среде, отличной от Windows, установив его с помощью Wine, поскольку Wine запускает приложение и управляет им в процессах/потоках внутри, так что это выглядит так, как будто программа запускается в самой Windows. Программа Wine есть во всех дистрибутивах Ubuntu, которые я видел, «apt-get»/«aptitude» для установки Wine). Кроме того, еще один инструмент для отладки/настройки игр на основе Flash и т. д. — это Flashbug (вариант Firebug, как и Greasemonkey, используемый в Mozilla). Удачи и приветствия!!

решение4

Я понимаю, что это старый вопрос, но я нашел инструмент, который может изменить скорость работы программ, по крайней мере, в теории. Многое, похоже, либо не затрагивается, либо меняется частота кадров, но не фактическая скорость игры. В любом случае, вот он:

https://github.com/evg-zhabotinsky/libspeedhack

Готовые двоичные файлы теперь доступны по адресуhttps://github.com/evg-zhabotinsky/libspeedhack/releases/и должно работать на большинстве систем. Проверьте README, как использовать инструмент. Под "работой" я подразумеваю сам инструмент, который все равно может не помочь в вашей конкретной игре, и если это так, то это вряд ли будет исправлено.

Связанный контент