中斷與計算機病毒
1.中斷基本概念
什麼是中斷?先打個比方。當一個經理正處理文件時,電話鈴響了(中斷請求),不得不在文件上做一個記號(返 回地址),暫停工作,去接電話(中斷),並指示“按第二方案辦”(調中斷服務程序),然後,再靜下心來(恢復中 斷前狀態),接著處理文件……。計算機科學家觀察了類似實例,“外師物化,內得心源”,借用了這些思想、處理方 式和名稱,研制了一系列中斷服務程序及其調度系統。
中斷是CPU處理外部突發事件的一個重要技術。它能使CPU在運行過程中對外部事件發出的中斷請求及時地進行處理, 處理完成後又立即返回斷點,繼續進行CPU原來的工作。引起中斷的原因或者說發出中斷請求的來源叫做中斷源。 根據 中斷源的不同,可以把中斷分為硬件中斷和軟件中斷兩大類,而硬件中斷又可以分為外部中斷和內部中斷兩類。
外部中斷一般是指由計算機外設發出的中斷請求,如:鍵盤中斷、打印機中斷、定時器中斷等。外部中斷是可以屏 蔽的中斷,也就是說,利用中斷控制器可以屏蔽這些外部設備的中斷請求。
內部中斷是指因硬件出錯(如突然掉電、奇偶校驗錯等)或運算出錯(除數為零、運算溢出、單步中斷等)所引起 的中斷。內部中斷是不可屏蔽的中斷。
軟件中斷其實並不是真正的中斷,它們只是可被調用執行的一般程序。例如:ROMBIOS 中的各種外部設備管理中斷 服務程序(鍵盤管理中斷、顯示器管理中斷、打印機管理中斷等),以及DOS的系統功能調用(INT 21H)等都是軟件中 斷。
CPU為了處理並發的中斷請求,規定了中斷的優先權/中斷優先權由高到低的順序是:
(1)除法錯、溢出中斷、軟件中斷
(2)不可屏蔽中斷
(3)可屏蔽中斷
(4)單步中斷。
2.中斷與計算機病毒 計算機操作系統是開放的,用戶可以修改擴充操作系統,在計算機上實現新的功能。修改操作系統的主要方式之一 是擴充中斷功能。
計算機提供很多中斷,合理合法地修改中斷會給計算機增加非常有用的新功能。如INT 10H是屏幕顯示中斷, 原只能顯示西文,而在各種漢字系統中都可以通過修改1NT 10H使計算機能夠顯示中文。另一方面, 計算機病毒則篡改中斷 為其達到傳染、激發等目的服務,與病毒有關的重要中斷有: INT 08H和INT 1CH定時中斷,每秒調用18.2次,有些病毒利用它們的記時判斷激發條件。
INT 09H鍵盤輸入中斷,病毒用於監視用戶擊鍵情況。
INT 10H屏幕輸入輸出中斷,一些病毒用於在屏幕上顯示字符圖形表現自己。
INT 13H磁盤輸入輸出中斷,引導型病毒用於傳染病毒和格式化磁盤。
INT 21H DOS功能調用,包含了DOS的大部分功能,已發現的絕大多數文件型病毒修改
INT 21H中斷, 因此也成為防 病毒的重點監視部位。
INT 24H DOS的嚴重錯誤處理中斷,文件型病毒常進行修改,以防止傳染寫保護磁盤時被發現。 中斷子程序的人口地址存放在計算機內存的最低端,病毒竊取和修改中斷的人口地址獲得中斷的控制權,51自學網,在中斷服 務過程中插入病毒的“私貨”。
總之,中斷可以被用戶程序所修改,從而使得中斷服務程序被用戶指定的程序所替代。這樣雖然大大地方便了用戶, 但也給計算機病毒制造者以可乘之機。病毒正是通過修改中斷以使該中斷指向病毒自身來進行發作和傳染的。
摘自陳立新《計算機病毒防治百事通》清華大學出版社。