2

こんにちは、Bios Date に Change があるかどうかをプログラム (c#) で判断するにはどうすればよいですか?

更新しました

私はマシンの日付を探しています。なぜなら、誰かがその値を変更したかどうかをチェックするプログラムを書きたいからです。これを理解するには、日付と時刻に関する情報を記録するトランザクション ファイルが必要です。この値を登録するために、予定時刻の前に誰かがマシンを停止し、予定時刻の後の時刻まで待って BIOS の日時を変更し、その時刻のレコードを配置した場合、私はそれを知りたいです。

4

3 に答える 3

1

万一、BIOS の日付に基づいて変更を検出できたとしても、各マシンが使用する BIOS のタイプを制御できない限り、回避策が見つかる可能性が高いという点で、Danut に同意します。

この問題を解決するには、ハードウェアまたはソフトウェアのアプローチ、または両方の組み合わせの 2 つの主な方法があります。

ハードウェアアプローチ

予算に応じて、ドングルまたはハード キー ロック アプローチの実装を検討できます。Safenet Alladin Keylock などのデバイスには、セキュリティ用に設計されたタイマーが組み込まれており、ソフトウェアを関連付けることができます。欠点は、各システムをドングルにリンクする必要があり、オーバーヘッド コストがかかることですが、エンド ユーザーによる改ざんはほとんどありません。

ソフトウェアアプローチ

常に回避策があることを念頭に置いて、システムに改ざんが発生したかどうかを検出するためにかなりの量のソフトロジックを追加できます。つまり、システムがアクティブ化された最後の日付を保存し、それを現在の日付と比較し、システムが実行された合計時間と、インストール日と現在の日付に基づく最大合計時間...など。

ただし、このアプローチでは、改ざんが発生してからしか検出できない可能性があります。つまり、改ざんが発生した日付と実際に改ざんが検出された日付の間にキャプチャされたデータの一部の有効性が損なわれる可能性があります。

最終的には、予算の問題と、改ざんが起こらないようにするためにクライアントが支払う意思がある金額の問題に行き着きます。

于 2009-12-17T06:01:01.957 に答える
0

Win32_BIOSクラスを使用して、WMI経由でBIOS情報を取得することをお勧めします。照会できるフィールドの1つは、BIOSのインストール日です(その日付を参照していると思います)。そのデータを追跡し、変更されているかどうかを確認できます。

.NETからのWMIの使用の詳細については、こちらを参照してください。

于 2009-12-10T20:00:01.537 に答える
0

あなたが探しているものは、理論的には不可能です。誰かがマシンをシャットダウンし、10 日間待ってからクロックを 9 日前に戻した場合、BIOS またはクロックを見てそれを検出する方法はありません。

ただし、ユーザーがインターネットに接続する場合は、いつでもオンラインでリアルタイムを取得できます。また、ユーザーが特に注意しない限り、ほとんどの Windows インストールではオンラインで時計も自動更新されることに注意してください。

于 2009-12-13T07:33:46.800 に答える