2000 年 11 月 30 日 - この問題:

  1. 編集

  2. SYSINTERNALS の新機能

    • PsLoggedOn v1.2
    • PsShutdown v1.0
    • PsTools v1.1
    • BgInfo v1.1
    • Tokenmon v1.0
    • Filemon v4.32
    • Regmon v4.32
    • 2000 Windows 3rd Ed 内。
    • 2000 年 11 月とWindows 2000 年のマガジン
    • Sysinternals (Microsoft)
    • Sysinternals ライセンス
  3. 内部情報

    • NFI
    • 非表示の Win9x レジストリ キー
  4. 予定されている情報

    • 新しいシステムコール

スポンサー: ウロナルス ソフトウェア

Sysinternals ニュースレターは、Www.winternals.com の Web で、Internals Software がスポンサー www.winternals.com。 ゾーン ソフトウェアは、2K/2K 用の高度なシステム ツールの主要な開発者Windows NTプロバイダーです。 ウインターナルス ソフトウェア製品には、Windows NT 4.0 用の FAT32、NTFSDOS Professional Edition (DOS 用の読み取り/書き込み NTFS ドライバー)、リモート回復が含まれます。

netstat コマンドは、Windows 9x および Windows NT/2000 のすべてのバージョンに付属し、システムで開いている TCP/IP ポートを示しますが、ポートが開いているプロセスは示しません。 最新の監視ツールである TCPView Pro には、netstat と同等のコマンド ライン ツール Tcpvstat が付属しているだけでなく、各ポートが開いているプロセスが示されますが、同じ情報と TCP/IP アクティビティのリアルタイム トレースを示す GUI が含まれています。 リアルタイム トレースは、ネットワーク アクセスを行うアプリケーション、アクセスのローカル IP アドレスとリモート IP アドレスを、オプションの DNS 名前解決、アクセスの種類、アクセスの成功、および転送されたデータの量で表示します。 TCPView Pro$69 のみです。 TCPView バージョンの 14 日間の完全に機能する試用版をPro、www.winternals.com/products/monitoringtools/tcpviewpro.shtml。

皆さん、こんにちは。

Sysinternals ニュースレターへようこそ。 このニュースレターには現在、28,000 人のサブスクライバーがいます。

2000 年から 2000 年に移行する利点Windows NTの 1 つは、信頼性Windows向上した点です。 いくつかの記事で改善の理由について記述しました。主にドライバー検証ツールと呼ばれるツールの結果です。 スタート メニュー の [実行] ダイアログ ボックスに「verifier」と入力して起動する検証ツールを構成して、特定のデバイス ドライバーの実行を注意して監視し、いくつかのドライバー プログラミング規則の違反を探します。 ただし、検証ツールはパッシブ監視よりも 1 歩進みますが、潜在的なリスクも悪化します。たとえば、無効な領域にまたがっているドライバーにメモリ ブロックを割り当て、ドライバーに渡されるデータ構造内の特定のフィールドをゼロにすることで、エラー状態が発生します。 本当に難しくなりたい場合は、ドライバーのメモリの少ない状態を検証ツールでシミュレートすることができます。

Microsoft では、ドライバー署名プログラムを通じて検証ツールを活用しています。このプログラムでは、Microsoft によってデジタル署名されたドライバーは、厳密なドライバー検証テストに合格する必要があります。 ドライバーがインストールされた場合、ハードウェア ウィザードはドライバーが署名済みか確認します。 表示されない場合は、[ドライバー署名オプション] ダイアログに入力した設定に応じて、警告が表示されるか、ドライバーのインストールに失敗します。これは、コントロール パネル の [システム] アプレットの [ハードウェア] ページからアクセスできます。

既定のドライバー署名ポリシーが署名されていないドライバーについてエンド ユーザーに警告するという事実は、ほとんどのハードウェア ベンダーがドライバーを堅牢にし、署名させるという問題に対応するのに十分です。 ただし、デバイス ドライバーは、ドライバー署名ポリシーによって検出されないシステムにこっそり接続できます。 INF ファイル (拡張子 .inf で終わるドライバー インストール ファイル) を使用してインストールされたドライバーだけが署名を確認します。 セットアップ アプリケーションでは、セットアップ API を直接使用するか、ドライバーのレジストリ設定を手動で構成することで、手動でドライバーをインストールできます。 Sysinternals アプリケーションは、次の例の良い例です。Filemon、Regmon、その他の Sysinternals ツールでは、ドライバー コンポーネントを手動でインストールします。これは、Microsoft によって署名されていないという警告が表示されない理由です。

INF ファイルと一般的にインストールされないドライバーには、ウイルス スキャナー、暗号化ソフトウェア、CD-ROM ソフトウェアが含まれます。 ただし、ハードウェア関連のドライバーの抜け出しを防止するわけではありません。 Windows 2000 (www.sysinternals.com/ctrl2cap.htm 用の Sysinternals Ctrl2cap ドライバーは、ドライバーの署名チェックをバイパスする方法でインストールされるハードウェア関連のドライバーの例です。 この抜け穴は、検証されていないドライバーがシステムに存在することにつながるので、システムの安定性が損なわれる可能性があります (最高の設定ですべての Sysinternals ドライバーを確認します)。 Microsoft では、INF ファイルを使用してインストールするドライバーではなく、すべてのドライバーに署名チェックを強制的に実行する必要があります。

なぜ私はこの言い知らされるのですか? CD-ROM ソフトウェアは、市場で最も人気のある種類のソフトウェアで、2000 SP1 システムで再現可能にクラッシュするドライバーを備Windowsソフトウェアです。 ドライバー検証ツールを構成して確認した場合、検証ツールがドライバーの最初の違反を検出してシステムをクラッシュする前に、システムの起動も完了しません。 ドライバーが INF ファイルなしでインストールされたので、署名されていないという警告が表示されませんでした。 Microsoft のポリシーが厳しい場合、このベンダーは、署名されていない (およびバグのある) ドライバーを出荷する前にもう一度考える必要があります。

そのコンテンツに関心がある可能性がある友人に、ニュースレターを渡してください。

ありがとうございます。

-Mark

SYSINTERNALS の新機能

PSLOGGEDON V1.2

LoggedOn から PsLoggedOn への明らかな名前の変更に加え、このコマンド ライン ツールには、ローカルまたはリモート システム上のリソース共有を介してローカルにログインしているユーザーを示す機能が備わります。 1 つ目は、ユーザーからのフィードバックによって得た '-l' コマンド ライン スイッチです。 多くの場合、PsLoggedOn を使用して、サーバーにローカルにログオンしているアカウントがあるかどうかが確認されます。 たとえば、ユーザーがファイル共有を介してログオンしている場合がありますが、アカウントを更新できる場合やサーバーをリモートで管理できる場合に決定を行う場合は関係ありません。

PsLoggedOn の 2 つ目の新機能では、ログオンしているユーザーだけでなく、ログオンが実行された時刻も表示されます。 PsLoggedOn は、Win32 API,NetSessionEnum を使用してリソース共有ログオンを列挙する場合に、リソース共有からログオンのログオン時間を無料で取得します (コマンド ライン Net コマンドでは NetSessionEnum も使用してセッションを列挙します)。 ただし、システムにWin32 APIログオンしているユーザーを示す情報はありません。ログオンした時刻ははるかに少なめです。

ローカルでシステムにログオンしているユーザーを特定するために、PsLoggedOn はコンピューターのレジストリ キーの下にあるセキュリティ ID (SID) を HKEY_USERS 列挙します。 コンソールまたはサービスを使用してローカルコンピューターにログオンすると、そのユーザーのプロファイルがキーに読み込 HKEY_USERS まれます。 アプリケーションは、キーを使用してプロファイルのレジストリ設定にアクセスできます。これは、そのキーが の特定のプロファイルへのシンボリック リンク HKEY_CURRENT_USER として扱われるためです HKEY_USERS 。 したがって、PsLoggedOn は、コンピューターのキーで見つけた SID を対応するユーザー名に変換することで、ローカルにログオンしているユーザー HKEY_USERS を知る可能性があります。 PsLoggedOn では、 を使用してリモート コンピューターのレジストリに接続し、リモート システムにログオンしているユーザーを一覧表示 RegConnectKey します。

ユーザーがログオンした時間を確認するには、同様の方法を使用します。 WinLogon プロセスがログイン後にユーザーのプロファイルを に読み込むときに、WinLogon は、Volatile Environment という名前のプロファイルに volatile (ディスク上のプロファイルに保存されない) サブキーを作成します。 HKEY_USERS レジストリには、レジストリ キーの最終変更タイムスタンプが格納されます。また、システムは作成後に Volatile Environment サブキーを変更しないので、PsLoggedOn は、ユーザーが Volatile Environment サブキーのタイムスタンプを取得してログオンした日時を判断できます。

で完全なソースを使用して PsLoggedOn v1.2 をダウンロードする
www.sysinternals.com/psloggedon.htm。

PSSHUTDOWN V1.0

ローカルまたはリモートの Windows NT/2000 システムをシャットダウンまたは再起動する必要がある場合は、PsShutdown をダウンロードします。 PsShutdown は、Shutdown Windows NT/2000 Resource Kit ツールの複製です。 これは、シャットダウンの前の遅延、再起動するかどうか、システムに現在ログオンしているユーザーに表示するオプションのメッセージ、およびシャットダウンまたは再起動するコンピューターの名前を指定できるのと同じコマンド ライン引数を受け取ります。

PsShutdown v1.0 をダウンロード www.sysinternals.com/psshutdn.htm。

PSTOOLS V1.1

プレフィックス "Ps" で始まる Sysinternals のツールの数が増えているのに気付いたと思います。 1 つ目は PsList でした。PsList は、ローカルまたはリモート のシステム上のアクティブなプロセスに関する情報を一覧表示するコマンド ライン Windows NT/2000 システムです。 コマンド ライン プロセス情報ツールの標準UNIX ps という名前が付けられたため、PsList に名前を付けしました。 プレフィックスを取得する次のツールは PsKill でした。これは、ローカルまたはリモートの Windows NT/2000 システムで実行されているプロセスを終了できるコマンドライン ユーティリティです。 PsList に完璧なコンパニオンが作成されたため、PsKill に "Ps" プレフィックスを付けしました。

私は、PsList や PsKill と同じ定義特性を共有する他のツールを開発しました。これらはコマンドライン ベースであり、ローカルまたはリモートの Windows NT/2000 システムで動作します。 たとえば、ElogList を使用すると、システムのイベント ログの内容をダンプし、GetSid にコンピューターまたは特定のアカウントの SID が表示されます。 最近、これらすべてのツールを結び付け、すべての "Ps" プレフィックスを付け、PsTools という名前の単一のパッケージとしてダウンロード可能にすることを決定しました。

PsTools は、PsList、PsKill、および名前が変更された PsLogList と PsGetSid を含む、合計 7 つのツールで構成されます。 "Ps" プレフィックスが付く Sysinternals ツールが表示される場合は、ローカルでもリモートでも動作するコマンドライン ツールであることを自動的に確認できます。

PsTools v1.1 をダウンロード www.sysinternals.com/pstools.htm。

BGINFO V1.1

多大なユーザー フィードバックの結果として、Bryce は、ユーザーからのフィードバックの結果として、システムの構成に関するカスタマイズ可能な情報を表示するデスクトップの壁紙を設定するユーティリティ BgInfo を更新しました。 既定では、BgInfo はダイアログ ボックスで指定された設定を適用する前に 10 秒間カウントダウンしますが、新しいコマンド ライン オプション を使用すると、カウントダウンを完全に変更または削除できます。 /timer これにより、ログオン スクリプトに BgInfo を含めるか、プロファイルの Startup フォルダーにショートカットとして含める方が便利です。

バージョン 1.1 には、定義した任意のテキストを表示する機能や、より定義済みの情報カテゴリなど、その他の新機能が含まれています。 また、BgInfo v1.1 によって作成されるデスクトップ ビットマップも一般に小さく、BgInfo のデスクトップ メモリフットプリントを最小限に抑えます。

BgInfo v1.1 をダウンロード www.sysinternals.com/bginfo.htm。

TOKENMON V1.0

Tokenmon は、Sysinternals からダウンロードできるさまざまな監視ツール スイートに最新の追加機能です。 Tokenmon は、Regmon や Filemon などのいとこと同じ UI を共有し、Windows NT/2000 システムでのセキュリティ関連の重要なアクティビティを監視します。 "重要な" セキュリティ関連のアクティビティとは Windows NT/2000 セキュリティの中心は、トークン オブジェクト、アカウント SID、グループ SID、および特権を含むデータ構造です。 プロセスがセキュリティで保護されたオブジェクトにアクセスしようとするたびに、セキュリティ参照モニターはアクセス検証の一環としてトークン内の SID を使用します。 プロセスがシステムの再起動などの制限付き操作を実行しようとすると、システムはプロセスのトークンで適切な特権を確認します。

Windows NT/2000 年 2 月のセキュリティ モデルの強力な (かつ、パテントされた) 機能の 1 つは偽装です。 偽装を使用すると、スレッドはプロセス ベースの ID を一時的にオーバーライドし、偽装トークンを使用して代替 ID を採用できます。 サーバー アプリケーションは、アクセス中にクライアントの ID を採用するときに、クライアントの代わりにリソースにアクセスするときに偽装を利用します。

Tokenmon は、レジストリ API に対して Regmon が行うのと同じ方法でシステム呼び出しフックをインストールし、トークンの作成と削除、特権の有効化と無効化、および偽装を監視します。 Tokenmon では、NT/2000 カーネルによって提供されるプロセス作成フックを使用してプロセスの作成と削除を監視し、他の API を使用して、ユーザーがいつログオンし、いつログオフしたのか判断します。

Tokenmon への完全なソース コードが投稿され、コードで示されている興味深い手法のいくつかについて説明する価値があります。 Tokenmon は、NtCreateToken システム呼び出しをフックすることでログオン イベントを検出します。これは、WinLogon などのログオン ブローカーが新しいログオン セッションの最初のプロセスの初期トークンを作成するために使用する呼び出しです。 最初のプロセスによって作成されたプロセスは、最初のトークンのコピーを継承します。 ログオフを検出するために、Tokenmon はカーネル モード SeRegisterLogonSessionTerminatedRoutine 関数を介してログオフ通知を登録します。これは、ネットワーク リダイレクターと呼ばれるファイル システム ドライバーの利点のために存在する API であり、ログオン セッション データをキャッシュし、ユーザーがログオフするときにクリーンアップする必要があります。 ネットワーク リダイレクターは、ファイル共有クライアント/サーバー接続のクライアント側を実装します。

もう 1 つの興味深い Tokenmon 実装の詳細は、Tokenmon が監視する API をフックする方法です。 Tokenmon フックの一部の API は、デバイス ドライバーで使用するためにエクスポートされませんが、Win32 と同等の機能を使用するアプリケーションで使用するために、ユーザー モード NTDLL.DLL ライブラリでエクスポートされます。 Regmon フックがカーネル モードでエクスポートされる Registry API はすべて、Regmon デバイス ドライバーがシステム呼び出し番号を取得し、システム呼び出しテーブルを適切にフックすることができます。 ドライバーで使用するためにエクスポートされない API の場合、Tokenmon GUI は NTDLL.DLL のエクスポートを使用して呼び出し番号を取得し、その番号をドライバーに渡して、ドライバーがシステム呼び出しテーブルをフックできる必要があります。 したがって、Tokenmon は、カーネル モードでエクスポートされないシステム呼び出しをフックする方法を示します。

完全なソースを含む Tokenmon v1.0 をダウンロード www.sysinternals.com/tokenmon.htm。

FILEMON V4.32

この最新の Filemon 更新では、より直感的で完全なフィルター処理、Windows 9x/Me ネットワーク ファイル アクセスの完全な UNC パス名の表示、NTFS メタデータ ファイル名の表示が導入されています。

以前のバージョンの Filemon では、必須のワイルドカードを含むフィルターを入力する必要があります。 たとえば、ドライブの Temp ディレクトリへのアクセスを監視する場合は、次のようなフィルターを入力 C: する必要があります: " c:\temp\* " 。 新しいフィルター構文のワイルドカードは省略可能なので、例のフィルターは機能しますが、" c:\temp " は同じ効果を実現します。 さらに、Filemon では、プロセス名、要求の種類、パス、および "その他" 列など、表示内のすべてのフィールドに対して入力したフィルターが適用されます。 この柔軟性により、特定の種類の要求、または他の列の特定のデータを含む要求を監視できます。以前は実行できないデータが含まれる場合があります。

Windows 9x/Me システム上の Filemon のユーザーには、リモート リソースにアクセスするときに、完全な UNC 構文を使用して Filemon のパス名が表示されます。 Filemon では以前は、このようなアクセスのサーバー名または共有名が表示されていないので、パス名が不完全でした。

最後に、Windows NT/2000 年に Filemon を使用した場合、多くのアクセスのパス列に "DASD" というテキストが表示されているのは間違いないことです ("DASD" は、ファイル システム構造をバイパスするボリュームへのアクセスを説明するために Microsoft が使用する用語である "Direct Access Storage Device" に基まれています)。 NTFS ボリュームのほとんどのアクティビティでは、DASD は過去のものです。 代わりに、読み取りおよび書き込み中の NTFS メタデータ ファイルの名前が表示されます。 たとえば、MFT レコードを更新すると、以前は DASD 出力行が生成されましたが、MFT の内部メタデータ ファイル名である "$Mft" へのアクセスとして表示されます。

Filemon がメタデータ ファイル名を以前に表示しなかった理由と、これらの名前を取得する方法 NTFS メタデータ ファイルを表すファイル オブジェクトにはファイル名が格納されないので、Filemon はファイル オブジェクトから名前を抽出できません。 ファイル の名前を取得し、ファイル システム ドライバーのクエリを実行する Filemon の代替メソッドは、NTFS メタデータ ファイルでも機能しません。 NTFS はメタデータ ファイルの名前で応答しますが、NT 4 の NTFS ではランダムにクラッシュが発生し、Win2k の NTFS はこのようなクエリに応答するときにハングする場合があります。

そのため、Filemon はメタデータ ファイル名を取得する方法に従う必要があります。 名前を持つ NTFS ボリューム上のファイル オブジェクトに送信された要求が表示された場合、NTFS にファイルのインデックスのクエリが送信されます。 これは、Win32 関数 GetFileInformationByHandle が返すのと同じインデックスであり、NTFS ボリューム上のファイルの場合、インデックスはファイルの MFT インデックスです。 MFT の最初の 16 エントリは特定のメタデータ ファイル用に予約されています。そのため、その範囲内のインデックスを指定すると、Filemon は単に独自のテーブル内のメタデータ ファイル名を検索します。

残念ながら、FAT はディレクトリ メタデータ ファイルまたは FAT の名前を格納しないので、FAT ボリュームに対するディレクトリ メタデータとファイル割り当てテーブル (FAT) アクセスの DASD が引き続き表示されます。 NTFS ログ ファイル ($LogFile) にアクセスする頻度に驚くでしょう。 また、Ntfs on Ntfs on Ntfs はメタデータ ファイルの名前を格納します。そのため、この方法は、大まかに言っていうまでも不要です。

Filemon の最後の機能強化により、Filemon はミリ秒の解像度で時刻のタイムスタンプを表示できます。 このサポートでは、Windows 9x/Me カーネルのタイミング関数にバグが発生したため、Windows 9x/Me File Windows mon ドライバーで簡単なハッキングが必要でした。 詳細については、ソース コードを参照してください。

ソース コードを含む Filemon v4.32 をダウンロード www.sysinternals.com/filemon.htm。

REGMON V4.32

Regmon の変更は Filemon の変更ほどメジャーではありません。しかし、Regmon では Filemon と同じ直感的なフィルター構文がサポートされ、Filemon と同様に、すべてのフィールドにフィルターが適用されます。 また、タイムスタンプにミリ秒の解像度を表示できます。

(Windows 2000 年の後継者) Beta 1 で、以前のバージョンの Regmon のクラッシュが開始された時に、Beta 1 で再生を開始したユーザーが気付いた可能性があります。 これは、Microsoft がシステム呼び出しテーブルを配置し、Regmon がフックを書き込み保護メモリに挿入するために変更したためです。 Regmon v4.32 は、Microsoft の要求に応じてソース コードを提供していない手法を使用してこれを回避します。これは、この手法が、Final Release の Final Release で壊れる可能性があります。また、Microsoft ではシステム呼び出しフックをサポートする方法を探っています。 Windows NTは、システム呼び出しフックをサポートするように設計されていませんでした。これは、1996 年半ばに Regmon の最初のリリースで開発した機能です。

ドキュメントに登録されていない Filemon/Regmon のヒントを次に示します。 多くの場合、Windows NT/2000 年 1 月に管理者アカウント以外のアカウントから Regmon または Filemon を実行する方法を尋ねる電子メールが送信されます。管理者アカウントから実行すると、特定のアプリケーションが正常に動作するが、特権のないユーザーのアプリケーションでは正常に動作しない場合が多く、アプリケーションが失敗する理由 (通常はファイルまたはレジストリ キーのセキュリティ設定に関連する問題) を特定するために Regmon と Filemon が役立ちます。 ただし、特権のないアカウントから Regmon と Filemon を実行すると失敗します。これは、Filemon と Regmon の両方がデバイス ドライバー (管理者特権を必要とするドライバー) をインストールするために失敗します。

ただし、この問題を回避するには、次の方法があります。管理者としてログインし、Filemon または Regmon を起動すると、特権のないアカウントから実行できます。 これは、Filemon と Regmon が最初の実行でドライバーをインストールし、次の実行で既に読み込まれているドライバーにアクセスする理由です。 ドライバーにセキュリティを実装しきらないので、特権のないユーザーは、ドライバーの読み込み後にツールを実行できます。 セキュリティの問題 はい。ただし、Filemon と Regmon はトラブルシューティング ツールを意図しています。そのため、特権のないアカウントからユーティリティを実行する方法を尋ねるユーザーは、これを機能として表示します。

完全なソース コードを使用して Regmon v4.32 をダウンロード www.sysinternals.com/regmon.htm。

DEBUGVIEW V4.02

私が最もユーザーからのフィードバックを受け取ったアプリケーションの 1 つは、やや驚くべきことに、DebugView です。 この新しいバージョンには、受信した機能と機能の要求の多くを処理し、DebugView をこれまで以上に強力にするための重要な機能強化がいくつか追加されています。

最も目に見えて、DebugView では、それぞれ独自のカスタマイズ可能な色を持つ最大 5 つの異なる強調表示 フィルターがサポートされています。 これにより、デバッグ出力内の異なるキーワードを同時に使用して、簡単に区別できます。 さらに、DebugView では Filemon や Regmon と同じ新しいフィルター構文が実装され、部分文字列の照合ではワイルドカードが省略可能です。

以前のバージョンの DebugView について受け取った不満は、Win32 デバッグ出力をキャプチャするだけの場合でも、デバイス ドライバーをインストールできない場合は DebugView が実行されないので、DebugView を実行するために管理者特権が必要だったという点です。 この新しいバージョンは、特別な特権がないアカウントからでも実行されます。 ドライバーをインストールまたはアクセスできない場合は、カーネル モードキャプチャ関連のメニュー項目が無効になります。

ログイン時に DebugView が出力のキャプチャを自動的に開始しやすくする 2 つの機能は、最小化からトレイへのオプションであり、コマンド ライン スイッチがサポートされています。 コマンド ライン スイッチを使用すると、ファイルにキャプチャするシステム トレイとログ出力で DebugView を開始できます。また、DebugView を開始した後、メニュー オプションを使用して、ボタンの最小化動作を通常の最小化とシステム トレイへの最小化の間で切り替えることができます。

Windows 2000 ターミナル サービスのリモート セッションで DebugView を実行するユーザーの場合、DebugView は、リモート セッションで実行されているアプリケーションによって生成された Win32 出力をキャプチャし、オプションでコンソール セッションからキャプチャします。 これは、COM サーバーと Win32 サービスをリモートでデバッグする場合に便利です。これらの種類のプログラムはコンソール セッションで実行されます。

最後に、DebugView は Beta Beta 1 で動作し、カーネル モードの DbgPrint 関数でいくつかの新しい Variant からの出力をキャプチャできます。

DebugView v4.02 をダウンロード www.sysinternals.com/dbgview.htm。

WINDOWS 2000、第 3 版の内部

2000 年 1 月の内部Windowsに関する公式書籍を入手できます。 David Solomon (www.solsem.com) と Mark Russinovich が共同編集したこのエディションは、ネットワーク、プラグ アンド プレイ、電源管理、サービス、レジストリ、WMI、ブートとシャットダウン、ストレージの新しいカバレッジで、前のエディションよりも 40% を超えています。 また、2000 の内部データを調査するための、他の場所では使用できない、いくつかの強力なツールWindows含まれています。

この書籍専用に作成したツールの 1 つは LiveKd です。これは、クラッシュ ダンプを見ているように、ライブ システム上で Microsoft カーネル デバッガー i386kd と WinDbg の両方を実行できるプログラムです。 この書籍に示されている実験の多くは、LiveKd を使用して実行すると、ライブ システム上で動作します。 LiveKd は、クラッシュ ダンプ ファイルである場合と同様に、コンピューターの物理メモリを Microsoft デバッガーに表示するファイル システム フィルター ドライバーをインストールすることで機能します。 LiveKd は長さが 0 の擬似ダンプ ファイルを作成し、デバッガーがファイルから読み取った場合、LiveKd は物理メモリからデータを返します。 LiveKd v1.0 と複数のオンアクセス ウイルス スキャナーの間の非互換性を修正する LiveKd パッチについては、書籍の誤りと更新に関するページをご覧ください。

書籍の目次を参照し、このページから順に www.sysinternals.com/insidew2k.htm。

11 月と夏の WINDOWS 2000 マガジン

NTFS v4 と NTFS v5 の間で正確に何が変更されたのかについて興味がありますか? その場合は、2000 年の 11 月と 2000 年の年 11 月のイWindowsシリーズをご確認ください。 パート 1 では、再解析ポイント、ディレクトリ ジャンクション、ボリューム マウント ポイント、クォータのサポート、統合セキュリティ設定について説明します。 パート 2 は、暗号化、ストリーム、分散リンク追跡、および変更ジャーナルを詳細に確認して終了します。 どちらの記事でも、他の記事よりも深く理解し、ディスク上の変更とこれらの新機能の内部動作を示します。

記事で取り上がらないのは、4 の NTFS が実際にはバージョンWindows NTではない点です。

すべてのパブリケーションへのリンクは、www.sysinternals.com/publ.htm。

SYSINTERNALS AT WWW.MICROSOFT.COM

Sysinternals は、前回のニュースレター以降、いくつかの新しい Microsoft サポート技術情報 (KB) 記事に登場し、Sysinternals を参照する古い KB 記事もいくつか追跡しました。

  • Q260513 PRB: 製品をインストールするときにエラー Visual Studio発生する
    http://support.microsoft.com/support/kb/articles/Q260/5/13.ASP
    この記事では、閲覧者が Filemon と Regmon を使用して、インストールに関する問題Microsoft Visual Studioトラブルシューティングすることをお勧めします。

  • Q202258 XADM: 指定されたパスが見つからない - ID 番号: 0cx002003
    http://support.microsoft.com/support/kb/articles/Q202/2/58.ASP
    Microsoft では、実際に Filemon を使用して Exchange 5.0 Service Pack のアップグレードに関する問題のトラブルシューティングを行う方法について説明しています。サンプルの Filemon 出力行とフィルターの設定に関する推奨事項が示されています。

  • Q269383 PRB: 'Error Accessing the System Registry' message when displaying VB/VBA References
    http://support.microsoft.com/support/kb/articles/Q269/3/83.ASP
    Regmon は、この記事から紹介を取得します。この記事では、Visual Basic IDE の [参照] ダイアログが、複数のキーに不適切なアクセス許可を適用する Seagate の Seagate のレポートのバグの結果としてレジストリ キーにアクセスできない場合に報告する理由を判断する方法について説明します。

  • Q269251 バグ: 製品を列挙Windowsインストーラーの自動実行がハングする可能性があります
    http://support.microsoft.com/support/kb/articles/q269/2/51.asp
    ここでも Regmon が強調表示されています。ここで、インストーラーの自動化のバグをWindowsするために使用されます。

  • Q276525 開いているハンドルを監視すると、コンピューターが応答を停止する可能性があります
    http://support.microsoft.com/support/kb/articles/Q276/5/25.asp
    NtHandle は、Windows NT 4 SP6a のバグを明らかにする責任を負います。この場合、NtHandle を使用すると、特定の条件下でカーネルがハングします。 Microsoft は私と一緒に問題を解決し、修正プログラムを発行しました。 NtHandle を使用するときに NT 4 システムがハングする場合は、この記事へのリンクに従う必要があります。

  • Q160660 Ntregmon.exe Service Pack で STOP 0x0000001Eが発生する
    http://support.microsoft.com/support/kb/articles/Q160/6/60.asp
    この最後の 1 つは古いですが、良い人です。 最初のバージョンの Regmon では、レジストリ API をフックするために、ハードコードされたシステム呼び出し番号を使用してシステム サービス テーブルに修正プログラムを適用しました。 システム呼び出し番号はサービス パック間で変更される場合があります。この手法は非常に脆弱であり、これを予想して防御的にコード化していなかったためです (恐れ的な Regmon が壊れる Andrew Schulman のアドバイスに対して)。 確かに、SP3 ではいくつかの新しいシステム呼び出しが導入され、間違ったシステム呼び出しをフックすると Regmon によってシステムがクラッシュします。 これは確かに少数のユーザーをいらだましたが、私は自分の KB 記事を取得しました。

SYSINTERNALS ライセンス

Sysinternals からダウンロードしたソフトウェアはフリーウェアですが、料金を支払わずに使用できます。再頒布したり、Sysinternals ソース コードから配布する製品を派生させることはできません。 たとえば、複数のユーザーが特定の Sysinternals ツールが役に立つ会社で働く場合、内部共有や Web サイトにツールを投稿しない可能性があります。 代わりに、Sysinternals 上の各ツールのホームへのリンクをサイトに配置します。 これは、同僚が常に最新バージョンをダウンロードする場合にも役立ちます。

Sysinternals ツールを内部的に、商用製品、または共有ウェア CD に再配布する場合、または Sysinternals ソース コードに商用製品または再頒布可能プログラムを基にしたい場合は、目的の使用の詳細を説明する電子メールを licensing@... に送信します。

内部情報

NFI

いくつかのニュースレターに戻って、Microsoft が誤って NT 4 SP4 CD に出荷した DiskEdit ツールの存在を明らかにしました。 DiskEdit は非常に強力ですが、ファイル システム構造ビューアーは非常に強力ですが、NTFS と FAT を調べるために使用できます (興味深いのは NTFS サポートですが)、ディスク上のデータ構造です。 NT 4 SP 4 CD を見逃し、NTFS ディスク上の構造を探索することに関心がある場合は、完全には暗い場所にはありません。 Microsoft は、NTFS ボリュームの内部構造を理解し、ダンプできる NFI (NTFS 情報) という名前の無料ツールをリリースしました。 その出力は DiskEdit の出力ほど詳細ではありません。しかし、興味深く明らかです。

OEM サポート ツールの一部として NFI をダウンロードできます( http://support.microsoft.com/support/kb/articles/q253/0/66.asp. ファイル名を指定して NFI を実行すると、そのファイルの NTFS MFT レコードがダンプされます。 次の例は、ボリュームでクォータ管理が有効になっている場合にのみ存在するファイルであるメタデータ ファイルの MFT レコードをダンプする NFI $Quota を示しています。

C:\nfi c:\$extend\$quota
File 24
\$Extend\$Quota
$STANDARD_INFORMATION (resident)
$FILE_NAME (resident)
$INDEX_ROOT $O (resident)
$INDEX_ROOT $Q (resident)

出力は、ファイルが MFT の 24 番目のエントリを占有し (ファイル インデックスは 24)、標準情報、ファイル名、2 つのインデックス ルートを含む 4 つの属性が含まれている (およびインデックスは、基本的にディレクトリなどのエントリの照合リスト) を示しています。 NTFS v5 の最新バージョン 2000 Magazine シリーズWindows NTFS でインデックスがどのように使用 $Quota されるのかについて説明します。

ボリューム上のすべてのファイルをダンプするには、ファイル名を使用せずに NFI のコマンド ラインでドライブ文字を指定します (例: nfi c: )。 すべてのメタデータ ファイルを含む各 MFT エントリの一覧が表示されます。

NFI には、セクター番号をそれが存在するファイルに変換する機能など、他にもいくつかのタレントがいます。 ドライブ上のファイル セクター 2345 を知 C: りたい場合は、 コマンド nfi c: 2345 を使用します。 これは、ボリューム セットやストライプ セットのようなソフトウェア RAID ボリュームでは失敗します。 NFI は、NT 4 と 2000 Windows両方で動作します。

非表示の WIN9X レジストリ キー

2 つ前に、次のニュースレターで "隠し Win9x レジストリ キー" について説明すると言いましたが、忘れたことを知らせた人もいます。 そのため、今月は、9x で非表示のレジストリ キーについてWindowsします。

数年前に、隠しレジストリ キーを作成する方法が見Windows NT。 非表示とは、キーを Regmon で作成するアプリケーションからアクセスされているキーを表示することもできますが、キーの値を確認する Win32 プログラムを記述したり、Regedit または Regedt32 レジストリ エディターを使用してキーを確認したりできないという意味です。 非表示キーは、試用製品のタイムアウト日など、エンド ユーザーが変更できないデータを格納する場合に便利です。

隠しレジストリ キーを作成する秘策は、ネイティブ NT API (Win32 API がビルドされるシステム呼び出しインターフェイス) では、レジストリ キーをカウントされた Unicode 文字列として指定する必要があるという認識でした。 カウントされた Unicode 文字列は、長さが長さフィールドで示され、null ターミネータが存在しない文字列です。 そのため、ネイティブ API を使用すると、 のような null 文字を含むレジストリ キーを作成できます "test\0test" 。 Win32 API のレジストリ キー API は null 終端文字列に基づくので、Win32 API を使用して null ターミネータを含むレジストリ キーを開く方法はありません。 前の例のキー名を に渡そうとした場合、または 文字列が null 文字で切り捨てられた として RegOpenKeyRegCreateKey"test" 扱われる場合。 Windows NT および Windows 2000 にバンドルされているレジストリ エディターも含め、既存のすべてのレジストリ エディターでは Win32 API を使用します。ネイティブ API を使用して null 文字埋め込み名を作成するアプリケーションでは、実質的に隠しキーが作成されます。

このメソッドは 9x Windows NTで動作しますが、Windowsどうでしょうか。 Windows 9x で非表示のレジストリ キーを作成する方法は、誰かが Regedit に表示されないキーにアクセスする Internet Explorer (IE) を示す Regmon ログ ファイルを電子メールで送信するまで、私は考えていました。 これを自分で確認するには、Regmon を起動し、次のフィルターを含める "policydata" を設定します。 その後、IE を起動し (IE 4 および IE 5 のすべてのバージョンで機能します)、Web サイトにアクセスします。 Regmon に出力が表示しない場合は、IE のオプション構成ダイアログに移動し、Content Advisor が有効になっている必要があります。

コンテンツ アドバイザーが有効になっている場合、またはシステムで有効にされた場合は、キーとそのサブキーへのアクセス HKLM\PolicyDat が表示されます。 ただし、Regedit を見ていると、PolicyData HKEY_LOCAL_MACHINE キーが下に表示されるわけではありません。 少し時間を取って、何が起こっているのかを把握できるのかを見てみる。

その答えは、IE が Win32 API を使用してレジストリ ハイブを動的に読み込み、必要な値を読み取り、 でハイブをアンロードしている RegLoadKey という答えです RegUnloadKey 。 ハイブの名前 C:\Winows\System\Ratings.pol は です。ファイルは非表示で読み取り専用ですが、「 」と入力して表示できます attrib –r –h c:\windows\system\ratings.pol

Regmon に表示されるトレースには、コンテンツ アドバイザーがハイブで探している情報が表示されます。 その内容を自分で探索する場合は、 から Regload ユーティリティをダウンロード www.sysinternals.com/regload.zip 構文を使用して実行します regload test c:\windows\system\ratings.pol 。 次に、Regedit を開き、 を参照します HKLM\test 。 表示される値は、Content Advisor で指定した設定に対応し、ハイブの 値で という名前の構成 Users\FileName0 ファイルに関連しています。 値は、通常、インターネット C:\Windows\System\RSACi.rat コンテンツ評価の関連付けによって定義された評価ファイル である をポイントします。 実際には、コンテンツ アドバイザーのレジストリ設定 (たとえば、 の下) に、ややうらやしい名前の "PleaseMom" の値が表示される場合があります HKLM\Test\Users\Default 。 この値は、[コンテンツ アドバイザーの設定] ダイアログの [全般] ページにある [Supervisor can type a password to allow users to view restricted content]/(ユーザーが制限付きコンテンツを表示できるパスワードを入力できる)" チェックボックスから派生します。

Microsoft がこれらのレジストリ値の存在を難読化する理由は明らかです。 ただし、設計には非常に深刻な弱点があります。 コンテンツ アドバイザーを有効にする場合は、コンテンツ アドバイザーの設定ダイアログを保護するパスワードを指定する必要があります。 このパスワードは に格納されます HKLM\Software\Microsoft\Windows\CurrentVersion\Policies\Ratings\Key 。 その値を削除すると、パスワードを入力せずに Content Advisor の設定にアクセスできます。 IE 開発者が Content Advisor の設定を難読化するために問題が発生した場合、なぜこのバック ドアを開いたままにしておくのですか? 一般的な Microsoft セキュリティ設計です。 ところで、Regload で読み込んだキーをアンロードするには、「 」と入力します regload test

予定されている情報

新しいシステムコール

インクリメンタルは、Windows 9x オペレーティング システムからのユーザーの信頼性の向上と簡単な移行に重点を置いた、Windows 20 Windows 00 オペレーティング システムの段階的な進化です。 ただし、カーネルの変更がいくつか含まれます。 最も目に見えるのは、一部の新しいシステム呼び出しとエクスポート (デバイス ドライバーで使用できる) カーネル関数です。 次回は、これらの新しいカーネル API のプレビューを提供します。


Sysinternals ニュースレターをお読みありがとうございます。

公開日: 2000 年 11 月 30 日午後 7:05

[ニュースレター アーカイブ ^][ Volume 2, Number 4][Volume 3, Number 1 ]

[ニュースレター アーカイブ ^][ Volume 2, Number 4][Volume 3, Number 1 ]

システム内部のニュースレター ボリューム 2、番号 5

www.sysinternals.com
Copyright (c) 2000 Mark Russinovich