家studyをつづって

IT技術やセキュリティで勉強したことをつづっています。

Windowsのプロセス

概要

Widnowsには様々なプロセスが動作しています。

f:id:iestudy:20210419133347p:plain

tasklist実行例

 

この記事ではプロセスの内容についてまとめます。

 

 

 

プロセスとは?

プロセスはメモリ上に作られたプログラムの実体です。Windowsのプロセスは、プログラムの実行ファイルからメモリ上に実体化されたインスタンスのこととなります。
そのため、一つのプログラムに対して複数のプロセスが存在する場合もあります。
例:「メモ帳」を二つ起動した際にそれぞれ別々のプロセスになる等

また、各プロセスはそれぞれ異なるデータを管理します。各プロセスの状態をコンテキストと呼びます。

xtech.nikkei.com

 

 

プロセスの一覧

RuntimeBroker.exeWindowsの標準アプリ(UWP)を起動すると同時に実行される アプリの実行状況を監視しているアプリケーション https://1-notes.com/windows10-runtimebroker/

プロセス名 役割
システム関係
csrss.exe

csrss(Client/Server Runtime SubSystem)は、
ソフトウェアとカーネル間の通信に使われているプロセス

「csrss.exe」のCPU/メモリ使用率が高い/重い時の対処法 – Windows10

ユーザーセッション(ユーザーごとのプログラム実行環境)を
準備するためのプロセス 

Windows OSでよく見かける重いプロセス、ベスト10:Tech TIPS - @IT

wininit.exe

Wininit.exeは、セッション0内で主要な
バックグラウンドプロセスを開始します。
サービスコントロールマネージャー(services.exe)、
ローカルセキュリティ機関プロセス(lsass.exe)、
およびCredentialGuardが有効になっているシステムの
lsaiso.exeを開始します。
Windows 10より前は、
ローカルセッションマネージャープロセス(lsm.exe)もwininit.exeによって開始されていたことに注意してください。 Windows 10以降、その機能はsvchost.exeによってホストされるサービスDLL(lsm.dll)に移動されました。 

https://digital-forensics.sans.org/media/DFPS_FOR508_v4.6_4-19.pdf

services.exe サービスコントロールマネージャーは
ユーザーとの対話なしにサービス(ドライバサービスも含む)の起動や停止、状態の監視を行う「サービスを制御するためのサービス」であり、Windows の起動時に Winlogon プロセス(winlogon.exe)によって起動されます。

サービスコントロールマネージャー(services.exe)とは - Windowsの核心

svchost.exe サービスホストはサービスコントロールマネージャー(services.exe)の子プロセスとして生成される。
さまざまなサービスをホストする「共有サービスプロセス」としての役割を持っている。

Windows 2000 より前は、サービスは1つ1つが実行ファイル(EXE)でした。
しかし、1つのサービスがプロセス単位で実行されている場合、サービスが増えれば増えるだけシステムのリソースを多く消費し、リソースを圧迫します。 そのため Microsoft は Windows のサービスをリソース面や再利用性のために EXE ではなく DLL ファイルとして移行し始めました。
しかし、Windows は直接 DLL ファイルを実行できないため、(DLL ファイル自身は実行できません)DLL をロードするためのプロセスが必要となり、それがサービスホストです。 従って、サービスホストは Windows サービスの DLL 化(サービス DLL)のために必要になったプロセスと言えます。 

サービスホスト(svchost.exe)とは - Windowsの核心

fontdrvhost.exe Windowsのシステムでフォントの表示や拡大・縮小といった動作を制御するドライバ 

fontdrvhost.exe(Usermode Font Driver Host)とは?重い場合の対処法! | Aprico

sihost.exe WindowsのスタートメニューやCortana・Microsoft Edgeなどのアプリケーションの制御を行っているプロセス 

Shell Infrastructure Hostとは?停止しても大丈夫?重い場合の対処法! | Aprico

rundll32.exe DLLの中にある関数を呼び出すときに使う実行ファイル 

rundll32.exe user32.dll, LockWorkStation・・・画面のロックコマンド

https://wa3.i-3-i.info/word13321.html

SearchProtocolHost.exe Windows Searchで使うインデックスを作成するプログラム 

https://wa3.i-3-i.info/word13313.html

RuntimeBroker.exe Windowsの標準アプリ(UWP)を起動すると同時に実行される
アプリの実行状況を監視しているアプリケーション 

RuntimeBroker.exe(Runtime Broker)とは、複数起動の理由やCPU100%になる原因 | ONE NOTES

taskhostw.exe svchostとtaskhostの違い(図1)

Svchostは、複数のサービスと実行可能イメージをホストします。複数のインスタンスでも実行されています。それぞれが1つ以上のサービスをホストしています。これは、リソース消費を削減するために多数のサービスがプロセスを共有できる、いわゆる共有サービスプロセスの実装に不可欠です。 Taskhostは、スケジュールされたタスクの実行を担当するタスクスケジュールサービスです。

taskhost vs svchost

lsaiso.exe Isolated Local Security Authentication Windows Defender
Credential Guardが実行されていると起動されるプロセス

Windows Defender Credential Guard の管理 (Windows 10) - Microsoft 365 Security | Microsoft Docs

ログオン関係
smss.exe Windowsのセッション管理を行うプロセス
Session Manager Sub Systemの略
Systemから起動されwinlogon.exeを起動する
System→smss.exe→winlogon.exe
上記より、Windowsログオンとは、
Systemプロセスが整備したOS環境を利用するための手続きと見れる。
winlogon.exe

ログオン、ログオフ処理のプロセス

システムへの対話的ログオンのステップが複雑なのは、
そこに複数のコンポーネントが絡むためである。
ログオンはWinlogn単一で終わるのではなく、
まずLogonUI.exeを通じて資格情報を取得し、
次にLsass.exeを通じて実際に認証を行う。

security/7.10.2_ユーザーログオンのステップ.MD at master · windows-internals-guide/security · GitHub

lsass.exe Local Security Authentication Subsystem Service
ユーザーの認証、ローカルセキュリティポリシーの確認、
セキュリティイベントログへの記録を行う

Local Security Authority Subsystem Service - セキュリティ

LogonUI.exe Windows Logon User Interface Host
ログイン画面等、インターフェースのプログラム
Microsoft.AAD.BrokerPlugIn WindowsのSSO関連のプログラム 

IdM実験室: [Windows10]デバイス&サービス間のシングルサインオンの仕組み

wlrmdr.exe Windowsログオンリマインダーと呼ばれるプロセス 

wlrmdr.exeとは何ですか?

製品特有
IgfxEM.exe Intel製のグラフィックスチップを制御するプログラム 

igfxEM moduleとは何か

qlbcontroller.exe HP HotKey Support関連のプログラム 

hpのノートパソコンを使用しています。1ヶ月ほど前からパソコン... - Yahoo!知恵袋

qlbcontroller.exe - qlbcontroller.exe とは?

SynTPEnh.exe SynapticsのSynaptics Pointing Deviceのソフトウェアコンポーネント 

SynTPEnh.exeは何ですか?

reader_sl.exe Adobe Reader Speed Launchの実行ファイル 

https://wa3.i-3-i.info/word13479.html

Office製品関係
OsfInstaller.exe Office 2016関連のプログラム 

Question - What is OsfInstaller.exe? Causes high CPU load. OK to uninstall it? | AnandTech Forums: Technology, Hardware, Software, and Deals

 ※随時更新

 

図1

f:id:iestudy:20210421101259p:plain

svchostとtaskhostwの説明

 

余談:System32について

プロセスのもととなる実行ファイルは、大体が「System32」というフォルダに配置されています。 
System32は、各種ソフトを動かすためのファイルやレジストリなど、Windowsの動作に必要なファイルが格納されています。
また、似たようなフォルダとして「SysWOW64」というフォルダがあります。
使われ方は、「SysWOW64」には32bit用のファイルが、「System32」フォルダには64bit用のファイルが格納されるという違いがあります。

余談:プロセスツリーの表示

プロセス間の関係をプロセスツリーといいます。
プロセスツリーはMaicrosoftが公開しているツール等で表示することができます。

実行手順

  1. 上記サイトより「PsTools」をダウンロード
  2. ダウンロードしたファイルを解凍し、コマンドプロンプトより「pslist64.exe」を実行
    ※「-t」をつけることでツリー表示

 

tarenagashi.hatenablog.jp

 

参考にさせていただいたサイト

貴重な情報をありがとうございます

Windowsユーザーのためのワンポイント・レッスン 第62回 | 日経クロステック(xTECH)

System32とは?System32についてまとめ!【エラー/原因/削除】 | Aprico

第1回 Windowsのプロセスを詳しく探る | 日経クロステック(xTECH)