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

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

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

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

Вот опция SPEED HACK, на которую я ссылаюсь, используя инструмент "Cheat Engine" в Windows, и на самом деле это опция, при которой 99,99% пользователей Cheat Engine используют Cheat Engine для:

введите описание здесь

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

Я ищу способ сделать это для Flash-игр на базе Web и / или игр с эмуляцией Wine.

4 ответа

Решение

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

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

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

1) SIGSTOP и SIGCONT:

kill Команда может выдать STOP и 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% CPU:

cpulimit -e firefox -l 30

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

В частности, если нормальное Wine не работает (что я смог заставить его работать, лучше всего попробовать 32-битную версию), вся надежда не теряется, поскольку это звучит как идеальный кандидат на расширение / дополнение Wine. Программа esque, Wine-Hacks, предлагает пользователю пошаговое руководство по установке различных программ, отвечающих определенным требованиям и т. д. (это очень простой способ, если традиционная конфигурация Wine не работает). Это интересное затруднение, и важно помнить, что linux в целом дает пользователю гораздо большую платформу для настройки и настройки различных процессов / потоков / и т. Д. На всех уровнях... Однако, большое количество чтения обычно приходит из Это. На более низком уровне можно было бы, если игра использует межпроцессное взаимодействие, настроить скорости на сокетах (команды 'vmstat'/'top'/'ps'/'ss' - лишь небольшой арсенал того, что предлагает linux) сами по себе, и хотя это не будет иметь столь малую кривую обучения / простота использования, но эти инструменты являются началом для анализа активности на уровне процесса / памяти-mgmt.

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

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

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

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

Если вы не заметили, что репозиторий был обновлен не так давно, как в 2017 году, для сборки Ubuntu 20.04 вам потребуется:

  1. Изменить строку 140 на static int (*gettimeofday_orig)(timeval *tv, void *tz);
  2. Изменить строку 222 на extern "C" int gettimeofday(timeval *tv, void *tz)
  3. Делать sudo apt install libc6-dev
  4. Делать make 64bitиз корня проекта
  5. Запустите игру с ним (например, ./speedhack glxgears)
  6. Управляйте его скоростью через /tmp/speedhack_pipe(например echo 0.5 > /tmp/speedhack_pipe)

Если 22.04 снова сломает его, проверьте страницу с проблемами .

Другие вопросы по тегам