實驗員小黃并沒有忘記陳教授的囑托:刪除一段危險的病毒代碼,直到警報忽然響起后,小黃才意識到自己犯了一個大錯誤,他居然將自己編寫了一個多月的防病毒代碼也一起添加到定時銷毀程序的列表中了,只要時間一過午夜零點,就將自動執行銷毀操作。
定時銷毀程序就綁定在Windows自帶的“日期和時間”程序上,出于安全上的考慮,陳教授對原來的程序做了手腳,不能直接通過文本框輸入數字,只能利用鼠標點擊滾動按鈕來調整時間,而且僅有向上滾動按鈕,沒有向下滾動按鈕。
同樣出于安全方面的考慮,一旦定時啟動,操作系統中除了“日期和時間”以外,其余程序均被鎖定,強行關閉電源則會提前觸發銷毀操作,而此時陳教授正遠赴歐洲參加學術會議,只剩幾分鐘就到零點了,小黃緊張萬分,眼睛盯著走動的秒針發呆,感覺自己的心跳和秒針的跳動都開始變得忽快忽慢,在獲得援助前,他必須自行爭取到更多的時間。
利用Windows自帶的“日期和時間”,就可在電腦課中開展討論和實驗,看誰能爭取到更多時間,當然,按規則,直接輸入數字和按向下按鈕都是不允許的,下面給出部分可能的方案。
1.請注意“日期和時間”窗口中的“Internet時間”選項,通常人們利用Internet上的時間同步服務器來校正自己系統不準確的走時。Win-dows默認“time.windows.com”為本系統的同步服務器,顯然,那臺“time.windows.com”走時無比精準,若執行“與Internet時間服務器同步”操作,只能使0點的來臨變得更加確定無疑??尚械姆桨甘恰皞卧臁币慌_運行著錯誤時間的同步服務器,但這引出了新的問題,如何實施偽造,并且,僅僅“偽造”一臺服務器就可以了嗎?
2.在時間文本框中秒的位置單擊鼠標,然后點向上滾動按鈕,這時可發現窗口中的秒針停止走動了。但是,這只是個假象,系統時鐘仍然在不折不扣地運行著,只是沒有表現在“日期和時間”的窗口中。然后,觀察其他計時設備,比如手表,當時間即將達到0點前,按下“日期和時間”窗口右下角的“應用”按鈕,反復此操作,就能在0點到達前拖延出大段時間。這里引出的問題是,雖然窗口中的秒針停止走時,系統時鐘實質卻正常運行,請找一個簡單的方法證明之。
3.在時間文本框中秒的位置單擊鼠標,當秒針走到59的時候,立即按下向上滾動按鈕,此時奇妙的事情發生了,秒針回到00,而分針并沒有進位,如此就能讓時間“倒退”了。這里引出的問題是,造成此現象的原因,究竟是軟件開發者偷懶,還是另有隱情?
小黃在大家的幫忙下,終于保住了自己的工作成果,不過他注意到一個新的問題,Windows XP以及之前的操作系統上,“日期和時間”中的秒針常常是幾拍快、一拍慢,原來這并非是心情緊張時產生的錯覺。陳教授回國后,打開VB,用一個文本框、一個定時器,一行程序代碼就解答了小黃的疑惑,陳教授是怎么做的