Windowsレジストリとは何ですか?どのように機能しますか?
その他 / / November 28, 2021
Windowsレジストリは、Windowsアプリケーションの構成、値、およびプロパティのコレクションでもあります。 単一の階層的な方法で編成および保存されるWindowsオペレーティングシステムとして リポジトリ。
新しいプログラムがWindowsシステムにインストールされるたびに、サイズ、バージョン、ストレージ内の場所などの属性を使用してWindowsレジストリにエントリが作成されます。
この情報はデータベースに保存されているため、オペレーティングシステムが使用されているリソースを認識しているだけでなく、他の アプリケーションは、特定のリソースまたはファイルが 共存する。
コンテンツ
- Windowsレジストリとは何ですか?どのように機能しますか?
- Windowsレジストリの歴史
- 他のオペレーティングシステムに対するWindowsレジストリの関連性
- Windowsレジストリの利点は何ですか?
- Windowsレジストリはどのように機能しますか?
- Windowsレジストリにアクセスする方法は?
- レジストリエディタを編集しても安全ですか?
- Windowsレジストリの構造を調べてみましょう
- Windowsレジストリの共通ルートキー
- 私。 HKEY_CLASSES_ROOT
- ii。 HKEY_LOCAL_MACHINE
- iii。 HKEY_CURRENT_CONFIG
- iv。 HKEY_CURRENT_USER
- v。 HKEY_USERS
- 結論
Windowsレジストリとは何ですか?どのように機能しますか?
Windowsレジストリは、実際にはWindowsの動作の中心です。 これは、中央レジストリのこのアプローチを使用する唯一のオペレーティングシステムです。 視覚化する場合、オペレーティングシステムのすべての部分が、起動シーケンスからファイル名の名前を変更するだけの簡単なものまで、Windowsレジストリと対話する必要があります。
簡単に言えば、それは図書館のカード目録のデータベースに似たデータベースであり、レジストリのエントリはカード目録に保存されているカードのスタックのようなものです。 レジストリキーはカードであり、レジストリ値はそのカードに書き込まれる重要な情報です。 Windowsオペレーティングシステムは、レジストリを使用して、システムとソフトウェアの制御と管理に使用される一連の情報を格納します。 これは、PCのハードウェア情報から、ユーザー設定やファイルの種類まで、何でもかまいません。 Windowsシステムに対して行うほとんどすべての形式の構成には、レジストリの編集が含まれます。
Windowsレジストリの歴史
Windowsの初期バージョンでは、アプリケーション開発者は実行可能ファイルと一緒に別の.iniファイル拡張子を含める必要がありました。 この.iniファイルには、特定の実行可能プログラムが正しく機能するために必要なすべての設定、プロパティ、および構成が含まれていました。 ただし、これは特定の情報の冗長性のために非常に非効率的であることが判明し、実行可能プログラムにセキュリティ上の脅威ももたらしました。 その結果、標準化され、一元化された、安全なテクノロジーの新しい実装が明らかに必要でした。
Windows 3.1の登場により、この需要の最低限のバージョンは、Windowsレジストリと呼ばれるすべてのアプリケーションとシステムに共通の中央データベースで満たされました。
ただし、アプリケーションは実行可能ファイルの特定の構成情報しか保存できないため、このツールは非常に制限されていました。 何年にもわたって、Windows95およびWindowsNTはこの基盤の上にさらに開発され、新しいバージョンのWindowsレジストリのコア機能として集中化が導入されました。
とはいえ、Windowsレジストリに情報を保存することは、ソフトウェア開発者にとってのオプションです。 したがって、ソフトウェアアプリケーション開発者がポータブルアプリケーションを作成する場合、情報を追加する必要はありません。 レジストリに、構成、プロパティ、および値を含むローカルストレージを作成して正常に実行できます 出荷されました。
他のオペレーティングシステムに対するWindowsレジストリの関連性
Windowsは、中央レジストリのこのアプローチを使用する唯一のオペレーティングシステムです。 視覚化する場合、オペレーティングシステムのすべての部分が、起動シーケンスからファイル名の名前変更まで、Windowsレジストリと直接対話する必要があります。
iOS、Mac OS、Android、Linuxなどの他のすべてのオペレーティングシステムは、オペレーティングシステムを構成し、オペレーティングシステムの動作を変更する方法として、引き続きテキストファイルを使用します。
ほとんどのLinuxバリアントでは、構成ファイルは.txt形式で保存され、これは すべての.txtファイルが重要なシステムと見なされるため、テキストファイルを操作する必要がある場合に問題が発生します ファイル。 したがって、これらのオペレーティングシステムでテキストファイルを開こうとすると、表示できなくなります。 これらのオペレーティングシステムは、次のようなすべてのシステムファイルがあるため、セキュリティ対策としてそれを隠そうとします。 ネットワークカード、ファイアウォール、オペレーティングシステム、グラフィカルユーザーインターフェイス、ビデオカードの構成 インターフェースなど に保存されます ASCII形式。
この問題を回避するために、macOSとiOSの両方で、実装することにより、テキストファイル拡張子に対してまったく異なるアプローチを展開しました。 .plist拡張子、これにはすべてのシステムとアプリケーション構成情報が含まれていますが、単一のレジストリを持つことの利点は、ファイル拡張子の単純な変更をはるかに上回ります。
Windowsレジストリの利点は何ですか?
オペレーティングシステムのすべての部分がWindowsレジストリと継続的に通信するため、非常に高速なストレージに保存する必要があります。 したがって、このデータベースは、非常に高速な読み取りと書き込み、および効率的なストレージ用に設計されています。
レジストリデータベースを開いてサイズを確認する場合、通常は15〜20メガバイトの間でホバリングするため、常ににロードされるのに十分な小ささになります。 羊 (ランダムアクセスメモリ)これは偶然にも、オペレーティングシステムで利用可能な最速のストレージです。
レジストリは常にメモリにロードする必要があるため、レジストリのサイズが大きいと、他のすべてのアプリケーションをスムーズに実行したり、まったく実行したりするのに十分なスペースが残りません。 これはオペレーティングシステムのパフォーマンスに悪影響を与えるため、Windowsレジストリは非常に効率的であるという主要な目的で設計されています。
同じデバイスを操作する複数のユーザーがいて、それらが使用するアプリケーションが多数ある場合は、 一般的に、同じアプリケーションを2回または複数回再インストールすると、かなりの費用が無駄になります。 ストレージ。 Windowsレジストリは、アプリケーション構成がさまざまなユーザー間で共有されるこれらのシナリオに優れています。
これにより、使用されるストレージの合計が削減されるだけでなく、ユーザーは1つのインタラクションポートからアプリケーションの構成を変更できるようになります。 また、ユーザーがすべてのローカルストレージの.iniファイルに手動で移動する必要がないため、時間を節約できます。
マルチユーザーシナリオは、エンタープライズセットアップでは非常に一般的です。ここでは、ユーザー特権アクセスが強く求められています。 すべての情報またはリソースをすべての人と共有できるわけではないため、プライバシーベースのユーザーアクセスの必要性は、一元化されたWindowsレジストリを介して簡単に実装されました。 ここで、ネットワーク管理者は、行われた作業に基づいて保留または許可する権利を留保します。 これにより、ネットワーク内の複数のデバイスのすべてのレジストリへのリモートアクセスと同時に更新を実行できるため、単一のデータベースが多用途になり、堅牢になりました。
Windowsレジストリはどのように機能しますか?
手を汚す前に、Windowsレジストリの基本的な要素を調べてみましょう。
Windowsレジストリは、と呼ばれる2つの基本要素で構成されています。 レジストリキー これはコンテナオブジェクトであるか、簡単に言えば、さまざまな種類のファイルが保存されているフォルダのようなものです。 レジストリ値 これは、任意の形式のファイルのような非コンテナオブジェクトです。
また、次のことも知っておく必要があります。Windowsレジストリキーの完全な制御または所有権を取得する方法
Windowsレジストリにアクセスする方法は?
レジストリエディタツールを使用してWindowsレジストリにアクセスし、構成できます。Microsoftには、Windowsオペレーティングシステムのすべてのバージョンに加えて、無料のレジストリ編集ユーティリティが含まれています。
このレジストリエディタには、「Regedit」と入力してアクセスできます。 コマンド・プロンプト または、スタートメニューの検索ボックスまたは実行ボックスに「Regedit」と入力するだけです。 このエディターは、Windowsレジストリーにアクセスするためのポータルであり、レジストリーを調べて変更するのに役立ちます。 レジストリは、Windowsインストールのディレクトリ内にあるさまざまなデータベースファイルによって使用される包括的な用語です。
レジストリエディタを編集しても安全ですか?
何をしているのかわからない場合は、レジストリ構成をいじくり回すのは危険です。 レジストリを編集するときは常に、正しい指示に従い、変更するように指示されたものだけを変更するようにしてください。
故意または誤ってWindowsレジストリ内の何かを削除すると、システムの構成が変更され、ブルースクリーンが発生したり、Windowsが起動しなくなったりする可能性があります。
したがって、一般的には Windowsレジストリのバックアップ 変更を加える前に。 あなたもすることができます システムの復元ポイントを作成する (レジストリを自動的にバックアップします)レジストリ設定を通常に戻す必要がある場合に使用できます。 しかし、あなたが言われたことだけなら、それは問題ではないはずです。 あなたがする方法を知る必要がある場合 Windowsレジストリを復元してから、このチュートリアル 簡単に行う方法を説明します。
Windowsレジストリの構造を調べてみましょう
オペレーティングシステムのアクセス専用に存在する、アクセスできないストレージの場所にユーザーがいます。
これらのキーは、システムの起動段階でRAMにロードされ、特定の時間間隔内、または特定のシステムレベルのイベントが発生したときに常に通信されます。
これらのレジストリキーの特定の部分がハードディスクに保存されます。 ハードディスクに保存されているこれらのキーは、ハイブと呼ばれます。 レジストリのこのセクションには、レジストリキー、レジストリサブキー、およびレジストリ値が含まれています。 ユーザーに付与された特権のレベルに応じて、ユーザーはこれらのキーの特定の部分にアクセスすることになります。
HKEYで始まるレジストリの階層の最上位にあるキーは、ハイブと見なされます。
エディタでは、すべてのキーを展開せずに表示すると、ハイブは画面の左側に配置されます。 これらは、フォルダとして表示されるレジストリキーです。
Windowsレジストリキーとそのサブキーの構造を調べてみましょう。
キー名の例–「HKEY_LOCAL_MACHINE \ SYSTEM \ Input \ Break \ loc_0804」
ここで、「loc_0804」はサブキーを指し、「Break」はサブキー「Input」を指し、HKEY_LOCAL_MACHINEルートキーのサブキー「SYSTEM」を指します。
Windowsレジストリの共通ルートキー
次の各キーは独自のハイブであり、最上位のキー内により多くのキーで構成されています。
私。 HKEY_CLASSES_ROOT
これは、ファイル拡張子の関連付け情報で構成されるWindowsレジストリのレジストリハイブです。 プログラム識別子 (ProgID)、インターフェイスID(IID)データ、および クラスID(CLSID).
このレジストリハイブHKEY_CLASSES_ROOTは、Windowsオペレーティングシステムで実行されるアクションまたはイベントのゲートウェイです。 Downloadsフォルダー内のいくつかのmp3ファイルにアクセスするとします。 オペレーティングシステムは、これを介してクエリを実行し、必要なアクションを実行します。
HKEY_CLASSES_ROOTハイブにアクセスした瞬間、このような膨大な拡張子ファイルのリストを見ると、本当に簡単に圧倒されます。 ただし、これらはウィンドウを流動的に機能させるレジストリキーです。
以下は、HKEY_CLASSES_ROOTハイブレジストリキーの例の一部です。
HKEY_CLASSES_ROOT \ .otf。 HKEY_CLASSES_ROOT \ .htc。 HKEY_CLASSES_ROOT \ .img。 HKEY_CLASSES_ROOT \ .mhtml。 HKEY_CLASSES_ROOT \ .png。 HKEY_CLASSES_ROOT \ .dll
写真などのファイルをダブルクリックして開くと、システムはクエリを送信します。 HKEY_CLASSES_ROOTこのようなファイルが要求されたときに何をすべきかについての指示が明確に示されている 与えられた。 そのため、システムは、要求された画像を表示するフォトビューアを開くことになります。
上記の例では、レジストリはHKEY_CLASSES_ROOT \ .jpgキーに保存されているキーを呼び出します。 HKEY_CLASSES_ROOTハイブは、両方のHKEY_LOCAL_MACHINEハイブにある集合データです。 (HKEY_LOCAL_MACHINE \ Software \ Classes)およびHKEY_CURRENT_USERハイブ (HKEY_CURRENT_USER \ Software \ Classes)。 したがって、レジストリキーが2つの場所に存在すると、競合が発生します。 したがって、HKEY_CURRENT_USER \ Software \ Classesにあるデータはで使用されます HKEY_ CLASSES_ ROOT. 画面左側のHKEY_CLASSESキーを開くとアクセスできます。
ii。 HKEY_LOCAL_MACHINE
これは、ローカルコンピューターに固有のすべての設定を格納するいくつかのレジストリハイブの1つです。 これは、保存されている情報をユーザーやプログラムが編集できないグローバルキーです。 このサブキーのグローバルな性質により、このストレージに格納されるすべての情報は、RAM上で継続的に実行される仮想コンテナの形式になります。 ソフトウェアユーザーの構成情報の大部分がインストールされており、Windowsオペレーティングシステム自体がHKEY_LOCAL_MACHINEで占有されています。 現在検出されているすべてのハードウェアは、HKEY_LOCAL_MACHINEハイブに保存されます。
また、次の方法も知っています。レジストリを検索するときにRegedit.exeがクラッシュする問題を修正
このレジストリキーはさらに7つのサブキーに分けられます。
1. SAM (セキュリティアカウントマネージャー)–ユーザーのパスワードをセキュリティで保護された形式(LMハッシュおよびNTLMハッシュ)で保存するレジストリキーファイルです。 ハッシュ関数は、ユーザーのアカウント情報を保護するために使用される暗号化の形式です。
これは、システムのC:\ WINDOWS \ system32 \ configにあるロックされたファイルであり、オペレーティングシステムの実行中に移動またはコピーすることはできません。
Windowsは、Security Accounts Managerレジストリキーファイルを使用して、ユーザーがWindowsアカウントにログインしているときにユーザーを認証します。 ユーザーがログインするたびに、Windowsは一連のハッシュアルゴリズムを使用して、入力されたパスワードのハッシュを計算します。 入力したパスワードのハッシュが内部のパスワードハッシュと等しい場合 SAMレジストリファイル、ユーザーは自分のアカウントにアクセスできます。 これは、ほとんどのハッカーが攻撃を実行しているときに標的とするファイルでもあります。
2. 安全 (管理者以外はアクセスできません)–このレジストリキーは、現在のシステムにログインしている管理ユーザーのアカウントに対してローカルです。 システムがいずれかの組織によって管理されている場合、ユーザーに管理アクセスが明示的に付与されていない限り、ユーザーはこのファイルにアクセスできません。 管理者権限なしでこのファイルを開くと、空白になります。 これで、システムが管理ネットワークに接続されている場合、このキーはデフォルトで、組織によって確立され、アクティブに管理されているローカルシステムのセキュリティプロファイルになります。 このキーはSAMにリンクされているため、認証が成功すると、ユーザーの特権レベルに応じて、さまざまなローカルおよび グループポリシー 適用されます。
3. システム (重要なブートプロセスおよびその他のカーネル機能)–このサブキーには、次のようなシステム全体に関連する重要な情報が含まれています。 コンピュータ名、現在マウントされているハードウェアデバイス、ファイルシステム、および特定のイベントで実行できる自動化されたアクションの種類、たとえば がある 死のブルースクリーン CPUの過熱により、コンピュータがそのようなイベントの取り込みを自動的に開始する論理的な手順があります。 このファイルには、十分な管理者権限を持つユーザーのみがアクセスできます。 システムが起動すると、ここですべてのログが動的に保存され、読み取られます。 コントロールセットと呼ばれる代替構成などのさまざまなシステムパラメータ。
4. ソフトウェア プラグアンドプレイドライバーなどのすべてのサードパーティソフトウェア構成は、ここに保存されます。 このサブキーには、さまざまなアプリケーションやシステムインストーラーによって変更できる既存のハードウェアプロファイルにリンクされたソフトウェアとWindowsの設定が含まれています。 ソフトウェア開発者は、ソフトウェアの使用中にユーザーがアクセスする情報を制限または許可することができます。これは、強制する「ポリシー」サブキーを使用して設定できます。 特定のシステムを認証、承認、または禁止するために使用されるシステム証明書を含む、アプリケーションおよびシステムサービスの一般的な使用ポリシーまたは サービス。
5. ハードウェア これは、システムの起動中に動的に作成されるサブキーです
6. コンポーネント システム全体のデバイス固有のコンポーネント構成情報は、ここにあります。
7. BCD.dat (システムパーティションの\ bootフォルダ内)これは、システムがレジストリをRAMにロードすることにより、システムのブートシーケンス中に読み取り、実行を開始する重要なファイルです。
iii。 HKEY_CURRENT_CONFIG
このサブキーが存在する主な理由は、ビデオとネットワーク設定を保存することです。 これは、解像度、リフレッシュレート、アスペクト比など、ビデオカードに関連するすべての情報である可能性があります。 だけでなく、ネットワーク
また、Windowsレジストリの一部であり、現在使用されているハードウェアプロファイルに関する情報を格納するレジストリハイブでもあります。 HKEY_CURRENT_CONFIGは、実際にはHKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ HardwareProfiles \ Currentregistryキーへのポインターです。これは HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ HardwareProfilesの下にリストされている現在アクティブなハードウェアプロファイルへの単なるポインタ 鍵。
したがって、HKEY_ CURRENT_CONFIGは、現在のユーザーのハードウェアプロファイルの構成を表示および変更するのに役立ちます。 これらはすべて同じであるため、上記の3つの場所のいずれかで管理者として実行できます。
iv。 HKEY_CURRENT_USER
現在ログインしているユーザーに固有のWindowsおよびソフトウェアのストア設定と構成情報を含むレジストリハイブの一部。 たとえば、レジストリキーのさまざまなレジストリ値は、HKEY_CURRENT_USERハイブコントロールのユーザーレベルにあります。 キーボードレイアウト、インストールされているプリンタ、デスクトップの壁紙、ディスプレイ設定、マップされたネットワークドライブ、 もっと。
コントロールパネルのさまざまなアプレット内で構成する設定の多くは、HKEY_CURRENT_USERレジストリハイブに保存されます。 HKEY_CURRENT_USERハイブはユーザー固有であるため、同じコンピューター上で、そこに含まれるキーと値はユーザーごとに異なります。 これは、グローバルな他のほとんどのレジストリハイブとは異なり、Windowsのすべてのユーザーで同じ情報を保持します。
レジストリエディタの画面の左側をクリックすると、HKEY_CURRENT_USERにアクセスできます。 セキュリティ対策として、HKEY_CURRENT_USERに格納されている情報は、セキュリティ識別子としてHKEY_USERSハイブの下に配置されているキーへのポインタにすぎません。 いずれかの領域に加えられた変更は、すぐに有効になります。
v。 HKEY_USERS
これには、各ユーザープロファイルのHKEY_CURRENT_USERキーに対応するサブキーが含まれます。 これは、Windowsレジストリにある多くのレジストリハイブの1つでもあります。
この種類の情報がHKEY_USERSの下に保存されているデバイスをアクティブに使用しているすべてのユーザーについて、すべてのユーザー固有の構成データがここに記録されます。 特定のユーザーに対応するシステムに保存されているすべてのユーザー固有の情報は、HKEY_USERSハイブの下に保存され、を利用してユーザーを一意に識別できます。 セキュリティ識別子またはSID これは、ユーザーが行ったすべての構成変更をログに記録します。
システムによって付与された特権に応じて、アカウントがHKEY_USERSハイブに存在するこれらすべてのアクティブユーザー 管理者は、プリンタ、ローカルネットワーク、ローカルストレージドライブ、デスクトップなどの共有リソースにアクセスできます。 背景など 彼らのアカウントには、現在のユーザーのSIDの下に保存されている特定のレジストリキーと対応するレジストリ値があります。
フォレンジック情報に関しては、各SIDは、ユーザーのアカウントで実行されるすべてのイベントとアクションのログを作成するため、すべてのユーザーに関する膨大な量のデータを保存します。 これには、ユーザーの名前、ユーザーがコンピューターにログオンした回数、日付、および 最後のログインの時刻、最後のパスワードが変更された日時、失敗したログインの数、および すぐ。 さらに、Windowsがログインプロンプトに読み込まれて表示されるときのレジストリ情報も含まれています。
おすすめされた:修正レジストリエディタが機能しなくなった
デフォルトユーザーのレジストリキーは、プロファイル内のファイルntuser.datに保存されます。これは、デフォルトユーザーの設定を追加するためにregeditを使用してハイブとしてロードする必要があります。
Windowsレジストリで見つかると予想されるデータの種類
上記のすべてのキーとサブキーには、構成、値、およびプロパティがいずれかのに保存されます。 次のデータ型、通常、ウィンドウ全体を構成するのは次のデータ型の組み合わせです レジストリ。
- 世界のほとんどの書記体系で表現されるテキストの一貫したエンコード、表現、および処理のためのコンピューティング業界標準であるUnicodeなどの文字列値。
- バイナリデータ
- 符号なし整数
- シンボリックリンク
- 複数の文字列値
- リソースリスト(プラグアンドプレイハードウェア)
- リソース記述子(プラグアンドプレイハードウェア)
- 64ビット整数
結論
Windowsレジストリは革命に他なりません。これは、テキストファイルをファイル拡張子として使用して保存することによって生じるセキュリティリスクを最小限に抑えるだけではありません。 システムとアプリケーションの構成だけでなく、アプリケーション開発者がソフトウェアに同梱する必要のある構成ファイルまたは.iniファイルの数も削減されました。 製品。 システムとシステム上で実行されるソフトウェアの両方によって頻繁にアクセスされるデータを格納するための集中リポジトリを持つことの利点は非常に明白です。
使いやすさだけでなく、さまざまなカスタマイズや設定に1か所でアクセスできるため、さまざまなソフトウェア開発者がWindowsをデスクトップアプリケーションに適したプラットフォームにしています。 これは、Windowsで利用可能なデスクトップソフトウェアアプリケーションの膨大な量をAppleのmacOSと比較すると非常に明白です。 要約すると、Windowsレジストリのしくみとそのファイル構造、および さまざまなレジストリキー構成の重要性、およびレジストリエディタを使用して 完全な効果。