1. ホーム
  2. スクリプト・コラム
  3. パイソン

ゲームメモリを修正するためのPythonメソッド

2022-01-27 06:57:13

前書き

皆さんこんにちは、Good Thoughtsと申します。前回の記事で、「もっとフォローしてほしい」と願ったところ、フォロワーが数百人増えましたので、ご愛読ありがとうございます。しかし、ファンが増えたことで、3社が少なくなってしまったことがわかりました、今回、3社を与えてくれた皆さんに感謝します、これからも頑張らなければなりません。もし何か質問があれば、コメント欄に残してください、私は一つずつ返信します、ありがとうございました!

この時間は、単一のゲームのデータを変更することです、Cを学んだ人は確かにしばしばいくつかの教師は、植物対ゾンビの主題である、この場合について話すが、この記事は、私は(2019年オリジナルトピック、ビデオチュートリアル付き)を達成するためにPythonを使用してあなたを取ることが表示されます。

ゲームのインストール

インストールに関する作品・・・。以前はウェブサイトからダウンロードしていたのですが、今また探しているところなので、Baiduからダウンロードすればいいのでしょうから、ここは以前のものを使用することにします

リンク https://pan.baidu.com/s/1Ydiy1Q9QqKNxoyAkIlzp7Q
抽出コード 1234

インストールとダウンロードの後、いくつかの広告をクリックしないようにし、いくつかのブラウザでロックのチェックを外すことを忘れないでください。ゲームはフルスクリーンであり、私たちが効果を観察し、プログラムを書くために便利ではありません、あなたはオプションでフルスクリーンのチェックを外すことができます

アイデア

一文要約

私の理解では、すべてのプログラムの本質は、変数と値の集合体です。

例えば、私たちがプレイしているゲームもプログラムですよね?キャラクターの血や青い棒はすべて変数に格納されているので、その値を格納している変数(アドレスともいう)を見つけて、変数の値を変更すれば、キャラクターに血を入れたり、キャラクターのレベルを変更したりする一連の操作ができるわけです。

一般的な考え方

まず、どのゲームのデータを修正するかを決め、次にそのゲームのデータのうち、どのデータを修正するかを決め、そのゲーム内でそのデータのアドレスを探しに行き、そのデータを修正します。

ちょっと循環しているように聞こえますね。そうか、私は国語が苦手なんだ。

実用的

どのゲームのデータを変更するかを決定する

ここで、ハンドルビューワツールを使用する必要があります。

リンク https://pan.baidu.com/s/1ubpe7bmIsojbcX3z_24CxA
抽出コード 1234

虫眼鏡をゲームのタイトルにドラッグすると、このウィンドウにすべての情報が表示されます

タスクマネージャでプロセスIDが39156であることも確認できます。

コード

import win32process
# Process module
import win32gui
# interface
# none Class name of the window ID of the window
window_handle = win32gui.FindWindow(None, "Plants vs. Zombies Chinese version") #Pyspy++ window handle win32gui.
print(window_handle)
process_id = win32process.GetWindowThreadProcessId(window_handle)[1] #Fetch process ID
print(process_id)
process_handle = win32api.OpenProcess(0x1F0FFF, False, process_id)# process handle
# whether the process handle can be inherited by child processes, generally select false (not inheritable)
# This is the default safety property of the thread kernel object, the child process cannot inherit the handle of the parent process, it cannot inherit
# then the child process cannot access the kernel object through the handle.
print(process_handle)

プロセスハンドルでゲームを判断する方法と、ゲームのウィンドウIDとクラス名を手動で取得してプロセスIDを取得し、プロセスIDからゲームハンドルを取得する方法について説明します。

アドレスの検索

太陽光の総量は150で、エンドウ豆を育てるには100必要であり、とても足りません。今必要なのは、無制限にエンドウ豆を育てるために、無限に太陽光を浴びることです。ここで、CEソフトが必要になります。

リンク https://pan.baidu.com/s/1mkEmVUonDBS6zBjJjYDFSQ
抽出コード 1234

ビデオチュートリアル