プロセスの実行速度を変更する (Flash ゲーム スピード ハックとしての Cheat Engine の代替)

プロセスの実行速度を変更する (Flash ゲーム スピード ハックとしての Cheat Engine の代替)

Windowsには、Flashゲーム用のツールがあります。チートエンジンプロセスを X 量だけ高速化/低速化できるため、ゲーム内のタスクに必要な時間が現実世界よりも速くなったり遅くなったりします。これは、建物が完成したり、収穫が完了するまでに X 時間待たされる時間ベースのゲームに特に役立ちます。また、複数の敵から身を守るためにゲームを遅くする必要があるゲーム (ゾンビ ゲームなど) や、何かをどれだけ早く完了できるかが難しさの基準となるゲームにも適用されます。

しかし、これは Web ベースの Flash ゲームに限定されません。Cheat Engine は、他のゲーム (Half-Life、Quake 3 など) の速度を上げたり下げたりすることもできます。

Ubuntu でこれを行う方法はありますか?

ここはスピードハック私が言及しているオプションは、Windows の「Cheat Engine」ツールを使用することであり、実際には Cheat Engine ユーザーの 99.99% が Cheat Engine を次の目的で使用しているオプションです。

ここに画像の説明を入力してください

プロセスを数ミリ秒ごとに一時停止する方法を探しているのではないことを述べておきます (Flash ゲームの速度を落とす代わりに Firefox や Chrome の速度を落とすような)。たとえば、Firefox の速度を落とすと他のすべても遅くなるため、スピード ハックではなく、ユーザーによるすべてのアクションを含むプロセス全体を遅くすることになります。基本的にすべてが同じで、遅くなるだけです。プロセスの高速化についても同じことが言えます。

Web ベースの Flash ゲームや Wine エミュレート ゲームでこれを実行する方法を探しています。

答え1

簡単に答えると、いいえです。プロセス スケジューリング用の 2 倍ボタンはありません。他のプロセスを犠牲にして、関心のあるものに cgroups を使用して CPU 時間を増やすのが最善です。推測するに、speedhack が機能する理由は、フラッシュ ランタイム (または単に仮想マシン) を操作することによって機能しているからです。プログラムを高速化しているのではなく、VM 全体のベースとなる基本的なパラメーターを変更しています。Java や Python などでも同じことが可能だと思います。

まあ、Windows でファームビルを不正行為し続けるしかないでしょうね。残念です。

答え2

これらはプロセスを遅くするのに役立つかもしれませんが、スピードを上げることはできません...

1) SIGSTOP と SIGCONT:

このkillコマンドは、指定された pid を持つプロセスにシグナルSTOPCONTシグナルを発行できます。私は以前、これを Python スクリプトの「一時停止」と「スロットル」に使用しましたが、その目的には問題なく機能しました。

以下は bash スクリプトの例です (関連するプロセスの PID をコマンドライン パラメータとして渡します)。

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

ぎくしゃくした動きを減らすには、これらのスリープ (秒単位) をもっと短くする必要がありますが、間隔が長いほどテストがわかりやすくなります。

特定の間隔に満足したら、変数を使用して睡眠の比率を調整できます。

2) スロットルのもう 1 つの可能性は、「cpulimit」です。

sudo apt-get install cpulimit

Firefox の CPU 使用率を 30% に制限するには:

cpulimit -e firefox -l 30

答え3

いくつか提案したいことがあります。もしそれが本当にファームビルやネットでプレイする何か(ppetraki が提案したように)であるなら、一つの方法はグリースモンキールートを経由することだと思います(グリースモンキーは、ブラウザやページレンダリングのすべてのレベルでより高度な調整を可能にするために、すべての JavaScript ベースのスクリプトを実行できるプラットフォームです)。それだけでなく、私は他のすべての回答を素早く読みましたが、驚いたことに誰も Wine について言及していませんでした。http://www.winehq.org/documentation

もっと具体的に言うと、通常の Wine が動作しない場合 (私の場合は動作しましたが、32 ビットを試すのが一番です)、希望が失われるわけではありません。これは、Wine 拡張機能/アドオン風プログラム「Wine-Hacks」に最適な候補のように思えます。このプログラムは、特定の要件などを満たすさまざまなソフトウェアをインストールするための手順をユーザーに提示します (従来の Wine 構成が動作しない場合は、これが非常に簡単な方法です)。これは興味深い状況であり、Linux は一般に、さまざまなプロセス/スレッドなどをあらゆるレベルでカスタマイズおよび調整するためのはるかに優れたプラットフォームをユーザーに提供していることを覚えておくことが重要です。ただし、通常、大量の資料を読む必要があります。低レベルの観点からは、ゲームがプロセス間通信を利用している場合、ソケット自体の速度を微調整することができます (「vmstat」/「top」/「ps」/「ss」コマンドは Linux が提供するもののほんの一部にすぎません)。学習曲線や使いやすさはそれほど小さくはありませんが、これらのツールはプロセスレベルのアクティビティやメモリ管理を分析するための出発点となります。

しかし、あなたのイメージを見て、自分でアプリをダウンロードし、アプリケーションがどのように機能するか、そしてそれがメモリの一部を読み取り、メモリアドレスなどをスキャンしているという事実を理解したところ、それはまさにこれを実行し、低レベルでメモリ/プロセス間通信を微調整しているように見えます(ただし、この方法を採用すると、独自のハック版の「チートエンジン」を作成することになり、gdb(gccデバッガー、開発者/セキュリティツール。これらのタイプのタスクを実行することは、アプリケーションの動作/全体的なパフォーマンスをより適切に測定するための開発者の仕事の一般的な部分であるため、より限定された範囲で同様に動作します)を使用すると非常に簡単に実行できます。ソケットレベルの通信のメモリ/シーケンスを制御するために別のツールを使用するだけです。それだけでなく、Wineシナリオは機能し、私はそれを簡単に試しました(ただし、あなたがプレイしている対象のゲームが何であるかはわかりません、笑!!)。

結論として、明確にしておくと、Linux のプロセス/プロセス スレッド (タスク) を再調整し、ユーティリティ/デバッガー (既に説明済み) を使用して、プロセス間/ソケット通信で使用されるさまざまなメモリ アドレスとビットを見つけるという方法があります。次に、より基本的な方法として、非 Windows 環境で「チート エンジン」自体のロジックを利用する方法があります。これは、Wine でインストールすることによって行われます。Wine はアプリケーションを実行し、内部のプロセス/スレッドで管理するため、プログラムは Windows 自体で実行されているかのようになります。Wine プログラムは、私が見たすべての Ubuntu 固有のディストリビューションに含まれています。Wine をインストールするには、「apt-get」または「aptitude」を使用します。さらに、フラッシュ ベースのゲームなどをデバッグ/調整するための別のツールとして、Flashbug があります (Firebug のバリアントで、Mozilla で Greasemonkey が使用されているのと同じです)。幸運を祈ります。

答え4

これは古い質問だとは思いますが、少なくとも理論上は、プログラムの実行速度を変更できるツールを見つけました。多くのものは影響を受けないか、フレーム レートは変更されても実際のゲーム速度は変更されないようです。とにかく、ここにあります:

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

ビルド済みのバイナリは、以下から入手可能です。https://github.com/evg-zhabotinsky/libspeedhack/releases/ほとんどのシステムで動作するはずです。ツールの使用方法については、README を確認してください。ここでの「動作する」とは、ツール自体が動作するという意味ですが、特定のゲームでは役に立たない可能性があり、その場合、修正できる可能性は低いです。

関連情報