2009-08-10 2 views
0

私は過去にトレーナーを使って余分な人生のようにゲームを楽しんでいましたが、トレーナーがそのようなものを追跡するためにゲームが使用するメモリーアドレスをハッキングまたはフリーズすることによって作業することは私の理解です。特定のプログラムのメモリアドレスはコンピュータ間で一貫していますか?

私の質問は以下のとおりです。

  1. は、メモリハックは、プログラム(すなわち、再生、一時停止、メディア・アプリケーションのための次の曲)のコントロールを操作するために使用することができますか?
  2. アドレスは一致していますか?同じOSを持つどのコンピュータでも使用できますか?

ありがとうございました! :)

答えて

0

メディアアプリの場合、あなたが望むボタンが見つかるまで、app内の子ウィンドウを列挙することで、あなたが外出しているウィンドウ/ボタン/コントロールを検索する方がよい場合があります。あなたがコントロールへのハンドルを持っているとき、あなたは文字通り力を持っています。

多くのメディアアプリ(たとえばwinamp)は、Windowsのメッセージイベントを受信するので、アプリケーションに適切なフォーマットのsendmessage/postmessageを送信するだけでそれらを制御できます。しかし、アプリケーションがそうでなくても、ボタンのハンドルを見つけて、ボタンなどにクリックイベントを投稿することができます。

この回答は記憶質問に対する回答ではありませんが、私は他のメディアアプリを制御する多くのアプリを構築しているので、質問の「メディアアプリを制御する」という角度になっています。

+0

とにかくコメントをいただきありがとうございます。これは、私が心に留めていた目標の素晴らしい代替手段となるため、基本的に他のプログラムを制御するためのプログラムを作成することです。 –

+0

この場合、API SendMessage、PostMessage、Findwindow、FindWindowEx、EnumWindows、およびEnumChildWindowsを参照する必要があります。 マイクロソフトでは、.NETデベロッパーの方には、APIコードパッドを公開しています。http://code.msdn.microsoft.com/WindowsAPICodePack/Wiki/View.aspx – Stefan

1

問題のメモリアドレスが更新/パッチの後で変更できることに注意してください。多くのオンラインゲームは、利用可能な場合は新しいバージョンを強制します。そのようなメモリハックを最新の状態に保つことは、コミットメントを必要とします。

+0

オンライン/マルチプレイヤーゲームでは、このようなハッキングは非常に非倫理的です。 – JAB

+0

ええ、私はFFXIをプレイしています。彼らはこのタイプのMODを作るためにかなりのアカウントを禁止しています。 –

0

一般に、すべてのOSとライブラリのバージョンが同一であると仮定すると、メモリアドレスは同じコンピュータ上で、また1台のコンピュータから実行するまで、実行時に一貫しています。プログラムを変更すると、変数のアドレスが変更される可能性があります。

プログラムがダイナミックライブラリを使用すると、処理が煩雑になります。通常、優先ライブラリロードアドレスは、同じアドレスに2つのライブラリをロードしないように設定されています。ライブラリの新しいバージョンが出てきたら、それはもはや適合しなくなり、他のライブラリがメモリ内でシャッフルされてしまいます。したがって、システムコンポーネントの更新であっても、ライブラリがロードされている場所を変更することができます。

オペレーティングシステムの多くは、メモリマップのレイアウトを予測できない方法で変更するアドレス空間のランダム化を提供しています。特にこの種のトリッキーを難しくするためです。

関連する問題