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