電腦病毒是一些可以自我複製的程序段,它能附在應用程序或系統文件的可執行部分。在宿主程序執行的某些階段,它可以得到執行控制權。按病毒傳染機理可分爲兩大類:一類是系統引導型,它感染系統引導時的程序(系統引導扇區、操做系統的某些模 塊、設備驅動程序等);
另外一類是文件型,它感染可執行的程序文件(即應用程序,含COM文件、EXE文件或覆蓋文件等)。
透過各類病毒的分析,能夠發現病毒有三個本質弱點:
(1)病毒的宿主目標必須是電腦系統的可執行程序,也就是說它們只能感染系統引導程序或應用程序。
(2 )病毒的感染老是以某種方式改變被感染的程序段,若是附在現存程序上,它會改變程序的開頭、結尾或程序中間的某些部分,若是它隱藏在磁盤的某些區,它會更改這些區的內容。
(3)若是病毒要存活、傳播, 那麼它的程序代碼必須可以被執行,即病毒必須把自身或一部分定位於宿主程序的特殊位置,以便得到控制權。
實際上,現有PC病毒都是經過改變宿主程序的第一條執行的指令,達到先於宿主程序執行的目的。對於COM 文件,病毒替換它的第一條指令(由於COM 文件入口地址固定爲CS:100H);對於EXE文件,病毒改變入口指針(在文件頭);對於中斷服務程序,也相似地改變它的中斷向量。
所以,病毒破壞了被感染程序的數據真實性,準確地說是破壞了被感染程序第一條被執行指令的真實性。因此,對應用程序的校驗只要針對第一條執行的指令和附近的數據,既可保證準確性,又減小檢測時間。