レジストリの説明。 Windows レジストリ

31.03.2019 アンドロイド

    レジストリ (システム レジストリ) は、Microsoft Windows オペレーティング システムのパラメータと設定を定義するエントリを含む階層データベースです。 レジストリ エディタで表示されるレジストリは、レジストリ ファイルからのデータとブート プロセス中に収集されたハードウェア情報から構築されます。 のレジストリ ファイルの説明では、 英語「ハイブ」という用語が使用されます。 一部の作品では、ロシア語に「蜂の巣」と翻訳されています。 Microsoft はドキュメント内でこれを「ブッシュ」と訳しています。 レジストリ ファイルはオペレーティング システムのインストール プロセス中に作成され、次のフォルダに保存されます。 %SystemRoot%\system32\config(通常は C:\windows\system32\config)。 Windows 2000/XP オペレーティング システムの場合、これらは次の名前のファイルです。
デフォルト
サム
安全
ソフトウェア
システム
ダウンロード プロセス中、システムはこれらのファイルへの排他的アクセスを取得するため、ファイルを操作するための標準ツール (表示、コピー、削除、名前変更のために開く) を使用してこれらのファイルに対して何も行うことはできません。 システム レジストリの内容を操作するには、オペレーティング システムの標準コンポーネントであるレジストリ エディタ (REGEDIT.EXE、REGEDT32.EXE) という特別なソフトウェアが使用されます。 レジストリを起動するには、「開始」「ファイル名を指定して実行」 - regedit.exe を使用します。

    ウィンドウの左半分にリストが表示されます ルート パーティション (ルート キー) レジストリ 各ルート パーティションには以下が含まれる場合があります ネストされたセクション (サブキー) そして パラメータ (値エントリ)。
ルート パーティションの目的を簡単に説明します。
HKEY_CLASSES_ROOT (略語 HKCR) - アプリケーションとファイル拡張子の間の関連付け、および登録された COM および ActiveX オブジェクトに関する情報。
HKEY_CURRENT_USER (HKCU)- 現在のユーザーの設定 (デスクトップ、ネットワーク設定、アプリケーション)。 このセクションは、S-1-5-21-854245398-1035525444-... の形式での HKEY_USERS\User Identifier (SID) セクションへのリンクです。
SID は、ユーザー、グループ、またはコンピューター アカウントを識別する一意の番号です。 アカウントの作成時に割り当てられます。 国内 Windowsプロセスアカウントは、ユーザー名またはグループ名ではなく、セキュリティ コードで参照します。 アカウントを削除して同じユーザー名で再度作成した場合、セキュリティ コードが異なるため、古いアカウントに付与された権利とアクセス許可は新しいアカウントには保持されません。 略語 SID はセキュリティ ID から派生したものです。 SID とユーザー名の対応を表示するには、パッケージの PsGetSID.exe ユーティリティを使用できます。
HKEY_LOCAL_MACHINE (HKLM)- グローバルなハードウェアおよびソフトウェア システム設定。 すべてのユーザーに適用されます。 これはレジストリの最大かつ最も重要な部分です。 システム、ハードウェア、ソフトウェアの主要パラメータがここに集中しています。
HKEY_USERS(HKU) - 個別設定システムの各ユーザーの環境 (ユーザー プロファイル) と、新しく作成されたユーザーのデフォルト プロファイル。
HKEY_CURRENT_CONFIG (HKCC)- 現在のハードウェア プロファイルの構成。 通常、プロファイルは 1 つだけですが、「コントロール パネル」-「システム」-「ハードウェア」-「ハードウェア プロファイル」を使用して複数作成することもできます。 実際、HKCC は本格的なレジストリ キーではなく、HKLM からのキーへの単なるリンクです。
HKLM\システム\現在のコントロールセット\現在のコントロールセット\ハードウェア プロファイル\現在

    レジストリ データを編集するときの特定のユーザーの機能は、システム内でのそのユーザーの権限によって決まります。 本文では、特に明記されていない限り、ユーザーはシステム管理者権限を持っていると想定されます。
    実際、HKLM のルート セクションには、SAM と SECURITY という名前のサブセクションがさらに 2 つありますが、これらへのアクセスは、通常システム サービスが実行されるローカル システム アカウントでのみ許可されます。 つまり、これらにアクセスするには、ローカル システム権限でレジストリ エディタを起動する必要があります。
psexec.exe -i -s regedit.exe
ユーティリティの詳細な説明は、「PSTools ユーティリティ」ページにあります。

    オペレーティング システムのロード中および操作中、レジストリ データは読み取りと書き込みの両方で常にアクセスされます。 レジストリの設定が 1 つでも間違っていると、システムのクラッシュや整合性の侵害につながる可能性があります。 個別のファイル。 したがって、レジストリを試してみる前に、レジストリを保存および復元できるかどうかに注意してください。


レジストリの保存と復元

1. 復元ポイントの使用

    Windows XP には、問題が発生した場合に復元できるメカニズムがあります。 以前の状態個人ファイルを失うことなくコンピュータ ( マイクロソフトのドキュメント Word、閲覧したページのリスト、写真、お気に入りのファイル、メッセージ Eメール)。 復元ポイントは、コンピュータがアイドル状態のときや重要な作業中にシステムによって自動的に作成されます。 システムイベント(アプリケーションやドライバーのインストールなど)。 ユーザーはいつでもそれらを強制することができます。 これらの復元ポイントを使用すると、システムを作成時の状態に戻すことができます。
    回復ポイントを使用するには、\windows\system32\restore\rstrui.exe アプリケーション ( スタート - プログラム - アクセサリ - システムツール - システムの復元).

    データ コントロールポイントリカバリはディレクトリに保存されます システムボリューム情報 システムディスク。 これは非表示のシステム ディレクトリであり、ローカル システム アカウント (ローカル システム、つまり「システム復元サービス」) にのみアクセスが許可されます。 したがって、その内容にアクセスしたい場合は、「システム ボリューム情報」ディレクトリのプロパティの「セキュリティ」タブを使用してアカウント権限を追加する必要があります。 System Volume Information フォルダーには、次で始まる名前のサブディレクトリがあります。 _復元する...そしてその中に - サブディレクトリ RP0、RP1...: - これは復旧ポイント (復元ポイント - RPx) からのデータです。 RPxフォルダー内にディレクトリがあります スナップショット、チェックポイント作成時のレジストリ ファイルのコピーが含まれます。 システムの復元操作を実行すると、コア システム ファイルとレジストリ ファイルが復元されます。 この仕組みは非常に有効ですが、Windows 自体でのみ使用できます。 システムが破損してロードが不可能になった場合でも、状況を抜け出す方法はまだあります。 方法 - 記事「OS のロードに関する問題」セクションを参照してください。

2. NTBACKUP.EXE バックアップ/復元ユーティリティの使用

    Windows 2000 には復元ポイント メカニズムがありません。 ただし、Windows XP と同様に、アーカイブ ユーティリティ、つまりバックアップと復元が存在します。 NTBACKUP.EXE, これにより、復元ポイントを作成するときとほぼ同じこと (さらにはそれ以上) を行うことができます。 NTBACKUP を使用すると、システム状態のアーカイブを 2 つの部分から作成できます。1 つは起動できないシステムでもリカバリを実行できるブート フロッピー ディスク、もう 1 つはリカバリ用のデータの実際のアーカイブ (通常のファイル形式) です。拡張子 .bkf を付けてハードドライブに保存するか、 リムーバブルメディア)。 システム状態のコピーを取得するには、[スタート] - [ファイル名を指定して実行] - ntbackup.exe をクリックします。

を起動し、システム状態をアーカイブする必要があることを伝えます。

アーカイブ データの保存場所

    ウィザードが完了すると、システム状態アーカイブが作成されます (D:\ntbackup.bkf)。 「レストアマスターズ」アーカイブ作成時のシステム状態をいつでも返すことができます。

3. ユーティリティを使用してレジストリを操作する コマンドライン REG.EXE

    Windows 2000 では、REG.EXE ユーティリティはサポート ツール パッケージに含まれています (Windows XP の REG.EXE も使用できます。\winnt\system32 ディレクトリにコピーするだけです)。 コマンドラインから実行します。 パラメーターなしで起動すると、次のように表示されます 簡単な情報用途によって:

コマンド ラインからシステム レジストリを編集するためのプログラム、バージョン 3.0
(C) Microsoft Corporation、1981-2001。 無断転載を禁じます

REG動作[パラメータ一覧]

操作 == [ クエリ | 追加 | 削除 | コピー |
保存 | ロード | アンロード | 復元 |
比較 | エクスポート | 輸入]

リターンコード:(REG COMPAREを除く)
0 - 成功
1 - エラーあり

特定の操作のヘルプを表示するには、次のように入力します。
REG操作/?

例:

登録クエリ /?
登録追加 /?
登録削除 /?
登録コピー /?
REG セーブ /?
REG 復元 /?
REG ロード /?
REG アンロード /?
REG 比較 /?
REG エクスポート /?
登録インポート /?

レジストリをバックアップするには REG.EXE SAVE を使用し、復元するには REG.EXE RESTORE を使用します。

助けを求めて

REG.EXE 保存 /?
REG SAVEセクション ファイル名

章 - フルパス ROOT\Subkey の形式でレジストリ キーにコピーします。
ROOT - ルートセクション。 値: [ HKLM | 香港中央大学 | 香港中央銀行 | 香港 | 香港CC]。
subkey - 選択したルート セクションのレジストリ キーへのフル パス。
ファイル名 - ディスク上に保存されたファイルの名前。 パスが指定されていない場合、ファイルは
呼び出しプロセスによって現在のフォルダーに作成されます。

例:
REG SAVE HKLM\Software\MyCo\MyApp AppBkUp.hiv
MyApp セクションを現在のフォルダー内のファイル AppBkUp.hiv に保存します

    REG SAVE と REG RESTORE の構文は同じであり、ヘルプを見れば明らかです。 ただし、いくつかの点があります。 Windows 2000版のユーティリティでは、レジストリキーの保存時にファイル名にパスを指定することができず、カレントディレクトリのみに保存されていました。 ユーティリティ自体のヘルプと保存用の使用例 (REG SAVE) を使用して、レジストリ キーを保存できます。 HKLM\ソフトウェア、HKLM\システムなど ただし、たとえば HKLM\system を復元しようとすると、レジストリ キーがビジー状態であるため、アクセス エラー メッセージが表示されます。レジストリ キーは常にビジー状態であるため、REG RESTORE を使用した復元は失敗します。

SYSTEM ハイブを保存するには:
REG SAVE HKLM\SYSTEM system.hiv
ソフトウェア ハイブを保存するには:
REG SAVE HKLM\SOFTWARE software.hiv
DEFAULT ブッシュを保存するには:
reg save HKU\.Default デフォルト.hiv

ファイルが存在する場合、REG.EXE はエラーをスローして終了します。

    保存されたファイルを %SystemRoot%\system32\config フォルダーに手動でコピーすることで、レジストリを復元するために使用できます。

4. レジストリ ファイルを手動でコピーします。

    別のオペレーティング システムを起動する場合は、レジストリ フォルダーのファイルを使用して何でも行うことができます。 システム ファイルが破損している場合は、たとえば、REG SAVE を使用して保存した system.hiv ファイルをレジストリ フォルダにコピーし、名前を system に変更して使用できます。 または、回復チェックポイントから保存されたシステム ファイルのコピーを使用して、同じアクションを実行します。 かなり詳しい この方法レジストリの回復については、「OS のロードに関する問題」の記事で説明されています。

5. レジストリのエクスポート/インポート モードを使用します。

レジストリ エディターを使用すると、レジストリ全体と個々のセクションの両方を、次の拡張子を持つファイルにエクスポートできます。 登録 エクスポート時に取得したregファイルをインポートすると、レジストリを復元できます。 「レジストリ」→「レジストリファイルのエクスポート(インポート)」をクリックします。 reg ファイルのショートカットをダブルクリックしてもインポートできます。

6. サードパーティのレジストリを操作するための特別なユーティリティを使用します。

    レジストリを操作するサードパーティ プログラムが多数あり、レジストリ データの保存と復元だけでなく、誤ったデータや不要なデータの診断と削除、最適化、デフラグなど。 彼らのほとんどは給料をもらっています - jv16 電動工具、レジストリ メカニック、スーパー ユーティリティ プロ, 登録オーガナイザー その他。 secutiylab.ru のリストと簡単な説明
これらのプログラムの主な利点には、原則として、シンプルなユーザー インターフェイス、実行機能が含まれます。 微調整オペレーティング システムとユーザー設定、不要なレコードのクリーニング、データの検索と置換のための高度な機能、 バックアップそして回復。
    おそらく、レジストリを操作するための最も人気のあるソフトウェアは次のとおりです。 jv16 電動工具マッククラフト ソフトウェア カンパニー。 主な利点は、高い信頼性、多用途性、シンプルさと使いやすさ、言語を含む複数の言語のサポートです。 ロシア。 ただし、誰もがその存在を知っているわけではありません 無料オプション、Power Tools Liteと呼ばれます。 もちろん、完全に機能する jv16 には程遠いですが、データの検索、レジストリのクリーニング、最適化には非常に適しています。 このプログラムによって作成されるバックアップは、レジストリが変更される前の状態を復元するための単なるレジストリ ファイルであることに注意してください。 多くの (ほとんどではないにしても) レジストリ プログラムは同様のコピーを作成しますが、これは変更したデータを復元する場合にのみ役立ちます。 レジストリが破損している場合は、役に立ちません。 したがって、レジストリをバックアップできる (特に無料の) プログラムを選択するときは、そのプログラムがどのようなコピーを作成するかを理解してください。 理想的なオプションは、すべてのレジストリ ハイブのコピーを作成するプログラムです。 このようなコピーがある場合は、ファイルをコピーするだけでいつでもレジストリを完全に復元できます。 無料のものをお勧めします コンソールユーティリティ regsaver.exeダウンロード、380kb
番組ウェブサイト。
このユーティリティは、コマンド ライン パラメータとして指定されたディレクトリにレジストリ ファイルを保存します。
regsaver.exe D:\regbackup
プログラムを実行すると、レジストリ ファイルのバックアップ コピーが作成された年、月、日、時刻 (「yyyymmddhhmmss」) で構成される一意の名前を持つサブディレクトリが D:\regbackup ディレクトリに作成されます。 バックアップの完了後、プログラムはコンピューターの電源をオフにするか、スリープ モードにすることができます。

regsaver.exe D:\regbackup /off /ask- コンピューターの電源を切ります。 /ask スイッチは、電源をオフにするときにユーザーの確認を必要とします。
regsaver.exe D:\regbackup /standby- 確認なしでスリープモードにする (no /ask)
regsaver.exe D:\regbackup /hibernate /ask- 休止状態モードに切り替える

コンピュータの標準的なシャットダウンの代わりに、レジストリのバックアップを使用し、完了時にシャットダウンすることができます。

7. バックアップ コピーがない場合のレジストリの復元。

    たとえば、システムを起動すると、SYSTEM レジストリ ハイブの整合性に関するメッセージが表示されます。

次のファイルが見つからないか破損しているため、Windows XP を起動できませんでした: \WINDOWS\SYSTEM32\CONFIG\SYSTEM

レジストリ データをバックアップしなかった場合、回復チェックポイントを作成するメカニズムが無効になっていた場合、またはこのメカニズムが存在しない Win2K を使用した場合でも、別の OS を起動してレジストリ データを復元することでシステムを復活させる可能性はまだあります。システム。 このファイルの内容が完全に最新ではない場合でも、システムは動作し続ける可能性が高くなります。 一部のソフトウェア製品の再インストールやドライバーの更新が必要になる場合があります。

  • - 使用法 バックアップファイル何らかのソフトウェアによって自動的に作成されるレジストリ。 \Windows\system32\config フォルダーを開き、ファイルが存在するかどうかを確認します。 system.bak(おそらく .alt と .log 以外の別の拡張子)。 システムという名前に変更して起動してみます。
  • - 初期インストール後に \WINDOWS\REPAIR ディレクトリに保存されたファイルの使用。 このオプションは、最後の手段としては最適ではありません。
  • - 使用法 回復機能破損したハイブをロードするときの Windows XP レジストリ エディタ。
    レジストリ エディタを使用すると、「自分の」レジストリ ファイルだけでなく、別のオペレーティング システムのレジストリであるファイルも開くことができます。 Windows 2000 では、ディスクに保存されているレジストリ ファイル (ハイブ) を読み込むために regedt32.exe エディタが使用されていましたが、Windows XP では、regedt32.exe と regedit.exe の機能が統合され、さらに、破損したハイブを復元できるようになりました。起動中。 このために

    Windows XP (Windows Live、別の WinXP ディレクトリにインストールされた Winternals ERD Commander、ネットワーク経由またはネットワーク経由で問題のあるレジストリ ハイブを起動できる別のコンピュータ) を起動します。 外部メディア)。 レジストリエディタを起動します。
    レジストリ ツリーの左側で、次のいずれかのセクションを選択します。
    HKEY_USERS または HKEY_LOCAL_MACHINE。
    メニューにある レジストリ(レジストリ エディタの他のバージョンでは、このメニュー項目は「」と呼ばれる場合があります。 ファイル") コマンドを選択 「ロードハイブ」.
    破損したブッシュ (この場合はシステム) を見つけます。
    ボタンをクリックしてください 開ける.
    フィールド内 ロードされたハイブに割り当てられる名前を入力します。 たとえば、BadSystem。
    クリック後 わかりましたメッセージが表示されます:

    レジストリ エディターの左側のウィンドウで、マウントされたハイブ (BadSystem) を選択し、コマンドを実行します。 「アンロードブッシュ」。 損傷したシステムは復元されます。 さらに、Windows XP レジストリ エディタは、古い Windows 2000 OS のレジストリを正常に復元します。


    レジストリの監視。

        私の観点から、レジストリを監視するための最良のプログラムの 1 つは次のとおりです。 レグモン Mark Russinovich - インストールを必要とせず、Windows NT、2000、XP、2003、Windows 95、98、Me、および 64 ビット オペレーティング システムで動作する小型で機能的なユーティリティ Windowsのバージョン x64 アーキテクチャ用。 RegMon.exe v7.04、700kb をダウンロード

        Regmon を使用すると、どのアプリケーションがレジストリにアクセスするか、どのセクション、どのような情報を読み書きするかをリアルタイムで監視できます。 情報は、ニーズに合わせてカスタマイズできる便利な形式で表示されます。興味のないアプリケーションのレジストリの操作に関するデータを監視結果から除外し、特に重要と思われるものを選択した色で強調表示します。監視結果で選択されたプロセス。 このプログラムを使用すると、レジストリ エディターをすばやく簡単に起動して、指定したセクションまたはパラメーターに移動できます。 オペレーティング システムのロード中に監視を実行し、結果を特別なログ %SystemRoot\Regmon.log に記録することができます。
        RegMon を開始した後、レジストリ監視結果のフィルタリング基準を定義できます。

    デフォルトでは、すべてのレジストリ アクセス イベントがログに記録されます。 フィルターはフィールド値によって指定されます。

    含む- もし * - すべてのプロセスの監視を実行します。 プロセス名は次のように区切られます。 ";" 。 例えば ​​- FAR.EXE;Winlogon.exe- レジストリ アクセスは、far.exe および winlogon.exe プロセスについてのみ記録されます。
    除外する- 監視結果から除外するプロセス。
    ハイライト- どのプロセスが選択した色 (デフォルトでは赤) で強調表示されます。

        フィルタフィールドの値は記憶され、次回 Regmon が起動されるときに表示されます。 ボタンを押したとき デフォルトフィルタはデフォルト設定にリセットされます。レジストリへのすべてのアクセスを記録します。 RegMon の開始時ではなく、監視プロセス中に、選択したプロセスの右クリック メニューを使用してフィルター フィールド値を形成する方が便利です - プロセスを含める - このプロセスを監視に含める、プロセスを除外する - このプロセスを除外するモニタリングから。 デフォルトのフィルターを使用して Regmon を起動すると、レジストリへのアクセスに関する多数のエントリが表示されます。また、プロセスの包含/除外を使用して、必要なプロセスの結果のみを出力するように構成できます。

    列の目的:

    # - 順番に番号を付けます
    時間- 時間。 時間形式はタブを使用して変更できます オプション
    プロセス- プロセス名: プロセス識別子(PID)
    リクエスト- リクエストの種類。 OpenKey - レジストリ キー (サブキー) を開く、CloseKey - 閉じる、CreateKey - 作成、QueryKey - キーの存在を確認し、ネストされたキー (サブキー) の数を取得する、EnumerateKey - 指定されたセクションのサブキーの名前のリストを取得する、QueryValue - パラメータの値を読み取り、SetValue - 値を書き留めます。
    パス- レジストリ内のパス。
    結果- 操作の結果。 SUCCESS - 成功、NOT FOUND - キー (パラメータ) が見つかりません。 アクセスが拒否されました - アクセスが拒否されました (権限が不十分です)。 場合によっては、バッファ オーバーフロー (バッファ オーバーフロー) が発生し、操作の結果がプログラム バッファに収まらないことがあります。
    他の - 追加情報- 実行されたリクエストの結果。

        このプログラムはとても使いやすいです。 開始後は、デフォルトのフィルターを選択することをお勧めします。 レジストリへのすべてのアクセスを記録し、メイン プログラム ウィンドウで不要なプロセスを選択し、マウスの右ボタンを使用してコンテキスト メニューを呼び出します - プロセスの除外 - このプロセスのレジストリへのアクセスに関する情報は表示されません。 また、同様に、興味のない他のプロセスを除外します。

        プログラムを操作するときは、[ファイル]、[編集]、[オプション] メニューまたはキーボード ショートカットを使用できます。

    CTRL-S - 結果を保存
    CTRL-P - 選択したプロセスのプロパティ
    CTRL-E - モニタリングの有効化/無効化
    CTRL-F - コンテキストによる検索
    CTRL-C - 選択した行をクリップボードにコピーします
    CTRL-T - 時刻形式を変更します
    CTRL-X - 監視結果ウィンドウをクリアします
    CTRL-J - レジストリ エディタを起動し、[パス]列で指定されたブランチを開きます。 次の場合も同様の動作が実行されます。 ダブルクリックマウスの左ボタン。 時間を大幅に節約できる非常に便利な機能です。
    CTRL-A - 自動スクロールを有効/無効にします。
    CTRL-H - 監視結果の行数を設定できます。

        もう 1 つの非常に便利な機能は、オペレーティング システムの起動プロセス中にレジストリへのアクセスのログを取得することです。
    これを行うには、メニューを選択します オプション - ログブート。 プログラムは、次回の OS の再起動時にレジストリ アクセスをログ ファイルに書き込むように Regmon が設定されていることを示すメッセージを表示します。

        OS を再起動すると、監視結果のログが記録された Regmon.log ファイルがシステム ルート ディレクトリ (C:\Windows) に作成されます。 ログ モードは、ログオンしているユーザーが Regmon.exe を実行するまで継続され、システムが 1 回再起動される場合にのみ発生します。 もちろん、ログの内容は、レジストリへのすべてのアクセスを完全に反映するわけではありません。 ログ ブート モードの Regmon はシステムにインストールされ、再起動後にドライバーとして起動するため、起動前に発生したレジストリへのアクセスはすべてログに記録されません。 しかし、それらのほとんどは依然としてそこに到達し、そのようなリクエストが数十万件あることがわかります。

    レジストリを保存および復元するには、「」を使用します。 ディスクと「Files」 - 「SystemSaver」。レジストリを維持および最適化するには、「System Registry」 - 「RegistryFixer」および「RegistryDefrag」を使用します。

    プログラムの起動には、スタートアップ フォルダーに加えて、次のレジストリ キーが使用されます。
    HKLM\ソフトウェア\Microsoft\Windows\CurrentVersion\Run
    HKLM\ソフトウェア\Microsoft\Windows\CurrentVersion\RunServices
    HKLM\ソフトウェア\Microsoft\Windows\CurrentVersion\RunOnce
    HKLM\ソフトウェア\Microsoft\Windows\CurrentVersion\RunServicesOnce
    最後の 2 つのセクション (...Once) は、そこに書かれたプログラムが 1 回だけ起動され、実行後にキー パラメーターが削除される点が異なります。

    HKLM のエントリは、コンピュータのすべてのユーザーに適用されます。 現在のユーザーの場合、起動は HKU セクションのキーによって決まります。
    HKCU\ソフトウェア\Microsoft\Windows\CurrentVersion\Run
    HKLM\...\RUN セクションの例:

        右側のウィンドウにリストが表示されます パラメーター、その値はプログラムを参照する文字列です。 ユーザーがログインすると、リストされているすべてのプログラムが実行されます。 パラメータを削除すると、プログラムは起動しません。 しかし、すべてを削除できるわけではありません。 exe 拡張子を ex_ に変更して実験してください。

        ユーザーがシステムに登録するときに起動されるプログラムに加えて、必ずしも明白ではない膨大な数の他のプログラムも起動されます。これらはシステム サービス (サービス) です。 さまざまなドライバー、シェルプログラムなど。 便利な (場合によっては役に立たない) プログラムに加えて、自動起動やシステムに侵入したウイルスを使用して実行される可能性もあります。 ウイルスについてさらに詳しく。 考えられるポイント 自動スタート膨大な数の実行可能モジュールがあるため、レジストリ内でそれらを検索するには、次のコマンドを使用する方が便利です。 特別番組- 起動モニター。最も人気のあるものは、より多くの機能を備えたモニターです。 広い範囲公式よりチャンス MSConfig プログラム、Windows に含まれています。

    インストールは必要ありません。 Autoruns をダウンロードして解凍し、Autoruns.exe ファイル (autorunsc.exe - コンソール バージョン) を実行するだけです。 このプログラムは、どのアプリケーションが自動的に起動するように構成されているかを表示し、自動起動の設定に使用できるレジストリ キーとファイル システム ディレクトリの完全なリストも表示します。 表示される項目 自動実行プログラム、ログイン時に自動的に起動されるオブジェクト、 追加のコンポーネント導体、追加コンポーネント インターネットエクスプローラ(ブラウザ ヘルパー オブジェクト (BHO) を含む)、アプリケーション初期化 DLL、要素置換、初期ブート オブジェクト、Winlogon 通知 DLL、Windows サービス、および Winsock 階層化サービス プロバイダー。
    必要なカテゴリの自動的に起動されるオブジェクトを表示するには、目的のタブを選択するだけです。

        選択したオブジェクトに関連するレジストリ内のエントリを検索するには、「ジャンプ先」項目を使用するだけです。 コンテキストメニュー、マウスの右ボタンで呼び出されます。 レジストリ エディタが起動し、起動を許可するキーが開きます。


    ドライバーとサービス。

    ドライバーとシステム サービス (サービス) に関する情報は、セクションにあります。
    HKLM\システム\現在のコントロールセット\サービス
    各ドライバーまたはサービスには独自のセクションがあります。 たとえば、「atapi」 - 標準の IDE コントローラ ドライバの場合 ハードドライブ、「DNScache」 - サービス用「 DNSクライアント"。主なキーの目的:
    表示名- 表示名 - たとえば、コントロール パネル要素を使用するときに意味のある名前として表示されるもの。

    エラーコントロール- エラー処理モード。
    0 - 無視 (無視) ドライバーのロードまたは初期化中にエラーが発生した場合、エラー メッセージは表示されず、システムは動作を続けます。
    1 - 通常 (通常) エラー処理モード。 エラーメッセージが表示された後もシステムの動作は続行されます。 ほとんどのデバイス ドライバーとシステム サービスの ErrorControl 設定は 1 に設定されます。
    2 - 特殊 (重大) モード。 最後に既知の正常な構成 (LastKnownGood) がロードされていることを確認するために使用されます。
    3 - 重大なエラー。 ダウンロード プロセスが停止し、失敗メッセージが表示されます。

    グループ- ドライバーが属するグループの名前 (例: 「ビデオ アダプター」)

    画像パス実行可能ドライバーのパスと名前。 通常、ドライバー ファイルには .sys 拡張子が付いており、\Windows\System32\DRIVERS\ フォルダーにあります。 サービス ファイルは通常 .exe で、\Windows\System32\ にあります。

    始めるブートと初期化の制御。 システム起動プロセスのどの時点でシステムが起動して初期化されるかを決定します。 このドライバーのまたはサービス。 開始値:
    0 - ブート - ドライバーはブートローダーによってロードされます。
    1 - SYSTEM - ドライバーはカーネルの初期化中にロードされます。
    2 - 自動 - システムの起動時にサービスが自動的に開始されます。
    3 - 手動 - サービスは手動で開始されます。
    4 - 無効 - 無効。
    ユーザーがシステムに登録する前に、ドライバーがロードされ、0 ~ 2 の開始パラメーターを使用してサービスが開始されます。 ドライバーまたはサービスを無効にするには、開始値を 4 に設定するだけです。このレジストリ キーを編集してドライバーとサービスを無効にすることは、かなり危険な操作です。 ドライバーやサービスを誤ってまたは無意識に無効にしてしまい、ロードや操作が不可能になった場合、次のようなメッセージが表示されます。 クラッシュシステム (ほとんどの場合、ブルー スクリーン) 死BSOD).


    セーフ モード用のドライバーとサービス。

    オペレーティング システムが起動すると、現在の構成セクションの制御パラメーターのセットがドライバーとサービスの初期化に使用されます。
    HKLM\システム\現在のコントロールセット
    オペレーティング システムの動作に問題が発生した場合は、セーフ モードがよく使用されます。 違い このモード通常のブートとは異なり、ドライバーとシステム サービスの最低限必要な構成が使用されます。そのリストは次のセクションで指定されています。
    HKLM\システム\現在のコントロールセット\コントロール\セーフブート
    サブセクション:
    最小限- セーフ モードで起動するドライバーとサービスのリスト
    通信網- 同じですが、ネットワークがサポートされています。

    HKLM\System\CurrentControlSet セクションに加えて、レジストリには次のものも含まれています。
    HKLM\システム\CurrentControlSet001
    HKLM\システム\CurrentControlSet002
    これらの構造は HKLM\System\CurrentControlSet と同一であり、システムの前回正常起​​動時の構成をロードすることでシステム機能を復元できる追加の可能性を目的としています。 コントロール セットをロードするために可能なオプションは、セクションの内容によって決まります。
    HKLM\システム\選択

    現在- 現在の負荷に使用された制御セット。
    デフォルト- 次回の起動時に使用されるコントロール セット。
    最後に知られている良い- 前回正常起​​動時の構成ブート モードが選択されている場合に使用される制御セット。
    失敗した- 前回正常起​​動時の構成ブート モードが選択されている場合に作成される、失敗した制御セット。
        ダウンロードが成功し、ユーザーがログインすると、CurrentControlSet と ControlSet001 のデータが ControlSet002 にコピーされます。 構成が変更されると、データが CurrentControlSet と ControlSet001 に書き込まれます。 設定の変更によりシステムがクラッシュした場合は、ControlSet002 からデータを取得する、最後に成功したブート オプションを使用してシステムを復元できます。 後 ダウンロードが成功しましたこのモードでは、前回正常起​​動時の構成を再度使用する必要がある場合に備えて、コントロール セット ControlSet003 とともに新しいサブキーが表示されます。 Last Known Known Configuration を使用するたびに、ControlSet00x の値が増加します。

    リソースへのユーザーのアクセスを制限します。

    ほとんどの場合、レジストリに加えた変更を有効にするには、再起動するか終了する必要があります。 再入国システムに。 HKEY_CURRENT_USER セクションのパラメータは、システムの現在のユーザーに適用されます。 HKLM セクションの設定はすべてのユーザーに適用されます。

    論理ドライブの非表示

    セクションを開きます。
    HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\Explorer
    それにパラメータを追加します ドライブなし DWORD型。 パラメータ値によって、非表示にする A ~ Z ドライブが決まります。 ダブルワードの最下位ビットで始まる「1」の存在は、「マイ コンピュータ」に論理ドライブがないことを意味します。
    00000001 - ドライブ A なし、00000002 - ドライブ B なし、00000004 - ドライブ C なし、0000000F - ドライブ A ~ F なし
    この方法で隠されたディスクはエクスプローラーだけに表示されるわけではなく、他のプログラム (FAR など) からアクセスできる可能性があることを付け加えておきます。 ただし、他のプログラムは非表示にしたり禁止したりすることができます。これについては後で詳しく説明します。

    「START」ボタンのメニュー変更

    ノーラン=dword:00000001 「実行」ボタンはありません
    NoLogOff=16 進数:01 00 00 00(dword ではなく 16 進数) no 「セッションの終了」
    見つからない=dword:00000001 - 「検索」項目はありません
    お気に入りメニューなし=dword:00000001 「お気に入り」はありません
    いいえ最近のドキュメントメニュー=dword:00000001 いいえ「ドキュメント」
    NoSetFolders=dword:00000001 「設定」サブメニューに「コントロール パネル」がありません
    NoSetタスクバー=dword:00000001 「タスクバー」はありません
    プリンターなし=dword:00000001 コントロール パネルに「プリンター」がありません
    プリンターの追加なし=dword:00000001 no 「プリンターの追加」
    いいえ削除プリンター=dword:00000001 no "プリンターを削除"
    いいえデスクトップ=dword:00000001 空のデスクトップ
    ネットフッドなし=dword:00000001 いいえ「ネットワーク ネイバーフッド」
    インターネットアイコンなし=dword:00000001 Windows デスクトップにインターネット アイコンがありません
    NoTrayContextMenu=hex:01,00,00,00 - 呼び出されたメニューを無効にします 右クリックタスクバー上のマウス
    NoViewContextMenu=hex:01,00,00,00 - デスクトップの右クリック メニューを無効にします。再度オンにするには、01 を 00 に置き換えます。
    ファイルメニューがありません=hex:01,00,00,00 「ファイル」を非表示にします トップラインエクスプローラーメニュー
    ClearRecentDocsOnExit=hex:01,00,00,00 システムの終了時に、最近開いたドキュメントのリストを保存しません。

    次の設定はレジストリ キーに適用されます
    HKCU\ソフトウェア\Microsoft\Windows\CurrentVersion\Policies\
    通信網

    ネットセットアップなし=dword:00000001 は、コントロール パネルのネットワーク アイコンへのアクセスを無効にします
    ファイル共有コントロールなし=dword:00000001 ファイルとプリンターの共有管理ダイアログ ボックスを非表示にし、ユーザーが新しいファイルまたはプリンター共有の作成を管理できないようにします。
    NoNetSetupIDPage=dword:00000001 「ID」タブを非表示にします
    NoNetSetupSecurityPage=dword:00000001 「アクセス制御」タブを非表示にします
    いいえネットワーク全体=dword:00000001 は、ネットワーク ネイバーフッドの「ネットワーク全体」要素を非表示にします。
    NoWorkgroupContents=dword:00000001 すべてのコンテンツを非表示にします ワーキンググループネットワーク近隣で

    HKEY_CURRENT_USER キーではなく HKLM キーが使用されるため、次の設定はすべてのユーザーの制限に適用されます。 データを編集するにはシステム管理者権限が必要です
    HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\policies\System

    NoSecCPL=dword:00000001 は、コントロール パネルのパスワード アイコンへのアクセスを無効にします
    管理者ページなし=dword:00000001 「リモートコントロール」タブを非表示にします
    プロフィールページなし=dword:00000001 「ユーザー プロファイル」タブを非表示にします
    いいえPwdページ"=dword:00000001 は、「パスワードの変更」タブを非表示にします
    NoDispCPL=dword:00000001 は、コントロール パネルの [ディスプレイ] アイコンへのアクセスを無効にします
    NoDispAppearancePage=dword:00000001 画面のプロパティウィンドウの「外観」を非表示にします
    NoDispBackgroundPage=dword:00000001 は、画面のプロパティ ウィンドウの「背景」を非表示にします。
    NoDispScrSavPage「画面のプロパティ」ウィンドウの「スクリーン セーバー」を非表示にします。
    NoDispSettingsPage=dword:00000001 画面のプロパティウィンドウの「設定」を非表示にします
    NoConfigPage=dword:00000001 は、「システムのプロパティ」ウィンドウで「ハードウェア プロファイル」を非表示にします。
    NoDevMgrPage=dword:00000001 は、システム プロパティ ウィンドウの [デバイス] タブを非表示にします。
    NoFileSysPage=dword:00000001 は「」ボタンを非表示にします ファイルシステムシステムのプロパティウィンドウの「パフォーマンス」タブにある...」
    NoVirtMemPage=dword:00000001 は「」ボタンを非表示にします 仮想メモリシステムのプロパティウィンドウの「パフォーマンス」タブにある...」
    =dword:00000001 Regedit.exe または Regedt32.exe を禁止します

        ユーザー操作に対するリストされた禁止事項の一部は、システム管理者だけでなく、システムに侵入したウイルスによっても使用されます。 通常、データは、埋め込まれた悪意のあるソフトウェアの検索と削除の機能をブロックするレジストリに書き込まれ、最後の仕上げとして、レジストリ エディタ (DisableRegistryTools) の起動を禁止します。 その結果、管理者権限があっても、ユーザーは自分のレジストリに対して何も行うことができなくなります。 エディターを起動しようとすると、次のようなメッセージが表示されて終了します。

    もちろん、「レジストリの編集がシステム管理者によって禁止されている」場合、ユーザー、特に管理者は腹を立てるはずです。 そこで、別の小さなセクションを追加しました。

    リソースへのユーザーのアクセス制限を回避します。

        上記の制限はすべて、システムの特定のユーザーまたはすべてのユーザー、あるいはそのアカウントに適用される場合があります。 ただし、各 Windows OS には別のアカウントがあり、その権限は、ある程度、ローカル管理者の権限よりもさらに高くなります。ローカル システム アカウント (ローカル システム アカウント) は、システム サービスが起動される前から代理として実行されます。ユーザーがシステムにログインします。 プログラム (同じ regedit.exe) がローカル システム権限で実行される場合、実際のユーザーのアカウントに関連付けられた制限は適用されません。 を使用してローカル システム アカウント権限でレジストリ エディタを実行する方法 PSExecユーティリティ, 記事の冒頭ですでにお伝えしましたが、そこにはPSToolsパッケージのダウンロードページと説明へのリンクも掲載しました。 パッケージ全体をダウンロードする必要がなく、複雑な点を理解せずに単に制限を回避する必要がある人向けに、段階的な手順を示します。
  • Microsoft PSTools パッケージ (Sysinternals) から PSexec をダウンロードします。 (PSTools.zipをダウンロード)
  • それを \WINDOWS\SYSTEM32 フォルダーにコピーします
  • psexec を使用してレジストリ エディタを起動します。
    psexec -s -i regedit.exe
    psexec.exe を操作するには、管理者権限が必要です。 ユーザーは管理者グループのメンバーである必要があります
  • レジストリに必要な修正を加えます。DisableRegistryTools を 0 に設定するか、完全に削除します。 その後、通常どおりレジストリ エディタを使用して、タスク マネージャーの起動に関する制限を解除し、ウイルス対策プログラムやウイルスが行ったその他の行為をブロックします。

        もちろん、Winternals ERD Commander を使用してダウンロードして問題のあるレジストリを編集する、またはコマンド ライン ユーティリティ REG.EXE を使用するなど、制限を回避するための他のオプションを思いつくこともできます (レジストリ エディターのロックを解除するためにバット ファイルをダウンロードし、タスク マネージャー)、またはエディターのサードパーティ レジストリ、ただし この方法- 最も珍しい、シンプルで速い。 問題の解決策が独自であるため、一般に、回避するための行動に対する制限がない、または事前に準備された対策が存在しないという利点が得られます。
    ちなみに、この方法は regedit.exe だけでなく、エクスプローラー (Explorer.exe) などの他のプログラムの起動にも使用できます。
    psexec -s -i C:\WINDOWS\EXPLORER.EXE
    これにより、非表示のディレクトリや実際のユーザーがアクセスできないディレクトリやファイルにアクセスできるようになります。 システムフォルダー システムボリューム情報。

    制限を回避する非常に良い方法は、サードパーティのレジストリ エディタを使用することです。

    Resplendent Registrar Registry Manager - 約 3MB - 「Lite Edition」内 - ユーザーフレンドリーなインターフェイスと便利な無料のレジストリ エディター 追加機能レジストリの検索、監視、デフラグ、保存、復元を行います。

    長い間削除されていたプログラムが、インストールされているプログラムのリストに表示されます。

    これは通常、プログラムをアンインストールせずに手動で削除した場合、またはアンインストーラーに問題があった場合に発生します。 このセクションを編集することで状況を修正できます。
    HKLM\ソフトウェア\Microsoft\Windows\CurrentVersion\アンインストール

    Windows ディストリビューションへのパスを常に指定する必要があります

    セクションを探す
    HKLM\ソフトウェア\Microsoft\Windows\CurrentVersion\Setup
    そしてパラメータで ソースパスディストリビューションへのパス (文字列値 "D:\install" ) を指定します。 システム設定を頻繁に変更し、ディスク容量が多い場合は、ディストリビューションをディレクトリにドロップして、SourcePath に登録します。

    一部のプログラムでのロシア語フォントの問題

    これは、Windows NT 4.0 Server などのロシア以外のオペレーティング システムに特に当てはまります。 Russified フォントをインストールし、地域設定でロシアを指定した場合でも、 キリル文字フォントが生じる可能性があります。 オープンセクション
    HKLM\ソフトウェア\Microsoft\Windows\CurrentVersion\FontSubstitutes
    そしてパラメータを入力します:
    パラメータ システム,0値システム、204
    パラメータ 宅配便、0宅配便価格、204
    パラメータ エリアル,0 Arial 値、204
    パラメータ 宅配便 新品,0宅配便 新しい値、204
    パラメータ タイムズ ニュー ローマン,0タイムズニューローマン値、204
    おそらく、これらのパラメータはすでに存在しますが、204 ではなく 238 です。Windows 9X の場合、そのようなレジストリ セクションは存在しないため、WINDOWS\win.ini ファイル セクションを編集する必要があります。
    HKLM\System\CurrentControlSet\Control\Nls\CodePage セクションにパラメータを追加すると役立つ場合があります。 "1252" ="CP_1251.nls"

    スクリーンセーバーのパスワードを解除する(ScreenSaver)

    プロファイルのデフォルトのデスクトップ設定は、レジストリ キーの設定によって設定されます。
    HKEY_USERS\.DEFAULT\コントロール パネル\デスクトップ
    現在のユーザーのデスクトップ設定 - レジストリ キー
    HKCU\コントロール パネル\デスクトップ
    現在のユーザーのデスクトップ スクリーンセーバーからパスワードを削除するには、レジストリ キーを開く必要があります
    HKCU\コントロール パネル\デスクトップ
    そしてキー値を設定します スクリーンセーバーは安全ですゼロに等しい。

    スクリーンセーバーを無効にするには、値を 0 に設定します。 スクリーンセーブアクティブ

    ログイン時に独自のウィンドウを作成する

    これは、ユーザーに何かについて警告する必要がある場合に便利です。 セクション HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Winlogon
    オプション:
    法的通知のキャプション= たとえば、「注意してください!」 ウィンドウのタイトルのテキスト
    Legal NoticeText =ウィンドウに「毎月 25 日から 30 日までパスワードを変更する必要があります」というテキストが表示される

    以前のユーザー名をクリアする

    セクション HKLM\SOFTWARE\Microsoft\Windows NT\ CurrentVersion\Winlogon
    DontDisplayLastUserName=dword:00000001

    レジストリエディター、タスクマネージャーの起動を禁止します。

    ユーザーがレジストリ エディタを起動できないようにするには、次のセクションを使用します。 HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\policies\system
    =dword:00000001 は実行できません
    =dword:00000000 の実行が許可されています
    タスクマネージャーを無効にする- =dword:00000001 は実行が禁止されています
    タスクマネージャーを無効にする- =dword:00000000 の実行が許可されています
    現在のユーザーのレジストリ エディターとタスク マネージャーの起動を制限するには、セクションに同様の値を設定します。
    HKCU\ソフトウェア\Microsoft\Windows\CurrentVersion\Policies

    Windows 9X での必須パスワード入力

    Microsoft ネットワーク クライアントがインストールされている必要があります。 ESCを押してもログインできなくなりました
    セクション HKLM\ネットワーク\ログオン
    パラメータ 検証が必要です=dword:00000001

    シャットダウン時のコンピュータの動作を変更する

    セクション HKLM\System\CurrentControlSet\Control\Shutdown
    パラメータ 高速再起動 0に等しい - 通常のシャットダウン、1に等しい - 加速され、多くの場合再起動が必要になります

    ログインウィンドウのデフォルト言語を変更する

    パスワード入力ウィンドウでロシア語のキーボード レイアウトが使用されている場合は、HKEY_USERS\.DEFAULT\Keyboard Layout\Preload セクションを編集してこれを変更できます。 これには、「1」と「2」という 2 つの文字列パラメータがあります。
    値が等しい場合:
    1=00000409
    2=00000419
    ログインウィンドウのレイアウトが英語になります。
    逆にパラメータに値を割り当てると (「1」=00000419、「2」=00000409)、レイアウトはロシア語になります。
  • 今日は、これを目的とした標準の WinAPI 関数を使用せずに、バックドアから Windows レジストリにアクセスしてみます。 これは最終的に何をもたらすのでしょうか? 制限を回避して、レジストリに直接書き込みおよび読み取りを行う機能。 開発者によってインストールされたウイルス対策ソリューション!

    今後に注目して、このトピックは興味深いものですが、ここには一連の深刻な問題があることに注意してください。 誰がそれを処理できないと言いましたか? 🙂

    レジストリまたは歌詞とは何ですか

    Windows オペレーティング システムの観点から見ると、レジストリは独自の保管室です。 この独自に構築された階層型データベースには、プログラムから特定のユーザーの設定に至るまで、システム内のほぼすべてに関する設定、データ、登録情報、その他のくだらないものが保存されます。 ほとんどすべてがレジストリに保存されます。 一部のプログラムは設定を ini-config に保存することを好むという事実にもかかわらず (特に Win 3.11 用に作成されたプログラム - 編集者注)、Windows 自体はそれ自体に関する必要な情報をすべてレジストリから読み取ります。 公平を期すために、*nix のようなオペレーティング システムでは、あらゆる種類の構成に設定を保存するシステムが依然として主流であることに注意してください。

    新人 - システム管理者レジストリの操作を開始するとき、上級の同志は次のことを恐れています。 間違った設定また、レジストリ設定を変更すると、その後の再インストールでシステムが完全にクラッシュする可能性があります。 そして実際その通りです。

    たとえば、いわゆる回復ポイントはレジストリのコピーです。 これらは、オペレーティング システム、ソフトウェア、ハードウェアの両方でさまざまな問題が発生した場合にユーザーによって広く使用されています。

    Windows レジストリに関する情報の 99% は、主要なキーの説明とその操作方法に関するヒントであると言わざるを得ません。 しかし、オペレーティング システム自体はレジストリとどのように連携するのでしょうか? そして、私たちは彼女の行動を真似することができるでしょうか? 少し推測してみましょう。

    だから何?

    レジストリは強力であり、 弱い面ウィンドウズ。 強さレジストリを使用すると、ソフトウェア開発者は、たとえば Nix に実装されているように、膨大な設定を操作する必要がなくなります。 レジストリは、COM コンポーネントの作成者にとっても便利です。システムはそのようなコンポーネントをレジストリに自動的に登録し、その後の使用作業を容易にします。

    レジストリの弱点は、レジストリの機密領域の変更にアクセスすると、新たに作成されたマルウェアによって作成されたプログラムが Windows を制御できることです。 Windows レジストリの最も有名なブランチを覚えておいてください。これにより、OS の開始時にプログラムを起動できるようになります :)。

    Windows 98 でレジストリを思いついた人なら誰でも修復できたとしたら、Windows XP 以降では、 アカウント管理者。 Vista+ では、レジストリへのアクセスは UAC によって保護されます。 これは理解できます。

    Win7 のリリースにより、レジストリを操作する際のセキュリティ概念が改訂されたことを認めなければなりません。 良い面。 たとえば、キー レジストリ ブランチ HKEY_LOCAL_MACHINE は保護されています。 一般に、そこに何かを書き込もうとすると、現在のユーザーの適切な HKEY_CURRENT_USER ブランチにリダイレクトされます。

    インターフェース

    レジストリを直接操作するために、Windows はプログラマに WinAPI のセット全体を提供します。これは、システム開発者ならよく知っているはずです。これらは、RegOpenKey、RegQueryValue などの Reg* 関数です。 Win カーネルでは、これらは NtOpenKey、NtQueryValueKey、および 全行その他。 これらを説明することに特に意味はありません。これらの関数の適切な使用方法に関するドキュメントはすべて MSDN で見つけることができます。

    ここで注目すべき点があります。 ユーザーのアクションを制御するために、ウイルス対策プログラムとプロアクティブ プログラムは、カーネルとユーザーモードの両方で、前述の機能にインターセプトをインストールしました。

    Win7 x64 のリリースにより状況は変わり、それについてはすでに一度書きました。 Windows 開発者 Win カーネル内の潜在的に危険な機能を傍受する機能を放棄することを決定しました。 KeServiceDescriptorTable 変数が x64 でさらにエクスポートされ、書き換えられるようになりました 必要なエリアコードは表示されません - PatchGuard はそれを提供しません。 もちろん、これらの制限を回避するためのサドマゾヒスティックな解決策はありますが、利益よりも問題の方が多くなるでしょう。 さらに、Microsoft はレジストリを監視するための便利な ObRegisterCallbacks を提供しています。

    情報

    インターネット上には、主要なレジストリ ファイルを記述する構造に関する情報がほとんどありません。 そしてそれらはほぼすべて英語です。 基礎知識がわかります。 また、システムエンジニアのバイブル『社内向け』にもレジストリについて詳しく書かれています。 Windowsデバイス「同志のM・ルシノビッチとD・ソロモンから。

    そして今 - 最も興味深いことについて

    しかし、レジストリとは実際何でしょうか? WINDOWSsystem32config フォルダーを調べると、システム、ソフトウェア、セキュリティ、SAM、その他いくつかのファイルが存在することがわかります。

    これらはレジストリ ファイルです。

    ただし、レジストリを単にメモリにロードされるファイルの組み合わせとして語るのは不公平です。 レジストリに含まれる内容の多くは本質的に動的です。つまり、多くの値はシステム自体をロードする段階で計算されます。これは主に特定のハードウェア パラメーターに関係します。 たとえば、これは HKEY_DYN_DATA レジストリ サブキーであり、そのデータはオペレーティング システムの起動時に RAM に配置され、オペレーティング システムがシャットダウンするまでそこに残ります。 ちなみに、同じことがキー サブキー HKEY_LOCAL_MACHINE についても言えます。HKEY_LOCAL_MACHINE は、ディスク上に対応する独自のファイルを持たず、実際にはソフトウェア、システムなどの他のレジストリ ファイルから形成されます。

    したがって、内部のレジストリは、非常に大まかに「レジストリ ファイルの仮想的な組み合わせ」と呼ぶことができます。 システムの起動後、これらのファイルはページ ファイル (ページ プール) と非ページ メモリ (非ページ) の両方に配置されます。

    レジストリ構造

    レジストリを直接操作する方法を学ぶには、その内部構造についての知識がなければできません。 一般に、Microsoft は、セキュリティ リスクを引き起こすため、レジストリを構成するファイルの内部構造を決して公開していません。 私の観察によると、レジストリ ファイルとその構造に関する入手可能なすべての記述 (ちなみに、それらは非常に少数です) は、先駆的な研究者の研究の結果です。 私の意見では、そのような「研究」が可能である最も完全なものは、同志ピーター・ノリスのものです。

    レジストリの組織と構造についてはここでは詳しく説明しません。これは長くて退屈な問題なので、この記事の範囲には当てはまりません。 ここで、レジストリは階層ツリーのような構造であり、蜂の巣のようなものであるとも言われることを理解することが重要です。

    そして、これらすべてを今どうすればよいでしょうか?

    すぐにがっかりするでしょう。ユーザー モードでは、レジストリを直接操作することは簡単にできません。他のプロセスがファイルを占有している場合と同様に、システムはこれを許可しません。 これを回避しようとすると、そのような「ビジー」ファイルを読み取ることができるのは、それが開かれたフラグを推測した場合のみです。 残念ながら、知りたい情報を「レジストリファイル」に書き込むことはできません。 ちなみに録音機能は 必要な情報レジストリ *.BAK ファイルに書き込むと、レジストリ内で機能します。これらのファイルは間違いなく書き込み可能です。

    だから、手に注意してください:)。

    聡明なあなたの頭に最初に思い浮かぶのは、レジストリ ファイルを直接開いて、そこに何かを書き込むことでしょう。

    理論的には、これは可能ですが、そのためには、まず「ビジー」ファイルを操作できるようにする必要があり (インターネットでメソッドを探す)、次に、上で述べたように、レジストリの内部構造を知る必要があります。ファイル。 この方法はかなり不器用ですが、ナンセンスであるにもかかわらず、実際に実装するのは困難ですが、非常に実行可能です (自分で試してみてください)。

    ここでは、レジストリを細かく分割するのに役立つ 2 つの方法を紹介します。

    1 つ目の方法は、構成マネージャー (ご存知ない方のために、オペレーティング システムの一部である構成マネージャー) にとって、レジストリは厳密に定義された構造のセットにすぎません。 オペレーティングメモリ結果的に、これは非常に簡単に作業できることがわかりました。 これらの構造は何ですか? HBASE_BLOCK、HHIVE、HBIN、HCELL、HMAP_ENTRY、HMAP_DIRECTORY、構成マネージャーがレジストリを管理するために使用する一連の CM_* 構造。 オペレーティング システムの観点から見ると、レジストリは RAM 内の規制された構造のセットにすぎません。 たとえば、「レジストリ ファイル」を定義する署名「regf」は、事前定義された定数です。

    Define HBASE_BLOCK_SIGNATURE 0x66676572 typedef struct _HBASE_BLOCK ( ULONG Signature; //0x66676572 ULONG Sequence1; ULONG Sequence2; LARGE_INTEGER TimeStamp; .... ) そして、これが「regf」署名です...

    つまり、私のこの独白の要点は、標準ツールを使用せずに、オペレーティング システム レベルでレジストリを操作する絶好の機会があるということです。 これはどのようにして可能でしょうか? 私たちは、オペレーティング システム自体の動作、つまりオペレーティング システム自体がレジストリを操作する方法を正確にエミュレートするだけです。 すでに述べたように、OS 自体にとって、レジストリはメモリ内の対応する構造のセットにすぎないことを理解することが重要です。

    カーネル レベルでレジストリ ファイルにアクセスできるのであれば、なぜ OS 自体よりもその順序を確立するのが難しいのでしょうか?

    そしてここで一番 興味がある 尋ねる- メモリ内でこれらと同じ構造を見つけるにはどうすればよいでしょうか? 右、 通常の資金この問題を解決するシステムはないため、ずるい方法でこの問題から抜け出す必要があります。

    構造がどのようなものかを理解したら、各ファイル (レジストリ ハイブ) には独自の一定の署名があることを覚えておく必要があります。 たとえば、「regf」は 0x66676572 です。 ハイブの場合、署名は 0xBEE0BEE0 になります。 カーネルからメモリにアクセスすると、スキャンするだけでメモリ内のこれらの署名を非常に簡単に見つけることができます。 「CM10」署名を探してメモリをスキャンすることもできます。これは、構成マネージャーによって、CMHIVE 構造に割り当てられるスワップ メモリ ブロックに割り当てられるものです。 記憶の中で興味のある要素を見つけたら、次にそれをどう扱うかがわかると思います :)。

    たとえば、レジ​​ストリ セルの値を変更するにはどうすればよいでしょうか? 値は CM_KEY_VALUE->Data フィールドに保存されるため、特定のレジストリ キーのフィールドを変更するタスクがある場合は、そこで値を探します。

    Typedef struct _CM_KEY_VALUE ( WORD Signature; // #define CM_KEY_VALUE_SIGNATURE 0x6B76 WORD NameLength; ULONG DataLength; ULONG Data; //<---------- данные ячейки будут здесь ULONG Type; WORD Flags; WORD Spare; WCHAR Name; } CM_KEY_VALUE, *PCM_KEY_VALUE;

    2 番目のオプションは、最初のオプションの一種の変更です。 ご存知のとおり、レジストリを操作する場合には 1 つの特殊な点があります。すべての変更、つまり「新しいキーの作成 / キーの書き込み / 削除」は、原則として、システムが再起動された後 (つまり、エクスプローラーが再起動された後) に有効になります。再起動しました、これはそのようなハック方法です)。 これ以前は、すべての変更が一時停止された「ダーティ」状態にあるように見えます。 さらに、システムがレジストリにアクセスするときは、ファイル システム キャッシュを介してレジストリと通信します。 これは当然のことです。レジストリへの呼び出しは 1 秒あたり数百回も発生する可能性があるため、ファイル システムの速度に依存するのは不合理で、いくら速度を上げても役に立ちません。 したがって、システムはファイル システム キャッシュを介して仮想的にレジストリを操作します。 ここで、レジストリの中身を明らかにするには、キャッシュにアクセスする必要があります。 これがどのように行われるかについては、 tyrnets などですでに説明されています。

    賛否両論、または結論の代わりに

    結局何と言えばいいのでしょうか? この記事で読者に提供されているレジストリの直接制御というテーマのバリエーションは、本質的に実験的なものにすぎません。 私は異論はありませんが、実際の実装には少し難しいため、レジストリを操作するように設計された通常の WinAPI 関数を使用する方が良いと多くの人が言うでしょう。そして、それらはある意味で正しいでしょう。 ただし、記事で示されている原則に基づいて、実際に die_hard によって実装されたライブラリは、サーバーやオペレーティング システム自体の制御を超えた真の熱核発電を備えています。

    それでは終わります。 コンパイルを成功させてください。フォースがあなたとともにありますように!

    WWW

    レジストリに関する Mark Russinovich の記事「Inside the Registry」は必読です。ロシア語の翻訳もありました。 レジストリ情報を収集するための素晴らしいツール: http://goo.gl/iSSVy。

    Windows レジストリ (システム レジストリ) は、ほとんどの Microsoft Windows オペレーティング システムのパラメータと設定の階層的に構築されたデータベースです。

    レジストリには、ハードウェア、ソフトウェア、ユーザー プロファイル、プリセットの情報と設定が含まれています。 コントロール パネル、ファイルの関連付け、システム ポリシー、インストールされているソフトウェアのリストのほとんどの変更はレジストリに記録されます。

    Windows レジストリは、これまで多くの INI ファイルに保存されていた情報を整理し、設定の書き込みと読み取りのための単一のメカニズム (API) を提供し、短い名前、アクセス権の欠如、および Windows に保存されている ini ファイルへのアクセスの遅さの問題を取り除くために導入されました。ファイル システム FAT16 では、多数のファイルが含まれるディレクトリ内でファイルを検索するときにパフォーマンスに重大な問題が発生しました。 時間が経つにつれて (最終的には NTFS ファイル システムの登場により)、レジストリによって解決される問題は解消されましたが、レジストリは下位互換性のために残り、最新のものを含むすべてのバージョンの Windows に存在します。 現時点では、このようなメカニズムを使用するための実際の前提条件がないため、オペレーティング システムのレジストリ メカニズムを使用する現在使用されているオペレーティング システムは Microsoft Windows だけです。 一般に、レジストリは初歩的なものです。

    現在の形式の Windows レジストリ。

    Windows が使用するレジストリ、およびユーザーがレジストリ プログラムを使用するときに表示されるレジストリは、さまざまなデータから形成されます。 レジストリの編集時にユーザーに表示される内容を取得するには、次のことが行われます。

    まず、Windows のインストール プロセス (インストール) と構成中に、システム構成に関するデータの一部が保存されるファイルがディスク上に作成されます。


    次に、各システムのブート中、および各ユーザーのログインと終了中に、「レジストリ」と呼ばれる特定の仮想エンティティ (REGISTRY\ オブジェクト) が形成されます。 「レジストリ」を形成するためのデータは、一部は同じファイル (ソフトウェア、システム ...) から取得され、一部はダウンロード中に ntdetect によって収集された情報 (HKLM\Hardware\Description) から取得されます。

    つまり、レジストリ データの一部はファイルに保存され、データの一部は Windows ブート プロセス中に生成されます。

    レジストリ ブランチは、標準の Windows ツール (regedit.exe および regedt32.exe プログラム) を使用してレジストリを編集、表示、および調査するために使用できます。 レジストリを編集したり、レジストリに変更を加えたりすると、これらの変更はすぐにファイルに書き込まれます。

    ただし、ファイルを直接操作できるサードパーティ プログラムがあります。

    レジストリ最適化プログラム、ツイーカー、プログラム インストーラー、アンインストーラーは、レジストリを操作するための特別な関数を通じて動作します。

    Windows レジストリ ファイルはどこにありますか?

    レジストリ ファイルは windows\System32\config\ フォルダにあり、%userprofile%\ntuser.dat ファイル内にユーザー レジストリ セクションもあります。レジストリ ファイルのバックアップ コピーは、windows\System32\config\RegBack フォルダーにあります。

    レジストリの主要セクション (ハイブ) は何ですか?

    セクション HKEY_CLASSES_ROOT

    これは Windows のメイン レジストリ キーであり、ファイルの種類を開いて編集できるプログラムとファイルの種類を関連付けるファイルの関連付けと、コンポーネント オブジェクト モデル (COM) オブジェクトのクラス登録が含まれています。 後者は、システムの動作に関する膨大な数のルールを変更する機会を提供します。正当な理由がなければ、これを行うべきではありません。

    セクション HKEY_CURRENT_USER

    現在の設定を保存します アクティブユーザー。 このブランチには、ユーザー フォルダー、さまざまな個人設定、およびコントロール パネルのパラメーターが保存されます。 この情報はユーザーのプロフィールと直接やり取りします。 このブランチは、音声システム イベントに使用されるサウンド ファイルのパスを含むいくつかのサブセクションで構成されます。 アイコンの配置など、コントロールパネルで変更できるさまざまな項目。 現在のキーボード レイアウト、ユーザー アプリケーションの設定などに関する情報。

    セクション HKEY_LOCAL_MACHINE

    特定のコンピュータに適用される構成設定はここに保存されます (設定はすべてのユーザーに対して同時に設定されます)。 たとえば、コンピュータの構成、インストールされているドライバとプログラム、ポート名、ファイル システム パラメータなどの情報が含まれます。

    HKEY_USERS セクション

    このスレッドには、このコンピュータのすべてのユーザーのプロファイルに関する情報 (ユーザー名、デスクトップ設定など) が含まれています。 このセクションには、デスクトップ、スタート メニューなどのデフォルト設定も保存されます。 これらは、新しいユーザーが初めてログインするときに必要になります。 この時点で、デフォルト設定がプロファイルにコピーされ、ユーザーがさらに行った変更はすべてこのブランチに保存されます。

    セクション HKEY_CURRENT_CONFIG

    このキーはプラグアンドプレイ デバイスを担当し、フラッシュ カード、プリンター、FAX、外部ドライブなどのさまざまなデバイス構成を含むコンピューターの現在の構成に関する情報が含まれています。 このセクションには、システムの起動時にコンピューターによって使用される現在のハードウェア プロファイルに関する情報も含まれます。

    HKEY_DYN_DATA

    このセクションは、Windows 9x/ME ファミリのオペレーティング システムのレジストリでのみ使用できます。 コンピュータに関する動的に変化するデータ (プロセッサ負荷、ページング ファイル サイズなど) が含まれます。

    レジストリを編集するにはどうすればよいですか?

    Windows 検索で入力するのはすべて簡単です 登録編集管理者としてレジストリ エディタを起動します。 レジストリで操作を実行する前に、バックアップ コピーを作成する必要があります。 何か問題が発生した場合は、レジストリの作業バージョンに戻ることができます。


    レジストリの最適化。

    Windows レジストリを最適化する価値があるかどうかについては議論があります。 最適化は、強力なコンピューターよりも弱いコンピューターの場合に役立つと思います。 ただし、もう 1 つニュアンスがあります。レジストリ設定がクリアされていないと、ソフトウェアとハ​​ードウェアの障害や競合が発生する可能性があるため、レジストリから不要なデータを削除することをお勧めします。


    さらに、レジストリは時間の経過とともに断片化します。これはパージによっても発生します。 したがって、常にレジストリをクリーンアップしている人には、時々レジストリをデフラグすることもお勧めします。

    Windows レジストリを最適化するには、WinOptimizer、Reg Organizer、Auslogics Boostspeed のプログラムを使用できます。


    ご質問がある場合は、上のビデオをご覧ください。

    初心者の PC ユーザーは、経験豊富なコンピュータ専門家からオペレーティング システムの問題を解決するためにレジストリの変更を求められると混乱することがよくあります。

    はい、すでに準備ができています 登録-files (拡張子名が .reg のファイル)。ダブルクリックするだけでレジストリ データをエクスポートおよびインポートするために使用されます。 デフォルトでは、拡張子 .reg を持つファイルの場合、その内容をレジストリに入力するコマンドが設定されています。 これらはテキスト形式で実行されます。 これらはメモ帳または別のテキスト エディタで表示および編集できます。

    ただし、そのような既製のファイルが存在しない場合や、いくつかのレジストリ パラメータを確認する必要がある場合があります。 すると、小さな疑問がたくさん生まれます。

    レジストリとは何ですか?

    どこで探せばいいのでしょうか?

    どうやって入力するのでしょうか?

    そして最後に

    これらの問題を一緒に解決してみましょう。

    すぐに - これは、各パラメーターの詳細な説明を伴うレジストリの詳細な説明ではありません。 この目的のためのタルムード全体が、印刷版と電子版の両方で存在します。

    レジストリとは何ですか?

    レジストリ、またはシステム レジストリは、コンピュータの構成情報とオペレーティング システムの設定を保存するためのデータベースです。

    レジストリには、Windows XP が起動、操作、およびシャットダウン中に常にアクセスするデータが含まれています。

    • すべてのユーザーのプロファイル、つまり設定。
    • オペレーティングシステムにインストールされている機器の構成。
    • インストールされているプログラムと各プログラムによって作成されたドキュメントの種類に関する情報。
    • フォルダーとプログラムアイコンのプロパティ。
    • 使用されるポートに関する情報。

    レジストリは、セクション、サブセクション、キー (パラメータ) から構成される階層ツリー構造を持っています。

    どうやって入力するのでしょうか?

    レジストリを操作するには、Windows 3.1 の時代からよく知られている、シンプルでわかりやすい Regedit ユーティリティが使用されます。

    システム レジストリを開くには、次の手順を実行する必要があります。 始める–> 選択 実行する...–> 現場で 開ける…入力 登録編集–>クリック わかりました.

    Regedit ユーティリティ ウィンドウが開き、パーティションの名前が表示されます。

    セクションとサブセクションは、大まかに言えば、Regedit の左側のウィンドウにあるフォルダーです。 レジストリ キーまたはパラメータは、割り当てられる変数です。 特定の値、言い換えれば、これは Regedit の右側のウィンドウに表示されるものです。

    ハイブ (英語のドキュメントではメイン パーティション、標準パーティション - ハイブ、英語のハイブから) は、ハード ドライブ上にファイルとして表示されるレジストリ セクションです。

    ハイブはパーティション、サブパーティション、パラメータのコレクションであり、ルートは次のとおりです。 上位レベルレジストリ階層。 デフォルトでは、ほとんどのハイブ ファイル (デフォルト、SAM、セキュリティ、およびシステム) は %SystemRoot%\System32\Config フォルダー (C:\Windows\System32\Config\ など) に保存されます。 %SystemRoot%\Profiles フォルダーには、各コンピューター ユーザーのプロファイル (設定) が含まれています。 ハイブはファイルであるため、あるシステムから別のシステムに移動できます。 このファイルを編集するには、レジストリ エディタを使用する必要があります。

    Windows XP レジストリは、次の 5 つの主要セクションで構成されます。

    HKEY_CLASSES_ROOT

    HKEY_LOCAL_MACHINE\Software\Classes のサブキーです。 このブランチには、システムに登録されているすべてのファイル タイプの拡張子に関する情報が含まれています (ここに保存されている情報は、起動に使用されます) 必要なプログラム Windows エクスプローラーを使用してファイルを開く場合)

    HKEY_CURRENT_USER

    このセクションには、システムにログインしている現在アクティブなユーザーの設定が含まれています。 ここには、ユーザー フォルダー、画面の色、コントロール パネルの設定が保存されます。 この情報はユーザーのプロフィールに関連付けられています。 このセクションはレジストリ エディターの主要セクションの 1 つのように見えますが、HKEY_USERS\ プロファイルの 1 つへの単なるリンクです。

    HKEY_LOCAL_MACHINE

    このセクションには、お使いのコンピュータに固有ですべてのユーザーに有効な設定のほか、ハードウェア構成およびインストールされているソフトウェアに関する情報が含まれています。

    HKEY_USERS

    このセクションには、アクティブにロードされているすべてのコンピュータ ユーザー プロファイルと、すべてのコンピュータ ユーザーの設定が含まれています。

    HKEY_CURRENT_CONFIG

    このセクションには、使用されるハードウェア プロファイルに関する情報が含まれています ローカルコンピュータシステムの起動時。

    レジストリの主要セクションを表すために、次のような略語がよく使用されます。

    HKEY_CLASSES_ROOT – HKCR
    HKEY_CURRENT_USER – 香港中央大学
    HKEY_LOCAL_MACHINE – HKLM
    HKEY_USERS – HKU
    HKEY_CURRENT_CONFIG – 香港CC

    希望のパラメータを変更するにはどうすればよいですか?

    パラメータの値を確認する必要があります シェルサブセクション ウィンログオンセクション HKEY_LOCAL_MACHINE.

    レジストリの Shell パラメータは、HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon にあります。

    これをどのように行う必要があるかを見てみましょう。 これを私と一緒にやってみると、実際には何も複雑ではないことがわかるでしょう。

    注意!レジストリに変更を加える前に、レジストリ全体または変更先のブランチのバックアップ コピーを作成することをお勧めします。 これを行うには、レジストリ エディタで次のコマンドを実行します。 [ファイル] -> [エクスポート] -> ファイルに名前を付けて -> [保存] を選択します。 何か起こってもいつでも復元できる 以前のパラメータファイル -> インポート... を使用してレジストリを開くか、実行用に保存したファイルを実行します。

    レジストリ エディタを起動します。 始める–> 選択 実行する...–> 現場で 開ける…入力 登録編集–>クリック わかりました.

    レジストリ エディターで、まずセクションの横にあるプラス記号をクリックします (またはフォルダーをダブルクリックします)。 HKEY_LOCAL_MACHINE、フォルダー上で ソフトウェア、 さらに遠く マイクロソフトなど、必要なサブセクションに到達するまで続きます ウィンログオン.

    サブセクションをクリックします ウィンログオンレジストリ エディタ ウィンドウの右側でパラメータを探します。 シェル. 右部分レジストリ エディターは、名前、種類、値の 3 つの列に分かれています。 これはまさに、確認する必要がある値に到達する場所です。

    私たちの中で 具体例 Shell パラメータの値は Explorer.exe である必要があります。

    必要なものと異なる場合は、変更を加えます。 これを行うには、シェル名をマウスの左ボタンでダブルクリックします (またはマウスの右ボタンで 1 回クリックし、コンテキスト メニューから選択します) 変化)。 窓が開きます 文字列パラメータの変更、行のどこに 意味必要な変更を加え、「OK」をクリックします。

    レジストリエディタを閉じます。

    以上です。レジストリ設定を確認し、必要に応じて変更を加えました。

    追伸 多くの場合、変更を有効にするにはコンピュータを再起動する必要があります。 これを忘れないでください。