web-dev-qa-db-ja.com

このRunDll32インスタンスは何を実行していますか?

Windows 10ボックスで実行中のプロセスを確認しているときに、rundll32のインスタンスに遭遇しました。

これは、ProcessExplorerに従って起動したコマンドラインです。

C:\Windows\system32\rundll32.exe -localserver 22d8c27b-47a1-48d1-ad08-7da7abd79617

どういう意味ですか?これを調べてみたが何も見つからなかった。

それは良い/正常ですか?私はそれを殺してさらに調査する必要がありますか?

11
beppe9000

このプロセスはWindows10で見ましたが、ユーザータイル(より一般的にはユーザーアカウントの画像)を処理しています。おそらく、他のタイプの信頼できないユーザーデータを処理するために使用されます。知りません。

コードはWindowsの「シェル」(デスクトップインターフェイス)パッケージの一部であり、プロセスはユーザー「NT Authority/SYSTEM」として実行されています。これは、ログイン/「高速ユーザー切り替え」インターフェースの一部であることを意味すると思います。私が観察した動作はすべてWindowsにあります。特に(バギー)サードパーティのコードを探していましたが、疑わしいものは何も見つかりませんでした。

Windows Rundll32(DllHostの子プロセス)がクラッシュしています。どうすれば識別できますか?

シナリオ

着信COM要求を処理しているときに、スレッド0のスタックトレースをキャプチャしました。クラスWindows_UI_Immersive!CUserTileValidatorを示しています。プロセスがクラッシュして画像を処理したときに、このトレースをキャプチャしていました。私のメンタルモデルでは、これはユーザーの画像を解凍するサンドボックス化されたプロセスですが、正確な説明はもっと複雑になると思います。

この問題は1人のユーザーに固有でした。セッションをロックしてこの特定のユーザーとしてログインすることでクラッシュを再現できましたが、その逆はできませんでした。ユーザーのプロフィール写真がデフォルトのアイコンとして表示されました。ユーザーのプロフィール画像を変更すると、クラッシュが停止しました。

Rundll32の-localserverオプションに関するドキュメントが見つかりません。他のコメント投稿者によると、UUID値はレジストリのどこにも見つかりません。 Rundll32がこの値を検索する方法がわかりません! LocalServer という用語は、専用のCOMサーバープロセスを起動するために使用されるコマンドについて話すときに他の場所で使用されます。 (多くの場合、以下で説明するようにDllHost.exe)。

技術的な詳細

Rundll32プロセスには、親プロセスであるDllHost.exe( "COM Surrogate")のインスタンスがありました。 DllHostのコマンドラインを見ると、/ProcessIDパラメーターは、Shell32.dllの「ShellCreate ObjectTaskServer」としてレジストリにリストされているAppIDでした。どちらのプロセスも「NTAuthority/SYSTEM」として実行されました。

ある意味では、私が目にしたクラッシュは予想されていました。 DllHost.exeは信頼できないCOMオブジェクトを実行するように設計されています 。どうやらこれはユーザーセッション内でした。私のリンクは、insecureCOMオブジェクトをどれだけ保護するかがわからないことについてコメントしていません。 SYSTEMとして実行する場合の特定の問題。

4
sourcejedi

MSDNの関係者によると、これは「プロセスプロファイリングパフォーマンス分析プログラム(Windows Performance Counter Program)」と呼ばれるウィンドウの一部です。

https://translate.google.com/translate?hl=en&sl=zh-CN&u=https://social.msdn.Microsoft.com/Forums/en-US/ea5b2358-f440-4fb6-bec3- 029092ea3829/rundll32exe-localserver-%3Fforum%3D1761&prev = search

3
Jack Hadley