質問
私は今度は何度も持っていた問題について考えています。他の実行中のプログラムのすべて)。(共有メモリが好きではありませんが、自分のアプリケーションからアプリケーションを開始することなく、メモリがいます。 私は前にこのようなものを見ましたが、私はそれがどのようにして行われているかを理解することができません。 どんな助けにかかっています!
解決
@Sharptoothが言ったように、これはOSからのサポートを必要とします。異なるOSは異なります。あなたはWindows上にいるので、あなたが続くことができるいくつかのステップがあります:
-
OpenProcess
を呼び出し、またはCreateProcess
にアクセスしたり、新しいプロセスを起動したりします。この呼び出しでは、PROCESS_VM_READ
アクセスを要求する必要があります。 -
ReadProcessMemory
を呼び出して、開いたプロセスでメモリのチャンクを読みます。他のプロセスのメモリを変更したい場合は、
PROCESS_VM_WRITE
アクセスを必要とし、それを実現するためにWriteProcessMemory
を使用します。Linuxでは、Ptraceを使用してプロセスとPEEKに接続して、そのメモリをPUKに移します。
他のヒント
あなた自身のアプリケーションからプロセス(別のプログラム)を起動し、その情報(特に共有メモリ)にアクセスすることができます。反対のことは非常に困難であり、CPUはメモリアドレスを偽造しているので、各プロセスはそれがメモリ全体を持っていると信じています...
所属していません StackOverflow