2010-12-26 10 views
2

私は、ビデオゲームのためのトレーナー(別のプロセスの価値を変更するプログラム)のコーディングに非常に関心を持っています。私はシンプルな「神モード」と「無制限のお金」をやったことがありますが、それ以上のことをしたいと思います。 (WriteProcessMemoryを使った簡単な編集)高度なメモリ編集/関数呼び出し

私が取り組んでいるビデオゲームのインターネット上の関数のメモリアドレスがあり、関数の1つは "CreateCar"のようなもので、私はその関数を外部から呼びたいと思っていますプログラム。

私の質問:どのようにC/C++の外部プロセスから関数を呼び出すことができますか?関数ハンドルを使用して、プロセスハンドルまたは他のメソッドを使用します。

PS:誰かが私にこの種のものを助けるツール(私はデバッガを持っていますが、もっと必要はありません)にリンクすることができればいいと思います。

答えて

1

少なくとも安全にはできません。関数に正確に1つのパラメーターがある場合は、そのプロセス内の関数アドレスに新しいスレッドを作成することができます。それ以上のものがあれば、それを実行するためにDLLを注入したいかもしれません。

しかし、これらのソリューションのどちらも安全ではありません。これは、関数を実行するために新しいスレッドを作成すると他のスレッドが現在それらを使用している場合にデータ構造が破損するためです。別のプロセスで関数を呼び出す唯一の安全な方法は、そのプロセスの正確な場所に呼び出しを挿入して、そのプログラムに対して論理的に正しいことです。技術的なハードル(任意の場所にフックを挿入すること)は気にしないでください。プログラムがどのように動作しているかを正確に知る必要があります。これは基本的に、リバースエンジニアリングが先んじている(またはソースコードを取得する必要がある)ことを意味します。

+0

google(LOL)で検索するための適切な単語を洞察してください。答えをありがとう。 – Saustin