Windows レジストリとその仕組みとは?
Windows レジストリは、構成、値、 Windows アプリケーションのプロパティと、単一のリポジトリに階層的に編成および格納されている Windows オペレーティング システム。
新しいプログラムが Windows システムにインストールされるたびに、サイズ、バージョン、ストレージ内の場所などの属性を含むエントリが Windows レジストリに作成されます。
この情報はデータベースに保存されているため、使用されているリソースをオペレーティング システムが認識しているだけでなく、他のアプリケーションもこの情報から利益を得ることができます。特定のリソースまたはファイルが共存する場合に発生する可能性のある競合。
Windows レジストリとその仕組みは?
Windows レジストリは、Windows の動作の中心です。これは、中央レジストリのこのアプローチを使用する唯一のオペレーティング システムです。視覚化すると、オペレーティング システムのすべての部分が、起動シーケンスからファイル名の名前変更のような単純なことまで、Windows レジストリとやり取りする必要があります。
簡単に言えば、これは図書館のカード カタログに似た単なるデータベースであり、レジストリのエントリはカード カタログに格納されたカードのスタックのようなものです。レジストリ キーはカードであり、レジストリ値はそのカードに書かれた重要な情報です。 Windows オペレーティング システムはレジストリを使用して、システムとソフトウェアの制御と管理に使用される一連の情報を保存します。これは、PC のハードウェア情報から、ユーザーの設定やファイルの種類まで、あらゆるものです。 Windows システムに対して行う構成のほとんどすべての形式には、レジストリの編集が含まれます。
Windows レジストリの歴史
Windows の初期バージョンでは、アプリケーション開発者は、実行可能ファイルと共に別の .ini ファイル拡張子を含める必要がありました。この .ini ファイルには、特定の実行可能プログラムが正しく機能するために必要なすべての設定、プロパティ、および構成が含まれていました。ただし、これは特定の情報の冗長性のために非常に非効率的であることが判明し、実行可能プログラムに対するセキュリティ上の脅威にもなりました。その結果、標準化され、一元化された安全なテクノロジーの新しい実装が明らかに必要でした.
Windows 3.1 の登場により、Windows レジストリと呼ばれるすべてのアプリケーションとシステムに共通の中央データベースによって、この要求の最低限のバージョンが満たされました。
ただし、アプリケーションは実行可能ファイルの特定の構成情報しか保存できないため、このツールには非常に制限がありました。何年にもわたって、Windows 95 と Windows NT はこの基盤に基づいてさらに発展し、Windows レジストリの新しいバージョンのコア機能として集中化を導入しました。
とはいえ、Windows レジストリに情報を保存することは、ソフトウェア開発者にとってオプションです。そのため、ソフトウェア アプリケーション開発者が移植可能なアプリケーションを作成する場合、レジストリに情報を追加する必要はなく、構成、プロパティ、および値を含むローカル ストレージを作成して正常に出荷できます。
他のオペレーティング システムに対する Windows レジストリの関連性
Windows は、中央レジストリのこのアプローチを使用する唯一のオペレーティング システムです。視覚化すると、オペレーティング システムのすべての部分が、起動シーケンスからファイル名の名前変更まで、Windows レジストリとやり取りする必要があります。
iOS、Mac OS、Android、Linux などの他のすべてのオペレーティング システムは、オペレーティング システムを構成し、オペレーティング システムの動作を変更する方法として、引き続きテキスト ファイルを使用します。
ほとんどの Linux バリアントでは、構成ファイルは .txt 形式で保存されます。これは、すべての .txt ファイルがテキスト ファイルで作業する必要がある場合に問題になります。重要なシステム ファイルと見なされます。したがって、これらのオペレーティング システムでテキスト ファイルを開こうとしても、表示することはできません。これらのオペレーティング システムは、ネットワーク カード、ファイアウォール、オペレーティング システム、グラフィカル ユーザー インターフェイス、ビデオ カード インターフェイスなどの構成などのすべてのシステム ファイルが ASCII 形式で保存されるため、セキュリティ対策としてそれを隠そうとします。
この問題を回避するために、macOS と iOS の両方で、.plist 拡張子を実装することにより、テキスト ファイル拡張子に対してまったく異なるアプローチを展開しました。アプリケーションの構成情報を保持しますが、単一のレジストリを持つことの利点は、ファイル拡張子の単純な変更よりもはるかに重要です。
Windows レジストリの利点は何ですか?
オペレーティング システムのすべての部分が Windows レジストリと継続的に通信するため、非常に高速なストレージに保存する必要があります。したがって、このデータベースは、非常に高速な読み取りと書き込み、および効率的なストレージのために設計されました。
レジストリ データベースを開いてサイズを確認すると、通常は 15 ~ 20 メガバイトの間で推移し、常に RAM にロードできるほど小さくなります (ランダムアクセス メモリ) は、偶然にも、オペレーティング システムで利用可能な最速のストレージです。
レジストリは常にメモリにロードする必要があるため、レジストリのサイズが大きいと、他のすべてのアプリケーションをスムーズに実行したり実行したりするための十分なスペースが確保されません。まったく。これはオペレーティング システムのパフォーマンスに悪影響を与えるため、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 レジストリの一般的なルート キー
次のキーはそれぞれ個別のハイブであり、最上位のキー内に複数のキーが含まれています。
i. HKEY_CLASSES_ROOT
これは、ファイル拡張子の関連付け情報、プログラム識別子 (ProgID)、インターフェイス ID (IID) データ、およびクラス ID (CLSID) で構成される Windows レジストリのレジストリ ハイブです。
このレジストリ ハイブ HKEY_CLASSES_ROOT は、Windows オペレーティング システムで発生するアクションまたはイベントのゲートウェイです。 Downloads フォルダー内のいくつかの mp3 ファイルにアクセスしたいとします。オペレーティング システムはこれを介してクエリを実行し、必要なアクションを実行します。
HKEY_CLASSES_ROOT ハイブにアクセスした瞬間、膨大な数の拡張ファイルのリストを見て圧倒されてしまいます。ただし、これらはまさに Windows をスムーズに機能させるレジストリ キーです
以下は、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.サム (Security Accounts Manager) – ユーザーのパスワードを安全な形式 (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 は、現在のユーザーのハードウェア プロファイルの構成を表示および変更するのに役立ちます。これは、上記の 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 レジストリで検出できるデータの種類
上記のすべてのキーとサブキーには、構成、値、およびプロパティが次のデータ型のいずれかに保存されます。通常、次のデータの組み合わせです。 Windows レジストリ全体を構成する型です。
- 世界のほとんどの書記体系で表現されるテキストの一貫したエンコード、表現、および処理のためのコンピューティング業界標準である Unicode などの文字列値。
- バイナリ データ
- 符号なし整数
- シンボリック リンク
- 複数文字列の値
- リソース リスト (プラグ アンド プレイ ハードウェア)
- リソース記述子 (プラグ アンド プレイ ハードウェア)
- 64 ビット整数
結論
Windows レジストリはまさに革新的であり、テキスト ファイルをファイル拡張子として使用してシステムとアプリケーションの構成を保存することによるセキュリティ リスクを最小限に抑えただけでなく、アプリケーション開発者がソフトウェア製品に同梱する必要のある構成ファイルまたは .ini ファイルの数を減らしました。システムとシステム上で実行されるソフトウェアの両方が頻繁にアクセスするデータを格納するための中央リポジトリを持つことの利点は非常に明白です。
Windows は、使いやすさだけでなく、さまざまなカスタマイズや設定に 1 か所からアクセスできるため、さまざまなソフトウェア開発者がデスクトップ アプリケーションのプラットフォームとして好んで使用しています。 Windows の利用可能なデスクトップ ソフトウェア アプリケーションの膨大な量を Apple の macOS と比較すると、これは非常に明白です。要約すると、Windows レジストリの仕組みとそのファイル構造、さまざまなレジストリ キー構成の重要性、およびレジストリ エディタを完全に使用する方法について説明しました。
-
Windows レジストリをバックアップおよび復元する方法
Windows レジストリの調整を考えている場合は、まず適切なバックアップを作成することが重要です。 Windows コンピューターの動作にとって重要な部分であるため、Windows レジストリが損傷すると、ワークフローに重大な障害が発生する可能性があります。 したがって、レジストリのバックアップは、これらの問題を回避するためのフェールセーフ オプションです。問題が発生した場合は、バックアップが既にあるので、これらのバックアップからファイルを復元することで、問題を安全に解決できます。 この記事では、Windows レジストリのバックアップを作成する方法を説明しました。その後、復元のプロセス
-
Windows 10 でレジストリ エディタへのアクセスを無効にする方法
この記事では、Windows 10 のレジストリ エディターを無効にする手順について説明します。Windows レジストリはコンピューターのすべての設定の階層データベースであることをご存知のように、この素晴らしいユーティリティを無効にすることは賢明ではありません。ただし、レジストリを無効にすると、レジストリは通常どおり機能し続けますが、誰も (あなたまたは非常に技術に精通した人を除いて) PC にアクセスして、あらゆる種類の不正な変更を行うことができなくなります. Windows レジストリをブロックするのは簡単な作業ではありません。この記事を最後まで読み、手順を完全に理解している場合は、