簡體   English   中英

C#如何確定BIOS日期更改

[英]c# how to determine bios date change

您好,我如何通過程序(c#)確定Bios日期是否已更改?

更新

我正在尋找機器日期,因為我想編寫程序來檢查某些主體是否更改了該值,找出這個原因,我有一個事務文件,該文件記錄了一些帶有日期和時間的信息,並且對於該值的注冊,我有一個適當的時間,如果某個人在該適當的時間之前停止了機器,並等到適當的時間之后的時間將BIOS日期時間改回,然后將記錄與該時間放在一起,我想知道這一點。

我同意Danut的觀點,即使在極少數情況下也有可能根據BIOS日期檢測到更改,除非您可以控制每台機器使用的BIOS類型,否則很可能會出現解決方法。

解決這個問題確實有兩種主要方法,一種是硬件方法,另一種是軟件方法。

硬件方法

根據您的預算,您可以考慮實施加密狗或硬鍵鎖定方法-諸如Safenet Alladin Keylock之類的設備內置有專門為安全性設計的計時器,您可以將其綁定到軟件中。 缺點是每個系統都需要鏈接到加密狗,這會增加開銷,但是最終用戶篡改的可能性很小。

軟件方式

請記住,總會有一種解決方法,您可以添加大量的軟邏輯來檢測系統是否發生了篡改,即存儲系統激活的最后日期並將其與當前日期進行比較,然后將其與當前日期進行比較。系統已運行的總時間與基於安裝日期的當前總時間與當前日期的總總時間...等等。

但是,使用這種方法,您只能在發生篡改之后才對其進行檢測,這可能意味着在篡改發生日期與實際檢測到篡改日期之間捕獲的某些數據的有效性可能會受到損害。

最后,這實際上取決於預算問題以及您的客戶願意支付多少費用以確保不會發生篡改。

我建議您使用Win32_BIOS類通過WMI獲取BIOS信息。 您可以查詢的字段之一是BIOS安裝日期(我假設您是指該日期)。 您可以跟蹤該數據並檢查其是否更改。

使用WMI從.NET細節可以發現在這里

從理論上講,您要尋找的是不可能的。 如果有人關閉計算機,等待10天,然后將其時鍾重新設置為9天,則無法通過查看BIOS或時鍾來檢測到這一點。

但是,如果您的用戶將連接到Internet,則始終可以實時獲得在線。 請記住,除非用戶特別小心,否則大多數Windows安裝也會自動在線更新時鍾。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM