質問

私は今度は何度も持っていた問題について考えています。他の実行中のプログラムのすべて)。(共有メモリが好きではありませんが、自分のアプリケーションからアプリケーションを開始することなく、メモリがいます。 私は前にこのようなものを見ましたが、私はそれがどのようにして行われているかを理解することができません。 どんな助けにかかっています!

役に立ちましたか?

解決

@Sharptoothが言ったように、これはOSからのサポートを必要とします。異なるOSは異なります。あなたはWindows上にいるので、あなたが続くことができるいくつかのステップがあります:

  1. OpenProcessを呼び出し、またはCreateProcessにアクセスしたり、新しいプロセスを起動したりします。この呼び出しでは、PROCESS_VM_READアクセスを要求する必要があります。
  2. ReadProcessMemoryを呼び出して、開いたプロセスでメモリのチャンクを読みます。

    他のプロセスのメモリを変更したい場合は、PROCESS_VM_WRITEアクセスを必要とし、それを実現するためにWriteProcessMemoryを使用します。

    Linuxでは、Ptraceを使用してプロセスとPEEKに接続して、そのメモリをPUKに移します。

他のヒント

あなた自身のアプリケーションからプロセス(別のプログラム)を起動し、その情報(特に共有メモリ)にアクセスすることができます。反対のことは非常に困難であり、CPUはメモリアドレスを偽造しているので、各プロセスはそれがメモリ全体を持っていると信じています...

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top