RSS DEV コミュニティ

ネイティブプロセスへのマネージコードのDLLインジェクション

このプロジェクトでは、コードを別のプロセスに挿入するテクニックであるDLLインジェクションが示されています。DLLインジェクションはマルウェアで使用されますが、ソフトウェアプラグインの作成など、正当な用途もあります。このプロセスには、ターゲットプロセスを開いて、メモリを割り当て、DLLパスを書き込み、LoadLibraryを使用してDLLを読み込むことが含まれます。ファンクションフックを使用すると、挿入されたプロセス内のAPIコールをインターセプトして変更できます。Windows APIはkernel32.dllやntdll.dllなどのライブラリに依存しており、SSDTを介してカーネルと相互作用します。DLLのDllMain関数は、挿入に成功すると実行されます。この例では、Cライブラリが挿入され、CoreCLRランタイムとマネージドC#DLLがネイティブプロセス(notepad.exeなど)にロードされます。C#DLLは、プロセス情報を示すメッセージボックスを表示します。GitHubリポジトリには、完全なコードが含まれています。提供されているC#コードは、挿入されたDLLの機能を示しています。このプロジェクトでは、CoreCLRと挿入されるライブラリへの正しいパスを使用してコードを変更する必要があります。
favicon
dev.to
DLL injection of managed code into native process
Create attached notes ...