Windowsレジストリ(Registry)は、Windowsアプリケーションの構成、値、およびプロパティのコレクションであり、単一のリポジトリに階層的に編成および保存されているWindowsオペレーティングシステムです。
新しいプログラムがWindows(Windows)システムにインストールされるたびに、サイズ、バージョン、ストレージ内の場所などの属性を使用してWindowsレジストリ(Windows Registry)にエントリが作成されます。
この情報はデータベースに保存されているため、オペレーティングシステムは使用されているリソースを認識しているだけでなく、特定のリソースまたはファイルが共同で使用された場合に発生する可能性のある競合を認識しているため、他のアプリケーションもこの情報の恩恵を受けることができます。存在。
Windowsレジストリ(Windows Registry)とは何ですか?どのよう(How)に機能しますか?
Windowsレジストリ(Windows Registry)は、実際にはWindowsの動作の中心です。これは、中央レジストリのこのアプローチを使用する唯一のオペレーティングシステムです。視覚化する場合、オペレーティングシステムのすべての部分が、起動シーケンスからファイル名の名前を変更するだけの簡単なものまで、 Windowsレジストリと対話する必要があります。(Windows Registry)
簡単(Simply)に言えば、それは図書館のカード目録のデータベースに似たデータベースであり、レジストリのエントリはカード目録に保存されているカードのスタックのようなものです。レジストリキーはカードであり、レジストリ値はそのカードに書き込まれる重要な情報です。Windowsオペレーティングシステムは、レジストリを使用して、システムとソフトウェアの制御と管理に使用される一連の情報を格納します。これは、PCのハードウェア情報から、ユーザー設定やファイルの種類まで、何でもかまいません。Windowsシステムに対して行うほとんど(Almost)すべての形式の構成には、レジストリの編集が含まれます。
Windowsレジストリの歴史
Windowsの初期バージョンでは、アプリケーション開発者は実行可能ファイルと一緒に別の.iniファイル拡張子を含める必要がありました。この.iniファイルには、特定の実行可能プログラムが正しく機能するために必要なすべての設定、プロパティ、および構成が含まれています。ただし、これは特定の情報の冗長性のために非常に非効率的であることが判明し、実行可能プログラムにセキュリティ上の脅威をもたらしました。その結果、標準化され、一元化された、安全なテクノロジーの新しい実装が明らかに必要でした。
Windows 3.1の登場により、この要求の最低限のバージョンは、Windowsレジストリ(Windows Registry)と呼ばれるすべてのアプリケーションとシステムに共通の中央データベースで満たされました。
ただし、アプリケーションは実行可能ファイルの特定の構成情報しか保存できないため、このツールは非常に制限されていました。何年にもわたって、Windows95とWindowsNTはこの基盤の上にさらに開発され、新しいバージョンのWindowsレジストリ(Windows Registry)のコア機能として集中化が導入されました。
とはいえ、 Windowsレジストリ(Windows Registry)に情報を保存することは、ソフトウェア開発者にとってのオプションです。したがって、ソフトウェアアプリケーション開発者がポータブルアプリケーションを作成する場合、レジストリに情報を追加する必要はありません。構成、プロパティ、および値を含むローカルストレージを作成して、正常に出荷できます。
他のオペレーティングシステムに対するWindowsレジストリ(Windows Registry)の関連性
Windowsは、中央レジストリのこのアプローチを使用する唯一のオペレーティングシステムです。視覚化する場合、オペレーティングシステムのすべての部分が、起動シーケンスからファイル名の名前変更まで、Windowsレジストリと直接対話する必要があります。(Windows Registry)
iOS、 Mac OS(Mac OS)、Android、Linuxなどの他のすべてのオペレーティングシステムは、オペレーティングシステムを構成し、オペレーティングシステムの動作を変更する方法として、引き続きテキストファイルを使用します。
ほとんどのLinuxバリアントでは、構成ファイルは.txt形式で保存されます。これは、すべての(.txt).txtファイルが重要なシステムファイルと見なされるため、テキストファイルを操作する必要がある場合に問題になります。したがって、これらのオペレーティングシステムでテキストファイルを開こうとすると、表示できなくなります。これらのオペレーティングシステムは、ネットワークカード、ファイアウォール、オペレーティングシステム、グラフィカルユーザーインターフェイス、ビデオカードインターフェイスなどのすべてのシステムファイルがASCII形式で保存されるため、セキュリティ対策として非表示にしようとします。(ASCII format.)
この問題を回避するために、macOSとiOSの両方で、.plist拡張子(.plist extension)を実装することにより、テキストファイル拡張子にまったく異なるアプローチを導入しました。ファイル拡張子の単純な変更よりも重要です。
Windowsレジストリ(Windows Registry)の利点は何ですか?
オペレーティングシステムのすべての部分が(Every)Windowsレジストリ(Windows Registry)と継続的に通信するため、非常に高速なストレージに保存する必要があります。したがって(Hence)、このデータベースは、非常に高速な読み取りと書き込み、および効率的なストレージ用に設計されています。
レジストリデータベースを開いてサイズを確認する場合、通常は15〜20メガバイトの間でホバリングするため、RAM(ランダムアクセスメモリ(Random Access Memory))に常にロードできるほど小さくなります。これは、偶然にも利用可能な最速のストレージです。オペレーティングシステム。
レジストリは常にメモリにロードする必要があるため、レジストリのサイズが大きいと、他のすべてのアプリケーションをスムーズに実行したり、まったく実行したりするのに十分なスペースが残りません。これはオペレーティングシステムのパフォーマンスに悪影響を与えるため、Windowsレジストリ(Windows Registry)は非常に効率的であるという主要な目的で設計されています。
同じデバイスを操作する複数のユーザーがいて、それらが使用するアプリケーションが多数ある場合、同じアプリケーションを2回または複数回再インストールすると、かなり高価なストレージが無駄になります。Windowsレジストリは、アプリケーション構成がさまざまなユーザー間で共有されるこれらのシナリオに優れています。
これにより、使用されるストレージの合計が減るだけでなく、ユーザーは1つのインタラクションポートからアプリケーションの構成を変更できるようになります。また、ユーザーがすべてのローカルストレージの.ini(.ini)ファイルに手動で移動する必要がないため、時間を節約できます。
マルチユーザー(Multi-User)シナリオは、エンタープライズセットアップでは非常に一般的です。ここでは、ユーザー特権アクセスが強く求められています。すべての情報またはリソースをすべての人と共有できるわけではないため、プライバシーベースのユーザーアクセスの必要性は、一元化されたWindowsレジストリを介して簡単に実装されました。ここで、ネットワーク管理者は、行われた作業に基づいて保留または許可する権利を留保します。これにより、ネットワーク内の複数のデバイスのすべてのレジストリへのリモートアクセスと同時に更新を実行できるため、単一のデータベースが多用途になり、堅牢になりました。
Windowsレジストリはどのように機能しますか?
手を汚す前に、 Windowsレジストリ(Windows Registry)の基本的な要素を調べてみましょう。
Windowsレジストリ(Windows Registry)は、コンテナオブジェクトであるレジストリキー(Registry Key)と呼ばれる2つの基本要素で構成されています。つまり、さまざまな種類のファイルが格納されているフォルダのようなものと、ファイルのような非コンテナオブジェクトであるレジストリ値(Registry Values)です。任意の形式にすることができます。
また、次のことも知っておく必要があり(You should also know:) ます。Windowsレジストリキーを完全に制御または所有する方法(How to Take Full Control or Ownership of Windows Registry Keys)
Windowsレジストリにアクセスする方法は?
レジストリエディタ(Registry Editor)ツールを使用してWindowsレジストリ(Windows Registry)にアクセスし、構成できます。Microsoftには、 (Microsoft)Windowsオペレーティングシステム(Windows Operating System)のすべてのバージョンに加えて、無料のレジストリ編集ユーティリティが含まれています。
このレジストリエディタ(Registry Editor)にアクセスするには、コマンドプロンプトで「Regedit」と入力するか、 (Command Prompt)[スタート(Start)]メニューの検索ボックスまたは実行ボックスに「Regedit」と入力します。このエディターは、Windowsレジストリーにアクセスするためのポータルであり、レジストリーを調べて変更するのに役立ちます。レジストリは、Windowsインストールのディレクトリ内にあるさまざまなデータベースファイルによって使用される総称です。
レジストリエディタを編集しても安全ですか?(Is it Safe to edit Registry Editor?)
何をしているのかわからない場合は、レジストリ(Registry)構成をいじくり回すのは危険です。レジストリ(Registry)を編集するときは常に、正しい指示に従い、変更するように指示されたものだけを変更するようにしてください。
故意または誤ってWindowsレジストリ(Windows Registry)内の何かを削除すると、システムの構成が変更され、ブルースクリーン(Blue Screen)が発生(Death)したり、Windowsが起動しなくなったりする可能性があります。
したがって、変更を加える前にWindowsレジストリをバックアップ(backup Windows Registry)することをお勧めします。レジストリ(Registry)設定を通常に戻す必要がある場合に使用できるシステムの復元ポイント((create a system restore point)レジストリ(Registry)を自動的にバックアップする)を作成することもできます。しかし、あなたが言われたことだけなら、それは問題ではないはずです。Windowsレジストリ(restore Windows Registry then this tutorial)を復元する方法を知る必要がある場合は、このチュートリアルで簡単に復元する方法を説明します。
Windowsレジストリ(Windows Registry)の構造を調べてみましょう
オペレーティングシステムのアクセス専用に存在するアクセスできないストレージの場所にユーザーがいます。
これらのキーは、システムの起動段階で(Keys)RAMにロードされ、特定の時間間隔内、または特定のシステムレベルのイベントが発生したときに常に通信されます。
これらのレジストリキーの特定の部分がハードディスクに保存されます。ハードディスクに保存されているこれらのキーは、ハイブと呼ばれます。レジストリのこのセクションには、レジストリキー、レジストリサブキー、およびレジストリ値が含まれています。ユーザーに付与されている特権のレベルに応じて、ユーザーはこれらのキーの特定の部分にアクセスすることになります。
HKEYで始まるレジストリの階層の最上位にあるキーは、ハイブと見なされます。
エディタ(Editor)では、すべてのキーを展開せずに表示すると、ハイブは画面の左側に配置されます。これらは、フォルダとして表示されるレジストリキーです。
Windowsレジストリキーとそのサブキーの構造を調べてみましょう。
キー名の例–「HKEY_LOCAL_MACHINESYSTEMInputBreakloc_0804」
ここで、「loc_0804」はサブキー「Break」はサブキー「Input」を指し、これはHKEY_LOCAL_MACHINEルートキーのサブキー「SYSTEM」を指します。
Windowsレジストリの共通ルートキー(Common Root Keys in Windows Registry)
次の各キーは独自のハイブであり、最上位のキー内により多くのキーで構成されています。
私。HKEY_CLASSES_ROOT
これは、ファイル拡張子の関連付け情報、プログラム識別子(programmatic identifier)(ProgID)、インターフェイスID(Interface ID)(IID)データ、およびクラスID(CLSID)で構成される(Class ID (CLSID))Windowsレジストリ(Windows Registry)のレジストリハイブです。
このレジストリハイブ HKEY_CLASSES_ROOTは、 (HKEY_CLASSES_ROOT)Windowsオペレーティングシステムで実行されるアクションまたはイベントのゲートウェイです。Downloads(Suppose)フォルダーにあるいくつかのmp3(Downloads)ファイルにアクセスしたいとします。オペレーティングシステムはこれを介してクエリを実行し、必要なアクションを実行します。
HKEY_CLASSES_ROOTハイブにアクセスした瞬間、そのような膨大な拡張子ファイルのリストを見ると、本当に簡単に圧倒されます。ただし、これらはウィンドウを流動的に機能させるレジストリキーです。
以下は、 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_CLASSES_ROOT)HKEY_LOCAL_MACHINEハイブ(HKEY_LOCAL_MACHINE\Software\Classes)と HKEY_CURRENT_USERハイブ(HKEY_CURRENT_USER\Software\Classes )の両方にある集合データです。したがって、レジストリキーが2つの場所に存在する場合、競合が発生します。したがって、HKEY_CURRENT_USER\Software\ClassesHKEY_CLASSES_ROOTで使用されます。画面左側のHKEY_CLASSESキーを開くとアクセスできます。
ii。HKEY_LOCAL_MACHINE
これは、ローカルコンピューターに固有のすべての設定を格納するいくつかのレジストリハイブの1つです。これは、保存されている情報をユーザーやプログラムが編集できないグローバルキーです。このサブキーのグローバルな性質により(Due)、このストレージに格納されるすべての情報は、RAM上で継続的に実行される仮想コンテナの形式になります。ソフトウェアユーザーの構成情報の大部分がインストールされており、Windowsオペレーティングシステム自体がHKEY_LOCAL_MACHINEで占有されています。現在検出されているすべてのハードウェアは、 HKEY_LOCAL_MACHINE(HKEY_LOCAL_MACHINE)ハイブに保存されます。
また、次の方法も知っています。(Also know how to:) レジストリを検索するときにRegedit.exeがクラッシュする問題を修正する(Fix Regedit.exe Crashes when searching through Registry)
このレジストリキーはさらに7つのサブキーに分けられます。(This registry key is further divided into 7 sub-keys:)
1. SAM(セキュリティアカウントマネージャー(Security Accounts Manager))–ユーザーのパスワードをセキュリティで保護された形式(LMハッシュおよびNTLMハッシュ)で保存するレジストリキーファイルです。ハッシュ関数は、ユーザーのアカウント情報を保護するために使用される暗号化の形式です。
これは、システムのC:WINDOWSsystem32configにあるロックされたファイルであり、オペレーティングシステムの実行中に移動またはコピーすることはできません。
Windowsは、セキュリティアカウントマネージャーのレジストリキーファイルを使用して、ユーザーが(Security Accounts Manager)Windowsアカウントにログインしているときにユーザーを認証します。ユーザーがログインするたびに、Windowsは一連のハッシュアルゴリズムを使用して、入力されたパスワードのハッシュを計算します。入力したパスワードのハッシュがSAMレジストリファイル(SAM registry file)内のパスワードハッシュと等しい場合、ユーザーは自分のアカウントにアクセスできます。これは、ほとんどのハッカーが攻撃を実行しているときに標的とするファイルでもあります。
2.セキュリティ(2. Security)(管理者以外はアクセスできません)–このレジストリキーは、現在のシステムにログインしている管理者ユーザーのアカウントに対してローカルです。システムがいずれかの組織によって管理されている場合、ユーザーに管理アクセスが明示的に付与されていない限り、ユーザーはこのファイルにアクセスできません。管理者権限なしでこのファイルを開くと、空白になります。これで、システムが管理ネットワークに接続されている場合、このキーはデフォルトで、組織によって確立され、アクティブに管理されているローカルシステムのセキュリティプロファイルになります。このキーはSAMにリンクされているため、認証が成功すると、ユーザーの特権レベルに応じて、さまざまなローカルポリシーとグループポリシー(group policies)が適用されます。
3.システム(3. System)(クリティカルブートプロセスおよびその他のカーネル機能)–このサブキーには、コンピューター名、現在マウントされているハードウェアデバイス、ファイルシステム、特定のイベントで実行できる自動アクションの種類など、システム全体に関連する重要な情報が含まれます。CPUの過熱による死のブルースクリーンです(Blue screen of death)。コンピュータがそのようなイベントの取り込みを自動的に開始する論理的な手順があります。このファイルには、十分な管理者権限を持つユーザーのみがアクセスできます。システムが起動すると、これはすべてのログが動的に保存されて読み取られる場所です。コントロールセットと呼ばれる代替構成などのさまざまなシステムパラメータ。
4.ソフトウェア(4. Software )プラグアンドプレイドライバーなどのすべてのサードパーティソフトウェア構成がここに保存されます。(Third-party)このサブキーには、さまざまなアプリケーションやシステムインストーラーによって変更できる既存のハードウェアプロファイルにリンクされたソフトウェアとWindowsの設定が含まれています。(Windows)ソフトウェア(Software)開発者は、ソフトウェアの使用時にユーザーがアクセスする情報を制限または許可することができます。これは、使用されるシステム証明書を含むアプリケーションおよびシステムサービスに一般的な使用ポリシーを適用する「ポリシー」サブキーを使用して設定できます。特定のシステムまたはサービスを認証、承認、または禁止するため。
5.(5. Hardware)システムの起動中に動的に作成されるサブキーであるハードウェア
6.コンポーネント(6. Components )システム全体のデバイス固有のコンポーネント構成情報は、ここにあります。
7. BCD.dat(システムパーティションのootフォルダー内)。これは、システムが読み取り、システムの起動シーケンス中にレジストリをRAMにロードすることによって実行を開始する重要なファイルです。
iii。HKEY_CURRENT_CONFIG
このサブキーが存在する主な理由は、ビデオとネットワーク設定を保存することです。これは、解像度、リフレッシュレート、アスペクト比などのビデオカードとネットワークに関連するすべての情報である可能性があります。
また、 Windowsレジストリ(Windows Registry)の一部であり、現在使用されているハードウェアプロファイルに関する情報を格納するレジストリハイブでもあります。HKEY_CURRENT_CONFIGは、実際にはHKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\HardwareProfiles\CurrentregistryHKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\HardwareProfilesキーの下にリストされている現在アクティブなハードウェアプロファイルへのポインターです。
したがって、HKEY_ CURRENT_CONFIGは、現在のユーザーのハードウェアプロファイルの構成を表示および変更するのに役立ちます。これらはすべて同じであるため、上記の3つの場所のいずれかで管理者として実行できます。
iv。HKEY_CURRENT_USER
現在ログインしているユーザーに固有のWindowsおよびソフトウェアのストア設定と構成情報を含むレジストリハイブの一部。たとえば、レジストリキーのさまざまなレジストリ値は、HKEY_CURRENT_USERハイブコントロールのユーザーレベルの設定(キーボードレイアウト、インストールされているプリンタ、デスクトップの壁紙、ディスプレイ設定、マップされたネットワークドライブなど)にあります。
コントロールパネル(Control Panel)のさまざまなアプレット内で構成する設定の多くは、 HKEY_CURRENT_USERレジストリハイブに保存され ます。HKEY_CURRENT_USERハイブはユーザー固有であるため、同じコンピューター上で、そこに含まれるキーと値はユーザーごとに異なります。これは、グローバルな他のほとんどのレジストリハイブとは異なります。つまり、 Windows(Windows)のすべてのユーザーで同じ情報を保持します。
レジストリエディタの画面の左側をクリックすると、HKEY_CURRENT_USERにアクセスできます。セキュリティ対策として、HKEY_CURRENT_USERに保存されている情報は、セキュリティ識別子として(HKEY_CURRENT_USER)HKEY_USERSハイブの下に配置されているキーへのポインタにすぎません。いずれかの領域に加えられた変更は、すぐに有効になります。
v。HKEY_USERS
これには、各ユーザープロファイルのHKEY_CURRENT_USERキーに対応するサブキーが含まれています。これは、Windowsレジストリ(Windows Registry)にある多くのレジストリハイブの1つでもあります。
すべてのユーザー固有の構成データがここに記録されます。デバイスをアクティブに使用しているすべてのユーザーについて、その種類の情報はHKEY_USERSの下に保存されます。特定のユーザーに対応するシステムに保存されているすべてのユーザー固有の情報はHKEY_USERSハイブの下に保存され、ユーザーが行ったすべての構成変更をログに記録するセキュリティ識別子またはSIDを使用してユーザーを一意に識別できます。(security identifier or the SID)
システム管理者によって付与された特権に応じてHKEY_USERS(HKEY_USERS)ハイブにアカウントが存在するこれらのアクティブユーザーはすべて、プリンター、ローカルネットワーク、ローカルストレージドライブ、デスクトップの背景などの共有リソースにアクセスできます。アカウントには特定のレジストリがあります。現在のユーザーのSIDの下に保存されているキーと対応するレジストリ値。
フォレンジック情報に関しては、各SIDは、すべてのイベントとアクションのログをユーザーのアカウントで実行するため、すべてのユーザーに関する膨大な量のデータを保存します。これには、ユーザーの名前(Name)、ユーザーがコンピューターにログオンした回数、最後のログインの日時、最後のパスワードが変更された日時、失敗したログインの数などが含まれます。さらに、 Windows(Windows)がログインプロンプトに読み込まれて表示されるときのレジストリ情報も含まれています。
推奨:(Recommended:) 修正レジストリエディタが機能しなくなった(Fix The Registry editor has stopped working)
デフォルトユーザーのレジストリキーは、プロファイル内のファイルntuser.datに保存されます。これは、デフォルトユーザーの設定を追加するために、regeditを使用してハイブとしてロードする必要があります。
Windowsレジストリで見つかると予想されるデータの種類(Types of data we can expect to find in the Windows Registry)
上記のすべてのキーとサブキーには、構成、値、およびプロパティが次のデータ型のいずれかに保存されます。通常、Windowsレジストリ全体を構成するのは次のデータ型の組み合わせです。
- 世界のほとんどの書記体系で表現されたテキストの一貫したエンコーディング、表現、および処理のためのコンピューティング業界標準であるUnicode(Unicode which)などの文字列値。
- バイナリデータ
- 符号なし整数
- シンボリックリンク
- 複数の文字列の値
- リソース(Resource)リスト(プラグ(Plug)アンドプレイ(Play)ハードウェア)
- リソース(Resource)記述子(プラグ(Plug)アンドプレイ(Play)ハードウェア)
- 64ビット整数
結論(Conclusion)
Windowsレジストリ(Windows Registry)は革命に他なりません。これは、システムとアプリケーションの構成を保存するためのファイル拡張子としてテキストファイルを使用することによって生じるセキュリティリスクを最小限に抑えるだけでなく、アプリケーション開発者が構成または.iniファイルの数を減らすことにもなります。ソフトウェア製品と一緒に出荷する必要がありました。システムとシステム上で実行されるソフトウェアの両方によって頻繁にアクセスされるデータを格納するための集中型リポジトリを持つことの利点は非常に明白です。
使いやすさだけでなく、さまざまなカスタマイズや設定に1か所でアクセスできるため、さまざまなソフトウェア開発者がWindowsをデスクトップアプリケーションに適したプラットフォームにしています。これは、Windowsで利用可能なデスクトップソフトウェアアプリケーションの膨大な量をAppleのmacOSと比較すると非常に明白です。要約すると、Windowsレジストリ(Windows Registry)の動作とそのファイル構造、さまざまなレジストリキー構成の重要性、およびレジストリエディタを使用して完全な効果を得る方法について説明しました。
What is the Windows Registry & How it Works?
Windows Registry is a collection of configurations, values, and propertieѕ of windows applications as well as the windows operаtіng system whiсh is organized and stored in a hierarchical manner in a singυlar repository.
Whenever a new program gets installed in the Windows system, an entry is made in the Windows Registry with its attributes such as size, version, location in the storage, etc.
Because, this information has been stored in the database, not only the operating system is aware of the resources utilized, other applications can also benefit from this information since they are aware of any conflicts that may arise if certain resources or files were to co-exist.
What is the Windows Registry & How it Works?
The Windows Registry is really the heart of the way Windows works. It is the only operating system that uses this approach of a central registry. If we were to visualize, every part of the operating system has to interact with the Windows Registry right from the booting sequence to something as simple as renaming the file’s name.
Simply put, it is just a database similar to that of a library card catalog, where the entries in the registry are like a stack of cards stored in the card catalog. A registry key would be a card and a registry value would be the important information written on that card. The Windows operating system uses the registry to store a bunch of information that’s used to control and manage our system and software. This can be anything from PC hardware information to user preferences and file types. Almost any form of configuration that we do to a Windows system involves editing the registry.
History of Windows Registry
In the initial versions of Windows, application developers had to include in a separate .ini file extension along with the executable file. This .ini file contained all the settings, properties and configuration required for the given executable program to function properly. However, this proved very inefficient due to the redundancy of certain information and it also posed a security threat to the executable program. As a result, a new implementation of standardized, centralized as well as secure technology was an apparent necessity.
With the advent of Windows 3.1, a bare-bones version of this demand was met with a central database common to all the applications and system called the Windows Registry.
This tool, however, was very limited, since the applications could only store certain configuration information of an executable. Over the years, Windows 95 and Windows NT further developed on this foundation, introduced centralization as the core feature in the newer version of Windows Registry.
That said, storing information in Windows Registry is an option for software developers. So, if a software application developer were to create a portable application, he is not required to add information to the registry, local storage with the configuration, properties, and values can be created and successfully shipped.
The relevance of Windows Registry with respect to other operating systems
Windows is the only operating system that uses this approach of a central registry. If we were to visualize, every part of the operating system has to interact with the Windows Registry right from the booting sequence to the renaming of a file name.
All other operating systems such as iOS, Mac OS, Android, and Linux continue to use text files as a way of configuring the operating system and modifying the operating system behavior.
In most of the Linux variants, the configuration files are saved in the .txt format, this becomes an issue when we have to work with the text files since all the .txt files are considered as critical system files. So if we try to open the text files in these operating systems, we wouldn’t be able to view it. These operating systems try to hide it as a security measure since all the system files such as configurations of the network card, firewall, operating system, graphical user interface, video cards interface, etc. are saved in the ASCII format.
To circumvent this issue both macOS, as well as iOS, deployed a completely different approach to the text file extension by implementing .plist extension, which contains all of the system as well as application configuration information but still the benefits of having a singular registry far outweigh the simple change of file extension.
What are the benefits of the Windows Registry?
Because Every part of the operating system continuously communicates with the Windows Registry, it must be stored in very fast storage. Hence, this database was designed for extremely fast reads and writes as well as efficient storage.
If we were to open and check the size of the registry database, it would typically hover between 15 – 20 megabytes which make it small enough to be always loaded into the RAM (Random Access Memory) that co-incidentally is the fastest storage available for the operating system.
Since the registry needs to be loaded in memory at all times, if the size of the registry is large it won’t leave enough room for all other applications to run smoothly or run at all. This would be detrimental to the performance of the operating system, hence the Windows Registry is designed with a core objective of being highly efficient.
If there are multiple users interacting with the same device and there are a number of applications that they use are common, the reinstallation of the same applications twice or multiple times would be a waste of rather expensive storage. Windows registry excels in these scenarios where the application configuration is shared among various users.
This not only reduces the total storage used but also gives its users access to make changes to the application’s configuration from one single interaction port. This also saves time since the user doesn’t have to manually go to every local storage .ini file.
Multi-User scenarios are very common in enterprise setups, here, there is a strong need for user privilege access. Since not all the information or resources can be shared with everyone, the need for privacy-based user access was easily implemented through the centralized windows registry. Here the network administrator reserves the right to withhold or allow based on the work undertaken. This made the singular database versatile as well made it robust since the updates can be undertaken simultaneously with remote access to all of the registries of multiple devices in the network.
How does Windows Registry Works?
Let’s explore the basics elements of the Windows Registry before we start getting our hands dirty.
The Windows Registry is made up of two basic elements called the Registry Key which is a container object or simply put they are like a folder that has various types of files stored in them and Registry Values which are non-container objects that are like files that could be of any format.
You should also know: How to Take Full Control or Ownership of Windows Registry Keys
How to access the Windows Registry?
We can access and configure the Windows Registry using a Registry Editor tool, Microsoft includes a free registry editing utility along with every version of its Windows Operating System.
This Registry Editor can be accessed by typing “Regedit” in the Command Prompt or by simply typing “Regedit” in the search or run box from the Start menu. This editor is the portal to access the Windows registry, and it helps us to explore and make changes to the registry. The registry is the umbrella term used by various database files located within the directory of the Windows installation.
Is it Safe to edit Registry Editor?
If you don’t know what you’re doing then it is dangerous to play around Registry configuration. Whenever you edit the Registry, make sure you follow the correct instructions and only change what you’re instructed to change.
If you knowingly or accidentally delete something in the Windows Registry then it could alter your system’s configuration which could either lead to Blue Screen of Death or Windows won’t boot.
So it is generally recommended to backup Windows Registry before making any changes to it. You can also create a system restore point (which automatically backup the Registry) that can be used if you ever need to alter the Registry settings back to normal. But if you only what you’re told then it shouldn’t be any problem. In case you need to know how to restore Windows Registry then this tutorial explains how to do so easily.
Let’s explore the structure of the Windows Registry
There is a user in an inaccessible storage location that exists for only the operating system’s access.
These Keys are loaded on to the RAM during the system boot stage and are constantly being communicated within a certain interval of time or when a certain system-level event or events take place.
A certain portion of these registry keys gets stored in the hard disk. These keys that are stored in the hard disk are called hives. This section of the registry contains registry keys, registry subkeys, and registry values. Depending on the level of the privilege a user has been granted, he would be to access certain parts of these keys.
The keys that are at the peak of the hierarchy in the registry that begins with HKEY are considered to be hives.
In the Editor, the hives are located on the left side of the screen when all the keys are viewed without expanding. These are the registry keys that appear as folders.
Let’s explore the structure of the windows registry key and its subkeys:
Example of a key name – “HKEY_LOCAL_MACHINE\SYSTEM\Input\Break\loc_0804”
Here the “loc_0804” refers to the subkey “Break” refers to the subkey “Input” which refers to the subkey “SYSTEM” of the HKEY_LOCAL_MACHINE root key.
Common Root Keys in Windows Registry
Each of the following keys is its own individual hive, which comprises more keys within the top-level key.
i. HKEY_CLASSES_ROOT
This is the registry hive of the Windows Registry which consists of file extension association information, programmatic identifier (ProgID), Interface ID (IID) data, and Class ID (CLSID).
This registry hive HKEY_CLASSES_ROOT is the gateway for any action or event to take place in the Windows operating system. Suppose we want to access some mp3 files in the Downloads folder. The operating system runs its query through this to take the required actions.
The moment you access the HKEY_CLASSES_ROOT hive, it is really easy to get overwhelmed looking at such a massive list of extension files. However, these are the very registry keys that make windows function fluidly
Following are some of the examples of HKEY_CLASSES_ROOT hive registry keys,
HKEY_CLASSES_ROOT\.otf
HKEY_CLASSES_ROOT\.htc
HKEY_CLASSES_ROOT\.img
HKEY_CLASSES_ROOT\.mhtml
HKEY_CLASSES_ROOT\.png
HKEY_CLASSES_ROOT\.dll
Whenever we double-click and open a file lets say a photo, the system sends the query through the HKEY_CLASSES_ROOT where the instructions on what to do when such a file is requested are clearly given. So the system ends up opening a photo viewer displaying the requested image.
In the above example, the registry makes a call to the keys stored in the HKEY_CLASSES_ROOT\.jpg key. The HKEY_CLASSES_ROOT hive is a collective data found in both the HKEY_LOCAL_MACHINE hive (HKEY_LOCAL_MACHINE\Software\Classes) as well as the HKEY_CURRENT_USER hive (HKEY_CURRENT_USER\Software\Classes). So when the registry key exists in two locations it creates conflicts. So the data found in HKEY_CURRENT_USER\Software\Classes is used in HKEY_ CLASSES_ ROOT. It can be accessed by opening the HKEY_CLASSES key on the left side of the screen.
ii. HKEY_LOCAL_MACHINE
This is one of the several registry hives that stores all the settings that are specific to the local computer. This is a global key where the information stored cannot be edited by any user or program. Due to the global nature of this subkey, all the information stored in this storage is in the form of a virtual container running on the RAM continuously. The majority of the configuration information for the software users have installed and the Windows operating system itself is occupied in HKEY_LOCAL_MACHINE. All of the currently detected hardware is stored in the HKEY_LOCAL_MACHINE hive.
Also know how to: Fix Regedit.exe Crashes when searching through Registry
This registry key is further divided into 7 sub-keys:
1. SAM (Security Accounts Manager) – It is a registry key file that stores users’ passwords in a secured format (in LM hash and NTLM hash). A hash function is a form of encryption used to protect the users’ account information.
It is a locked file that is located in the system at C:\WINDOWS\system32\config, which cannot be moved or copied when the operating system is running.
Windows uses the Security Accounts Manager registry key file to authenticate users while they log into their Windows accounts. Whenever a user logs in, Windows uses a series of hash algorithms to calculate a hash for the password that has been entered. If the entered password’s hash is equal to the password hash inside the SAM registry file, users will be allowed to access their account. This also a file that most of the hackers target while performing an attack.
2. Security (not accessible except by administrator) – This registry key is local to the account of the administrative user who is logged in to the current system. If the system is managed by any organization the users cannot access this file unless administrative access has been explicitly given to a user. If we were to open this file without administrative privilege it would be blank. Now, if our system is connected to an administrative network, this key will default to the local system security profile established and actively managed by the organization. This key is linked to the SAM, so upon successful authentication, depending on the privilege level of the user, a variety of local and group policies are applied.
3. System (critical boot process and other kernel functions) – This subkey contains important information related to the entire system such as computer name, currently mounted hardware devices, filesystem and what kind of automated actions can be taken in a certain event, say there is Blue screen of death due to CPU overheating, there is a logical procedure that the computer will automatically start taking in such an event. This file is only accessible by users with sufficient administrative privileges. When the system boots this is where all the logs get dynamically get saved and read upon. Various system parameters such as alternative configurations which are known as control sets.
4. Software All the Third-party software configurations such as plug and play drivers are stored here. This subkey contains software and Windows settings linked to the preexisting hardware profile that can be changed by various applications and system installers. Software developers get to limit or allow what information gets accessed by the users when their software is being used, this can be set using the “Policies” subkey that enforces the general usage policies on applications and system services that include the system certificates that is used to authenticate, authorize or disallow certain systems or services.
5. Hardware which is a subkey that is created dynamically during the system boot
6. Components system-wide device-specific component configuration information can be found here
7. BCD.dat (in the \boot folder in the system partition) which is a critical file that the system reads and starts executing during the system boot sequence by loading the registry to the RAM.
iii. HKEY_CURRENT_CONFIG
The main reason for the existence of this subkey is to store video as well as network settings. That could be all the information pertaining to the video card such as the resolution, refresh rate, aspect ratio, etc. as well as the network
It is also a registry hive, part of the Windows Registry, and which stores information about the hardware profile currently being used. HKEY_CURRENT_CONFIG is actually a pointer to the HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\HardwareProfiles\Currentregistry key, This is simply a pointer to the currently active hardware profile listed under the HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\HardwareProfiles key.
So HKEY_ CURRENT_CONFIG helps us to view and modify the configuration of the current user’s hardware profile, which we can do as an administrator in any of the three locations as listed above since they are all the same.
iv. HKEY_CURRENT_USER
Part of the registry hives that contains store settings as well as configuration information for Windows and software that are specific to the currently logged-in user. For example, a variety of registry values in the registry keys are located in the HKEY_CURRENT_USER hive control user-level settings such as the keyboard layout, printers installed, desktop wallpaper, display settings, mapped network drives, and more.
Many of the settings you configure within various applets in the Control Panel are stored in the HKEY_CURRENT_USER registry hive. Because the HKEY_CURRENT_USER hive is user-specific, on the same computer, the keys and values contained in it will differ from user to user. This is unlike most other registry hives that are global, meaning they retain the same information across all users in Windows.
Clicking on the left side of the screen on the registry editor will give us access to HKEY_CURRENT_USER. As a security measure, the information stored on HKEY_CURRENT_USER is just a pointer to key positioned under the HKEY_USERS hive as our security identifier. Changes made to either of the areas will take effect immediately.
v. HKEY_USERS
This contains subkeys corresponding to the HKEY_CURRENT_USER keys for each user profile. This is also one of many registry hives that we have in the Windows Registry.
All the user-specific configuration data is logged here, for everyone who is actively using the device that kind information is stored under HKEY_USERS. All the user-specific information stored on the system that corresponds to a particular user is stored under the HKEY_USERS hive, we can uniquely identify the users utilizing the security identifier or the SID that logs all the configuration changes made by the user.
All of these active users whose account exist in the HKEY_USERS hive depending on the privilege granted by the system administrator would be able to access the shared resources such as printers, local network, local storage drives, desktop background, etc. Their account has certain registry keys and corresponding registry values stored under the current user’s SID.
In terms of forensic information each SID stores a huge amount of data on every user as it makes a log of every event and action get undertaken under the user’s account. This includes the User’s Name, the number of times the user logged onto the computer, the date and time of the last login, the date and time the last password was changed, number of failed logins, and so on. Additionally, it also contains the registry information for when Windows loads and sits at the login prompt.
Recommended: Fix The Registry editor has stopped working
The registry keys for the default user are stored in the file ntuser.dat within the profile, that we would have to load this as a hive using regedit to add settings for the default user.
Types of data we can expect to find in the Windows Registry
All of the above-discussed keys and subkeys will have the configurations, values, and properties saved in any of the following data types, usually, it is a combination of the following data types that makes up our entire windows registry.
- String values such as Unicode which is a computing industry standard for the consistent encoding, representation, and handling of text expressed in most of the world’s writing systems.
- Binary data
- Unsigned integers
- Symbolic links
- Multi-string values
- Resource list (Plug and Play hardware)
- Resource descriptor (Plug and Play hardware)
- 64-bit integers
Conclusion
Windows Registry has been nothing less of a revolution, which not only minimized the security risk that came by using text files as a file extension to save the system and application configuration but it also reduced the number of configuration or .ini files that the application developers had to ship with their software product. The benefits of having a centralized repository to store frequently accessed data by both the system as well as the software that runs on the system are very evident.
The ease of use as well as the access to various customizations and settings in one central place has also made windows the preferred platform for desktop applications by various software developers. This is very evident if you compare the sheer volume of available desktop software applications of windows to Apple’s macOS. To summarize, we discussed how the Windows Registry works and its file structure and the significance of various registry key configurations as well as to use the registry editor to the complete effect.