隨著商務應用軟件編制得越來越復雜,開發商開始在文檔中提供編程語言,使用戶能夠修改和定制自己的操作。
現在的大部分文字處理程序,電子表格和數據庫都包含功能強大的程序語言,允許在文檔中使用命令序列。這些命令序列或小程序就被叫做宏。因此數據文件(或稱文檔)不能感染病毒的定理已不再成立,因為每壹個文檔現在都可能含有可執行指令。許多應用程序如Microsoft Word,都允許建立宏。它在某操作發生時可自動運行。擁有這些條件,惡意程序——宏病毒的生成不過是壹個時間的問題。
宏病毒編制極其容易,微軟的宏語言都是BASIC語言的子集。
BASIC是眾多病毒制造者鐘愛的編程語言,它比匯編語言容易許多。所以本質上任何人都能制造宏病毒,因此不難理解宏病毒如此之多且日趨復雜化。
宏病毒利用宏語言外部的例程的調用能力如使用Windows API函數,能進行任何操作。與傳統的病毒相比,宏病毒的最新特色是它們不依賴操作系統。只要有應用程序支持解釋,宏病毒無需改動可在許多平臺上運行。例如Microsoft Word宏病毒能在任何安裝過Microsoft Word的系統中運行(Windows3.1x,Windows 95,Windows NT,MAC等)。