3

ReadProcessMemory特定のプロセスを実行しようとしていますがObRegisterCallbacks、別のプロセスがそのプロセスでハンドルを作成するのを防ぐために使用されます ( OpenProcess)。ReadProcessMemoryまたはを使用せずに C# で独自のメモリ読み取りユーティリティを作成している人を聞いたことがありOpenProcessます。素晴らしいライブラリを作成する方法を誰かに教えてもらえたら (または、既存のライブラリにリンクできれば)。

これは厳密にメモリの読み取りです。プロセスにメモリを書き込む必要はありません

4

1 に答える 1

1

ReadProcessMemoryOpenProcess公式の Windows API の一部です。ZwReadVirtualMemoryこれらは、実際には/NtReadVirtualMemoryZwOpenProcess/などの他の OS 関数を呼び出しますNtOpenProcess。問題は、これらの機能にドライバーのみがアクセスできることです。ただし、ソフトウェア ドライバーを作成することはできます (Visual Studio でカーネル モード ドライバー (KMDF) または Windows ドライバー モデル (WDM) を作成することにより)。欠点は、これがすべて C++ であり、難しいことです。

WhiteMagic と呼ばれるオープン ソースの C# ライブラリを調べることをお勧めします。これにより、プロセスに DLL が挿入され、アプリケーション自体の内部からメモリの読み取り/書き込みが可能になります。これは DLL の注入に使用されますが、注入方法をhttps://github.com/dwendt/UniversalInjectOpenProcessのような別の方法に置き換えることができる場合があります。

于 2017-01-03T05:41:27.290 に答える