別のプロセスからメモリを取得する
-
21-09-2019 - |
質問
Windows で、DLL インジェクションを使用して別のプロセスにアクセスしたとします。また、注入したプロセスのメモリのスクリーン キャプチャもいくつか実行し、取り出したいデータの場所がわかっています。他のプロセスの 0xaaaaaaaa に特定の値を含むデータがあるとします。注入するアプリで使用できるように、そのプロセスからこの値を取得するにはどうすればよいですか?プロセスに注入されるので、memcpy などを使用できますか?
memcpy(value, 0xaaaaaaaa, 10);
おそらくこれよりも複雑な関係があると思いますか?
編集:以下の回答に対して、WM_COPYDATA は既存のアプリケーションからデータを取得するためではなく、別のアプリケーションにデータを送信するためのものであるため、どのように役立つのかわかりません。
解決
を使用できるはずです。 読み取りプロセスメモリ 関数。
こちらも参照 Windows 上の別のプロセスのメモリを変更する Perl、Python、または Ruby プログラムを作成するにはどうすればよいですか?
他のヒント
でのWindowsは、すべてのプロセスは、独自のメモリに対応しています。ことは、次の2つのポインタを持つmemcpyのような何かをすることはできませんという2つの異なるプロセスのメモリをポイントします。
あなたは、プロセス間通信のいずれかのオプションを検討することができます:メモリ、ファイル、ソケット、名前付きパイプ、イベントウィンドウメッセージをマッピングされた
。ここで IPC の
の詳細については、WM_COPYDATAを試してみて、それに関連するMSDNから助けを借りるます。
以下のIPCメカニズムは、Windowsでサポートされています:
クリップボード
COM
データのコピー
DDE
ファイルマッピング
メールスロット
パイプ
RPC
Windowsソケット
詳細はこちら間通信する
あなたのケースで私は< WM_COPYDATAメッセージを使用します/ A>