Sysinternals の Process Explorer が というデバイス ドライバーをサイレント モードで読み込むことは知っていますPROCEXPxxx.SYS
。私はそれがこれをどのように行うのか疑問に思っています。私には、アプリケーションにカーネル モード コンポーネントを静かにバンドルする良い例のように見えます。
まず、ドライバーは exe から (おそらくリソースとして) 動的に作成されます。
Process Monitor を使用してレジストリを確認すると、PE がRegCreateKey
キーをHKLM\System\CurrentControlSet\Services\PROCEXPxxx
手動で作成するために使用していることがわかります (その後すぐに削除して、ドライバーの実行後に何も残らないようにします)。
" " を使用するdumpbin /imports procexp.exe
と、PE がまったくインポートされないことがわかりましたCreateService
。また、API Monitor ( http://www.rohitab.com/apimonitorCreateService
) を使用して、実行時に呼び出されないことを確認しました。
では、Process Explorer はどのようにして再起動や呼び出しを行わずにドライバーをサイレント モードでエレガントにロードするのCreateService
でしょうか?