Windows NTプラットフォーム(XP-W7)でカーネルモードからユーザーモードプロセスを作成する方法はありますか?ドライバからプロセスを作成する
EDIT:ドライバのみをインストールする必要があります。これはプロジェクトの特有のものです。
Windows NTプラットフォーム(XP-W7)でカーネルモードからユーザーモードプロセスを作成する方法はありますか?ドライバからプロセスを作成する
EDIT:ドライバのみをインストールする必要があります。これはプロジェクトの特有のものです。
有効なwin32プロセスを作成するには、ドライバーはCSRSS(完全に文書化されていないもの)と通信する必要があります。だから私はユーザーモードのAPCをキューに入れ、既存のwin32プロセス(そのコードはCreateProcessを呼び出してジョブを実行する)のコンテキストでAPCコードの仮想メモリを割り当てます。
これは難しい方法ですが、機能します。
これを達成するための簡単な方法はわかりません。しかし、重複したDeviceIoControlをドライバに適用するWindowsサービスを実行するとどうなりますか?返却時に、サービスはドライバから受信したデータを調べ、対応するアプリケーションを開始することができます。
これは正しい解決策だと思います。サービスから逆IRPを発行し、開始するためにユーザーモードプロセスが必要なときにドライバを完了させます。 –
提案していただきありがとうございますが、私のサービスを稼働させることはできません(サービスのみがカーネルモードからインストールされ起動されている場合)。 –
@Sergius:とにかくドライバをインストールする必要があります。同じINFファイルを使用してサービスをインストールできます。 –
これは直接行うことはできません - Win32プロセスを作成するには、カーネルモードでプロセスオブジェクトを作成するだけでなく、CreateProcessのユーザーモード部分でいくつかの設定が必要です。
ユーザーモードアプリケーションを起動するには、サービス、デスクトップアプリケーションなどのユーザーモードコードが必要です。
私は自分のユーザーモードコードをスレッドに挿入することを考えています... –
http://www.codeproject.com/KB/system/KernelExec.aspxを見てください。面白い... –