2012-01-05 13 views
1

私はWindowsプログラミングについて勉強していますが、私はいくつかの質問があります。変更されたメモリデータをどのように検出できますか?

私はメモリデータを守るセキュリティモジュールを見ました。 1つのプロセスが他のプロセスメモリを変更しようとすると、プロセスを検出してオフにします。

これは、ゲームや銀行アプリケーションプログラムのアンチチートエンジンでよく使用されます(私は韓国に住んでいますので、これが最良の例です)ほとんどのオンラインゲームや銀行アプリケーションには自己防衛アルゴリズム。)

私の質問は、これについて検出するAPIまたは関数はありますか?

ありがとうございます。

P.S. が0x01000000メモリデータがある

場合 iが '、いくつかの異なるプロセスが'B'にそれを変更し、例を作ることができます。 私が最初にこれについて考えたとき、私はデータをチェックするためにスレッドを作らなければならないと思っていました。 しかし、これは良い考えではないと思います。助言がありますか?

+0

あなたは他のアプリケーション間で検出していますか、それとも独自の機能(つまり、純粋に内部機能ですか、またはOS全体で使用されていますか)はありますか?仮想メモリのために他のアプリケーションのメモリに簡単にアクセスすることはできませんが、実行することはできます。 – RageD

+0

@Nagi:最近のOS(Windowsを含む)では、あるプロセスが別のプロセスのメモリを変更することはできません。どのセキュリティモジュールについて話していますか? –

+0

@IgorKorkhov:http://msdn.microsoft.com/en-us/library/windows/desktop/ms681674%28v=vs.85%29.aspx – SLaks

答えて

2

質問に対する一般的な回答:いいえ、そのようなAPIや機能はありません。

しかし、同じ結果を達成できるさまざまな方法があります。 1. Apiフック。システム内の関数(WriteProcessMemoryなど)をフックして、プロセス内で何かを変更しようとしているかどうかを確認できます。この詳細についてはhereをご覧ください。 2.デバッグ。関数またはメモリの変更にデバッグブレークポイントを使用できます。

関連する問題