|
DataMuseum.dkPresents historical artifacts from the history of: DKUUG/EUUG Conference tapes |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about DKUUG/EUUG Conference tapes Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - downloadIndex: T
Length: 249140 (0x3cd34) Types: TextFile Names: »TR985.PS«
└─⟦4f9d7c866⟧ Bits:30007245 EUUGD6: Sikkerheds distributionen └─⟦this⟧ »./papers/Virus/TR985.PS«
%! % This file is a NONconforming PostScript file. (TeXPS: dvi->PostScript Driver dvitps, Version 3.10 of July 28, 1990\n)print flush (TeXPS: release number dvitps of 3.10\n)print flush % Copyright 1989 Stephan v. Bechtolsheim (unless otherwise stated) % applies to various prologue files. Read documentation for details. save % dvitps: BEGIN including file "/usr/local/tex/lib/TeXPS/pro/texpre.pro" /@bop0 { PsPrintEnabled { (Pass0: Page ) print == flush } {pop} ifelse } def /@eop0 { pop } def /@bop1 { PsPrintEnabled { (Pass1: Page ) print == flush } {pop} ifelse save DviTranslateVector-X DviTranslateVector-Y translate DviOrientationMatrix concat Page-H-Offset Page-V-Offset translate 3 1 roll translate 0 0 moveto Draft-Flag { @Draft } if /DriverDelta 0 def } def /@eop1 { pop showpage restore } def /@end { (Done!\n) print flush } def /@ReportVmStatus { (\n@ReportVmStatus: ) print print (: ) print vmstatus (max: ) print 20 string cvs print (, used: ) print 20 string cvs print (, level: ) print 20 string cvs print (\n) print flush } def /@ReportVmStatusNew { (VM: ) print exch print (, printer: ) print /Vmfree vmstatus pop exch pop def Vmfree ( ) cvs print (, driver: ) print dup ( ) cvs print (, delta: ) print Vmfree sub ( ) cvs print (\n) print flush } def /@Draft { gsave Page-H-Offset neg Page-V-Offset neg translate -45 rotate -150 0 moveto /Helvetica-Bold findfont [120.0 0 0 -120.0 0 0 ] makefont setfont (DRAFT) show grestore gsave Page-H-Offset neg Page-V-Offset neg translate 300 -100 moveto /Helvetica-Bold findfont [60.0 0 0 -60.0 0 0 ] makefont setfont Date-and-Time show ( :: ) show Dvi-File-Name show grestore } def % dvitps: END including file "/usr/local/tex/lib/TeXPS/pro/texpre.pro" % dvitps: BEGIN including file "/usr/local/tex/lib/TeXPS/pro/pos.pro" /a { rmoveto } def /DriverDelta 0 def /b { exch p dup /DriverDelta exch def 0 rmoveto } def /c { p DriverDelta 4 sub dup /DriverDelta exch def 0 rmoveto } def /d { p DriverDelta 3 sub dup /DriverDelta exch def 0 rmoveto } def /e { p DriverDelta 2 sub dup /DriverDelta exch def 0 rmoveto } def /f { p DriverDelta 1 sub dup /DriverDelta exch def 0 rmoveto } def /g { p DriverDelta 0 rmoveto } def /h { p DriverDelta 1 add dup /DriverDelta exch def 0 rmoveto } def /i { p DriverDelta 2 add dup /DriverDelta exch def 0 rmoveto } def /j { p DriverDelta 3 add dup /DriverDelta exch def 0 rmoveto } def /k { p DriverDelta 4 add dup /DriverDelta exch def 0 rmoveto } def /l { p -4 0 rmoveto } def /m { p -3 0 rmoveto } def /n { p -2 0 rmoveto } def /o { p -1 0 rmoveto } def /q { p 1 0 rmoveto } def /r { p 2 0 rmoveto } def /s { p 3 0 rmoveto } def /t { p 4 0 rmoveto } def /p { show } def /w { 0 exch rmoveto } def /x { 0 rmoveto } def /y { 3 -1 roll p rmoveto } def /u-string ( ) def /u { u-string exch 0 exch put u-string show } def /v { u-string exch 0 exch put currentpoint u-string show moveto } def % dvitps: END including file "/usr/local/tex/lib/TeXPS/pro/pos.pro" % dvitps: BEGIN including file "/usr/local/tex/lib/TeXPS/pro/rules.pro" /z { /dy exch def /dx exch def currentpoint currentpoint transform round exch round exch itransform newpath moveto dx 0 rlineto 0 dy rlineto dx neg 0 rlineto closepath fill moveto } def /z { /dy exch def /dx exch def currentpoint 0.2 0.2 rmoveto currentpoint newpath moveto dx 0 rlineto 0 dy rlineto dx neg 0 rlineto closepath fill moveto } def % dvitps: END including file "/usr/local/tex/lib/TeXPS/pro/rules.pro" letter /Dvi-File-Name (paper.dvi) def (Dvi file name: ") print Dvi-File-Name print (".\n) print /Draft-Flag false def /#copies 1 def /NumCharsInPixelFonts 256 def /HostName (uther.cs.purdue.edu) def (This PostScript file was produced on host \") print HostName print (\".\n) print /PsPrintEnabled true def /Page-H-Offset 0.000000 def /Page-V-Offset 0.000000 def /ExecPsConv {0.30 mul} def /Date-and-Time (Thu Sep 19 16:57 1991) def /DviTranslateVector-X 72.000 def /DviTranslateVector-Y 720.000 def /DviOrientationMatrix [ 0.240 0.000 0.000 -0.240 0.0 0.0 ] def % dvitps: BEGIN including file "/usr/local/tex/lib/TeXPS/pro/pixel-fonts.pro" /@newfont { /newname exch def newname 7 dict def newname load begin /FontType 3 def /FontMatrix [1 0 0 -1 0 0] def /FontBBox [0 0 1 1] def /BitMaps NumCharsInPixelFonts array def /BuildChar {CharBuilder} def /Encoding NumCharsInPixelFonts array def 0 1 NumCharsInPixelFonts 1 sub {Encoding exch /.undef put} for end newname newname load definefont pop } def /ch-image {ch-data 0 get} def /ch-width {ch-data 1 get} def /ch-height {ch-data 2 get} def /ch-xoff {ch-data 3 get} def /ch-yoff {ch-data 4 get} def /ch-tfmw {ch-data 5 get} def /CharBuilder { /ch-code exch def /font-dict exch def /ch-data font-dict /BitMaps get ch-code get def ch-data null eq not { ch-tfmw 0 ch-xoff neg ch-height ch-yoff sub neg ch-width ch-xoff neg add ch-yoff setcachedevice 0 0 transform round exch round exch itransform translate ch-width ch-height true [1 0 0 1 ch-xoff ch-height ch-yoff sub] {ch-image} imagemask } if } def /@dc { /ch-code exch def /ch-data exch def currentfont /BitMaps get ch-code ch-data put currentfont /Encoding get ch-code ( ) cvs % convert the character code to a string cvn ch-code exch put } def /@sf /setfont load def % dvitps: END including file "/usr/local/tex/lib/TeXPS/pro/pixel-fonts.pro" 0 @bop0 /@F1 @newfont @F1 @sf [< 00003FE0000001FFFC000007F00F00001F800380003E0000C0007800002000F000001001E0 00000803C000000807800000040F800000060F000000021F000000021E000000013E000000 013C000000017C000000017C000000017C000000007800000000F800000000F800000000F8 00000000F800000000F800000000F800000000F800000000F800000000F800000000F80000 0000F80000000078000000007C000000017C000000017C000000013C000000013E00000003 1E000000031F000000030F000000070F80000007078000000F03C000000F01E000001F00F0 00002F007800004F003E000087001F8003070007F01E030001FFF80300003FE001> 40 51 -4 49 48] 67 @dc [< 001FC00000F0780001C01C0007800F000F0007801E0003C01E0003C03C0001E03C0001E07C 0001F0780000F0F80000F8F80000F8F80000F8F80000F8F80000F8F80000F8F80000F8F800 00F8780000F0780000F0780000F03C0001E03C0001E01C0001C01E0003C00F000780070007 0001C01C0000F07800001FC000> 29 31 -2 30 33] 111 @dc [< FFFC1FFF83FFF0FFFC1FFF83FFF00FC001F8003F00078000F0001E00078000F0001E000780 00F0001E00078000F0001E00078000F0001E00078000F0001E00078000F0001E00078000F0 001E00078000F0001E00078000F0001E00078000F0001E00078000F0001E00078000F0001E 00078000F0001E00078000F0001E00078000F0001E00078000F0001E00078000F0001E0007 8000F0001E00078000F0001E0007C000F8001E0007C000F8001E0007A000F4001E0007A001 E4003C000F9001E2003C00FF8C03C1807800FF83078060F0000780FE001FC000> 52 31 -2 30 55] 109 @dc [< FFFC0000FFFC00000FC0000007800000078000000780000007800000078000000780000007 800000078000000780000007800000078000000781F80007860F000798038007A001E007A0 00F007C000F0078000780780007C0780003C0780003E0780003E0780001F0780001F078000 1F0780001F0780001F0780001F0780001F0780001F0780001F0780001E0780003E0780003C 0780003C0780007807C0007807A000F00F9001E0FF8803C0FF8607000781FC00> 32 45 -2 30 37] 112 @dc [< 001FC0FF80007030FF8001C008F80003C004F000038002F000078001F000078001F0000780 01F000078000F000078000F000078000F000078000F000078000F000078000F000078000F0 00078000F000078000F000078000F000078000F000078000F000078000F000078000F00007 8000F000078000F000078000F000078000F000078000F0000F8001F000FF801FF000FF801F F000078000F000> 33 31 -2 30 37] 117 @dc [< 001F000078C000E04001E02001C02003C01003C01003C01003C01003C01003C01003C01003 C01003C00003C00003C00003C00003C00003C00003C00003C00003C00003C00003C00003C0 0003C00003C00003C00003C000FFFFE01FFFE00FC00007C00003C00001C00001C00000C000 00C00000C000004000004000004000004000004000> 20 44 -1 43 25] 116 @dc [< 001FC00000F0300001C00C00078002000F0002000E0001001E0000803C0000803C0000007C 00000078000000F8000000F8000000F8000000F8000000F8000000F8000000FFFFFF80F800 0780F80007807800078078000F807C000F003C000F001C000F001E001E000E001E0007003C 000380380000E0E000003F8000> 25 31 -2 30 29] 101 @dc [< FFFE00FFFE000FC00007800007800007800007800007800007800007800007800007800007 800007800007800007800007800007800007800007800007800007800007C00007C00007C0 0007C03807A07C0F907CFF907CFF8C180783E0> 22 31 -2 30 25] 114 @dc [< 000001800000000001800000000001800000000003C00000000003C00000000007E0000000 0007E00000000007E0000000000F90000000000F90000000001F98000000001F0800000000 1F08000000003F04000000003E04000000003E04000000007C02000000007C0200000000FC 0100000000F80100000000F80100000001F00080000001F00080000003F000C0000003E000 40000003E00040000007E00020000007C00020000007C0002000000F80001000000F800010 00001F80000800001F00000800001F00000800003E00000400003E00000400007E00000600 007C00000200007C0000020000FC0000010000F80000010000F80000010001F00000008001 F00000008003F0000000C003E0000000C003E0000000E007F0000001F8FFFE000007FFFFFE 000007FF> 48 50 -1 48 50] 86 @dc [< FFF8FFF80FC007800780078007800780078007800780078007800780078007800780078007 80078007800780078007800780078007800F80FF80FF800780000000000000000000000000 0000000000000000000007000F801F801F800F800700> 13 48 -2 47 18] 105 @dc [< 80FE00C301C0CC0060F00030F00038E00018E0001CC0001CC0001C80001C80003C80003C00 00F80001F8003FF003FFE00FFFC01FFF003FF0007E0000F80000F00010E00010E00010E000 10E000306000303000701800F00E033001FC10> 22 31 -2 30 26] 115 @dc [< FFFFFFFFFFFFFFFFC0> 66 1 0 19 66] 124 @dc [< FFE00003FFFCFFE00003FFFC1F8000003F80070000001F00030000001F00030000003F0001 0000003E00010000003E00008000007C00008000007C00008000007C0000400000F8000040 0000F80000400001F80000200001F00000200001F00000200003F000001FFFFFE000001FFF FFE00000180007E00000080007C00000080007C0000004000F80000004000F80000004000F 80000002001F00000002001F00000002003F00000001003E00000001003E00000001807E00 000000807C00000000807C0000000040F80000000040F80000000040F80000000021F00000 000021F00000000023F00000000013E00000000013E00000000017E0000000000FC0000000 000FC0000000000FC000000000078000000000078000000000030000000000030000000000 03000000> 46 50 -2 49 50] 65 @dc [< FFFFC00000FFFFC0000007F000000003E000000003E000000003E000000003E000000003E0 00000003E000000003E000000003E000000003E000000003E000000003E000000003E00000 0003E000000003E000800003E000800003E000800003E000800003E000800003E001800003 E001800003E007800003FFFF800003FFFF800003E007800003E001800003E001800003E000 800003E000800003E000800003E000800003E000801003E000001003E000001003E0000010 03E000002003E000002003E000002003E000002003E000006003E000006003E00000E003E0 0001E003E00003C007E0001FC0FFFFFFFFC0FFFFFFFFC0> 36 49 -4 48 43] 70 @dc [< 7FFF007FFF0007E00003C00003C00003C00003C00003C00003C00003C00003C00003C00003 C00003C00003C00003C00003C00003C00003C00003C00003C00003C00003C00003C00003C0 0003C00003C00003C00003C000FFFFC0FFFFC003C00003C00003C00003C00003C00003C000 03C00003C00003C00003C00003C00003C00001C03801E07C00E07C00707C003838001C1000 07E0> 22 50 -1 49 20] 102 @dc [< 7FFE1FFF807FFE1FFF8007E001F80003C000F00003C000F00003C000F00003C000F00003C0 00F00003C000F00003C000F00003C000F00003C000F00003C000F00003C000F00003C000F0 0003C000F00003C000F00003C000F00003C000F00003C000F00003C000F00003C000F00003 C000F00003C000F00003C000F00003C000F00003C000F00003C000F00003C001F000FFFFFF F000FFFFFFF00003C000000003C000000003C000000003C000000003C000000003C0000000 03C000000003C000000003C000000003C000000003C000E00003C001F00001E001F00000E0 01F00000F000F0000078002000001C00400000070180000001FE0000> 33 50 -1 49 36] 12 @dc [< 003F8000E0600380180700040F00021E00021E00013C00017C00007C0000780000F80000F8 0000F80000F80000F80000F80000F80000F80000F800007800007C00087C003E3C003E1C00 3E1E001E0F000407000403801800E060003F80> 24 31 -3 30 29] 99 @dc [< 03FC03E00F0307F03E008F087C005E0478003E04F8003E04F8003E04F8001E04F8001E04F8 001E047C001E003C001E003E001E001F001E000F801E0003E01E0000FC1E00000FFE000000 1E0000001E0000001E0008001E003E001E003E001E003E001C003C003C0010003800100070 000C00E0000303C00000FE0000> 30 31 -3 30 33] 97 @dc [< FFFCFFFC0FC007800780078007800780078007800780078007800780078007800780078007 80078007800780078007800780078007800780078007800780078007800780078007800780 0780078007800780078007800780078007800F80FF80FF800780> 14 50 -2 49 18] 108 @dc [< FFFFFFFF00FFFFFFFF0007E000FF0003E0003F0003E0000F0003E000078003E000038003E0 00038003E000018003E000018003E000008003E000008003E000008003E000008003E00000 4003E000004003E000004003E000004003E000000003E000000003E000000003E000000003 E000000003E000000003E000000003E000000003E000000003E000000003E000000003E000 000003E000000003E000000003E000000003E000000003E000000003E000000003E0000000 03E000000003E000000003E000000003E000000003E000000003E000000003E000000003E0 00000003E000000007F0000000FFFFC00000FFFFC00000> 34 49 -4 48 41] 76 @dc [< 00780000FC0000FC0000FC0000FC0000780000000000000000000000000000000000000000 00000000000010000010000010000010000010000010000010000010000010000010000018 00000800000C00000C000006000007000003000003800001C00000F00000F800007800007C 00003C70003EF8003EF8003EF8003EF0003E40003E40003C20007C1000780800F00703C000 FF00> 23 50 -4 49 31] 63 @dc /@F14 @newfont @F14 @sf [< 03FFFC00001F8000000F0000000F0000000F0000000F0000000F0000000F0000000F000000 0F0000000F0000000F0000000F0000000F0000000F0000000F0000000F0000000F0000000F 0000800F0020800F0020800F0020C00F0020400F0040400F0040600F00C0700F01C07FFFFF C0> 27 28 -1 27 30] 84 @dc [< 03E00C181804300270026000E000E000E000E000FFFEE0066006700E300C18180C3003E0> 15 18 -1 17 18] 101 @dc [< 07C00C301808300470046000E000E000E000E000E000E00060007030307818780C3007E0> 14 18 -2 17 18] 99 @dc [< FF9FF01C03801C03801C03801C03801C03801C03801C03801C03801C03801C03801C03801C 03801C03801E03801D03001C87001C7C001C00001C00001C00001C00001C00001C00001C00 001C00001C00001C0000FC0000> 20 29 -1 28 23] 104 @dc [< FF9FF01C03801C03801C03801C03801C03801C03801C03801C03801C03801C03801C03801C 03801C03801E03801D03001C8700FC7C00> 20 18 -1 17 23] 110 @dc [< FF801C001C001C001C001C001C001C001C001C001C001C001C001C001C001C001C00FC0000 0000000000000000000000000018003C003C001800> 9 29 -1 28 12] 105 @dc [< 1F8700304E80603C40E01C40E01C40E01C40601C00701C00381C000F1C0001FC00001C0000 1C00301C00781C007838003070001FC000> 18 18 -2 17 21] 97 @dc [< FF801C001C001C001C001C001C001C001C001C001C001C001C001C001C001C001C001C001C 001C001C001C001C001C001C001C001C001C00FC00> 9 29 -1 28 12] 108 @dc [< 000007C0FFF01C200F003C200F0038100F0078100F0078100F0078000F0078000F0078000F 0078000F0078000F0078000F00F0000F00E0000F03C0000FFF00000F01E0000F0078000F00 3C000F001C000F001E000F001E000F001E000F001E000F001C000F003C000F0078000F01E0 00FFFF0000> 28 29 -2 27 31] 82 @dc [< FF80001C00001C00001C00001C00001C00001C00001C00001CF8001D06001E03001C01801C 01C01C01C01C00E01C00E01C00E01C00E01C00E01C00E01C00C01C01C01C01801E03001D86 00FC7C00> 19 26 -1 17 23] 112 @dc [< 03F0000E1C00180600300300700380600180E001C0E001C0E001C0E001C0E001C0E001C060 01807003803003001806000E1C0003F000> 18 18 -1 17 21] 111 @dc [< FFC01C001C001C001C001C001C001C001C001C001C001C001C001C301E781E781D30FCE0> 13 18 -1 17 16] 114 @dc [< 03C00E200C101C101C101C101C101C101C001C001C001C001C001C001C001C001C00FFE03C 001C000C000C000400040004000400> 12 26 -1 25 16] 116 @dc [< 001FC00000E0300001800800070004000E0002001C0001001C000100380000807800008078 00008070000080F0000000F0000000F0000000F0000000F0000000F0000000F0000000F000 0000700000807800008078000080380001801C0001801C0003800E00038007000780018019 8000E06180001F8080> 25 30 -2 28 30] 67 @dc [< 83F800CC0C00D00200E00300C00180C001808001C08001C08001C00001C00003C00007C000 0F8000FF8007FF001FFE003FF8007FC0007C0000F80000F00000E00080E00080E00080E001 806001807003803005801C198007E080> 18 30 -2 28 23] 83 @dc [< FFFFC0000F0070000F001C000F000E000F0007000F0007800F0003800F0003C00F0001C00F 0001C00F0001E00F0001E00F0001E00F0001E00F0001E00F0001E00F0001E00F0001E00F00 01C00F0001C00F0003C00F0003800F0007000F0007000F000E000F003C000F00F000FFFFC0 00> 27 28 -2 27 32] 68 @dc [< FFE0FFE0> 11 2 0 9 14] 45 @dc [< 0F8030C0203070107818780C300C000E0006000607C70C271817300F700F6007E007E007E0 07E007E007E006E006600E700C300C18180C3003C0> 16 29 -2 27 21] 57 @dc [< 07E01C10300C60046002C003C003C003C003C007600F601E307E18FC07F807F01FE03FB03E 08780C70066006600660062006200C10080C3003E0> 16 29 -2 27 21] 56 @dc [< 07C018702038401C401E800EF00FF00FF00F600F000F000F000F000E200E301C2818243023 E02000200020002000200020003FC03FF03FF8300C> 16 29 -2 27 21] 53 @dc /@F5 @newfont @F5 @sf [< FFFFFFE007C003E0078000F003C0003003C0001003C0001803C0000803C0000803C0000401 E0000401E0000401E0080201E0080001E0080001E0080000F00C0000F01C0000FFFC0000F0 1C0000F0040000F00400007806000078020000780202007800020078000200780002003C00 02003C0002003C0002003C0006003C000E003E001F03FFFFFF> 32 34 -2 33 33] 69 @dc [< 07E3F81C13C0380B803805C03803C03801C03801C03801C03801C01C00E01C00E01C00E01C 00E01C00E01C00E00E00700E00700E00700E00F0FE07F00E0070> 21 21 -4 20 27] 117 @dc [< 03FC00001C0780003000C00060006000C0003000C0001800C0001800600018006000180030 0018001C00780007FFF00007FFE00007FF800006000000040000000400000004000000027E 000002C300000181C0000381E0000780E0000780F0000780F0000780F00003C0700003C070 0001C0700000E0E1800070D180001F888000000780> 25 33 0 21 24] 103 @dc [< 03F0000E0C00180300300080700080F00040E00000E00000F00000F00000F00000F00000FF FFE07000E07800E03800E01C00E00C00E00701C003838000FE00> 19 21 -3 20 22] 101 @dc [< FFE7FF0F00780E007007003807003807003807003807003807003803801C03801C03801C03 801C03801C03C01C01C00E01E00E01E00E01D00C1FCC1801C3F0> 24 21 -1 20 27] 110 @dc [< FFFC3FFF0007C001F000078001E00003C000F00003C000F00003C000F00003C000F00003C0 00F00003C000F00001E000780001E000780001E000780001E000780001E000780001E00078 0000F0003C0000F0003C0000FFFFFC0000F0003C0000F0003C0000F0003C000078001E0000 78001E000078001E000078001E000078001E000078001E00003C000F00003C000F00003C00 0F00003C000F00003C000F00003E000F8003FFE0FFF8> 37 34 -2 33 37] 72 @dc [< 7078F87830> 5 5 -4 4 14] 46 @dc [< 81FC0000C6070000E8018000F000C000600060006000700060003000400038004000380040 00380020003C0000003C0000003C0000003C00000078000000F800000FF800007FF00001FF E00003FFC00007FE000007E000000F8000000F0000000F0000000F0002000E0002000E0002 00070003000700030003000300038007000180070000C00B0000303180000FC080> 25 36 -3 34 27] 83 @dc [< FFC000001E0000000E0000000E0000000E0000000E0000000E000000070000000700000007 000000070F80000730E0000740380003801C0003801E0003800F0003800700038007800380 078001C003C001C003C001C003C001C003C001C003C001C003C000E0038000E0038000F007 0000E806000FE60C0000E1F800> 26 31 0 20 27] 112 @dc [< 1F83C07867A0F01710F00F08F00F08F00708F007087807003807001C03800F038003E38000 7F800003800003800001C00601800F03800F030006060003FC00> 21 21 -3 20 24] 97 @dc [< FFC7FF00000F00F000000E00E0000007007000000700700000070070000007007000000700 70000007007000000380380000038038000003803800000380380000038038000003803800 0001C01C000001C01C000001C01C000001C01C000001C01C00003FFFFFF00000E00E000000 E00E000000E00E000000E00E000000E00E000000E00E000000700700000070070000007007 000000380F838000180F8780000E07C38000070261800000FC1E00> 33 35 -1 34 28] 11 @dc [< 07F0001C1C003807007003807001C0F001E0E000E0E000F0E000F0F00078F00078F00078F0 00787000787800783800701C00700C00E00600C0038380007E00> 21 21 -3 20 24] 111 @dc [< FFF0000F00000E000007000007000007000007000007000007000003800003800003800003 800003800003C00001C00001E0C001E1E001D1E01FC8E001C7C0> 19 21 -1 20 19] 114 @dc [< 07C3F81C33C0380F807003C07003C0E001C0E001C0E001C0E001C0F000E0F000E0F000E0F0 00E07000E07800E03800701C00700C00F00700F003837000FC700000380000380000380000 3800003800003800001C00001C00001C00001C00001C00001C0000FE00001E> 23 35 -4 34 27] 100 @dc /@F6 @newfont @F6 @sf [< FFFFF8000F801E0007800700078003C0078001E0078000E0078000F0078000780780007807 80007C0780003C0780003C0780003E0780003E0780003E0780003E0780003E0780003E0780 003E0780003E0780003E0780003C0780003C0780003C0780007C0780007807800078078000 F0078000E0078001C0078003C0078007000F801E00FFFFF000> 31 34 -2 33 37] 68 @dc [< 00FC000703000E00801C0040380020780020700000F00000F00000F00000F00000F00000FF FFE0F000E07000E07801E03801C01C01C00C038007070001FC00> 19 21 -1 20 22] 101 @dc [< FFE0000E00000E00000E00000E00000E00000E00000E00000E00000E00000E3F000E41C00E 80E00F00700E00380E003C0E003C0E001E0E001E0E001E0E001E0E001E0E001E0E001E0E00 1C0E003C0E00380F00700E8060FE61C00E1F00> 23 31 -1 20 27] 112 @dc [< 0FC1E03C2390781708F00F08F00708F00708F007087007007807003C07001E070007C70000 FF000007000007000007001807003C0E003C0C001838000FE000> 21 21 -2 20 24] 97 @dc [< FFF00F000E000E000E000E000E000E000E000E000E000E000E000E000E000F000F060F0F1E 8FFE460E3C> 16 21 -1 20 19] 114 @dc [< 01F0030807080E040E040E040E040E040E040E000E000E000E000E000E000E000E000E000E 000E00FFF83E001E000E000600060006000200020002000200> 14 31 -1 30 19] 116 @dc [< FFE3FF8FFE0E003800E00E003800E00E003800E00E003800E00E003800E00E003800E00E00 3800E00E003800E00E003800E00E003800E00E003800E00E003800E00E003800E00E003800 E00E003800E00F003C00E00F003C00E01E807201C0FE60E183800E1FC07F00> 39 21 -1 20 41] 109 @dc [< FFE7FF0E00700E00700E00700E00700E00700E00700E00700E00700E00700E00700E00700E 00700E00700E00700E00700F00700F00701E80E0FE60C00E1F80> 24 21 -1 20 27] 110 @dc [< 01FC000707000E03801C01C03800E07800F0700070F00078F00078F00078F00078F00078F0 0078F000787000707000703800E01800C00C018007070001FC00> 21 21 -1 20 24] 111 @dc [< 7FF80780070007000700070007000700070007000700070007000700070007000700070007 000700FFF8070007000700070007000700070007000700030F038F018F00C6003C> 16 35 0 34 15] 102 @dc [< 0007E00000381C0000E0020001C0010003800080070000400E0000401E0000201C0000203C 0000103C0000107C0000107800001078000000F8000000F8000000F8000000F8000000F800 0000F8000000F8000000F800000078000010780000107C0000103C0000303C0000301C0000 301E0000700E000070070000F0038000F001C0017000E00630003818300007E010> 28 36 -3 34 35] 67 @dc [< 00FC7F0382780601700E00F00E00F00E00700E00700E00700E00700E00700E00700E00700E 00700E00700E00700E00700E00700E00701E00F0FE07F00E0070> 24 21 -1 20 27] 117 @dc [< 81FC00C60700C80180F000C0E000C0C00060C0006080007080007080007080007000007000 00F00000F00001E00007E0003FC003FF800FFF001FFE003FF0007F0000780000F00000F000 00E00020E00020E00020E00060E000606000607000E03001E01802600C0C6003F020> 20 36 -3 34 27] 83 @dc [< 01F8000706000C01001C0080380040780040700000F00000F00000F00000F00000F00000F0 0000F000007000007800003803001C07800C078007030001FE00> 18 21 -2 20 22] 99 @dc [< FFC00E000E000E000E000E000E000E000E000E000E000E000E000E000E000E000E000E001E 00FE000E00000000000000000000000000000000001C001E003E001E001C00> 10 34 -1 33 14] 105 @dc [< 8FC0D030E018C008C00C800C800C801C003C01F80FF03FE07F80F000E008C008C008C01860 1830780F88> 14 21 -2 20 19] 115 @dc [< FFFC00000FC000000780000007800000078000000780000007800000078000000780000007 80000007800000078000000780000007800000078000000780000007FFF00007803C000780 0F0007800780078007C0078003C0078003E0078003E0078003E0078003E0078003E0078003 E0078003C0078007C00780078007800F000F803C00FFFFF000> 27 34 -2 33 33] 80 @dc [< 01F0FE070CF00C02E01801E03800E07800E07000E0F000E0F000E0F000E0F000E0F000E0F0 00E0F000E07000E07800E03800E01C01E00C02E00704E001F8E00000E00000E00000E00000 E00000E00000E00000E00000E00000E00000E00000E00001E0000FE00000E0> 23 35 -2 34 27] 100 @dc [< 0003F000001C0800003006000060010000E0008001C0008003C0004003C000400380004007 80002007800020078000200780002007800020078000200780002007800020078000200780 00200780002007800020078000200780002007800020078000200780002007800020078000 2007800020078000200780002007800020078000700FC000F8FFFC07FF> 32 35 -2 33 37] 85 @dc [< 00100000380000380000380000740000740000E20000E20000E20001C10001C10003808003 80800380800700400700400E00200E00200E00301E0078FFC1FE> 23 21 -1 20 26] 118 @dc [< 3C0000430000F18000F08000F0400000400000200000200000200000100000100000380000 380000380000740000740000E20000E20000E20001C10001C1000380800380800380800700 400700400E00200E00200E00301E0078FFC1FE> 23 31 -1 20 26] 121 @dc [< 00020000800000030001800000070001C00000070001C00000070001C000000F8003E00000 0F8003E000000F8003E000001E40079000001E40079000001E40079000003C200F0800003C 200F0800003C200F0800007C101E04000078101E04000078101E040000F8183E060000F008 3C020000F0083C020000F0083C020001E00478010001E00478010001E00478010003C002F0 008003C002F0008003C002F00080078001E00040078001E00040078001E000400F0003C000 200F0003C000200F0003C000701F8007E000F8FFF03FFC03FE> 47 35 -1 33 50] 87 @dc [< FFFFFF000F803F0007800F0007800300078003000780010007800180078001800780008007 80008007800080078000800780000007800000078000000780000007800000078000000780 00000780000007800000078000000780000007800000078000000780000007800000078000 00078000000780000007800000078000000FC00000FFFE0000> 25 34 -2 33 30] 76 @dc [< 4020101008080404040474FCFCF870> 6 15 -4 4 14] 44 @dc [< FFFC0FC0078007800780078007800780078007800780078007800780078007800780078007 8007800780078007800780078007800780078007800780078007800FC0FFFC> 14 34 -2 33 18] 73 @dc [< FFE000201F0000600E000060040000E0040001E0040001E0040003E0040003E0040007A004 000F2004000F2004001E2004003E2004003C20040078200400F8200400F0200401E0200401 E0200403C0200407802004078020040F0020041F0020041E0020043C0020047C0020047800 2004F0002004F0002005E0002007C0007007C000F8FF8007FF> 32 34 -2 33 37] 78 @dc [< 01FFF0001F00000E00000E00000E00000E00000E00000E00000E00FFFFF8800E00400E0020 0E00200E00100E00100E00080E00040E00040E00020E00020E00010E00008E00008E00004E 00004E00002E00001E00001E00000E00000E00000600000200> 21 33 -1 32 24] 52 @dc [< 01800003C00003C00003C00003C00003C00003C00003C00003C00001C00001C00001C00001 C00000C00000C00000E0000060000060000060000020000030000010000008000008000004 00800200800200800100C001004000807FFFC07FFFC07FFFE0600000400000> 19 35 -3 33 24] 55 @dc [< 0FC000103000201800700C007806007807003003000003800003800001C00001C00001C003 E1E00619E00C05E01805E03803E07003E07001E0F001E0F001E0F001E0F001E0F001E0F001 C0F001C0F001C07003807003803803801807000C0600060C0001F000> 19 34 -2 32 24] 57 @dc [< 01F000071C000C06001C07003803803803807803C07001C07001C07001C0F001E0F001E0F0 01E0F001E0F001E0F001E0F001E0F001E0F001E0F001E0F001E0F001E0F001E0F001E07001 C07001C07001C07001C03803803803801803000C0600071C0001F000> 19 34 -2 32 24] 48 @dc [< FFFFFE> 23 1 0 12 24] 123 @dc [< FFFE07C0038003800380038003800380038003800380038003800380038003800380038003 800380038003800380038003800380038003800380F3800F8003800080> 15 33 -4 32 24] 49 @dc [< 03F0000C1C00100F002007804007804003C0F003C0F803E0F803E07003E02003E00003E000 03C00003C0000780000780000F00001C0003F000003800000E00000F000007000007800007 803807C07807C07803C07807C04007C02007801007000C1E0003F800> 19 34 -2 32 24] 51 @dc [< 03F0000E0E001803003000806000C0600040C00060C00060C00060C00060C000E06000E060 01C03007C0100F80083F80067F0003FC0003F8000FF8001FC4003F02003E01007801807000 C06000C06000C06000C02000C0200180100180080300060E0001F800> 19 34 -2 32 24] 56 @dc /@F3 @newfont @F3 @sf [< 0FF03FFCFFFEF81EC00F000F000F000F001F01FE0FFC1FF83FF03F007C007800780078063C 0E3FFE1FFC07F0> 16 22 -1 21 19] 115 @dc [< F00000F00000F00000F00000F00000F00000F00000F00000F00000F00000F1F000F7F800FF FE00FC3E00F80F00F00F80F00780F007C0F003C0F003C0F003C0F003C0F003C0F003C0F007 C0F00780F00780F80F00FC3F00FFFE00F7FC00F1F000> 18 32 -4 21 25] 112 @dc [< 1F8F3FEF7FFFF83FF00FF00FF00FF00F780F3E0F1FFF07FF00FF000F000F000F000F201E38 1E3FFC1FF807E0> 16 22 -2 21 23] 97 @dc [< 07800780078007800780078007800780078007800780078007800780078007800780078007 80FFF8FFF8FFF807800780078007800780078007800780038003C001FF00FF003F> 16 35 0 34 15] 102 @dc [< 000FE000007FFC0000FFFF0003F00F8007C003C00F8000000F01F0001E07FC003C0FFE003C 0F1E00781E0F00783C0780783C0780F03C0780F07803C0F07803C0F07803C0F07803C0F078 03C0F07803C0F07803C0F03C07C0783C07C0783C07C0781E0FC03C0F1F803C0FFF801E07FF 800F01FF800F800F0007C01F0003F03E0000FFFC00007FF800000FE000> 26 35 -3 34 33] 64 @dc [< 01FC0007FF800FFFC01F03C03C0040780000780000780000F00000F00000F00000F00000F0 0000F000007000007800007800003C01801F03800FFF8007FF0001FC00> 18 22 -2 21 22] 99 @dc [< F0F0F0F0> 4 4 -5 3 14] 46 @dc [< 1F0F7FCF7FFFF83FF01FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF0 0FF00FF00FF00F> 16 22 -4 21 25] 117 @dc [< F000F000F000F000F000F000F000F000F000F000F000F000F000F000F800F800FC00FE00FF 00F7E0F3E0F0E0> 11 22 -4 21 17] 114 @dc [< 03E3C00FFBC01FFFC03E0FC03C07C07803C07803C0F003C0F003C0F003C0F003C0F003C0F0 03C0F003C0F003C07803C07803C03C07C03F0FC01FFFC00FFBC003E3C00003C00003C00003 C00003C00003C00003C00003C00003C00003C00003C00003C00003C00003C0> 18 35 -2 34 25] 100 @dc [< 01F80007FF000FFF801F07803C0080780000780000700000F00000F00000F00000FFFFC0FF FFC0FFFFC0F001C07803807803803C07803E0F001FFE0007FC0003F000> 18 22 -2 21 22] 101 @dc @F6 @sf [< 083F000C41C00C80600F00700E00380E003C0E001C0E001E0E001E0E001E0E001E0E001E0E 001E0E001E0E001C0E003C0E00380F00300E80600E61C00E1F000E00000E00000E00000E00 000E00000E00000E00000E00000E00000E00000E00001E0000FE00000E0000> 23 35 -1 34 27] 98 @dc @F14 @sf [< 8FC0D060E010C018C0188018803800F80FF03FE07F80F800E010C010C010403030701F90> 13 18 -1 17 16] 115 @dc /@F13 @newfont @F13 @sf [< FF80FFF01E001F0004000F0004000F0002000F0002001E0001001E0001001E0000801E0000 FFFE0000403E0000403C0000203C0000203C0000103C0000183C0000087C00000C78000004 78000006780000027800000378000001F0000000F0000000F0000000700000007000000030 0000002000> 28 29 -1 28 31] 65 @dc [< FFC01E001C000E000E000E000E000E000E000700070007000700078C078E03CF07EE1F9C> 16 18 -1 17 16] 114 @dc [< 1E00310070807080704070407040704070003800380038003800380038001C001C00FFE03C 001C000C0006000600020002000200> 11 26 -4 25 16] 116 @dc [< FF801E001C000E000E000E000E000E000E00070007000700070007000700038007801F8000 00000000000000000000000000018001C001C000C0> 10 29 -1 28 12] 105 @dc [< FF8FF01C03C01C03800E01C00E01C00E01C00E01C00E01C00E01C00700E00700E00700E007 00E00700E00700E00380700380F03FFFF003800003800003800001C00001C00001C03001C0 7800E078007038001C100007E0> 21 29 -1 28 23] 12 @dc [< 0FC018203010700860046000E000E000E00070007000700030003818181C0C1E071C01F8> 15 18 -3 17 18] 99 @dc [< 3F0E00709D80E05C80E03C40E01C40E01C40701C00301C001C1C000F0E0001FE00000E0000 0E00180E001C0E001E0C001C180007F000> 18 18 -3 17 21] 97 @dc [< FF801E001C000E000E000E000E000E000E0007000700070007000700070003800380038003 800380038001C001C001C001C001C001C001E007E0> 11 29 -1 28 12] 108 @dc [< FFFFF00F00F00F003807801807800807800807800407800407800403C00403C00003C00003 C00003C00003C00001E00001E00001E00001E00001E00001E00000F00000F00000F00000F0 0000F00000F8000FFFC0> 22 28 -2 27 26] 76 @dc [< FFC0001E00001C00000E00000E00000E00000E00000E00000E000007000007000007000007 00000700000700000380000380003FF80003800003800003800001C00001C00001C00001C1 8000E3C00061C00039C0000F80> 18 29 -1 28 13] 102 @dc [< 07C01C303008300460026000E000E000E00070007FFF7003300338031C070C06070C01F8> 16 18 -2 17 18] 101 @dc [< FFF8000F80000F000007800007800007800007800007800007800003C00003C00003C00003 C00003C00003C00001E00001E00001E00001E00001E00001E00000F00000F00000F00000F0 0000F00000F8000FFF80> 17 28 -1 27 15] 73 @dc [< 804020201010080838787838> 5 12 -3 3 12] 44 @dc [< 83F800CC0E00F00300E001806001C04000C04000E04000E04000E00000E00000E00001E000 03E0003FE001FFC003FF8007FF000FF8000F80001F00001E00001E00100E00180E00180E00 1806001803003801803800C0CC003F04> 22 30 -2 28 23] 83 @dc [< FFF800000F8000000F00000007800000078000000780000007800000078000000780000003 C0800003C0800003C0800003C0800003C1800003FF800001E1C00001E0C00001E0400001E0 400001E0408001E0008000F0008000F0008000F0008000F0008000F001C000F803C00FFFFF C0> 26 28 -2 27 27] 70 @dc [< 1F9F80305E00703C00701E00701E00700E00700E00700E00700E0038070038070038070038 07003807003807001C03803C0780FC1F80> 17 18 -4 17 23] 117 @dc [< 078FC0186F00301E00700F00600700600700E00700E00700E0070070038070038070038030 03803803801C03800C03C0030DC000F1C00001C00001C00001C00000E00000E00000E00000 E00000E00000E00000F00003F0> 20 29 -3 28 23] 100 @dc [< 8FC0D060E0106018400C400C401C003C07F80FF01FE03E0038043004100418060C0E03F2> 15 18 -1 17 16] 115 @dc [< FF9FF01E03C01C03800E01C00E01C00E01C00E01C00E01C00E01C00700E00700E00700E007 00E00780E00780E003C0E007B0C01F8F80> 20 18 -1 17 23] 110 @dc [< FF9FF01E03C01C03800E01C00E01C00E01C00E01C00E01C00E01C00700E00700E00700E007 00E00780E00780E003C0E003B0C0038F8003800003800003800001C00001C00001C00001C0 0001C00001C00001E00007E000> 20 29 -1 28 23] 104 @dc [< 07E0001C1800380E00700700600380600180E001C0E001C0E001C07000E07000E07000E030 00C03800C01C01C00E018003070000FC00> 19 18 -2 17 21] 111 @dc [< 007F00000380C000060020000C0018001C00040038000400380002007000010070000100F0 000100F0000080F0000000F0000000F0000000F0000000F000000078000000780000007800 0000380000403C0000401C0000400E0000600E000060070000E0038000E000C001E0007002 60001C0C300007F010> 28 30 -4 28 30] 67 @dc [< FF8FF8FF801E01E01E001C01C01C000E00E00E000E00E00E000E00E00E000E00E00E000E00 E00E000E00E00E000700700700070070070007007007000700700700078078070007807807 0003E076070007906106001F8FC0FC00> 33 18 -1 17 35] 109 @dc [< FF80001C00001C00001C00001C00000E00000E00000E00000E3C000EC3000F01C00700E007 007007007007003807003807003803801C03801C03801C03801803803803C03801E03003D8 600FC780> 22 26 0 17 23] 112 @dc [< FE1FF03C07800C0700040700020E00011E00009C0000780000380000700000780000EC0000 E40001C20001C10003818007C1E01FE3FC> 22 18 -1 17 22] 120 @dc [< 780000E60000F10000F1000070800000400000400000200000200000300000700000780000 7C0000740000720000E20000E10000E10000E08001E08001C04001C06001C02001C03003C0 380FF0FE> 23 26 0 17 22] 121 @dc @F14 @sf [< 00400000E00000E00000E00001D00001D00003D8000388000388000704000704000704000E 02000E02001C01001C01003C0380FF07E0> 19 18 -1 17 22] 118 @dc [< 60F0F060> 4 4 -4 3 12] 46 @dc [< FFC0FFF01F003F8006001F0002001E0003003C0001007C000080780000C0F8000041F00000 21E0000023E0000013C000000F8000000F8000000F0000001F0000001E0000003D0000007D 80000078800000F0400001F0600001E0200003E0100003C01800078018000FC03E007FF0FF C0> 28 28 -1 27 31] 88 @dc [< FFF00F000F000F000F000F000F000F000F000F000F000F000F000F000F000F000F000F000F 000F000F000F000F000F000F000F000F00FFF0> 12 28 -1 27 15] 73 @dc [< 804020201010101070F0F060> 4 12 -4 3 12] 44 @dc [< FFFFFC0F003C0F000C0F00060F00060F00020F00020F00020F00010F02010F02000F02000F 02000F06000FFE000F06000F02000F02000F02000F02020F00020F00020F00060F00040F00 040F000C0F003CFFFFFC> 24 28 -2 27 28] 69 @dc [< 07C7E00C3700180F00300700700700600700E00700E00700E00700E00700E00700E0070060 0700700700300700180F000C170003E7000007000007000007000007000007000007000007 00000700000700000700003F00> 19 29 -2 28 23] 100 @dc [< FFF8000F80000F00000F00000F00000F00000F00000F00000F00000F02000F02000F02000F 02000F06000FFE000F06000F02000F02000F02000F02040F00040F00040F000C0F00080F00 080F00180F0078FFFFF8> 22 28 -2 27 27] 70 @dc [< FF8FF8FF801C01C01C001C01C01C001C01C01C001C01C01C001C01C01C001C01C01C001C01 C01C001C01C01C001C01C01C001C01C01C001C01C01C001C01C01C001C01C01C001E01E01C 001D019018001C83883800FC7E07E000> 33 18 -1 17 35] 109 @dc [< FFFFF00F01F00F00700F00300F00100F00180F00180F00080F00080F00080F00000F00000F 00000F00000F00000F00000F00000F00000F00000F00000F00000F00000F00000F00000F00 000F00000F8000FFF800> 21 28 -2 27 26] 76 @dc [< 07F8001C0E00300300600180C000C0C000C0C000C06001C03003801FFF801FFF001FF80018 000030000010000013C0000C30001C3800181800381C00381C00381C00381C001818001C38 800C38C003C4C0000380> 18 28 -1 18 21] 103 @dc [< 03E3F00E1B800C07801C07801C03801C03801C03801C03801C03801C03801C03801C03801C 03801C03801C03801C03801C0380FC1F80> 20 18 -1 17 23] 117 @dc [< 3C0000660000F30000F10000F0800000800000800000400000400000E00000E00000E00001 D00001D00003D8000388000388000704000704000704000E02000E02001C01001C01003C03 80FF07E0> 19 26 -1 17 22] 121 @dc [< FF80FFF01E001F000C001F0004001E0004001E0006003E0002003C0002003C0003007C0001 FFF800010078000180F8000080F0000080F0000041E0000041E0000041E0000023C0000023 C0000023C000001780000017800000178000000F0000000F0000000F000000060000000600 0000060000> 28 29 -1 28 31] 65 @dc [< 001800180000180018000018001800003C003C00003C003C00003C003C00003E007C00007A 007A00007A007A00007900FA0000F100F10000F100F10000F100F10001E081E08001E081E0 8001E081E08003E043C04003C043C04003C043C04003C02780400780278020078027802007 801F00200F001F00100F001F00100F001F00101E001E00181F001F003CFFE0FFE0FF> 40 29 -1 27 43] 87 @dc [< FFF80F80070007000700070007000700070007000700070007000700070007000700070007 0007000700070007000700C7003F0007000300> 13 28 -4 27 21] 49 @dc 0 @eop0 0 0 0 @bop1 297 945 a @F1 @sf(Computer)22 b(Viruses|A)f(F)-6 b(orm)23 b (of)e(Arti\014cial)h(Life?)-925 92 y @F14 @sf(T)m(ec)o(hnical)14 b(Rep)q (ort)g(CSD-TR-985)-489 214 y @F5 @sf(Eugene)i(H.)f(Spa\013ord)-571 58 y @F6 @sf(Departmen)o(t)g(of)i(Computer)f(Sciences)-562 58 y(Purdue)h(Univ)o (ersi)o(t)o(y)-529 58 y(W)l(est)f(Lafa)o(y)o(ette,)f(IN)h(47907{)q(139)q (8)-527 58 y @F3 @sf(spaf@cs.purdue.)o(edu)-406 144 y @F6 @sf(Septem)o(b)q (er)f(19,)h(1991)-1029 776 y @F14 @sf(This)f(app)q(ears)h(in)f @F13 @sf (Arti\014cial)g(Life)g(I)q(I,)g(SFI)g(Studies)h(in)f(the)h(Sciences)h(of)d (Complexit)o(y)m(,)g @F14 @sf(v)o(ol.)g(XI)q(I,)h(Eds.)g(D.)-1795 49 y(F)m (armer,)e(C.)h(Langton,)f(S.)g(Rasm)o(ussen)h(and)g(C.)f(T)m(a)o(ylor,)f (Addison-W)m(esley)m(,)h(1991.)-1406 125 y 0 @eop1 0 @bop0 /@F8 @newfont @F8 @sf [< FFE00FFFE0FFE00FFFE00E0000FE00060000FC00060001FC00030001F800030001F8000180 03F000018003F00001FFFFF00000FFFFE00000C007E00000600FC00000600FC00000701FC0 0000301F800000303F800000183F000000183F0000000C7E0000000C7E0000000EFE000000 06FC00000006FC00000003F800000003F800000001F000000001F000000001F000000000E0 00000000E00000> 35 31 -2 30 40] 65 @dc [< 181F801C7FE01EC1F81F807C1F007C1F003E1F003E1F003F1F003F1F003F1F003F1F003F1F 003F1F003E1F003E1F007E1F807C1FE0F81F7FF01F1FC01F00001F00001F00001F00001F00 001F00001F00001F00001F00001F0000FF0000FF0000> 24 32 -2 31 29] 98 @dc [< C7F0FFFCF81EF006E007C007C007001F03FE1FFE3FFC7FF8FFC0F800E006E006600E701E3F FE0FE6> 16 20 -2 19 21] 115 @dc [< 01F003F807CC0F860F860F860F860F860F800F800F800F800F800F800F800F800F800F80FF FCFFFC3F800F800780038003800380018001800180> 15 29 -1 28 20] 116 @dc [< FFF000FFF0001F00001F00001F00001F00001F00001F00001F00001F00001F00001F00001F 00001F03001F8FC01E8FC01E8FC01ECFC0FE7F80FE3E00> 18 20 -2 19 22] 114 @dc [< 0FE07E3FF8FE7E0DE0FC05E0F803E0F803E0F803E07C03E03C03E01F03E007FBE0007FE000 03E00C03E03F03E03F03E03F07C03F0F801FFF0007FC00> 23 20 -1 19 25] 97 @dc [< 01FC0007FF001F81C03F00C03E00607E00007C0000FC0000FC0000FC0000FC0000FC0000FC 00007C03007C0FC03E0FC03E0FC01F0FC007FF8001FE00> 19 20 -2 19 23] 99 @dc /@F12 @newfont @F12 @sf [< 07FFFE00001F8000000F0000000F0000000F0000000F0000000F0000000F0000000F000000 0F0000000F0000000F0000000F0000000F0000000F0000000F0000000F0000000F0000000F 0000000F0000000F0000800F0010800F0010800F0010800F0010C00F0030400F0020400F00 20600F0060780F01E07FFFFFE0> 28 31 -2 30 33] 84 @dc [< FFE7FC0E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E 01C00E01C00E01C00F01C00F01C00E81800E43000E3E000E00000E00000E00000E00000E00 000E00000E00000E00000E00000E0000FE00000E0000> 22 32 -1 31 25] 104 @dc [< 01F8000706000C0100180080380080700000700000F00000F00000F00000FFFF80F00380F0 03807003807007003807003807001C0E000E1C0003F000> 17 20 -1 19 20] 101 @dc [< FFE00E000E000E000E000E000E000E000E000E000E000E000E000E000E000F0C0F1E0F1EFE 8C0E78> 15 20 -1 19 18] 114 @dc [< 0F83C0386720781E10F01E10F00E10F00E10F00E10780E00380E001E0E00078E0000FE0000 0E00000E00000E00300E00781C007818003030001FE000> 20 20 -2 19 23] 97 @dc [< 8F80D060E030C018C01880188018803800700FF03FE07F807800E000C010C010C010403030 701F90> 13 20 -2 19 18] 115 @dc [< 083E000CC3000D01C00F00E00E00E00E00700E00700E00780E00780E00780E00780E00780E 00780E00700E00700E00E00F00E00F01C00EC3800E3E000E00000E00000E00000E00000E00 000E00000E00000E00000E00000E0000FE00000E0000> 21 32 -1 31 25] 98 @dc [< FFE7FC0E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E 01C00E01C00E01C00F01C00F01C00E8180FE43000E3E00> 22 20 -1 19 25] 110 @dc [< 03F00E0C1C023801380170007000F000F000F000F000F000F00070007000380C381E1C1E0E 0C03F8> 16 20 -2 19 20] 99 @dc [< 01F800070E001C03803801C03801C07000E07000E0F000F0F000F0F000F0F000F0F000F0F0 00F07000E07000E03801C03801C01C0380070E0001F800> 20 20 -1 19 23] 111 @dc [< FFC00E000E000E000E000E000E000E000E000E000E000E000E000E000E000E000E000E007E 000E000000000000000000000000001C001E003E001E001C00> 10 31 0 30 13] 105 @dc [< 03E3F80E1B801C0780380780380380700380700380F00380F00380F00380F00380F00380F0 03807003807003803803803803801C0780061B8003E3800003800003800003800003800003 80000380000380000380000380000380003F80000380> 21 32 -2 31 25] 100 @dc [< FFE00E000E000E000E000E000E000E000E000E000E000E000E000E000E000E000E000E000E 000E000E000E000E000E000E000E000E000E000E000E00FE000E00> 11 32 0 31 13] 108 @dc [< 01E0031006100E080E080E080E080E080E000E000E000E000E000E000E000E000E000E000E 00FFF83E000E000E0006000600020002000200> 13 28 -1 27 18] 116 @dc [< FFE7FE7FE00E00E00E000E00E00E000E00E00E000E00E00E000E00E00E000E00E00E000E00 E00E000E00E00E000E00E00E000E00E00E000E00E00E000E00E00E000E00E00E000E00E00E 000F00F00E000F00F00E000E81C81C00FE618618000E1F01F000> 35 20 -1 19 38] 109 @dc [< FFE0000E00000E00000E00000E00000E00000E00000E00000E00000E3E000EC3000F01C00F 01E00E00E00E00F00E00700E00780E00780E00780E00780E00780E00780E00700E00F00E00 E00F00E00F01C0FEC3800E3E00> 21 29 -1 19 25] 112 @dc [< 01F1FC030DC00603C00E03C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E 01C00E01C00E01C00E01C00E01C00E01C0FE1FC00E01C0> 22 20 -1 19 25] 117 @dc [< 00200000700000700000700000E80000E80001EC0001C40001C40003820003820003820007 01000701000E00800E00800E00801C00C01E01E0FF83F8> 21 20 -1 19 24] 118 @dc [< 3C0000620000F10000F08000F0800000400000400000400000200000200000700000700000 700000E80000E80001EC0001C40001C4000382000382000382000701000701000E00800E00 800E00801C00C01E01E0FF83F8> 21 29 -1 19 24] 121 @dc [< 7FC3FE0700E00700E00700E00700E00700E00700E00700E00700E00700E00700E00700E007 00E00700E00700E00700E00700E00700E00700E0FFFFE00700000700000700000700000700 000700000701E00701E00381E001C0C000E0C0003F00> 23 32 0 31 25] 12 @dc [< FFFE07C0038003800380038003800380038003800380038003800380038003800380038003 800380038003800380038003800380F3800F8003800180> 15 30 -4 29 23] 49 @dc [< 0FC000107000201800700C00780E0078060030070000070000038000038000038003E3C00E 13C0180BC03807C07007C07007C0F003C0F003C0F003C0F003C0F003C0F00380F003807003 807007003807003806001C0C000E180003F000> 18 31 -2 29 23] 57 @dc [< 03F0000C0C00100200200100600180C00080C000C0C000C0C000C0C001C04001C060038030 0F80103F000C7E0007FC0003F8000FF0001FC8003F06003E03007803007001806001806001 806001802001803003001006000C0C0003F000> 18 31 -2 29 23] 56 @dc [< 40201010080804040474FCFCF870> 6 14 -4 4 13] 44 @dc [< 7FF00700070007000700070007000700070007000700070007000700070007000700070007 00FFF007000700070007000700070007000706038F018F00C6007C> 16 32 0 31 14] 102 @dc [< 004008000060180000E01C0000E01C0000F03C0001D03A0001D0320003C873000388710003 8861000704E0800704C0800707C0800E03C0400E0380400E0380401C0380201C0300603C07 8070FF9FE1FC> 30 20 -1 19 33] 119 @dc [< 70F8F8F870> 5 5 -4 4 13] 46 @dc [< 000100000003800000038000000380000007C0000007C0000007C000000F2000000F200000 1F3000001E1000001E1000003C0800003C0800003C0800007804000078040000F8060000F0 020000F0020001F0010001E0010001E0010003C0008003C0008003C0008007800040078000 400F8000600F0000601F8000F8FFF003FE> 31 32 -1 30 34] 86 @dc [< 03FC001C03803000C0600060C00030C00030C00030C000306000703001E00FFFC01FFF803F FE0030000030000020000020000033E0001E38001C1C00380E00780F00780F00780F00780F 00780F00380E001C1C300E3C3003E3300000E0> 20 31 -1 20 23] 103 @dc [< FFCFF80E03E00E03C00E03800E07800E07000E0E000E1E000E1C000F38000EF8000E70000E 30000E10000E08000E04000E02000E03000E03C00E0FF00E00000E00000E00000E00000E00 000E00000E00000E00000E00000E0000FE00000E0000> 21 32 -1 31 24] 107 @dc [< FFF8FFF80F800F8007800F0007800F0007800F0007800F0007800F0007800F0007800F0007 800F0007800F0007800F0007800F0007800F0007800F0007800F0007FFFF0007800F000780 0F0007800F0007800F0007800F0007800F0007800F0007800F0007800F0007800F0007800F 0007800F000F800F80FFF8FFF8> 29 31 -2 30 34] 72 @dc [< FFFFFFFFFFF0> 44 1 0 12 45] 124 @dc [< FFC0FFC0> 10 2 -1 10 15] 45 @dc [< 81F800CE0C00F00600E00300C00380C001808001C08001C08001C08001C00001C00003C000 03C0000780001F8003FF000FFE001FFC003FF0007F0000780000F00000F00000E00080E000 80E00080E001806001806001803003801007800C198007E080> 18 33 -3 31 25] 83 @dc [< FF07FE1E01E00601E00201C0030380010700008700004E00007C00003C0000380000780000 EC0000E40001C2000381000701800701C00F01E07FC3FC> 23 20 0 19 24] 120 @dc [< 7FE3FE3FF00700700700070070070007007007000700700700070070070007007007000700 70070007007007000700700700070070070007007007000700700700070070070007007007 000700700700070070070007007007000700700700FFFFFFFF000700700000070070000007 007000000700700000070070000007007000000700F00F000300F00F000380F80F0001C07C 060000F04F0400001F81F800> 36 32 0 31 38] 14 @dc [< 381C7C3EFC7EFC7EB85C804080408040402040202010201010080804> 15 14 -5 31 23] 92 @dc [< 402020101008100808040804040204020402743AFC7EFC7EF87C7038> 15 14 -2 31 23] 34 @dc [< FFFC0FC0078007800780078007800780078007800780078007800780078007800780078007 8007800780078007800780078007800780078007800FC0FFFC> 14 31 -1 30 16] 73 @dc [< FFFE700E700638021C031E010E0107010780038001C001E000E0407040784038201C200E38 0E3FFF> 16 20 -1 19 20] 122 @dc [< 40201010080804040474FCFCF870> 6 14 -4 31 13] 39 @dc 0 @eop0 0 0 0 @bop1 871 807 a @F8 @sf(Abstract)-997 125 y @F12 @sf(There)15 b(has)f (b)q(een)h(considerable)f(in)o(terest)f(in)h(computer)h(viruses)f(since)g (they)g(\014rst)g(app)q(eared)h(in)f(1981,)-1796 57 y(and)d(esp)q(ecially)f (in)g(the)h(past)f(few)g(y)o(ears)g(as)g(they)g(ha)o(v)o(e)g(reac)o(hed)h (epidemic)g(n)o(um)o(b)q(ers)f(in)h(man)o(y)f(p)q(ersonal)-1795 56 y (computer)j(en)o(vironmen)o(ts.)19 b(Viruses)13 b(ha)o(v)o(e)g(b)q(een)h (written)e(ab)q(out)h(as)g(a)g(securit)o(y)g(problem,)g(as)f(a)h(so)q (cial)-1795 57 y(problem,)i(and)g(as)g(a)g(p)q(ossible)g(means)g(of)g(p)q (erforming)f(useful)h(tasks)g(in)g(a)g(distributed)f(manner.)-1626 76 y (Ho)o(w)o(ev)o(er,)g(only)g(recen)o(tly)h(ha)o(v)o(e)g(some)g(scien)o (tists)e(b)q(egun)j(to)f(ask)g(if)f(computer)h(viruses)g(are)g(not)g(a)-1795 56 y(form)f(of)g(arti\014cial)f(life|a)h(self-replicating)f(organism.)18 b (Simply)c(b)q(ecause)i(computer)e(viruses)g(do)h(not)-1795 57 y(exist)h (as)f(organic)g(molecules)h(ma)o(y)f(not)h(b)q(e)g(su\016cien)o(t)g (reason)g(to)f(dismiss)g(the)h(classi\014cation)e(of)i(this)-1795 56 y (form)f(of)f(\\v)m(andalw)o(are")g(as)h(a)g(lifeform.)-631 76 y(This)f (pap)q(er)h(b)q(egins)h(with)e(a)g(description)h(of)f(ho)o(w)g(computer)h (viruses)g(op)q(erate,)f(and)h(the)g(v)m(arious)-1795 57 y(w)o(a)o(ys)10 b (simple)h(viruses)h(are)f(structured.)18 b(It)12 b(then)g(examines)f(ho)o (w)g(viruses)g(meet)g(prop)q(erties)g(asso)q(ciated)-1795 56 y(with)j (life)g(b)o(y)h(researc)o(hers)g(in)f(the)h(area)g(of)f(arti\014cial)f (life)h(and)h(self-organizing)e(systems.)20 b(This)14 b(pap)q(er)-1794 56 y (argues)j(the)h(author's)f(view)g(that)g(computer)h(viruses)f(meeting)g (the)h(de\014nition)g(probably)f(do)q(es)h(not)-1795 57 y(mean)d(that)g (they)g(represen)o(t)g(life,)f(but)i(rather)e(that)h(the)g(de\014nition)g (is)g(de\014cien)o(t.)-1502 928 y 0 @eop1 1 @bop0 /@F2 @newfont @F2 @sf [< 7FFFFE7FFFFE7FFFFE00FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000 FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE 0000FE0000FE0000FE0000FE0000FE0000FE0000FE00F8FE00FFFE00FFFE0007FE00007E00 001E00000E00> 23 39 -5 38 34] 49 @dc [< FFFFFCFFFFFCFFFFFC01FE0001FE0001FE0001FE0001FE0001FE0001FE0001FE0001FE0001 FE0001FE0001FE0001FE0001FE0001FE0001FE0001FE0001FE0001FE0001FE0001FE0001FE 0001FE0001FE0001FE0001FE0001FE0001FE0001FE0001FE0001FE0001FE0001FE0001FE00 01FE00FFFFFCFFFFFCFFFFFC> 22 41 -2 40 26] 73 @dc [< FFFE3FFF80FFFE3FFF80FFFE3FFF800FE003F8000FE003F8000FE003F8000FE003F8000FE0 03F8000FE003F8000FE003F8000FE003F8000FE003F8000FE003F8000FE003F8000FE003F8 000FE003F8000FE003F8000FE003F8000FE003F8000FF003F8000FF003F8000FD803F8000F D803F0000FCE03F000FFC787E000FFC1FFC000FFC07F0000> 33 27 -3 26 38] 110 @dc [< 001F8000FFC001F86003F87003F03807F03807F03807F03807F03807F03807F03807F00007 F00007F00007F00007F00007F00007F00007F00007F00007F00007F00007F00007F000FFFF F0FFFFF01FFFF007F00003F00003F00001F00000F00000F00000F000007000007000007000 007000> 21 38 -1 37 27] 116 @dc [< FFFF00FFFF00FFFF000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000F E0000FE0000FE0000FE0000FE0000FE0000FE0000FF01C0FF03E0FF07F0FD87F0FD87FFFCE 3EFFC7FCFFC1F0> 24 27 -2 26 28] 114 @dc [< 003FE00001FFFC0007F07F000FC01F801F800FC03F800FE03F800FE07F0007F07F0007F0FF 0007F8FF0007F8FF0007F8FF0007F8FF0007F8FF0007F8FF0007F8FF0007F87F0007F07F00 07F07F0007F03F0007E03F800FE01F800FC00FC01F8003F07E0001FFFC00003FE000> 29 27 -2 26 34] 111 @dc [< 003FC3FF8000FFF3FF8003F03BFF8007C00FF8000F8007F8001F8003F8003F8003F8007F00 03F8007F0003F8007F0003F800FF0003F800FF0003F800FF0003F800FF0003F800FF0003F8 00FF0003F800FF0003F8007F0003F8007F0003F8007F0003F8003F8003F8001F8003F8000F C007F80007E00FF80003F03FF80000FFFBF800001FE3F800000003F800000003F800000003 F800000003F800000003F800000003F800000003F800000003F800000003F800000003F800 000003F800000003F80000003FF80000003FF80000003FF800> 33 42 -2 41 38] 100 @dc [< 003FC3FF8001FFF3FF8003F03BFF8007E00FF80007E007F8000FE007F8000FE003F8000FE0 03F8000FE003F8000FE003F8000FE003F8000FE003F8000FE003F8000FE003F8000FE003F8 000FE003F8000FE003F8000FE003F8000FE003F8000FE003F8000FE003F8000FE003F8000F E003F8000FE003F800FFE03FF800FFE03FF800FFE03FF800> 33 27 -3 26 38] 117 @dc [< 001FE00000FFFC0003F01E0007E007000FC003801F8001C03F8001C07F8000007F0000007F 000000FF000000FF000000FF000000FF000000FF000000FF000000FF0000007F0000007F00 00007F800E003F801F001F803F800FC03F8007E03F8003F01F0000FFFE00001FF800> 26 27 -2 26 31] 99 @dc [< FFFEFFFEFFFE0FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00F E00FE00FE00FE00FE00FE0FFE0FFE0FFE0000000000000000000000000000007000FC01FE0 3FE03FE03FE01FE00FC00700> 15 43 -3 42 19] 105 @dc @F12 @sf [< 001F800000F0F00001C0380007801E000F000F000E0007001E0007803C0003C03C0003C07C 0003E07C0003E0780001E0F80001F0F80001F0F80001F0F80001F0F80001F0F80001F0F800 01F0F80001F0F80001F0780001E0780001E07C0003E03C0003C03C0003C01E0007800E0007 000F000F0007801E0001C0380000F0F000001F8000> 28 33 -3 31 35] 79 @dc [< 003FF800038000038000038000038000038000038000038000038003E3800E13801C0B8038 0780380380780380700380F00380F00380F00380F00380F00380F003807003807803803803 803C07801C058006198003E080> 21 29 -2 19 24] 113 @dc [< FEFEC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0 C0C0C0C0C0C0FEFE> 7 45 -4 33 13] 91 @dc [< 03F0000E1C001C0E00180600380700780780700380700380700380F003C0F003C0F003C0F0 03C0F003C0F003C0F003C0F003C0F003C0F003C0F003C0F003C0F003C07003807003807003 807003803807001806001C0E000E1C0003F000> 18 31 -2 29 23] 48 @dc [< FFFF807FFF803FFF801000801800400C004006004003000001800000C00000600000700000 3800001C00000E00000F000007800007800007C02007C0F803C0F803C0F803C0F007C08007 80400780200700100E000C1C0003F000> 18 30 -2 29 23] 50 @dc [< FEFE0606060606060606060606060606060606060606060606060606060606060606060606 060606060606FEFE> 7 45 -1 33 13] 93 @dc [< 03E0000C3800100E00200600400700400380E00380F003C0F003C07003C00003C00003C000 03C0000380000380100780100700180E00161C0011F0001000001000001000001000001000 001000001FE0001FF8001FFC001FFE00180300> 18 31 -2 29 23] 53 @dc @F2 @sf [< FFFFFF80FFFFFF80FFFFFF807FFFFFC03FFFFFC01FFFFFC00FFFFFC0070001C0038001C001 C001C000E000E0007000E0003C00E0001E0000000F0000000780000003E0000003F0000001 F8000000FC000000FE0000007F0000007F8000003FC000003FC000003FE03C003FE07E001F E0FF001FE0FF001FE0FF003FE0FF003FC0FE003FC07C007F803800FF001F03FE000FFFFC00 03FFF00000FF8000> 27 39 -3 38 34] 50 @dc [< 00000E00000700000000001F00000F80000000001F00000F80000000001F80001F80000000 003F80001FC0000000003F80001FC0000000003FC0003FC0000000007FC0003FE000000000 7FC0003FE000000000FFE0007FF000000000FFE0007FF000000000FFF000FFF000000001FE 7000FF3800000001FE7000FF3800000001FE7801FF3800000003FC3801FE1C00000003FC38 01FE1C00000007FC1C03FC1E00000007F81C03FC0E00000007F81E07FC0E0000000FF00E07 F8070000000FF00E07F8070000001FF00F0FF0078000001FE0070FF0038000001FE0070FF0 038000003FE0039FE003C000003FC0039FE001C000003FC003FFE001C000007F8001FFC000 E000007F8001FFC000E00000FF8000FF8000F00000FF0000FF8000700000FF0000FF800070 0001FF0000FF0000780001FE0000FF0000380001FE0001FF0000380003FC0001FE00001C00 03FC0001FE00001C00FFFFE07FFFF007FFF0FFFFE07FFFF007FFF0FFFFE07FFFF007FFF0> 68 41 -1 40 71] 87 @dc [< FFFE3FFF80FFFE3FFF80FFFE3FFF800FE003F8000FE003F8000FE003F8000FE003F8000FE0 03F8000FE003F8000FE003F8000FE003F8000FE003F8000FE003F8000FE003F8000FE003F8 000FE003F8000FE003F8000FE003F8000FE003F8000FF003F8000FF003F8000FF803F8000F F803F0000FEE03F0000FE787E0000FE1FFC0000FE07F00000FE00000000FE00000000FE000 00000FE00000000FE00000000FE00000000FE00000000FE00000000FE00000000FE0000000 0FE00000000FE0000000FFE0000000FFE0000000FFE0000000> 33 42 -3 41 38] 104 @dc [< 01FC03FC0FFF0FFC3F839FFC7F00DF807E007F80FE003F80FE003F80FE003F80FE003F807F 003F803F003F803F803F800FE03F8007FC3F8000FFFF80000FFF8000003F8000003F800000 3F8007003F800F803F801FC03F001FC07E001FC07E000F81F80007FFF00001FF8000> 30 27 -2 26 33] 97 @dc [< C1FF00F7FFC0FF01E0FC0070F80038F00038F0003CE0003C60007C0000FC0003FC00FFF807 FFF81FFFF03FFFE07FFF807FFE00FFE000FC0000F80070F00070F000707000703800F01E03 F00FFFF003FE30> 22 27 -2 26 27] 115 @dc [< 00003FF800000003FFFF0000000FFFFFC000003FF007E00000FF8000F80001FE00003C0003 FC00001E0007F000000E000FF0000007001FE0000007001FE0000003803FC0000003803FC0 000003807FC0000003807F80000000007F8000000000FF8000000000FF8000000000FF8000 000000FF8000000000FF8000000000FF8000000000FF8000000000FF8000000000FF800000 00007F80000000007F80000003807FC0000003803FC0000003803FC0000007801FE0000007 801FE0000007800FF000000F8007F000001F8003FC00003F8001FE00007F8000FF8001FF80 003FF007DF80000FFFFF87800003FFFE038000003FF00180> 41 41 -4 40 50] 67 @dc [< FFFE1FFFC3FFF8FFFE1FFFC3FFF8FFFE1FFFC3FFF80FE001FC003F800FE001FC003F800FE0 01FC003F800FE001FC003F800FE001FC003F800FE001FC003F800FE001FC003F800FE001FC 003F800FE001FC003F800FE001FC003F800FE001FC003F800FE001FC003F800FE001FC003F 800FE001FC003F800FE001FC003F800FE001FC003F800FF001FE003F800FF001FE003F800F D801FF003F800FCC01F9803F000FC603F8C07F00FFC383F0707E00FFC1FFE03FFC00FFC07F 800FF000> 53 27 -3 26 57] 109 @dc [< FFFE000000FFFE000000FFFE0000000FE00000000FE00000000FE00000000FE00000000FE0 0000000FE00000000FE00000000FE00000000FE00000000FE1FC00000FE7FF80000FFE0FE0 000FF803F0000FF001F8000FE001FC000FE000FE000FE000FF000FE000FF000FE0007F000F E0007F800FE0007F800FE0007F800FE0007F800FE0007F800FE0007F800FE0007F800FE000 7F000FE0007F000FE000FF000FE000FE000FE000FC000FF001F8000FF803F000FFFE07E000 FFE7FF8000FFE1FE0000> 33 39 -2 26 38] 112 @dc [< 001FF00000FFFE0003F81F0007E003800FC001C01F8000E03F8000E07F0000007F0000007F 000000FF000000FF000000FF000000FFFFFFE0FFFFFFE0FF0007E0FF0007E07F0007E07F00 07C07F000FC03F800FC01F800F800F801F8007C01F0003F07E0001FFF800003FE000> 27 27 -2 26 32] 101 @dc [< 000001C0000000000003E0000000000003E0000000000007F0000000000007F00000000000 0FF800000000000FF800000000000FF800000000001FFC00000000001FFC00000000003FFE 00000000003FCE00000000007FCF00000000007F870000000000FF878000000000FF038000 000000FF038000000001FF01C000000001FE01C000000003FE01E000000003FC00E0000000 07FC00F000000007F8007000000007F800700000000FF000380000000FF000380000001FF0 001C0000001FE0001C0000003FE0001E0000003FC0000E0000007FC0000F0000007F800007 0000007F800007000000FF000003800000FF000003800001FF000003C00001FE000001C000 03FE000001E000FFFFF0003FFF80FFFFF0003FFF80FFFFF0003FFF80> 49 41 -1 40 52] 86 @dc [< 00700000F80001FC0003FE0003FE0003FE0001FC0000F80000700000000000000000000000 0000000000000000007000007000007000007000007000007000007800003800003800003C 00001E00001F00000F800007C00007F00003F83801FC7C01FEFE01FEFE01FEFE01FEFC01FE 7801FC3801F81E03F00FFFE001FF00> 23 42 -4 41 32] 63 @dc /@F10 @newfont @F10 @sf [< 07C000183800300400700200700100F00000F00000F00000F00000F0000078000078000078 00003C02001C07001E07800E078003008001C100007E00> 17 20 -4 19 21] 99 @dc [< 07C000187000301800700E00700F00F00700F00780F003C0F003C0F003C07801E07801E078 01E03C01E01C01E01E01C00E01C003018001C300007C00> 19 20 -4 19 23] 111 @dc [< 300300380070070066003803806200380380E100380380610038038071001C01C070801C01 C038001C01C038001C01C038000E00E01C000E00E01C000E00E01C008E00E01C004700700E 004700700E004780680E004740640C002630C318001C0F80F000> 33 20 -4 19 37] 109 @dc [< FFC0001C00001C00000E00000E00000E00000E0000070000070000071E0007238003C1C003 80E003807003807801C03801C03C01C03C01C03C00E01E00E01E00E01E08E01E04701E0470 1E04781C04741C02621801C1E0> 23 29 0 19 23] 112 @dc [< 07C3800C26401C1E20180E20180E201C0E201C07101C07001C07001C07000E03800E03800E 03808703804701C04301C04381C02301C03300E00E00C0> 20 20 -4 19 24] 117 @dc [< 1E003100708070807040704038203800380038001C001C001C001C000E000E000E000E0007 00FFF007000700038003800380038001C00180> 12 28 -4 27 15] 116 @dc [< 07C018383804700270017000F000F000F000F0007C007BF0780C38023C011C010E01070101 C2007C> 16 20 -4 19 21] 101 @dc [< 3000007000003800003800003800003800001C00001C00001C00001C00000E00000E00000E 00008E00004703004707804787804783802661001C1E00> 17 20 -4 19 19] 114 @dc [< 03C0000E30001C08001C04001C04001C02001C02001C01001C01001C01000E00800E00800E 00808700804700C04301C04383C02307C03307800E0380> 18 20 -4 19 21] 118 @dc [< 1C003300310070803080388038401C001C001C000E000E000E008700470043004380230033 000E00000000000000000000000000000001C001E001E000C0> 11 31 -4 30 14] 105 @dc [< 1F8020604010E008F00CF00C700E000E003E03FC07F80FF00F800C000C060C070C03060103 0200FC> 16 20 -3 19 19] 115 @dc @F12 @sf [< FFFFFC0F807C07801C07800C07800407800407800607800207800207800207800207800007 80000780000780000780000780000780000780000780000780000780000780000780000780 000780000780000780000780000FC000FFFE00> 23 31 -2 30 28] 76 @dc @F10 @sf [< 3001C07003303803103807083803083803881C03841C01C01C01C01C01C00E00E00E00E00E 00E08E00E04700704700704780604740602630C01C0F80> 22 20 -4 19 26] 110 @dc @F12 @sf [< 0020004000800100020006000C000C00180018003000300030007000600060006000E000E0 00E000E000E000E000E000E000E000E000E000E00060006000600070003000300030001800 18000C000C00060002000100008000400020> 11 46 -3 33 18] 40 @dc [< 800040002000100008000C00060006000300030001800180018001C000C000C000C000E000 E000E000E000E000E000E000E000E000E000E000E000C000C000C001C00180018001800300 0300060006000C0008001000200040008000> 11 46 -3 33 18] 41 @dc [< 3F006180F0C0F0606070007000700070007000700070007000700070007000700070007000 70007000700070007000700070007000F007F0007000000000000000000000000000E001F0 01F001F000E0> 12 40 2 30 14] 106 @dc [< 00FFE0000E00000E00000E00000E00000E00000E00000E00FFFFF0C00E00400E00200E0020 0E00100E00080E00080E00040E00020E00020E00010E00008E00008E00004E00002E00002E 00001E00000E00000E00000600000600> 20 30 -1 29 23] 52 @dc [< 000400020000000C00030000000E00070000000E00070000001E00078000001F000F800000 1F000F8000001F000F8000003C801E4000003C801E4000003C801E40000078C03E20000078 403C20000078403C200000F0403C100000F02078100000F02078100001F02078080001E010 F0080001E010F0080003E010F00C0003C009E0040003C009E0040003C009E00400078007C0 0200078007C00200078007C002000F0007C001000F00078001000F00078003801F800FC007 C0FFF07FF81FF0> 44 32 -1 30 47] 87 @dc [< 40202010101008080878F8F8F0700000000000000000000070F8F8F870> 5 29 -4 19 13] 59 @dc [< FFFE00000FC000000780000007800000078000000780000007800000078000000780000007 800000078080000780800007808000078080000781800007FF800007818000078080000780 80000780800007808000078000800780008007800080078000800780018007800100078003 00078003000F800F00FFFFFF00> 25 31 -2 30 30] 70 @dc [< 000FC000003820000070180000E0080001C0040001C0020003800200038002000780010007 80010007800100078001000780010007800100078001000780010007800100078001000780 01000780010007800100078001000780010007800100078001000780010007800100078001 0007800100078003800FC007C0FFFC3FF8> 29 32 -2 30 34] 85 @dc [< FFFFE0000F803C0007800E000780070007800380078003C0078001E0078001E0078000F007 8000F0078000F0078000F8078000F8078000F8078000F8078000F8078000F8078000F80780 00F8078000F8078000F0078000F0078001F0078001E0078001E0078003C007800380078007 0007801E000F803C00FFFFE000> 29 31 -2 30 35] 68 @dc /@F4 @newfont @F4 @sf [< FFFFF0FFFFF07FFFF03FFFF01FFFF00FFFF00E003807001803801801C01800E01800700000 3800003E00001F00000F800007C00007E00003F00003F00003F83803F87C01F8FE01F8FE03 F8FE03F8FE03F07C07F07007E03C1FC00FFF0003FC00> 21 32 -3 31 28] 50 @dc [< 387CFEFEFE7C38> 7 7 -4 6 16] 46 @dc [< 7FFFE07FFFE001F80001F80001F80001F80001F80001F80001F80001F80001F80001F80001 F80001F80001F80001F80001F80001F80001F80001F80001F80001F80001F80001F80001F8 0001F80001F800FFF800FFF80001F800007800001800> 19 32 -4 31 28] 49 @dc [< 0000E0000E00000000E0000E00000000F0001E00000001F0001F00000001F0001F00000003 F8003F80000003F8003F80000003FC007F80000007FC007FC0000007FC007FC000000FF600 FFE000000FE600FE6000000FE600FE6000001FE301FC3000001FC301FC3000001FC383FC30 00003F8183F81800003F8183F81800007F80C7F81C00007F00C7F00C00007F00C7F00C0000 FF006FE0060000FE006FE0060000FE007FE0060001FC003FC0030001FC003FC0030003FC00 3F80038003F8003F80018003F8007F80018007F0007F0000C007F0007F0000C00FF000FF00 00E0FFFF0FFFF01FFEFFFF0FFFF01FFE> 55 34 -1 33 58] 87 @dc [< 00FE0007FFC00F83E01F01F03E00F87C007C7C007CFC007EFC007EFC007EFC007EFC007EFC 007EFC007E7C007C7C007C7C007C3E00F81E00F00F83E007FFC000FE00> 23 22 -2 21 28] 111 @dc [< FFF000FFF0001F00001F00001F00001F00001F00001F00001F00001F00001F00001F00001F 00001F00001F00001F83C01E87E01E87E01EC7E01E67E0FE3FC0FE1F00> 19 22 -2 21 23] 114 @dc [< FFE0FFE0FFE0FFE0FFE0FFE01F001F001F001F001F001F001F001F001F001F001F001F001F 001F001F001F001F001F001F001F001F001F001F001F001F001F001F001F001F001F001F00 1F001F001F001F001F001F001F001F001F001F001F001F801F801F001F801F801F001F403E 403E001F303E303E00FF1FFC1FFC00FF07F007F000> 43 22 -2 21 47] 109 @dc [< C7F000EFFC00FC0E00F00700E00380E00380C00380C00780000F8001FF000FFF003FFE007F F8007FE000FC0000F00300E00300E00300600700781F003FFF000FF300> 17 22 -2 21 22] 115 @dc @F12 @sf [< FFE001001F0003000E000300040007000400070004000F0004001F0004001F0004003D0004 003D00040079000400F1000400F1000401E1000401E1000403C1000407810004078100040F 0100040F0100041E0100043C0100043C0100047801000478010004F0010005E0010005E001 0007C0038007C007C0FF803FF8> 29 31 -2 30 34] 78 @dc 1 @eop0 0 0 1 @bop1 74 307 a @F2 @sf(1)69 b(In)n(tro)r(duction)-481 121 y @F12 @sf (There)13 b(has)f(b)q(een)i(considerable)e(in)o(terest)g(of)g(late)g(in)g (computer)h(viruses.)18 b(One)c(asp)q(ect)e(of)g(this)g(in)o(terest)-1795 57 y(has)i(b)q(een)i(to)d(ask)h(if)g(computer)g(viruses)g(are)g(a)g(form)g (of)g(arti\014cial)o 13 x(life,)f(and)i(what)f(that)f(migh)o(t)g(imply)l (.)-1724 76 y(This)19 b(pap)q(er)i(is)f(a)g(condensed,)i(high-lev)o(el)d (description)h(of)g(computer)g(viruses|their)g(history)l(,)-1796 56 y (structure,)11 b(and)h(ho)o(w)e(they)i(relate)e(to)g(some)h(prop)q(erties)g (that)f(migh)o(t)g(de\014ne)j(arti\014cial)o 10 x(life.)18 b(It)11 b(pro)o (vides)-1795 57 y(a)j(general)f(in)o(tro)q(duction)g(to)h(the)g(topic)f (without)g(requiring)g(an)h(extensiv)o(e)g(bac)o(kground)g(in)g(computer) -1795 56 y(science.)-78 76 y(The)k(in)o(terested)g(reader)g(migh)o(t)f (pursue)h([)p(10)o(,)g(1)p(,)g(2)o(])g(and)g([)p(5)p(])f(for)h(more)f (detail)h(ab)q(out)g(computer)-1795 57 y(viruses)12 b(and)f(their)h(prop)q (erties.)18 b(The)12 b(description)f(in)g(this)h(pap)q(er)g(of)f(the)h (origins)e(of)h(computer)h(viruses)-1795 56 y(and)k(their)e(structure)h (is)g(tak)o(en)g(from)f([)p(10)o(].)-753 163 y @F2 @sf(2)69 b(What)24 b (is)f(a)g(Computer)g(Virus?)-944 121 y @F12 @sf(The)12 b(term)e @F10 @sf (c)n(omputer)k(virus)d @F12 @sf(is)f(deriv)o(ed)i(from)e(and)h(analogous)f (to)h(a)g(biologi)o(cal)f(virus.)18 b(The)11 b(w)o(ord)g @F10 @sf(virus) -1795 56 y @F12 @sf(itself)k(is)g(Latin)h(for)f @F10 @sf(p)n(oison)p @F12 @sf(.)22 b(Viral)14 b(infections)h(are)h(spread)g(b)o(y)g(the)g (virus)f(\(a)h(small)e(shell)i(con)o(taining)-1796 57 y(genetic)f (material\))o 13 x(injecting)g(its)f(con)o(ten)o(ts)g(in)o(to)f(a)i(far)f (larger)g(b)q(o)q(dy)h(cell.)k(The)c(cell)g(then)g(is)f(infected)-1794 56 y (and)i(con)o(v)o(erted)e(in)o(to)h(a)g(biologi)o(cal)f(factory)g(pro)q (ducing)h(replican)o(ts)f(of)h(the)g(virus.)-1370 76 y(Similarl)o(y)l(,) 20 b(a)g(computer)g(virus)g(is)f(a)h(segmen)o(t)g(of)g(mac)o(hine)g(co)q (de)g(\(t)o(ypically)f(200-4000)o 19 x(b)o(ytes\))-1795 57 y(that)13 b (will)f(cop)o(y)i(its)f(co)q(de)h(in)o(to)f(one)h(or)f(more)g(larger)g (\\host")f(programs)h(when)h(it)f(is)g(activ)m(ated.)19 b(When)-1794 56 y (these)e(infected)g(programs)f(are)g(run,)h(the)g(viral)e(co)q(de)i(is)g (executed)g(and)g(the)g(virus)f(spreads)h(further.)-1795 57 y(Viruses)h (cannot)f(spread)h(b)o(y)f(infecting)g(pure)h(data;)g(pure)g(data)f(is)g (not)g(executed.)28 b(Ho)o(w)o(ev)o(er,)17 b(some)-1795 56 y(data,)h(suc)o (h)g(as)f(\014les)h(with)f(spreadsheet)h(input)g(or)g(text)f(\014les)h (for)f(editing,)g(ma)o(y)h(b)q(e)g(in)o(terpreted)g(b)o(y)-1795 56 y (application)d(programs.)23 b(F)l(or)16 b(instance,)h(text)f(\014les)g(ma)o (y)g(con)o(tain)g(sp)q(ecial)g(sequences)i(of)e(c)o(haracters)-1795 57 y (that)j(are)f(executed)i(as)f(editor)f(commands)h(when)h(the)f(\014le)g (is)g(\014rst)g(read)g(in)o(to)f(the)h(editor.)31 b(Under)-1794 56 y (these)18 b(circumstances,)f(the)h(data)e(is)h(\\executed")h(and)f(ma)o(y)g (spread)g(a)g(virus.)26 b(Data)17 b(\014les)g(ma)o(y)g(also)-1796 57 y (con)o(tain)f(\\hidden")g(co)q(de)h(that)f(is)f(executed)j(when)e(the)h (data)f(is)f(used)i(b)o(y)f(an)h(application,)e(and)h(this)-1795 56 y(to)q (o)f(ma)o(y)f(b)q(e)i(infected.)k(T)l(ec)o(hnically)15 b(sp)q(eaking,)g (ho)o(w)o(ev)o(er,)f(pure)h(data)g(itself)f(cannot)h(b)q(e)h(infected.)-1750 142 y @F4 @sf(2.1)56 b(W)-5 b(orms)-301 105 y @F12 @sf(W)l(orms)15 b(are)g (another)g(form)g(of)g(soft)o(w)o(ar)o(e)g(that)f(is)h(often)g(referred)h (to)f(b)o(y)g(the)h(uninformed)f(as)g(a)h(com-)-1795 56 y(puter)e(virus.) 19 b(The)14 b(In)o(ternet)g(W)l(orm)f(of)g(No)o(v)o(em)o(b)q(er)g(1988)g (is)g(an)g(example)h(of)f(one)h(of)f(these)h(programs.)-1725 76 y(Unlik)o (e)c(viruses,)i(w)o(orms)e(are)h(programs)f(that)g(can)h(run)h(indep)q (enden)o(tly)g(and)g(tra)o(v)o(el)d(from)i(mac)o(hine)-1795 57 y(to)h(mac)o (hine)h(across)f(net)o(w)o(ork)g(connections;)i(w)o(orms)d(ma)o(y)i(ha)o (v)o(e)f(p)q(ortions)g(of)h(themselv)o(es)f(running)i(on)-909 185 y(1)-983 b 1 @eop1 2 @bop0 @F12 @sf [< 7FE3FF00070070000700700007007000070070000700700007007000070070000700700007 00700007007000070070000700700007007000070070000700700007007000070070000700 7000FFFFFF80070070000700700007007000070070000700700007007000070070000300F0 300380F87801C0787800F06E30001F83E0> 29 32 0 31 27] 11 @dc [< 0F800030E000407000407800F03800F83C00F83C00F83C00203C00003C00003C00003C0000 3C00003C00003C00003C00003C00003C00003C00003C00003C00003C00003C00003C00003C 00003C00003C00003C00003C00003C00007C000FFFC0> 18 32 -2 30 23] 74 @dc [< FFE01FFE1F8007E0070003C0020007C00100078001800F0000801F0000401E0000603C0000 207C00001078000018F8000009F0000005E0000007E0000003C00000078000000F8000000F 8000001E4000003E4000003C2000007C10000078100000F0080001F00C0001E0040003C002 0007C007000FE00FC07FF83FF8> 31 31 -1 30 34] 88 @dc [< FFFC00000FC000000780000007800000078000000780000007800000078000000780000007 800000078000000780000007800000078000000780000007FFE0000780780007801C000780 1E0007800F0007800F8007800F8007800F8007800F8007800F8007800F8007800F0007801E 0007801C000F807800FFFFE000> 25 31 -2 30 31] 80 @dc [< FFC03FFE1F0007E00E0003C0040003C002000780020007800200078001000F0001000F0001 000F0000FFFE0000801E0000801E0000403C0000403C0000403C0000207800002078000020 78000010F0000010F0000010F0000009E0000009E0000009E0000007C0000007C0000007C0 0000038000000380000003800000010000> 31 32 -1 31 34] 65 @dc [< 000003E0FFFC0F100FC01E0807803E0407807E0407807C0407807C0007807C0007807C0007 8078000780780007807800078070000780F0000780E0000781C00007FF80000780F0000780 780007803C0007801E0007801E0007801F0007801F0007801F0007801F0007801E0007801E 0007803C00078078000F80F000FFFF8000> 30 32 -2 30 33] 82 @dc [< 000FC0000070380001C0040003800200070001000E0000801E0000801C0000403C0000407C 0000407C00004078000000F8000000F8000000F8000000F8000000F8000000F8000000F800 0000F8000000F8000000780000407C0000407C0000403C0000C01C0000C01E0000C00E0001 C0070003C0038005C001C009C0007030C0000FC040> 26 33 -3 31 33] 67 @dc [< 03000007800007800007800007800007800007800007800003800003800003800003800001 800001C00000C00000C0000040000040000020000020000010000008000008008004008002 008002004001007FFF807FFF807FFFC0400000> 18 31 -3 29 23] 55 @dc @F10 @sf [< FFFF000003E0000001E0000001E0000001E0000001E0000000F0000000F0000000F0000000 F0000000780000007800000078000000780000003C0000003C0000003C0000003C0000001E 0000001E0000001E0000801E0040400F0020400F0020600F0020200F002020078020100780 20180780201E0780E00FFFFFF0> 28 31 -8 30 33] 84 @dc [< 600700E00CC0700C40701C20700C20700E20380E103807003807003807001C03801C03801C 03801C03800E01C00E01C00F01C00E8180076300071E000700000700000380000380000380 0003800001C00001C00001C00001C0000FE00001E000> 20 32 -3 31 23] 104 @dc [< 81F80000C6060000E80380007000C0006000E0006000600060007000200030002000380020 003800000038000000380000007800000078000001F800001FF000007FF00001FFE00001FF 800003F8000003C0000003C00000038000000380010003800100038001000180010001C001 8000C003800060038000300580001C18C00007E040> 26 33 -3 31 26] 83 @dc [< 601E00E0310070310070708070708070708038384038700038700038E0001FC0001E00001D 00001C80000E40C00E21E00E11E00E08E00704200703C00700000700000380000380000380 0003800001C00001C00001C00001C0000FE00001E000> 19 32 -3 31 21] 107 @dc [< 03E1F0000E1308000C0F04001C0F02001C0602001C0701001C0701001C0700801C0700801C 0700800E0380400E0380400E038040870380404701C0604301C0E04381C1E02301C3E03300 E3C00E00C1C0> 27 20 -4 19 30] 119 @dc [< 0F0700308C80705C40703C40F01C40F01C40F00E20F00E00F00E00F00E0078070078070078 07003807003C03801C03800E03800707800389C000F180> 19 20 -4 19 23] 97 @dc [< 000007C0FFF00C200F801C1007803C1007803C0807803C0807803C0003C01E0003C01E0003 C01E0003C01E0001E00F0001E00E0001E01E0001E01C0000F0380000FFF00000F01E0000F0 0700007801C0007801E0007800F0007800F0003C0078003C0078003C0078003C0078001E00 78001E0070001E00E0001E03C001FFFF00> 29 32 -3 30 33] 82 @dc [< 0F0700308C80705C40703C40F01C40F01C40F00E20F00E00F00E00F00E0078070078070078 07003807003C03801C03800E03800707800389C000F1C00001C00001C00000E00000E00000 E00000E00000700000700000700000700003F8000078> 21 32 -4 31 23] 100 @dc @F12 @sf [< FFFFF0000F803C0007801F0007800F0007800F8007800780078007C0078007C0078007C007 8007C0078007C00780078007800F8007800F0007801E0007803C0007FFF00007803C000780 1E0007801F0007800F0007800F8007800F8007800F8007800F8007800F8007800F0007801F 0007801E000F803800FFFFE000> 26 31 -2 30 32] 66 @dc @F10 @sf [< FF800200001C000200000C000700000400070000040007000004000F000002000F80000200 0F800002001E800002001E800001001E400001003C400001003C400001003C400000807820 00008078200000807820000080F020000040F010000041F010000041E010000041E0100000 23C008000023C008000023C00800002780080000178004000017800400001F000400001F00 0F0001FF007FE0> 35 31 -3 30 34] 78 @dc @F12 @sf [< 000FE0000078182000E00460038002E0070001E00F0001E01E0001E01E0001E03C0001E03C 0001E07C0001E0780001E0F80003E0F8007FFCF8000000F8000000F8000000F8000000F800 0000F8000000F8000000780000207C0000203C0000203C0000601E0000601E0000600F0000 E0070001E0038002E000E004E000781860000FE020> 30 33 -3 31 36] 71 @dc [< FFE0C1FFF81F00C01F800E00C00F000401E00F000401E00F000401E00F000403900F000403 900F000407080F000407080F000407080F00040E040F00040E040F00040E040F00041C020F 00041C020F00041C020F000438010F000438010F000438010F000470008F000470008F0004 70008F0004E0004F0004E0004F0005C0002F0005C0002F0005C0002F000780001F000F8000 1F80FF80001FF8> 37 31 -2 30 42] 77 @dc @F4 @sf [< 0007FC0000003FFF800000FC07E00003F001F80007E000FC000FC0007E001F80003F003F80 003F803F00001F807F00001FC07F00001FC07E00000FC0FE00000FE0FE00000FE0FE00000F E0FE00000FE0FE00000FE0FE00000FE0FE00000FE0FE00000FE0FE00000FE07E00000FC07E 00000FC07F00001FC03F00001F803F00001F801F80003F001F80003F000FC0007E0007E000 FC0003F001F80000FC07E000003FFF80000007FC0000> 35 34 -3 33 42] 79 @dc [< 00F80003FE0007C3000F83000F81800F81800F81800F81800F81800F80000F80000F80000F 80000F80000F80000F80000F80000F80000F80000F8000FFFF00FFFF003F80000F80000780 00078000038000038000018000018000018000018000> 17 32 -1 31 22] 116 @dc [< FFE1FFC0FFE1FFC01F003E001F003E001F003E001F003E001F003E001F003E001F003E001F 003E001F003E001F003E001F003E001F003E001F003E001F003E001F803E001F803E001F40 3C001F307C001F1FF8001F07E0001F0000001F0000001F0000001F0000001F0000001F0000 001F0000001F0000001F0000001F0000001F000000FF000000FF000000> 26 35 -2 34 31] 104 @dc [< 00FF0003FFC00FC0701F00303E00187E00007C00007C0000FC0000FC0000FC0000FFFFF8FF FFF8FC00F8FC00F87C00F87C00F03E01F01E01E00F87C007FF8000FE00> 21 22 -2 21 26] 101 @dc [< 03FFFFF80003FFFFF8000003F800000003F800000003F800000003F800000003F800000003 F800000003F800000003F800000003F800000003F800000003F800000003F800000003F800 000003F800000003F800000003F800000003F800000003F800000003F800000003F80000C0 03F800C0C003F800C0C003F800C0C003F800C0E003F801C0E003F801C06003F801807003F8 03807803F807807E03F80F807FFFFFFF807FFFFFFF80> 34 34 -2 33 39] 84 @dc [< 07E03F1FF87F7E0CF87E02F0FC01F0FC01F0FC01F0FC01F07E01F03F01F01FC1F003FDF000 3FF00001F00001F01E01F03F01F03F01E03F03E03F07C01FFF8007FC00> 24 22 -2 21 27] 97 @dc /@F9 @newfont @F9 @sf [< 01000001800003800003C00003E00003A0000390000710000708000708000704000F04000E 02000E02000E01000E00801C00801C00C01E00E0FF83F8> 21 20 -4 19 24] 118 @dc [< 1F8780784F40F02E20F01E10F00E10F00E10F00E10780E003C0E001E070007C70000FF0000 07000007000007001C07001E07001E06000C0C0007F800> 20 20 -3 19 23] 97 @dc [< FFCFF81E03C01C03800E01C00E01C00E01C00E01C00E01C00E01C00700E00700E00700E007 00E00700E00780E003806003C06007A0E01F90E0038F80> 21 20 -2 19 25] 110 @dc [< 0F8FE0186F00301E00700F00E00700E00700E00700E00700E00700F00380F00380F00380F0 03807003807803803801C01C03C00E03C00305C000F9C00001C00000E00000E00000E00000 E00000E00000E00000700000700000F00003F0000070> 20 32 -4 31 25] 100 @dc [< FFC01E001C000E000E000E000E000E000E0007000700070007000700070003800380038003 800380038001C001C001C001C001C001C000E000E001E007E000E0> 11 32 -1 31 13] 108 @dc [< 02004000030060000300E0000780F0000780F0000740C8000760C8000721C4000731C4000E 11C2000E09C2000E0981000E0581000E0780801C0380801C0380401C0300401C0300603E07 8070FF9FE1FC> 30 20 -4 19 33] 119 @dc [< FFE0001E00001C00000E00000E00000E00000E00000E00000E000007000007000007000007 000007000007800003830003C78007C7801FB380038E00> 17 20 -2 19 18] 114 @dc [< 07E0001C1800300400700200F00100E00000E00000E00000E00000F00000FFFF80F00380F0 03807003807803803803801C07000E0700070E0000F800> 17 20 -3 19 20] 101 @dc @F9 @sf [< 83E000C43800E81C00700E007007007007807003807003C07003C03801E03801E03801E038 01E03801E03801C01C01C01C01C01E03801D87001C7C001C00000E00000E00000E00000E00 000E00000E00000700000700000F00003F0000070000> 19 32 -5 31 25] 98 @dc [< 0FC0183030087004F002E000E000E000E000F000F000F000F00070007800380E1C0F0E0F07 0601FC> 16 20 -4 19 20] 99 @dc [< 0F00188038403840382038203820382038001C001C001C001C001C001C000E000E000E000E 00FFF81E000F00070003000100010001000080> 13 28 -4 27 18] 116 @dc [< FF801E001C000E000E000E000E000E000E000700070007000700070007000380038007801F 80038000000000000000000000000001C003E003E003E001C0> 11 31 -1 30 13] 105 @dc [< C020100808040402023A7E7E3E1C> 7 14 -3 4 13] 44 @dc [< 07E0001C1C00380E00700700F00380E003C0E001C0E001E0E001E0F000F0F000F0F000F0F0 00F07000F03800E03800E01C00C00E018003870000FC00> 20 20 -3 19 23] 111 @dc [< 3F0000618000F0C000F0600060700000700000380000380000380000380000380000380000 1C00001C00001C00001C00001C00001C00000E00000E00000E00000E00000E00000E000007 00000700000F00007F00000700000000000000000000000000000000000000000300000780 0007C00007C0000380> 18 40 3 30 14] 106 @dc [< FFCFF81E03C01C03800E01C00E01C00E01C00E01C00E01C00E01C00700E00700E00700E007 00E00700E00780E003806003C06003A0E00390E0038F8003800001C00001C00001C00001C0 0001C00001C00000E00000E00001E00007E00000E000> 21 32 -2 31 25] 104 @dc [< 8FC0D060E0106018600C400C400C401C003C03F80FF01FE01E003800380418021806080606 0E01F2> 15 20 -2 19 18] 115 @dc [< 07FC001C07003000C0600060C00030C00030C000306000303000301800F007FFE00FFFC00F FF001C000018000008000008000004FC000787000703800703C00F01E00F01E00F01E00701 E00780E00381E001C1C200E1A3003E1100000E> 24 31 0 20 23] 103 @dc [< FFCFFCFFC01E01E01E001C01C01C000E00E00E000E00E00E000E00E00E000E00E00E000E00 E00E000E00E00E000700700700070070070007007007000700700700070070070007807807 00038038030003C034030007A07207001F986186000387C07C00> 34 20 -2 19 38] 109 @dc @F9 @sf [< FFC0001E00000E00000E00000E00000E0000070000070000070000071F000721C00740E003 807003803803803C03801C03801E03801E01C00F01C00F01C00F01C00F01C00F01C00E00E0 0E00E01E00F01C07EC3800E3E0> 24 29 0 19 25] 112 @dc [< 7078F87830> 5 5 -4 4 13] 46 @dc @F4 @sf [< 01FE000FFFC01E07F07801F87E01FCFF00FCFF00FEFF00FEFF00FE7E00FE3C00FE0000FC00 00FC0001F80001F00007C001FF0001FE00001F800007C00003E00003F01F03F01F03F83F81 F83F81F83F81F83F03F01E03F00F07E007FFC000FE00> 23 32 -2 31 28] 51 @dc [< FFF00000C0FFF00001C006000003C006000003C006000007C00600000FC00600001FC00600 003FC00600007FC00600007FC0060000FFC0060001FEC0060003FCC0060007F8C0060007F0 C006000FF0C006001FE0C006003FC0C006007F80C00600FF00C00600FE00C00601FE00C006 03FC00C00607F800C0060FF000C0060FE000C0061FE000C0063FC000C0067F8000C006FF00 00C007FE0000C007FC0000C0FFFC001FFEFFF8001FFE> 39 34 -2 33 44] 78 @dc @F10 @sf [< FFFFF8000F00780007801C0007800C00078006000780060003C0020003C0030003C0010003 C0010001E0008001E0000001E0000001E0000000F0000000F0000000F0000000F000000078 0000007800000078000000780000003C0000003C0000003C0000003C0000001E0000001E00 00001E0000001F000001FFF800> 25 31 -3 30 29] 76 @dc [< 3F800060E000F07000783800301C00001C00001C00000E00000E0003CE000C2E001C17001C 0F003C07003C07003C03803C03803C03803C03801E01C01E01C01E01C00E01C00F00E00700 E00380E001C1E000E270003C60> 20 29 -2 19 21] 103 @dc @F10 @sf [< FF807FF81E000F8006000780020007800200078001000780010007800080078000C0078000 400780003FFF8000200F8000100F0000100F0000080F00000C0F0000040F0000020F000002 0F0000010F0000010F0000008F0000004F0000004F0000002F0000003F0000001E0000001E 0000000E00000006000000060000000200> 29 32 -2 31 34] 65 @dc [< 38006400E200E200E200E200710070007000700038003800380038001C001C001C001C000E 000E000E000E00070007000700070003800380038003801FC003C0> 10 32 -4 31 12] 108 @dc @F10 @sf [< FFFFE0000F00780007801E0007800F0007800780078003C003C001C003C001E003C001E003 C001E001E001E001E001E001E001E001E001C000F003C000F00F8000FFFE0000F007800078 01E0007800F00078007800780078003C003C003C003C003C003C003C003C001E003C001E00 38001E0078001E00F001FFFFC0> 30 31 -3 30 32] 66 @dc @F10 @sf [< FFFFC0000F00700007801C0007800E0007800380078001C003C001C003C000E003C0007003 C0007001E0007801E0003C01E0003C01E0003C00F0001E00F0001E00F0001E00F0001E0078 000E0078000E0078000E0078000E003C000E003C000E003C000E003C001C001E001C001E00 38001E0070001E00E001FFFF80> 31 31 -3 30 34] 68 @dc [< FFFFF0007801F0003C0038003E0018001E0008000F000C000780040003C0060001E0020001 F0020000F0010000780100003C0000001E0000000F0000000F0000000780000003C0000001 E0000000F0000000F8000200780001003C0001001E0001000F00018007800080078000C003 C000E001E000FC00F0007FFFF8> 29 31 -3 30 28] 90 @dc 2 @eop0 0 0 2 @bop1 74 307 a @F12 @sf(man)o(y)15 b(di\013eren)o(t)g(mac)o(hines.) 21 b(W)l(orms)14 b(do)i(not)f(c)o(hange)h(other)f(programs,)f(although)h (they)g(ma)o(y)g(carry)-1795 57 y(other)g(co)q(de)h(that)e(do)q(es,)h(suc)o (h)h(as)f(a)g(true)g(virus.)-770 76 y(In)j(1982,)f(John)h(Sho)q(c)o(h)h (and)f(Jon)g(Hupp)g(of)f(Xero)o(x)h(P)l(AR)o(C)g(\(P)o(alo)e(Alto)h (Researc)o(h)h(Cen)o(ter\))f(de-)-1794 56 y(scrib)q(ed)e(the)g(\014rst)f (computer)h(w)o(orms.)j([)p(7)p(])c(They)h(w)o(ere)f(w)o(orking)f(with)h (an)h(exp)q(erimen)o(tal,)e(net)o(w)o(ork)o(ed)-1795 57 y(en)o(vironmen)o (t)h(using)g(one)h(of)f(the)g(\014rst)g(lo)q(cal)g(area)g(net)o(w)o(orks.)k (While)c(searc)o(hing)g(for)g(something)f(that)-1795 56 y(w)o(ould)j(use)h (their)e(net)o(w)o(ork)o(ed)h(en)o(vironmen)o(t,)f(one)i(of)f(them)g (remem)o(b)q(ered)h(reading)f @F10 @sf(The)h(Sho)n(ckwave)-1795 56 y(R)o (ider)j @F12 @sf(b)o(y)g(John)h(Brunner,)h(written)d(in)h(1975.)33 b(This) 20 b(science)h(\014ction)e(no)o(v)o(el)h(describ)q(ed)h(programs)-1796 57 y (that)g(tra)o(v)o(ersed)g(net)o(w)o(orks,)h(carrying)f(informatio)o(n)g (with)g(them.)40 b(Those)22 b(programs)e(w)o(ere)i(called)-1795 56 y @F10 @sf(tap)n(eworms)d @F12 @sf(in)f(the)g(no)o(v)o(el.)28 b(Sho)q(c)o(h) 19 b(and)f(Hupp)h(named)f(their)g(o)o(wn)g(programs)f @F10 @sf(worms)p @F12 @sf(,)i(b)q(ecause)g(in)-1795 57 y(a)d(simila)o(r)e(fashion)h(they)h (w)o(ould)f(tra)o(v)o(el)f(from)h(w)o(orkstati)o(on)f(to)i(w)o(orksta)o (tio)o(n,)f(reclaiming)f(\014le)i(space,)-1795 56 y(sh)o(utting)e(o\013)h (idle)g(w)o(orkstat)o(ions,)o 14 x(deliv)o(ering)f(mail,)g(and)h(doing)g (other)g(useful)g(tasks.)-1432 76 y(F)l(ew)h(computer)h(w)o(orms)e(ha)o(v)o (e)i(b)q(een)h(written)d(in)i(the)f(time)h(since)f(then,)h(esp)q(ecially)g (w)o(orms)e(that)-1795 57 y(ha)o(v)o(e)i(caused)h(damage,)e(b)q(ecause)j (they)e(are)g(not)g(easy)g(to)f(write.)25 b(W)l(orms)17 b(require)g(a)f (net)o(w)o(ork)h(en)o(vi-)-1795 56 y(ronmen)o(t)h(and)g(an)g(author)f(who)h (is)g(familia)o(r)f(not)g(only)h(with)f(the)i(net)o(w)o(ork)e(services)h (and)g(faciliti)o(es,)-1796 57 y(but)d(also)f(with)h(the)g(op)q(erating)f (facilities)g(required)h(to)f(supp)q(ort)i(them)f(once)g(they)g(ha)o(v)o (e)g(reac)o(hed)g(the)-1794 56 y(mac)o(hine.)26 b(The)17 b(In)o(ternet)g (w)o(orm)f(inciden)o(t)h(of)g(No)o(v)o(em)o(b)q(er,)g(1988)f(clogged)g (mac)o(hines)h(and)h(net)o(w)o(orks)-1796 57 y(as)d(it)f(spread,)h(and)h (is)e(an)i(example)f(of)f(a)h(w)o(orm.)k([)p(9)o(,)c(8)p(])-894 76 y(W)l (orms)10 b(ha)o(v)o(e)h(also)f(app)q(eared)h(in)g(other)g(science)h (\014ction)f(literat)o(ure.)18 b(Recen)o(t)11 b(\\cyb)q(erpunk")h(no)o(v)o (els)-1795 56 y(suc)o(h)h(as)f @F10 @sf(Neur)n(omanc)n(er)g @F12 @sf(b)o (y)h(Willia)o(m)e(Gibson)h([)p(4)o(])g(refer)h(to)f(w)o(orms)f(b)o(y)h (the)h(term)f(\\virus.")18 b(The)13 b(media)-1795 57 y(has)j(also)e(often)h (referred)h(incorrectly)e(to)h(w)o(orms)g(as)g(viruses.)20 b(This)15 b (pap)q(er)h(fo)q(cuses)g(only)f(on)h(viruses)-1795 56 y(as)d(de\014ned)i (here.)20 b(Man)o(y)13 b(of)g(the)g(commen)o(ts)g(ab)q(out)h(viruses)f (and)h(arti\014cial)o 12 x(life)f(ma)o(y)g(also)f(b)q(e)j(applied)-1795 56 y(to)g(w)o(orm)f(programs.)-380 142 y @F4 @sf(2.2)56 b(Other)18 b (Threats)-480 105 y @F12 @sf(There)f(are)f(man)o(y)h(other)f(kinds)h(of)f @F9 @sf(v)m(andalw)o(are)g @F12 @sf(that)g(are)g(often)g(referred)h(to)f (as)g(viruses,)h(including)-1795 57 y @F9 @sf(bacteria,)c(tro)s(jan)g (horses,)h(logic)f(b)q(om)o(bs,)g @F12 @sf(and)i @F9 @sf(trap)q(do)q(ors.)k @F12 @sf(These)14 b(will)f(not)h(b)q(e)g(describ)q(ed)h(here.)20 b(The)-1794 56 y(in)o(terested)15 b(reader)g(can)g(\014nd)h(explanations)e(in)h([)p (10)o(])g(and)h([)p(2)o(].)-1075 141 y @F4 @sf(2.3)56 b(Names)-294 106 y @F12 @sf(As)21 b(the)h(authors)e(of)h(viruses)g(generally)f(do)h(not)g (name)h(their)e(w)o(ork)h(formall)o(y)f(and)h(do)h(not)f(come)-1795 56 y (forw)o(ard)16 b(to)h(claim)g(credit)g(for)g(their)g(e\013orts,)g(it)g(is)g (usually)g(up)h(to)e(the)i(comm)o(unit)o(y)f(that)f(disco)o(v)o(ers)-1795 57 y(a)g(virus)g(to)g(name)g(it.)23 b(A)17 b(virus)f(name)g(ma)o(y)g(b)q (e)h(based)g(on)f(where)h(it)e(is)h(\014rst)g(disco)o(v)o(ered)g(or)g (where)h(a)-1795 56 y(ma)s(jor)e(infection)h(o)q(ccurred,)i(e.g.,)e(the)h @F10 @sf(L)n(ehigh)i @F12 @sf(and)e @F10 @sf(A)o(lame)n(da)j @F12 @sf (viruses.)k(Other)17 b(times,)f(the)h(virus)f(is)-1795 56 y(named)h(after)e (some)h(de\014nitiv)o(e)f(string)h(or)f(v)m(alue)h(used)h(b)o(y)f(the)g (program,)f(e.g.,)g(the)h @F10 @sf(Br)n(ain)j @F12 @sf(and)e @F10 @sf(Den) -1795 57 y(Zuk)h @F12 @sf(viruses.)h(Sometimes,)12 b(viruses)h(are)f (named)h(after)f(the)h(n)o(um)o(b)q(er)h(of)e(b)o(ytes)h(b)o(y)f(whic)o(h)h (they)g(extend)-908 137 y(2)-983 b 2 @eop1 3 @bop0 @F10 @sf [< FFF80780038003800380038001C001C001C001C000E000E000E000E0007000700070007000 38003800380038001C031C00DC003C000E000600020002> 15 30 -5 29 23] 49 @dc [< 03000007800007800007C00003C00003C00003C00001E00001E00001E00000F00000F00000 7000007000003800003800001C00001C00000C00000E000006008003004003006001002000 80380E803E19C01FF06017F0200BF01008E010> 20 31 -7 29 23] 55 @dc [< 0FC000187000303800701C00700E00700700F00700F00780F00380F003C07003C07801C078 01E07801E07801E03C00F03C00F03C00F03C00F01E00701E00780E00780F00780F00780700 3803803803803001C07000E0700030E0000F80> 21 31 -4 29 23] 48 @dc [< 006000007000007000003800003800003800003800001C00001C00801FC0607C003F8E0008 0E00040E00060E0003070001070000870000C700006300003000003000001800001800000C 00000E000006000007000007000003000003800003800001C00001C00001C00000E00000E0 0000E0000060> 19 39 -2 29 23] 52 @dc @F10 @sf [< 80780080FC0041FE0047FF007E030020018010008010004008004004000003000000800000 6000001800000C000007000003800703C00881E00840E00820F00820F00820F00410700420 700220700200700100E00080E0006180001F00> 20 31 -4 29 23] 50 @dc [< 1F8000306000403000C00800C00C00800600800600C00300C00300C0030060070020070030 0F00183F00047E0003FC0001F80003F80007E40007C3000F81800F00800E00C00600600600 600600600300600100600080C0006180001F00> 19 31 -5 29 23] 56 @dc @F4 @sf [< 00FFFE00FFFE0007E00007E00007E00007E00007E00007E00007E0FFFFFEFFFFFEE007E070 07E03807E01807E00C07E00E07E00707E00307E00187E001C7E000E7E00077E00037E0001F E0001FE0000FE00007E00003E00003E00001E00000E0> 23 32 -2 31 28] 52 @dc [< FFE00FFFF8FFE00FFFF80600007F000600007F00030000FE00030000FE00038001FE000180 01FC00018001FC0000FFFFF80000FFFFF80000E007F800006007F00000600FF00000300FE0 0000300FE00000381FE00000181FC00000183FC000000C3F8000000C3F8000000E7F800000 067F00000006FF00000003FE00000003FE00000003FE00000001FC00000001FC00000000F8 00000000F800000000F8000000007000000000700000> 37 34 -2 33 42] 65 @dc [< FFE0FFE01F001F001F001F001F001F001F001F001F001F001F001F001F001F001F001F001F 001F00FF00FF0000000000000000000000000000001C003F007F007F007F003F001C00> 11 36 -2 35 16] 105 @dc [< 1F0000007F80000069C00000FC600000FC300000FC3800007818000000180000000C000000 0C0000000E0000000E0000001F0000001F0000003F8000003F8000007FC000007CC000007C C00000F8600000F8600001F0300001F0300003E0180003E0180007E01C0007C00C000FC00E 000F8006000F800600FFE01FE0FFE01FE0> 27 32 -1 21 30] 121 @dc [< FFE0FFE01F001F001F001F001F001F001F001F001F001F001F001F001F001F001F001F001F 001F001F001F001F001F001F001F001F001F001F001F001F001F001F00FF00FF00> 11 35 -2 34 16] 108 @dc [< FFE1FFC0FFE1FFC01F003E001F003E001F003E001F003E001F003E001F003E001F003E001F 003E001F003E001F003E001F003E001F003E001F003E001F003E001F803E001F803E001F40 3C001F307C00FF1FF800FF07E000> 26 22 -2 21 31] 110 @dc @F10 @sf [< 04000800000006000800000006000C00000007001E00000007001E00000007801F00000007 801F0000000FC01E8000000F601E8000000F201E4000000F101E4000000F101E2000000F08 1E2000000F081E1000000F041E0800000F041E0800000F021E0400000F021E0400000F011E 0200000F009E0200000F009E0100000F005E0100000F005E0080000F003E00C0000F003E00 40000F003C0020000F003C0020000F003C0010000F003C0010001F003C0018001F003E001C 00FFF1FFC0FF80> 41 32 -9 30 45] 87 @dc [< FFF1FFE0000F801F000007800F000007800F000007800F000007800F000003C007800003C0 07800003C007800003C007800001E003C00001E003C00001E003C00001E003C00000F001E0 0000F001E00000FFFFE00000F001E000007800F000007800F000007800F000007800F00000 3C007800003C007800003C007800003C007800001E003C00001E003C00001E003C00001F00 3E0001FFF3FFE0> 35 31 -3 30 34] 72 @dc [< 3E0000438000C0C000E06000F07000F03800003800001C00001C0007DC000C3C001C1E0018 0E00180E001C0E001C07001C07001C07001C07000E03800E03800E03808703804701C04301 C04381C02301C03300E00E00C0> 19 29 -4 19 22] 121 @dc [< 01FC0000078380000E00E0001C00700038003C0038001E0078000F007000070070000380F0 0003C0F00001C0F00001E0F00000E0F00000F0F00000F07800007878000078780000787800 00783C0000383C0000381C0000381E0000380E00003807000038078000380380007001C000 7000E00060003000E0001C01C0000707000001FC00> 29 33 -6 31 35] 79 @dc /@F16 @newfont @F16 @sf [< 7FF007000700070007000700070007000700070007000700070007000700070007000700FF 0007000300> 12 21 -2 20 18] 49 @dc @F12 @sf [< 03F0001C3C00200E00400F00400780F00780F807C0F807C0F807C02007C00007C000078000 0780000F00000E00003C0003F000003800001C00000E00000F00000F00000F80380F807807 80780780780F80200F00100E000C1C0003F000> 18 31 -2 29 23] 51 @dc @F16 @sf [< FFF07FF03FF0101808080C0806000300018000C000600070007000384038E038C038803040 7030E00F80> 13 21 -2 20 18] 50 @dc @F12 @sf [< FFFFFF800F800F8007800180078000C0078000C00780004007800040078000400780002007 80002007800020078080000780800007808000078080000781800007FF8000078180000780 80000780800007808000078080800780008007800080078000800780018007800100078003 00078003000F800F00FFFFFF00> 27 31 -2 30 31] 69 @dc [< FFFFF8F801F87800383C00183C00181E00081E000C0F000C0F800407800403C00403C00401 E00001E00000F00000F800007800003C00003C00001E00001E00800F00800F80800780C003 C0C003C04001E06001E07000F07C00F87FFFF8> 22 31 -3 30 28] 90 @dc @F12 @sf [< 01F000061C000C0E001807003807003803807003807003C07003C0F003C0F003C0F003C0F0 03C0F003C0F80380F80380F80700F40600F21C00F1F0007000007000007800003800003803 001C07800C07800E0380070100018200007C00> 18 31 -2 29 23] 54 @dc [< 7FE7FE0700E00700E00700E00700E00700E00700E00700E00700E00700E00700E00700E007 00E00700E00700E00700E00700E00700E00700E0FFFFE00700E00700E00700E00700E00700 E00700E00700E00700E00381E001C1E000E0E0003FE0> 23 32 0 31 25] 13 @dc /@F17 @newfont @F17 @sf [< FF800C000C000C000C000C000C000C000C000C000C000C000C00CC003C000C00> 9 16 -2 15 15] 49 @dc /@F15 @newfont @F15 @sf [< 03FFE000001C0000001C0000001C0000001C0000001C0000001C0000001C0000001C000000 1C0000001C0000001C0000001C0000001C0000001C0000001C0000001C0000001C0000801C 0080801C0080801C0080C01C0180401C0100401C0100701C07007FFFFF00> 25 26 -1 25 28] 84 @dc [< FF9FC01C0E001C0E001C0E001C0E001C0E001C0E001C0E001C0E001C0E001C0E001C0E001E 0E001E0E001D0C001CF8001C00001C00001C00001C00001C00001C00001C00001C00001C00 00FC0000> 18 26 -1 25 21] 104 @dc [< 07E00C18380830046000E000E000E000E000FFFCE00C600C701830181C3007C0> 14 16 -1 15 17] 101 @dc [< FFC01C001C001C001C001C001C001C001C001C001C001C001E201E701D70FCE0> 12 16 -1 15 15] 114 @dc [< 07E00C18380830047000E000E000E000E000E000E00070003008381C0C1C07F8> 14 16 -1 15 17] 99 @dc [< FF9FC01C0E001C0E001C0E001C0E001C0E001C0E001C0E001C0E001C0E001C0E001C0E001E 0E001E0E001D0C00FCF800> 18 16 -1 15 21] 110 @dc [< 03800E401C201C201C201C201C201C001C001C001C001C001C001C001C00FFC03C001C000C 000C00040004000400> 11 23 -1 22 15] 116 @dc [< FF801C001C001C001C001C001C001C001C001C001C001C001C001C001C00FC000000000000 0000000000000018003C003C001800> 9 26 0 25 11] 105 @dc [< 8F80F040C020C0308030807000F01FE03FC07F00F000C020C020402060E01F20> 12 16 -1 15 15] 115 @dc [< 07CFC00C2E001C1E001C0E001C0E001C0E001C0E001C0E001C0E001C0E001C0E001C0E001C 0E001C0E001C0E00FC7E00> 18 16 -1 15 21] 117 @dc [< 07E01C38381C700E6006E007E007E007E007E007E0076006700E300C1C3807E0> 16 16 -1 15 19] 111 @dc [< 7FE00E000E000E000E000E000E000E000E000E000E000E000E000E000E00FFC00E000E000E 000E000E000E000E100738031801F0> 13 26 0 25 12] 102 @dc [< 003F820001C06600030016000E000E001C000E001C000E0038000E0078000E0070000E0070 000E00F001FFC0F0000000F0000000F0000000F0000000F000000070000200700002007800 0200380006001C0006001C000E000E001E0003002E0001C0C600003F0200> 26 26 -2 25 30] 71 @dc [< FF801C001C001C001C001C001C001C001C001C001C001C001C001C001C001C001C001C001C 001C001C001C001C001C001C00FC00> 9 26 0 25 11] 108 @dc [< 07CFC01C2E00381E00700E00600E00E00E00E00E00E00E00E00E00E00E00E00E00700E0030 0E00380E000C3E0003CE00000E00000E00000E00000E00000E00000E00000E00000E00000E 00007E00> 18 26 -1 25 21] 100 @dc [< C020101008080868F8F060> 5 11 -3 25 11] 39 @dc [< 10F0001B0C001E07001C03001C03801C01C01C01C01C01C01C01C01C01C01C01C01C01801C 03801E07001F0E001CF8001C00001C00001C00001C00001C00001C00001C00001C00001C00 00FC0000> 18 26 -1 25 21] 98 @dc [< FF3FC01C1F001C1E001C1C001C38001C78001C70001CE0001FE0001DC0001C40001C20001C 10001C18001C1E001C3F801C00001C00001C00001C00001C00001C00001C00001C00001C00 00FC0000> 18 26 -1 25 20] 107 @dc [< 1E3C71FBE0F1E071E071E070707030701C7007F000700070207070E070C03F80> 16 16 -2 15 19] 97 @dc [< FF80001C00001C00001C00001C00001C00001C00001CF0001F0C001E07001C03001C03801C 01C01C01C01C01C01C01C01C01C01C01C01C03801C03801E07001F0E00FCF800> 18 23 -1 15 21] 112 @dc [< FF9FE7F81C0701C01C0701C01C0701C01C0701C01C0701C01C0701C01C0701C01C0701C01C 0701C01C0701C01C0701C01E0781C01E0781C01D8E6380FC7C1F00> 29 16 -1 15 32] 109 @dc [< 60F0F060> 4 4 -3 3 11] 46 @dc @F17 @sf [< FFC07FC0202010200C0006000300018000C000600060C060806040C061801F00> 11 16 -1 15 15] 50 @dc @F15 @sf [< FFE0000E00000E00000E00000E00000E00000E00000E00000E00000E00000E00000E00000F FF000E03C00E00E00E00700E00700E00780E00780E00780E00780E00700E00700E00E00E03 C0FFFF00> 21 26 -2 25 26] 80 @dc [< 00800001C00001C00001C00003A00003A0000790000710000710000E08000E08001E0C001C 04001C04003C0600FF1F80> 17 16 -1 15 20] 118 @dc [< 1E00618041C0E0E0E0E040E000E000E000E000E000E000E000E000E000E000E000E000E000 E000E000E000E000E000E000E01FFC> 14 26 -3 25 20] 74 @dc [< FFFF000E01C00E00700E00380E00380E001C0E001E0E000E0E000E0E000F0E000F0E000F0E 000F0E000F0E000F0E000F0E000F0E000E0E000E0E001C0E001C0E00380E00300E00E00E01 C0FFFF00> 24 26 -2 25 29] 68 @dc [< 07E0381C6006C003C003C003C003600F1FFE3FFC3FF07000600020002FC018603030703870 3870387038303018730FCE> 16 24 -1 15 19] 103 @dc 3 @eop0 0 0 3 @bop1 74 307 a @F12 @sf(infected)19 b(programs,)f(suc)o(h)h(as)g (the)f @F10 @sf(1704)26 b @F12 @sf(and)19 b @F10 @sf(1280)26 b @F12 @sf (viruses.)k(Still)18 b(others)g(ma)o(y)g(b)q(e)h(named)g(after)-1795 57 y (soft)o(w)o(are)d(for)h(whic)o(h)g(the)h(virus)f(sho)o(ws)g(an)g(a\016nit)o (y)l(,)g(e.g.,)g(the)h @F10 @sf(dBase)i @F12 @sf(virus.)27 b(In)18 b(the)g (remainder)f(of)-1795 56 y(this)g(pap)q(er,)g(viruses)g(are)g(referred)g (to)g(b)o(y)g(commonly-accepted)g(names.)26 b(Refer)17 b(to)g([)p(10)o(])g (or)f([)p(11)o(])h(for)-1795 57 y(detailed)e(lists)f(of)h(virus)f(names)h (and)h(c)o(haracteristics.)o -954 141 a @F4 @sf(2.4)56 b(A)19 b(history)f (lesson)-524 105 y @F12 @sf(The)f(\014rst)g(use)g(of)f(the)h(term)g @F10 @sf (virus)f @F12 @sf(to)h(refer)f(to)h(un)o(w)o(an)o(ted)f(computer)h(co)q (de)g(o)q(ccurred)h(in)e(1972)g(in)h(a)-1795 57 y(science)f(\014ction)g (no)o(v)o(el,)e @F10 @sf(When)j(Harley)g(Was)f(One)p @F12 @sf(,)f(b)o(y)h (Da)o(vid)e(Gerrold.)p -16 w @F16 @sf(1)22 16 y @F12 @sf(The)i (description)f(of)h @F10 @sf(virus)-1795 56 y @F12 @sf(in)h(that)g(b)q(o)q (ok)g(do)q(es)h(not)f(\014t)g(the)h(curren)o(tly-accepted)f(de\014nition)g (of)g(computer)h(virus|a)f(program)-1796 57 y(that)12 b(alters)g(other)g (programs)f(to)h(include)i(a)e(cop)o(y)g(of)h(itself.)18 b(F)l(red)12 b (Cohen)h(formally)e(de\014ned)j(the)f(term)-1795 56 y @F10 @sf(c)n (omputer)18 b(virus)d @F12 @sf(in)h(1983.)k([)p(1)o(])15 b(A)o(t)g(that)g (time,)g(Cohen)h(w)o(as)e(a)i(graduate)f(studen)o(t)g(at)g(the)h(Univ)o (ersit)o(y)-1796 56 y(of)f(Southern)h(Californi)o(a)e(attending)h(a)g (securit)o(y)f(seminar.)20 b(The)c(idea)f(of)g(writing)f(a)h(computer)g (virus)-1795 57 y(o)q(ccurred)g(to)e(him,)g(and)i(in)e(a)h(w)o(eek's)f (time)h(he)g(put)g(together)f(a)h(simple)f(virus)g(that)h(he)g (demonstrated)-1795 56 y(to)19 b(the)h(class.)34 b(His)19 b(advisor,)h (Professor)f(Len)i(Adelman,)g(suggested)e(that)h(he)g(call)f(his)h (creation)f(a)-1795 57 y(computer)c(virus.)20 b(Dr.)14 b(Cohen's)h(thesis)g (and)g(later)f(researc)o(h)h(w)o(ere)g(dev)o(oted)g(to)g(computer)g (viruses.)-1692 76 y(It)20 b(app)q(ears,)h(ho)o(w)o(ev)o(er,)f(that)g (computer)g(viruses)g(w)o(ere)g(b)q(eing)g(written)g(b)o(y)g(other)g (individuals,)-1796 56 y(although)c(not)h(named)g(suc)o(h,)g(as)g(early)f (as)h(1981)e(on)i(Apple)g(I)q(I)h(computers.)p -16 w @F16 @sf(2)27 16 y @F12 @sf(Some)f(early)f(Apple)h(I)q(I)-1793 57 y(viruses)i(included)g(the)g (notorious)f(\\F)l(estering)g(Hate,")h(\\Cyb)q(eraids,")g(and)g(\\Elk)f (Cloner")g(strains.)-1796 56 y(Sometimes)h(virus)g(infections)g(w)o(ere)g (mistak)o(en)g(as)g(tro)s(jan)f(horses,)i(as)f(in)h(the)f(\\Zlink)g (virus,")h([sic])-1796 57 y(whic)o(h)c(w)o(as)g(a)g(case)g(of)g(the)g (Zlink)g(comm)o(unication)f(program)g(infected)h(b)o(y)h(\\F)l(estering)e (Hate.")22 b(The)-1794 56 y(\\Elk)15 b(Cloner")f(virus)h(w)o(as)f(\014rst)h (rep)q(orted)g(in)g(mid-1981.)-930 76 y(It)e(is)f(only)g(within)g(the)h (last)f(three)h(y)o(ears)f(that)g(the)h(problem)f(of)g(viruses)h(has)g (gro)o(wn)e(to)i(signi\014can)o(t)-1796 57 y(prop)q(ortions.)28 b(Since) 19 b(the)g(\014rst)f(infection)f(b)o(y)i(the)f @F10 @sf(Br)n(ain)g @F12 @sf (virus)g(in)g(Jan)o(uary)g(1986,)g(up)h(to)e(April)h(1,)-1795 56 y(1990,)i (the)f(n)o(um)o(b)q(er)i(of)e(kno)o(wn)g(viruses)h(has)g(gro)o(wn)e(to)i (nearly)f(60)g(distinctly)g(di\013eren)o(t)g(IBM)h(PC)-1795 57 y(viruses.)f (The)14 b(problem)f(is)g(not)g(restricted)g(to)g(the)g(IBM)h(PC,)f(and)g (no)o(w)g(a\013ects)g(all)f(p)q(opular)i(p)q(ersonal)-1795 56 y (computers.)29 b(Mainframe)17 b(viruses)h(do)g(exist)f(for)h(a)g(v)m (ariet)o(y)f(of)h(op)q(erating)f(systems)h(and)g(mac)o(hines,)-1795 56 y (but)i(all)f(rep)q(orted)h(to)f(date)g(ha)o(v)o(e)h(b)q(een)h(exp)q (erimen)o(tal)e(in)h(nature,)g(written)f(b)o(y)g(serious)h(academic)-1795 57 y(researc)o(hers)15 b(in)g(con)o(trolled)f(en)o(vironmen)o(ts.)-703 76 y (Where)g(viruses)g(ha)o(v)o(e)g(\015ourished)g(is)g(in)g(the)g(w)o(eak)g (securit)o(y)f(en)o(vironmen)o(t)h(of)f(the)i(p)q(ersonal)f(com-)-1795 56 y (puter.)31 b(P)o(ersonal)18 b(computers)g(w)o(ere)h(originall)o(y)e (designed)j(for)e(a)g(single)g(dedicated)i(user|little,)e(if)-1795 57 y (an)o(y)l(,)d(though)o(t)f(w)o(as)g(giv)o(en)g(to)h(the)g(di\016culties)f (that)g(migh)o(t)g(arise)g(should)h(others)f(ha)o(v)o(e)h(ev)o(en)g (indirect)-1795 56 y(access)f(to)g(the)g(mac)o(hine.)20 b(The)14 b (systems)g(con)o(tained)f(no)h(securit)o(y)g(faciliti)o(es)f(b)q(ey)o(ond)i (an)f(optional)f(k)o(ey)-1795 57 y(switc)o(h,)g(and)i(there)f(w)o(as)f(a)h (minimal)e(amoun)o(t)i(of)f(securit)o(y-related)h(soft)o(w)o(a)o(re)f(a)o (v)m(ailable)g(to)g(safeguard)-1795 39 y 718 -2 z 50 27 a @F17 @sf(1)4 32 y @F15 @sf(The)g(recen)o(t)g(reissue)h(of)e(Gerrold's)h(b)q(o)q(ok)h(has)g (this)f(subplot)h(omitted.)-1064 30 y @F17 @sf(2)4 31 y @F15 @sf(Priv)n (ate)f(comm)o(unication)h(from)f(Jo)q(e)g(Dellinger.)92 168 y @F12 @sf(3) -983 b 3 @eop1 4 @bop0 @F4 @sf [< 03F8000FFF001C1F803007C07007E0FC03F0FC03F0FE03F8FE03F87C03F83803F80003F800 03F80003F00003F01803E01807E01E0FC01FFF0019FC001800001800001800001800001BC0 001FF8001FFE001FFF001FFF801FFFC01E01E0100020> 21 32 -3 31 28] 53 @dc [< FFFFE000FFFFE00007F0000007F0000007F0000007F0000007F0000007F0000007F0000007 F0000007F0180007F0180007F0180007F0180007F0380007F0780007FFF80007FFF80007F0 780007F0380007F0180007F0180007F0180C07F0180C07F0000C07F0000C07F0001C07F000 1C07F0001807F0003807F0007807F001F8FFFFFFF8FFFFFFF8> 30 34 -2 33 35] 70 @dc [< 01FC3FC007FF3FC00F81BE001F00FE001F007E001F003E001F003E001F003E001F003E001F 003E001F003E001F003E001F003E001F003E001F003E001F003E001F003E001F003E001F00 3E001F003E00FF01FE00FF01FE00> 26 22 -2 21 31] 117 @dc [< 00FE0007FF800FC0E01F00603E00307E00007E00007C0000FC0000FC0000FC0000FC0000FC 0000FC00007C00007C01E07E03F03E03F01F03F00F83F007FFE000FF80> 20 22 -2 21 25] 99 @dc @F12 @sf [< 70F8F8F8700000000000000000000070F8F8F870> 5 20 -4 19 13] 58 @dc @F8 @sf [< FFFFC0FFFFC07FFFC03FFFC01FFFC01C00E00E006007006003806001C00000E00000F00000 7800003E00001F00001F80000FC0000FC0000FE03807E07C07E0FE07E0FE0FE0FE0FC0FE0F C07C1F80383F001FFE0007F000> 19 29 -3 28 26] 50 @dc [< 387CFEFEFE7C38> 7 7 -4 6 15] 46 @dc [< 07F0001FFC00381F00600F80780FC0FC07C0FC07E0FC07E0FC07E07807E00007E00007E000 07C01007C0380F803C1F0037FE0033F8003000003000003000003000003F80003FF0003FFC 003FFE003FFF003FFF80380380> 19 29 -3 28 26] 53 @dc [< FFFF80FFFF8003E00003E00003E00003E00003E00003E00003E00003E00003E00003E00003 E00003E00003E00003E00003E00003E00003E00003E00003E00003E00003E00003E000F3E0 00FFE0000FE00001E00000E000> 17 29 -4 28 26] 49 @dc [< FFF0000600FFF00006000600000E000600001E000600003E000600007E00060000FE000600 00FE00060001FE00060003F600060007E60006000FE60006001FC60006001F860006003F06 0006007E06000600FC06000601FC06000601F806000603F006000607E00600060FC0060006 1F800600063F800600063F000600067E00060006FC00060007F800060007F0000600FFF000 FFF0FFE000FFF0> 36 31 -2 30 41] 78 @dc [< 01FF0007FFC01F83F03E00F83E00F87C007C7C007CFC007EFC007EFC007EFC007EFC007EFC 007E7C007C7C007C3E00F83E00F81F83F007FFC001FF00> 23 20 -1 19 26] 111 @dc [< 00FF8007FFE00F80701E00183E00187C00007C0000FC0000FC0000FC0000FFFFF8FFFFF8FC 00F87C00F87C00F03E00F01E01E00F83C007FF8001FE00> 21 20 -1 19 24] 101 @dc [< 03F8FF07FCFF0F06F81F01F81F01F81F00F81F00F81F00F81F00F81F00F81F00F81F00F81F 00F81F00F81F00F81F00F81F00F81F00F8FF07F8FF07F8> 24 20 -3 19 29] 117 @dc [< FFF00C03FFF8FFF01E03FFF806001E001F0006003F001F0006003F001F0006003F001F0006 007D801F0006007D801F000600F8C01F000600F8C01F000601F0601F000601F0601F000603 E0301F000603E0301F000607C0181F000607C0181F000607C0181F00060F800C1F00060F80 0C1F00061F00061F00061F00061F00063E00031F00063E00031F00067C00019F00067C0001 9F0006F80000DF0006F80000DF0006F80000DF0007F000007F00FFF000007FF8FFE000003F F8> 45 31 -2 30 50] 77 @dc [< FFE0FFE01F001F001F001F001F001F001F001F001F001F001F001F001F001F001F001F00FF 00FF000000000000000000000000001C003E003F007F003F003E001C00> 11 33 -2 32 15] 105 @dc [< FFE3FFFFE3FF1F00F81F00F81F00F81F00F81F00F81F00F81F00F81F00F81F00F81F00F81F 00F81F00F81F00F81E80F81EC0F81E61F0FE3FE0FE0FC0> 24 20 -3 19 29] 110 @dc [< 3FFC003FFC0007C00007C00007C00007C00007C00007C00007C00007C00007C00007C00007 C00007C00007C00007C00007C00007C000FFFC00FFFC0007C00007C00007C00007C00007C0 0007C3C007C7E003C7E003E7E001F3E000FFC0001F80> 19 32 -1 31 16] 102 @dc [< FFE3FF8FFEFFE3FF8FFE1F007C01F01F007C01F01F007C01F01F007C01F01F007C01F01F00 7C01F01F007C01F01F007C01F01F007C01F01F007C01F01F007C01F01F007C01F01F807E01 F01E807E01F01E407D01F01E70F9C3E0FE1FF07FC0FE0FE03F80> 39 20 -3 19 44] 109 @dc [< 000070000000007000000000F800000000F800000001FC00000001FC00000003FE00000003 F600000003F600000007E300000007E30000000FE18000000FC18000001FC1C000001F80C0 00003F80E000003F006000003F006000007E003000007E00300000FC00180000FC00180001 FC000C0001F8000C0003F8000E0003F000060007F000070007E000030007E0000380FFFE00 3FF8FFFE003FF8> 37 31 -1 30 40] 86 @dc @F8 @sf [< 81FF00E7FFC0FE01E0F80070E00078E00038C0003CC0003CC0003C00003C00007C0000FC00 07F800FFF807FFF00FFFF01FFFE03FFF807FFE007FC000FC0000F80000F00018F00018F000 387000387000783800F81E03F80FFF3803FC08> 22 31 -3 30 29] 83 @dc @F8 @sf [< FFE3FFFFE3FF1F00F81F00F81F00F81F00F81F00F81F00F81F00F81F00F81F00F81F00F81F 00F81F00F81F00F81F80F81FC0F81F61F01F3FE01F0FC01F00001F00001F00001F00001F00 001F00001F00001F00001F00001F0000FF0000FF0000> 24 32 -3 31 29] 104 @dc [< FFE0FFE01F001F001F001F001F001F001F001F001F001F001F001F001F001F001F001F001F 001F001F001F001F001F001F001F001F001F001F001F00FF00FF00> 11 32 -2 31 15] 108 @dc [< 001C0000001C0000003E0000003E0000007F0000007F000000FF800000F9800001F9C00001 F0C00001F0C00003E0600003E0600007C0300007C030000F8018000F8018001F001C00FFE0 7F80FFE07F80> 25 20 -1 19 28] 118 @dc 4 @eop0 0 0 4 @bop1 74 307 a @F12 @sf(data.)19 b(T)l(o)q(da)o(y)l(,)14 b(ho)o(w)o (ev)o(er,)f(p)q(ersonal)i(computers)f(are)g(b)q(eing)h(used)f(for)g(tasks)g (far)g(di\013eren)o(t)f(from)h(those)-1795 57 y(originall)o(y)d(en)o (visioned,)g(including)h(managing)f(compan)o(y)g(databases)g(and)h (participating)e(in)i(net)o(w)o(orks)-1796 56 y(of)j(computer)h(systems.) 21 b(Unfortunately)l(,)15 b(their)g(hardw)o(are)g(and)h(op)q(erating)f (systems)h(are)f(still)f(based)-1794 57 y(on)f(the)g(assumption)f(of)g (single)g(trusted)h(user)f(access,)h(and)g(this)g(allo)n(ws)e(computer)i (viruses)g(to)f(\015ourish)-1795 56 y(on)j(those)g(mac)o(hines.)-376 141 y @F4 @sf(2.5)56 b(F)-5 b(ormal)18 b(structure)-542 106 y @F12 @sf(T)l(rue)h (viruses)f(ha)o(v)o(e)g(t)o(w)o(o)f(ma)s(jor)f(comp)q(onen)o(ts:)26 b(one) 19 b(that)e(handles)i(the)f(spread)h(of)f(the)g(virus,)g(and)-1794 56 y(a)h (manipulation)g(task.)32 b(The)20 b(manipulatio)o(n)f(task)g(ma)o(y)f(not)i (b)q(e)g(presen)o(t)f(\(has)g(n)o(ull)g(e\013ect\),)h(or)f(it)-1795 57 y (ma)o(y)13 b(act)g(lik)o(e)g(a)g(logic)f(b)q(om)o(b,)i(a)o(w)o(ait)o(ing)e (a)h(set)g(of)g(predetermined)i(circumstances)e(b)q(efore)h(triggeri)o (ng.)-1796 56 y(These)21 b(t)o(w)o(o)e(virus)h(comp)q(onen)o(ts)g(will)f (b)q(e)i(describ)q(ed)g(in)f(general)g(terms,)h(and)f(then)h(more)f(sp)q (eci\014c)-1794 56 y(examples)13 b(will)e(b)q(e)i(presen)o(ted)g(as)g (they)g(relate)e(to)i(the)f(most)g(common)g(p)q(ersonal)h(computer:)18 b (the)13 b(IBM)-1794 57 y(PC.)i(Viruses)g(on)g(other)g(mac)o(hines)g(b)q (eha)o(v)o(e)g(in)g(a)g(similar)e(fashion.)-1176 140 y @F8 @sf(2.5.1)52 b (A)17 b(Note)h(Ab)q(out)g(Mainframe)e(Viruses)o -946 105 a @F12 @sf(As)k (already)f(noted,)i(viruses)f(can)g(infect)g(minicomputers)f(and)h (mainframes)f(as)g(w)o(ell)g(as)h(p)q(ersonal)-1795 56 y(computers.)39 b (Lab)q(oratory)21 b(exp)q(erimen)o(ts)g(conducted)i(b)o(y)e(v)m(arious)g (researc)o(hers)h(ha)o(v)o(e)f(sho)o(wn)g(that)-1795 57 y(an)o(y)d(mac)o (hine)g(with)f(almost)g(an)o(y)g(op)q(erating)h(system)f(can)i(supp)q(ort)f (computer)g(viruses.)28 b(Ho)o(w)o(ev)o(er,)-1796 56 y(there)17 b(ha)o(v)o (e)f(b)q(een)i(no)f(do)q(cumen)o(ted)h(cases)e(of)h(true)f(viruses)h(on)g (large)e(m)o(ulti-user)h(computers)h(other)-1795 57 y(than)h(as)g(exp)q (erimen)o(ts.)29 b(This)18 b(is)g(due,)h(in)f(part,)g(b)q(oth)h(to)e(the)i (greater)e(restrictions)g(built)g(in)o(to)g(the)-1794 56 y(soft)o(w)o(are)j (and)h(hardw)o(are)g(of)g(those)g(mac)o(hines,)i(and)f(to)e(the)i(w)o(a)o (y)e(they)i(are)f(usually)g(used.)39 b(Our)-1794 57 y(further)19 b(commen)o (ts)f(will)f(therefore)h(b)q(e)h(directed)g(to)o(w)o(ards)e(PC)h(viruses,)h (with)f(the)g(understanding)-1794 56 y(that)d(analogous)e(statemen)o(ts)i (could)g(b)q(e)h(made)f(ab)q(out)g(mainframe)f(viruses.)-1347 140 y @F8 @sf (2.5.2)52 b(Structure)-378 105 y @F12 @sf(F)l(or)17 b(a)f(computer)h (virus)g(to)f(w)o(ork,)h(it)f(someho)o(w)g(m)o(ust)h(add)g(itself)f(to)g (other)h(executable)g(co)q(de.)26 b(The)-1794 57 y(viral)17 b(co)q(de)i(m)o (ust)e(b)q(e)i(executed)g(b)q(efore)g(the)f(co)q(de)h(of)e(its)h(infected)g (host)g(\(if)f(the)h(host)g(co)q(de)h(is)f(ev)o(er)-1795 56 y(executed)e (again\).)j(One)d(form)e(of)h(classi\014cation)e(of)i(computer)g(viruses)g (is)g(based)g(on)g(the)g(three)h(w)o(a)o(ys)-1796 56 y(a)f(virus)g(ma)o(y)f (add)i(itself)e(to)g(host)h(co)q(de:)21 b(as)14 b(a)h(shell,)g(as)f(an)i (add-on,)f(and)g(as)g(in)o(trusiv)o(e)f(co)q(de.)-1650 140 y @F8 @sf (Shell)f(viruses)43 b @F12 @sf(A)13 b(shell)e(virus)h(is)g(one)g(that)g (forms)f(a)h(\\shell")f(\(as)g(in)h(\\eggshell")f(rather)h(than)g(\\Unix) -1795 57 y(shell"\))h(around)h(the)f(original)f(co)q(de.)20 b(In)15 b (e\013ect,)e(the)h(virus)f(b)q(ecomes)h(the)g(program,)f(and)h(the)f (original)-1796 56 y(host)g(program)e(b)q(ecomes)j(an)e(in)o(ternal)g (subroutine)h(of)f(the)h(viral)f(co)q(de.)19 b(An)13 b(extreme)g(example)g (of)f(this)-1795 56 y(w)o(ould)18 b(b)q(e)g(a)g(case)g(where)g(the)g (virus)g(mo)o(v)o(es)f(the)h(original)e(co)q(de)j(to)e(a)h(new)g(lo)q (cation)f(and)h(tak)o(es)g(on)-909 152 y(4)-983 b 4 @eop1 5 @bop0 % dvitps: BEGIN including file "/usr/local/tex/lib/TeXPS/pro/psfig.pro" /TeXscale { exch 65782 div def } def gsave initgraphics /DocumentInitState [ matrix currentmatrix currentlinewidth currentlinecap currentlinejoin currentdash currentgray currentmiterlimit ] cvx def grestore /startTexFig { /SavedState save def userdict maxlength dict begin currentpoint transform DocumentInitState setmiterlimit setgray setdash setlinejoin setlinecap setlinewidth setmatrix itransform moveto /bb-ury TeXscale /bb-urx TeXscale /bb-lly TeXscale /bb-llx TeXscale /height TeXscale /width TeXscale currentpoint /cy exch def /cx exch def /sx width bb-urx bb-llx sub div def /sy height bb-ury bb-lly sub div def sx sy scale cx sx div bb-llx sub cy sy div bb-ury sub translate /DefFigCTM matrix currentmatrix def /initmatrix { DefFigCTM setmatrix } def /defaultmatrix { DefFigCTM exch copy } def /initgraphics { DocumentInitState setmiterlimit setgray setdash setlinejoin setlinecap setlinewidth setmatrix DefFigCTM setmatrix } def /showpage { initgraphics } def /letter {} def /note {} def /legal {} def } def /clipFig { currentpoint 6 2 roll newpath 4 copy 4 2 roll moveto 6 -1 roll exch lineto exch lineto exch lineto closepath clip newpath moveto } def /doclip { bb-llx bb-lly bb-urx bb-ury clipFig } def /endTexFig { end SavedState restore } def % dvitps: END including file "/usr/local/tex/lib/TeXPS/pro/psfig.pro" @F8 @sf [< 03F8FF0FFEFF1F07F83E01F87E00F87C00F87C00F8FC00F8FC00F8FC00F8FC00F8FC00F8FC 00F87C00F87C00F87E00F83E01F81F83F80FFEF801F8F80000F80000F80000F80000F80000 F80000F80000F80000F80000F80000F80007F80007F8> 24 32 -2 31 29] 100 @dc [< FFF0FFF0FFF0FFF0> 12 4 -1 11 17] 45 @dc @F8 @sf [< FFFFFFFF07E007E007E007E007E007E007E007E007E007E007E007E007E007E007E007E007 E007E007E007E007E007E007E007E007E007E007E0FFFFFFFF> 16 31 -2 30 20] 73 @dc 5 @eop0 0 0 5 @bop1 74 307 a @F12 @sf(its)17 b(iden)o(tit)o(y)l(.)24 b(When)18 b (the)f(virus)g(is)f(\014nished)i(executing,)g(it)e(retriev)o(es)g(the)i (host)e(program)h(co)q(de)g(and)-1794 57 y(b)q(egins)f(its)e(execution.) -199 58 y 21597466 14208860 4802068 18287329 28483502 33811824 startTexFig %!PS-Adobe-2.0 EPSF-1.2 %%BoundingBox: 73 278 433 514 %%TemplateBox:288 360 288 360 %%TileBox:-552 730 0 1460 %%Creator: Adobe Illustrator 88(TM) 1.8.3 %%For: (Gene Spafford) (Purdue University Dept of CS) %%Title: (Infection) %%CreationDate: (2/1/90) (7:05 PM) %%DocumentProcSets: Adobe_packedarray 0 0 %%DocumentSuppliedProcSets: Adobe_packedarray 0 0 %%DocumentProcSets: Adobe_cmykcolor 0 0 %%DocumentSuppliedProcSets: Adobe_cmykcolor 0 0 %%DocumentProcSets: Adobe_cshow 0 0 %%DocumentSuppliedProcSets: Adobe_cshow 0 0 %%DocumentProcSets: Adobe_customcolor 0 0 %%DocumentSuppliedProcSets: Adobe_customcolor 0 0 %%DocumentProcSets: Adobe_Illustrator881 0 0 %%DocumentSuppliedProcSets: Adobe_Illustrator881 0 0 %%ColorUsage: Black&White %%DocumentProcessColors: Black %%DocumentFonts: Helvetica-BoldOblique %%EndComments %%BeginProcSet: Adobe_packedarray 0 0 % packedarray Operators % Version 1.0 5/9/1988 % Copyright (C) 1987, 1988 % Adobe Systems Incorporated % All Rights Reserved userdict /Adobe_packedarray 5 dict dup begin put /initialize % - initialize - { /packedarray where { pop } { Adobe_packedarray begin Adobe_packedarray { dup xcheck { bind } if userdict 3 1 roll put } forall end } ifelse } def /terminate % - terminate - { } def /packedarray % arguments count packedarray array { array astore readonly } def /setpacking % boolean setpacking - { pop } def /currentpacking % - setpacking boolean { false } def currentdict readonly pop end %%EndProcSet Adobe_packedarray /initialize get exec %%BeginProcSet: Adobe_cmykcolor 0 0 % cmykcolor Operators % Version 1.1 1/23/1989 % Copyright (C) 1987, 1988, 1989 % Adobe Systems Incorporated % All Rights Reserved currentpacking true setpacking userdict /Adobe_cmykcolor 4 dict dup begin put /initialize % - initialize - { /setcmykcolor where { pop } { userdict /Adobe_cmykcolor_vars 2 dict dup begin put /_setrgbcolor /setrgbcolor load def /_currentrgbcolor /currentrgbcolor load def Adobe_cmykcolor begin Adobe_cmykcolor { dup xcheck { bind } if pop pop } forall end end Adobe_cmykcolor begin } ifelse } def /terminate % - terminate - { currentdict Adobe_cmykcolor eq { end } if } def /setcmykcolor % cyan magenta yellow black setcmykcolor - { 1 sub 4 1 roll 3 { 3 index add neg dup 0 lt { pop 0 } if 3 1 roll } repeat Adobe_cmykcolor_vars /_setrgbcolor get exec pop } def /currentcmykcolor % - currentcmykcolor cyan magenta yellow black { Adobe_cmykcolor_vars /_currentrgbcolor get exec 3 { 1 sub neg 3 1 roll } repeat 0 } def currentdict readonly pop end setpacking %%EndProcSet %%BeginProcSet: Adobe_cshow 0 0 % cshow Operator % Version 1.1 1/23/1989 % Copyright (C) 1987, 1988, 1989 % Adobe Systems Incorporated % All Rights Reserved currentpacking true setpacking userdict /Adobe_cshow 3 dict dup begin put /initialize % - initialize - { /cshow where { pop } { userdict /Adobe_cshow_vars 1 dict dup begin put /_cshow % - _cshow proc {} def Adobe_cshow begin Adobe_cshow { dup xcheck { bind } if userdict 3 1 roll put } forall end end } ifelse } def /terminate % - terminate - { } def /cshow % proc string cshow - { exch Adobe_cshow_vars exch /_cshow exch put { 0 0 Adobe_cshow_vars /_cshow get exec } forall } def currentdict readonly pop end setpacking %%EndProcSet %%BeginProcSet: Adobe_customcolor 0 0 % Custom Color Operators % Version 1.0 5/9/1988 % Copyright (C) 1987, 1988 % Adobe Systems Incorporated % All Rights Reserved currentpacking true setpacking userdict /Adobe_customcolor 5 dict dup begin put /initialize % - initialize - { /setcustomcolor where { pop } { Adobe_customcolor begin Adobe_customcolor { dup xcheck { bind } if pop pop } forall end Adobe_customcolor begin } ifelse } def /terminate % - terminate - { currentdict Adobe_customcolor eq { end } if } def /findcmykcustomcolor % cyan magenta yellow black name findcmykcustomcolor object { 5 packedarray } def /setcustomcolor % object tint setcustomcolor - { exch aload pop pop 4 { 4 index mul 4 1 roll } repeat 5 -1 roll pop setcmykcolor } def /setoverprint % boolean setoverprint - { pop } def currentdict readonly pop end setpacking %%EndProcSet %%BeginProcSet: Adobe_Illustrator881 0 0 % Adobe Illustrator (TM) Prolog % Version 1.19 1/23/1989 % Copyright (C) 1987, 1988, 1989 % Adobe Systems Incorporated % All Rights Reserved currentpacking true setpacking userdict /Adobe_Illustrator881 72 dict dup begin put % initialization /initialize % - initialize - { userdict /Adobe_Illustrator881_vars 29 dict dup begin put % paint operands /_lp /none def /_pf {} def /_ps {} def /_psf {} def /_pss {} def % text operands /_a null def /_as null def /_tt 2 array def /_tl 2 array def /_tm matrix def /t {} def % color operands /_gf null def /_cf 4 array def /_if null def /_of false def /_fc {} def /_gs null def /_cs 4 array def /_is null def /_os false def /_sc {} def /_i null def Adobe_Illustrator881 begin Adobe_Illustrator881 { dup xcheck { bind } if pop pop } forall end end Adobe_Illustrator881 begin Adobe_Illustrator881_vars begin newpath } def /terminate % - terminate - { end end } def % definition operators /_ % - _ null null def /ddef % key value ddef - { Adobe_Illustrator881_vars 3 1 roll put } def /xput % key value literal xput - { dup load dup length exch maxlength eq { dup dup load dup length 2 mul dict copy def } if load begin def end } def /npop % integer npop - { { pop } repeat } def % marking operators /sw % ax ay length string sw x y { stringwidth exch 5 -1 roll 3 index 1 sub mul add 4 1 roll 3 1 roll 1 sub mul add } def /ss % ax ay length string matrix ss - { 3 -1 roll pop 4 1 roll { 2 npop (0) exch 2 copy 0 exch put pop gsave false charpath currentpoint 4 index setmatrix stroke grestore moveto 2 copy rmoveto } exch cshow 3 npop } def % path operators /sp % ax ay length string sp - { exch pop { 2 npop (0) exch 2 copy 0 exch put pop false charpath 2 copy rmoveto } exch cshow 2 npop } def % path construction operators /pl % x y pl x y { transform 0.25 sub round 0.25 add exch 0.25 sub round 0.25 add exch itransform } def /setstrokeadjust where { pop true setstrokeadjust /c % x1 y1 x2 y2 x3 y3 c - { curveto } def /C /c load def /v % x2 y2 x3 y3 v - { currentpoint 6 2 roll curveto } def /V /v load def /y % x1 y1 x2 y2 y - { 2 copy curveto } def /Y /y load def /l % x y l - { lineto } def /L /l load def /m % x y m - { moveto } def } { /c { pl curveto } def /C /c load def /v { currentpoint 6 2 roll pl curveto } def /V /v load def /y { pl 2 copy curveto } def /Y /y load def /l { pl lineto } def /L /l load def /m { pl moveto } def } ifelse % graphic state operators /d % array phase d - { setdash } def /cf % - cf flatness currentflat def /i % flatness i - { dup 0 eq { pop cf } if setflat } def /j % linejoin j - { setlinejoin } def /J % linecap J - { setlinecap } def /M % miterlimit M - { setmiterlimit } def /w % linewidth w - { setlinewidth } def % path painting operators /H % - H - {} def /h % - h - { closepath } def /N % - N - { newpath } def /n % - n - /N load def /F % - F - { _pf } def /f % - f - { closepath F } def /S % - S - { _ps } def /s % - s - { closepath S } def /B % - B - { gsave F grestore S } def /b % - b - { closepath B } def /W % - W - { clip } def % text painting operators /ta % length string ta ax ay length string { _as moveto _tt aload pop 4 -2 roll } def /tl % - tl - { _tl aload pop translate } def /as % - as array { { 0 0 } { 2 copy _tt aload pop 4 -2 roll sw exch neg 2 div exch neg 2 div } { 2 copy _tt aload pop 4 -2 roll sw exch neg exch neg } { 0 0 } } cvlit def /z % literal size leading tracking align z - { /_a exch ddef /_as as _a get ddef _a 2 le { 0 _tt astore pop 0 exch neg _tl astore pop } { 0 exch neg _tt astore pop neg 0 _tl astore pop } ifelse exch findfont exch scalefont setfont } def /tm % matrix tm - { _tm currentmatrix pop concat } def /I % matrix I - { tm /t { ta sp tl } ddef } def /o % matrix o - { tm /t { ta 4 npop tl newpath } ddef } def /e % matrix e - { tm /t { ta _psf tl newpath } ddef } def /r % matrix r - { tm /t { ta _tm _pss tl newpath } ddef } def /a % matrix a - { tm /t { 2 copy ta _psf newpath ta _tm _pss tl newpath } ddef } def /T % - T - { _tm setmatrix } def % font operators /Z % array literal literal direction Z - { pop findfont begin currentdict dup length 1 add dict begin { 1 index /FID ne { def } { 2 npop } ifelse } forall /FontName exch def dup length 0 ne { /Encoding Encoding 256 array copy def 0 exch { dup type /nametype eq { Encoding 2 index 2 index put pop 1 add } { exch pop } ifelse } forall } if pop currentdict dup end end /FontName get exch definefont pop } def % group operators /u % - u - {} def /U % - U - {} def /q % - q - { gsave } def /Q % - Q - { grestore } def % place operators /` % matrix llx lly urx ury string ` - { /_i save ddef 6 1 roll 4 npop concat userdict begin /showpage {} def false setoverprint pop } def /~ % - ~ - { end _i restore } def % color operators /O % flag O - { 0 ne /_of exch ddef /_lp /none ddef } def /R % flag R - { 0 ne /_os exch ddef /_lp /none ddef } def /g % gray g - { /_gf exch ddef /_fc { _lp /fill ne { _of setoverprint _gf setgray /_lp /fill ddef } if } ddef /_pf { _fc fill } ddef /_psf { _fc exch pop ashow } ddef /_lp /none ddef } def /G % gray G - { /_gs exch ddef /_sc { _lp /stroke ne { _os setoverprint _gs setgray /_lp /stroke ddef } if } ddef /_ps { _sc stroke } ddef /_pss { _sc ss } ddef /_lp /none ddef } def /k % cyan magenta yellow black k - { _cf astore pop /_fc { _lp /fill ne { _of setoverprint _cf aload pop setcmykcolor /_lp /fill ddef } if } ddef /_pf { _fc fill } ddef /_psf { _fc exch pop ashow } ddef /_lp /none ddef } def /K % cyan magenta yellow black K - { _cs astore pop /_sc { _lp /stroke ne { _os setoverprint _cs aload pop setcmykcolor /_lp /stroke ddef } if } ddef /_ps { _sc stroke } ddef /_pss { _sc ss } ddef /_lp /none ddef } def /x % cyan magenta yellow black name gray x - { /_gf exch ddef findcmykcustomcolor /_if exch ddef /_fc { _lp /fill ne { _of setoverprint _if _gf 1 exch sub setcustomcolor /_lp /fill ddef } if } ddef /_pf { _fc fill } ddef /_psf { _fc exch pop ashow } ddef /_lp /none ddef } def /X % cyan magenta yellow black name gray X - { /_gs exch ddef findcmykcustomcolor /_is exch ddef /_sc { _lp /stroke ne { _os setoverprint _is _gs 1 exch sub setcustomcolor /_lp /stroke ddef } if } ddef /_ps { _sc stroke } ddef /_pss { _sc ss } ddef /_lp /none ddef } def % locked object operators /A % value A - { pop } def currentdict readonly pop end setpacking %%EndProcSet %%EndProlog %%BeginSetup Adobe_cmykcolor /initialize get exec Adobe_cshow /initialize get exec Adobe_customcolor /initialize get exec Adobe_Illustrator881 /initialize get exec %%BeginEncoding: _Helvetica-BoldOblique Helvetica-BoldOblique [ 39/quotesingle 96/grave 128/Adieresis/Aring/Ccedilla/Eacute/Ntilde/Odieresis /Udieresis/aacute/agrave/acircumflex/adieresis/atilde/aring/ccedilla/eacute /egrave/ecircumflex/edieresis/iacute/igrave/icircumflex/idieresis/ntilde /oacute/ograve/ocircumflex/odieresis/otilde/uacute/ugrave/ucircumflex /udieresis/dagger/degree/cent/sterling/section/bullet/paragraph/germandbls /registered/copyright/trademark/acute/dieresis/.notdef/AE/Oslash /.notdef/plusminus/.notdef/.notdef/yen/mu/.notdef/.notdef /.notdef/.notdef/.notdef/ordfeminine/ordmasculine/.notdef/ae/oslash /questiondown/exclamdown/logicalnot/.notdef/florin/.notdef/.notdef /guillemotleft/guillemotright/ellipsis/.notdef/Agrave/Atilde/Otilde/OE/oe /endash/emdash/quotedblleft/quotedblright/quoteleft/quoteright/divide /.notdef/ydieresis/Ydieresis/fraction/currency/guilsinglleft/guilsinglright /fi/fl/daggerdbl/periodcentered/quotesinglbase/quotedblbase/perthousand /Acircumflex/Ecircumflex/Aacute/Edieresis/Egrave/Iacute/Icircumflex /Idieresis/Igrave/Oacute/Ocircumflex/.notdef/Ograve/Uacute/Ucircumflex /Ugrave/dotlessi/circumflex/tilde/macron/breve/dotaccent/ring/cedilla /hungarumlaut/ogonek/caron ]/_Helvetica-BoldOblique/Helvetica-BoldOblique 0 Z %%EndEncoding %%EndSetup 0 A u 0 O 0.5 g 0 i 0 J 0 j 1 w 4 M []0 d %%Note: 432 279 m 432 333 L 74 333 L 74 279 L 432 279 L f 253 306 m F U u 432 459 m 432 513 L 74 513 L 74 459 L 432 459 L f 253 486 m F U u 0 g 289 279 m 289 333 L 74 333 L 74 279 L 289 279 L f 181.5 306 m F U 10 M 147.475 428.526 m 156.244 451.31 L 165.014 428.526 L 160.475 428.526 L 160.475 413.666 164.491 400.212 170.983 390.474 C 179.641 377.487 183.969 360.468 183.969 343.448 C 175.508 343.448 L 175.508 357.219 172.005 370.992 165 381.5 C 156.977 393.534 152.014 410.16 152.014 428.526 C 147.475 428.526 L f 4 M /_Helvetica-BoldOblique 12 12 0 0 z [1 0 0 1 274 442]e 18 (Uninfected Program)t T [1 0 0 1 272 342]e 16 (Infected Program)t T u 0.09 g 0 R 0 G 10 M 155.831 451.31 m 164.601 428.526 L 160.062 428.526 L 160.062 413.666 164.078 400.212 170.57 390.474 C 179.228 377.487 183.556 360.468 183.556 343.448 C 175.095 343.448 L 175.095 357.219 171.592 370.992 164.587 381.5 C 156.564 393.534 151.601 410.16 151.601 428.526 C 147.062 428.526 L 155.831 451.31 L b 0.181 g 155.418 451.31 m 164.188 428.526 L 159.649 428.526 L 159.649 413.666 163.665 400.212 170.157 390.474 C 178.815 377.487 183.143 360.468 183.143 343.448 C 174.682 343.448 L 174.682 357.219 171.179 370.992 164.174 381.5 C 156.151 393.534 151.188 410.16 151.188 428.526 C 146.649 428.526 L 155.418 451.31 L b 0.272 g 155.006 451.31 m 163.776 428.526 L 159.237 428.526 L 159.237 413.666 163.253 400.212 169.745 390.474 C 178.403 377.487 182.731 360.468 182.731 343.448 C 174.27 343.448 L 174.27 357.219 170.767 370.992 163.762 381.5 C 155.739 393.534 150.776 410.16 150.776 428.526 C 146.237 428.526 L 155.006 451.31 L b 0.363 g 154.593 451.31 m 163.363 428.526 L 158.824 428.526 L 158.824 413.666 162.84 400.212 169.332 390.474 C 177.99 377.487 182.318 360.468 182.318 343.448 C 173.857 343.448 L 173.857 357.219 170.354 370.992 163.349 381.5 C 155.326 393.534 150.363 410.16 150.363 428.526 C 145.824 428.526 L 154.593 451.31 L b 0.454 g 154.18 451.31 m 162.95 428.526 L 158.411 428.526 L 158.411 413.666 162.427 400.212 168.919 390.474 C 177.577 377.487 181.905 360.468 181.905 343.448 C 173.444 343.448 L 173.444 357.219 169.941 370.992 162.936 381.5 C 154.913 393.534 149.95 410.16 149.95 428.526 C 145.411 428.526 L 154.18 451.31 L b 0.545 g 153.768 451.31 m 162.538 428.526 L 157.999 428.526 L 157.999 413.666 162.015 400.212 168.507 390.474 C 177.165 377.487 181.493 360.468 181.493 343.448 C 173.032 343.448 L 173.032 357.219 169.529 370.992 162.524 381.5 C 154.501 393.534 149.538 410.16 149.538 428.526 C 144.999 428.526 L 153.768 451.31 L b 0.636 g 153.355 451.31 m 162.125 428.526 L 157.586 428.526 L 157.586 413.666 161.602 400.212 168.094 390.474 C 176.752 377.487 181.08 360.468 181.08 343.448 C 172.619 343.448 L 172.619 357.219 169.116 370.992 162.111 381.5 C 154.088 393.534 149.125 410.16 149.125 428.526 C 144.586 428.526 L 153.355 451.31 L b 0.727 g 152.942 451.31 m 161.712 428.526 L 157.173 428.526 L 157.173 413.666 161.189 400.212 167.681 390.474 C 176.339 377.487 180.667 360.468 180.667 343.448 C 172.206 343.448 L 172.206 357.219 168.703 370.992 161.698 381.5 C 153.675 393.534 148.712 410.16 148.712 428.526 C 144.173 428.526 L 152.942 451.31 L b 0.818 g 152.53 451.31 m 161.3 428.526 L 156.761 428.526 L 156.761 413.666 160.777 400.212 167.269 390.474 C 175.927 377.487 180.255 360.468 180.255 343.448 C 171.794 343.448 L 171.794 357.219 168.291 370.992 161.286 381.5 C 153.263 393.534 148.3 410.16 148.3 428.526 C 143.761 428.526 L 152.53 451.31 L b 0.909 g 152.117 451.31 m 160.887 428.526 L 156.348 428.526 L 156.348 413.666 160.364 400.212 166.856 390.474 C 175.514 377.487 179.842 360.468 179.842 343.448 C 171.381 343.448 L 171.381 357.219 167.878 370.992 160.873 381.5 C 152.85 393.534 147.887 410.16 147.887 428.526 C 143.348 428.526 L 152.117 451.31 L b U 1 g 142.936 428.526 m 151.705 451.31 L 160.475 428.526 L 155.936 428.526 L 155.936 413.666 159.952 400.212 166.444 390.474 C 175.102 377.487 179.43 360.468 179.43 343.448 C 170.969 343.448 L 170.969 357.219 167.466 370.992 160.461 381.5 C 152.438 393.534 147.475 410.16 147.475 428.526 C 142.936 428.526 L b %%Trailer Adobe_Illustrator881 /terminate get exec Adobe_customcolor /terminate get exec Adobe_cshow /terminate get exec Adobe_cmykcolor /terminate get exec endTexFig 388 1023 a(Figure)g(1:)20 b(Shell)15 b(Virus)g(Infection)-1201 170 y @F8 @sf (Add-on)24 b(viruses)44 b @F12 @sf(Most)19 b(viruses)i(are)f(add-on)h (viruses.)37 b(They)21 b(function)g(b)o(y)f(app)q(ending)i(their)-1795 56 y (co)q(de)15 b(to)e(the)i(end)g(of)e(the)i(host)e(co)q(de,)i(or)e(b)o(y)i (relo)q(cating)e(the)h(host)f(co)q(de)i(and)g(adding)f(their)f(o)o(wn)h (co)q(de)-1794 57 y(to)k(the)h(b)q(eginning.)31 b(The)20 b(add-on)f(virus)f (then)i(alters)d(the)i(startup)f(information)g(of)g(the)h(program,)-1796 56 y(executing)13 b(the)h(viral)d(co)q(de)j(b)q(efore)g(the)f(co)q(de)h (for)e(the)h(main)g(program.)18 b(The)13 b(host)g(co)q(de)h(is)e(left)h (almost)-1796 57 y(completely)19 b(un)o(touc)o(hed;)k(the)d(only)g (visible)f(indication)g(that)g(a)h(virus)f(is)h(presen)o(t)g(is)f(that)g (the)h(\014le)-1794 56 y(gro)o(ws)14 b(larger.)-256 140 y @F8 @sf(In)o (trusiv)n(e)i(viruses)o 44 x @F12 @sf(In)o(trusiv)o(e)f(viruses)g(op)q (erate)f(b)o(y)h(replacing)g(some)g(or)f(all)g(of)h(the)g(original)o 14 x (host)-1795 56 y(co)q(de)f(with)e(viral)g(co)q(de.)20 b(The)13 b (replacemen)o(t)g(migh)o(t)f(b)q(e)i(selectiv)o(e,)e(as)h(in)g(replacing)f (a)h(subroutine)g(with)-1795 57 y(the)18 b(virus,)f(or)h(inserting)e(a)i (new)f(in)o(terrupt)g(v)o(ector)g(and)h(routine.)27 b(The)18 b(replacemen)o (t)f(ma)o(y)g(also)g(b)q(e)-1794 56 y(extensiv)o(e,)d(as)h(when)g(large)f (p)q(ortions)g(of)h(the)g(host)f(program)g(are)h(completely)f(replaced)h (b)o(y)g(the)g(viral)-1796 57 y(co)q(de.)21 b(In)15 b(the)h(latter)e (case,)g(the)i(original)o 14 x(program)e(can)h(no)g(longer)g(function.)-488 314 y(5)-983 b 5 @eop1 6 @bop0 @F8 @sf [< 03FC001FFF803C0FC07807E0FC03F0FE03F0FE03F8FE03F87C03F83803F80003F80003F000 03E00007C0000F8001FC0001FC00001F00000F80000FC01E0FC03F07E03F07E03F07E03F07 E01E0FC00E0F8007FF0001FC00> 21 29 -2 28 26] 51 @dc [< 03FFFFC003FFFFC00007E0000007E0000007E0000007E0000007E0000007E0000007E00000 07E0000007E0000007E0000007E0000007E0000007E0000007E0000007E0000007E0000007 E000C007E006C007E006C007E006C007E006E007E00E6007E00C6007E00C7007E01C7C07E0 7C7FFFFFFC7FFFFFFC> 31 30 -2 29 36] 84 @dc [< 01FF000FFFE03F01F878003C78003CF0001EF0001EF0001E70003E3C007C1FFFFC07FFF80F FFF01FFF801C000018000018000009FC000FFF000F07801E03C03E03E03E03E03E03E03E03 E03E03E01E03DE0F079E07FFFE01FC3C> 23 30 -1 19 26] 103 @dc 6 @eop0 0 0 6 @bop1 361 266 a 19039870 14208860 4538941 15984967 28549283 33877606 startTexFig %!PS-Adobe-2.0 EPSF-1.2 %%BoundingBox: 69 243 434 515 %%TemplateBox:288 360 288 360 %%TileBox:-552 730 0 1460 %%Creator: Adobe Illustrator 88(TM) 1.8.3 %%For: (Gene Spafford) (Purdue University Dept of CS) %%Title: (Infection2) %%CreationDate: (2/1/90) (7:51 PM) %%DocumentProcSets: Adobe_packedarray 0 0 %%DocumentSuppliedProcSets: Adobe_packedarray 0 0 %%DocumentProcSets: Adobe_cmykcolor 0 0 %%DocumentSuppliedProcSets: Adobe_cmykcolor 0 0 %%DocumentProcSets: Adobe_cshow 0 0 %%DocumentSuppliedProcSets: Adobe_cshow 0 0 %%DocumentProcSets: Adobe_customcolor 0 0 %%DocumentSuppliedProcSets: Adobe_customcolor 0 0 %%DocumentProcSets: Adobe_Illustrator881 0 0 %%DocumentSuppliedProcSets: Adobe_Illustrator881 0 0 %%ColorUsage: Black&White %%DocumentProcessColors: Black %%DocumentFonts: Helvetica-BoldOblique %%EndComments %%BeginProcSet: Adobe_packedarray 0 0 % packedarray Operators % Version 1.0 5/9/1988 % Copyright (C) 1987, 1988 % Adobe Systems Incorporated % All Rights Reserved userdict /Adobe_packedarray 5 dict dup begin put /initialize % - initialize - { /packedarray where { pop } { Adobe_packedarray begin Adobe_packedarray { dup xcheck { bind } if userdict 3 1 roll put } forall end } ifelse } def /terminate % - terminate - { } def /packedarray % arguments count packedarray array { array astore readonly } def /setpacking % boolean setpacking - { pop } def /currentpacking % - setpacking boolean { false } def currentdict readonly pop end %%EndProcSet Adobe_packedarray /initialize get exec %%BeginProcSet: Adobe_cmykcolor 0 0 % cmykcolor Operators % Version 1.1 1/23/1989 % Copyright (C) 1987, 1988, 1989 % Adobe Systems Incorporated % All Rights Reserved currentpacking true setpacking userdict /Adobe_cmykcolor 4 dict dup begin put /initialize % - initialize - { /setcmykcolor where { pop } { userdict /Adobe_cmykcolor_vars 2 dict dup begin put /_setrgbcolor /setrgbcolor load def /_currentrgbcolor /currentrgbcolor load def Adobe_cmykcolor begin Adobe_cmykcolor { dup xcheck { bind } if pop pop } forall end end Adobe_cmykcolor begin } ifelse } def /terminate % - terminate - { currentdict Adobe_cmykcolor eq { end } if } def /setcmykcolor % cyan magenta yellow black setcmykcolor - { 1 sub 4 1 roll 3 { 3 index add neg dup 0 lt { pop 0 } if 3 1 roll } repeat Adobe_cmykcolor_vars /_setrgbcolor get exec pop } def /currentcmykcolor % - currentcmykcolor cyan magenta yellow black { Adobe_cmykcolor_vars /_currentrgbcolor get exec 3 { 1 sub neg 3 1 roll } repeat 0 } def currentdict readonly pop end setpacking %%EndProcSet %%BeginProcSet: Adobe_cshow 0 0 % cshow Operator % Version 1.1 1/23/1989 % Copyright (C) 1987, 1988, 1989 % Adobe Systems Incorporated % All Rights Reserved currentpacking true setpacking userdict /Adobe_cshow 3 dict dup begin put /initialize % - initialize - { /cshow where { pop } { userdict /Adobe_cshow_vars 1 dict dup begin put /_cshow % - _cshow proc {} def Adobe_cshow begin Adobe_cshow { dup xcheck { bind } if userdict 3 1 roll put } forall end end } ifelse } def /terminate % - terminate - { } def /cshow % proc string cshow - { exch Adobe_cshow_vars exch /_cshow exch put { 0 0 Adobe_cshow_vars /_cshow get exec } forall } def currentdict readonly pop end setpacking %%EndProcSet %%BeginProcSet: Adobe_customcolor 0 0 % Custom Color Operators % Version 1.0 5/9/1988 % Copyright (C) 1987, 1988 % Adobe Systems Incorporated % All Rights Reserved currentpacking true setpacking userdict /Adobe_customcolor 5 dict dup begin put /initialize % - initialize - { /setcustomcolor where { pop } { Adobe_customcolor begin Adobe_customcolor { dup xcheck { bind } if pop pop } forall end Adobe_customcolor begin } ifelse } def /terminate % - terminate - { currentdict Adobe_customcolor eq { end } if } def /findcmykcustomcolor % cyan magenta yellow black name findcmykcustomcolor object { 5 packedarray } def /setcustomcolor % object tint setcustomcolor - { exch aload pop pop 4 { 4 index mul 4 1 roll } repeat 5 -1 roll pop setcmykcolor } def /setoverprint % boolean setoverprint - { pop } def currentdict readonly pop end setpacking %%EndProcSet %%BeginProcSet: Adobe_Illustrator881 0 0 % Adobe Illustrator (TM) Prolog % Version 1.19 1/23/1989 % Copyright (C) 1987, 1988, 1989 % Adobe Systems Incorporated % All Rights Reserved currentpacking true setpacking userdict /Adobe_Illustrator881 72 dict dup begin put % initialization /initialize % - initialize - { userdict /Adobe_Illustrator881_vars 29 dict dup begin put % paint operands /_lp /none def /_pf {} def /_ps {} def /_psf {} def /_pss {} def % text operands /_a null def /_as null def /_tt 2 array def /_tl 2 array def /_tm matrix def /t {} def % color operands /_gf null def /_cf 4 array def /_if null def /_of false def /_fc {} def /_gs null def /_cs 4 array def /_is null def /_os false def /_sc {} def /_i null def Adobe_Illustrator881 begin Adobe_Illustrator881 { dup xcheck { bind } if pop pop } forall end end Adobe_Illustrator881 begin Adobe_Illustrator881_vars begin newpath } def /terminate % - terminate - { end end } def % definition operators /_ % - _ null null def /ddef % key value ddef - { Adobe_Illustrator881_vars 3 1 roll put } def /xput % key value literal xput - { dup load dup length exch maxlength eq { dup dup load dup length 2 mul dict copy def } if load begin def end } def /npop % integer npop - { { pop } repeat } def % marking operators /sw % ax ay length string sw x y { stringwidth exch 5 -1 roll 3 index 1 sub mul add 4 1 roll 3 1 roll 1 sub mul add } def /ss % ax ay length string matrix ss - { 3 -1 roll pop 4 1 roll { 2 npop (0) exch 2 copy 0 exch put pop gsave false charpath currentpoint 4 index setmatrix stroke grestore moveto 2 copy rmoveto } exch cshow 3 npop } def % path operators /sp % ax ay length string sp - { exch pop { 2 npop (0) exch 2 copy 0 exch put pop false charpath 2 copy rmoveto } exch cshow 2 npop } def % path construction operators /pl % x y pl x y { transform 0.25 sub round 0.25 add exch 0.25 sub round 0.25 add exch itransform } def /setstrokeadjust where { pop true setstrokeadjust /c % x1 y1 x2 y2 x3 y3 c - { curveto } def /C /c load def /v % x2 y2 x3 y3 v - { currentpoint 6 2 roll curveto } def /V /v load def /y % x1 y1 x2 y2 y - { 2 copy curveto } def /Y /y load def /l % x y l - { lineto } def /L /l load def /m % x y m - { moveto } def } { /c { pl curveto } def /C /c load def /v { currentpoint 6 2 roll pl curveto } def /V /v load def /y { pl 2 copy curveto } def /Y /y load def /l { pl lineto } def /L /l load def /m { pl moveto } def } ifelse % graphic state operators /d % array phase d - { setdash } def /cf % - cf flatness currentflat def /i % flatness i - { dup 0 eq { pop cf } if setflat } def /j % linejoin j - { setlinejoin } def /J % linecap J - { setlinecap } def /M % miterlimit M - { setmiterlimit } def /w % linewidth w - { setlinewidth } def % path painting operators /H % - H - {} def /h % - h - { closepath } def /N % - N - { newpath } def /n % - n - /N load def /F % - F - { _pf } def /f % - f - { closepath F } def /S % - S - { _ps } def /s % - s - { closepath S } def /B % - B - { gsave F grestore S } def /b % - b - { closepath B } def /W % - W - { clip } def % text painting operators /ta % length string ta ax ay length string { _as moveto _tt aload pop 4 -2 roll } def /tl % - tl - { _tl aload pop translate } def /as % - as array { { 0 0 } { 2 copy _tt aload pop 4 -2 roll sw exch neg 2 div exch neg 2 div } { 2 copy _tt aload pop 4 -2 roll sw exch neg exch neg } { 0 0 } } cvlit def /z % literal size leading tracking align z - { /_a exch ddef /_as as _a get ddef _a 2 le { 0 _tt astore pop 0 exch neg _tl astore pop } { 0 exch neg _tt astore pop neg 0 _tl astore pop } ifelse exch findfont exch scalefont setfont } def /tm % matrix tm - { _tm currentmatrix pop concat } def /I % matrix I - { tm /t { ta sp tl } ddef } def /o % matrix o - { tm /t { ta 4 npop tl newpath } ddef } def /e % matrix e - { tm /t { ta _psf tl newpath } ddef } def /r % matrix r - { tm /t { ta _tm _pss tl newpath } ddef } def /a % matrix a - { tm /t { 2 copy ta _psf newpath ta _tm _pss tl newpath } ddef } def /T % - T - { _tm setmatrix } def % font operators /Z % array literal literal direction Z - { pop findfont begin currentdict dup length 1 add dict begin { 1 index /FID ne { def } { 2 npop } ifelse } forall /FontName exch def dup length 0 ne { /Encoding Encoding 256 array copy def 0 exch { dup type /nametype eq { Encoding 2 index 2 index put pop 1 add } { exch pop } ifelse } forall } if pop currentdict dup end end /FontName get exch definefont pop } def % group operators /u % - u - {} def /U % - U - {} def /q % - q - { gsave } def /Q % - Q - { grestore } def % place operators /` % matrix llx lly urx ury string ` - { /_i save ddef 6 1 roll 4 npop concat userdict begin /showpage {} def false setoverprint pop } def /~ % - ~ - { end _i restore } def % color operators /O % flag O - { 0 ne /_of exch ddef /_lp /none ddef } def /R % flag R - { 0 ne /_os exch ddef /_lp /none ddef } def /g % gray g - { /_gf exch ddef /_fc { _lp /fill ne { _of setoverprint _gf setgray /_lp /fill ddef } if } ddef /_pf { _fc fill } ddef /_psf { _fc exch pop ashow } ddef /_lp /none ddef } def /G % gray G - { /_gs exch ddef /_sc { _lp /stroke ne { _os setoverprint _gs setgray /_lp /stroke ddef } if } ddef /_ps { _sc stroke } ddef /_pss { _sc ss } ddef /_lp /none ddef } def /k % cyan magenta yellow black k - { _cf astore pop /_fc { _lp /fill ne { _of setoverprint _cf aload pop setcmykcolor /_lp /fill ddef } if } ddef /_pf { _fc fill } ddef /_psf { _fc exch pop ashow } ddef /_lp /none ddef } def /K % cyan magenta yellow black K - { _cs astore pop /_sc { _lp /stroke ne { _os setoverprint _cs aload pop setcmykcolor /_lp /stroke ddef } if } ddef /_ps { _sc stroke } ddef /_pss { _sc ss } ddef /_lp /none ddef } def /x % cyan magenta yellow black name gray x - { /_gf exch ddef findcmykcustomcolor /_if exch ddef /_fc { _lp /fill ne { _of setoverprint _if _gf 1 exch sub setcustomcolor /_lp /fill ddef } if } ddef /_pf { _fc fill } ddef /_psf { _fc exch pop ashow } ddef /_lp /none ddef } def /X % cyan magenta yellow black name gray X - { /_gs exch ddef findcmykcustomcolor /_is exch ddef /_sc { _lp /stroke ne { _os setoverprint _is _gs 1 exch sub setcustomcolor /_lp /stroke ddef } if } ddef /_ps { _sc stroke } ddef /_pss { _sc ss } ddef /_lp /none ddef } def % locked object operators /A % value A - { pop } def currentdict readonly pop end setpacking %%EndProcSet %%EndProlog %%BeginSetup Adobe_cmykcolor /initialize get exec Adobe_cshow /initialize get exec Adobe_customcolor /initialize get exec Adobe_Illustrator881 /initialize get exec %%BeginEncoding: _Helvetica-BoldOblique Helvetica-BoldOblique [ 39/quotesingle 96/grave 128/Adieresis/Aring/Ccedilla/Eacute/Ntilde/Odieresis /Udieresis/aacute/agrave/acircumflex/adieresis/atilde/aring/ccedilla/eacute /egrave/ecircumflex/edieresis/iacute/igrave/icircumflex/idieresis/ntilde /oacute/ograve/ocircumflex/odieresis/otilde/uacute/ugrave/ucircumflex /udieresis/dagger/degree/cent/sterling/section/bullet/paragraph/germandbls /registered/copyright/trademark/acute/dieresis/.notdef/AE/Oslash /.notdef/plusminus/.notdef/.notdef/yen/mu/.notdef/.notdef /.notdef/.notdef/.notdef/ordfeminine/ordmasculine/.notdef/ae/oslash /questiondown/exclamdown/logicalnot/.notdef/florin/.notdef/.notdef /guillemotleft/guillemotright/ellipsis/.notdef/Agrave/Atilde/Otilde/OE/oe /endash/emdash/quotedblleft/quotedblright/quoteleft/quoteright/divide /.notdef/ydieresis/Ydieresis/fraction/currency/guilsinglleft/guilsinglright /fi/fl/daggerdbl/periodcentered/quotesinglbase/quotedblbase/perthousand /Acircumflex/Ecircumflex/Aacute/Edieresis/Egrave/Iacute/Icircumflex /Idieresis/Igrave/Oacute/Ocircumflex/.notdef/Ograve/Uacute/Ucircumflex /Ugrave/dotlessi/circumflex/tilde/macron/breve/dotaccent/ring/cedilla /hungarumlaut/ogonek/caron ]/_Helvetica-BoldOblique/Helvetica-BoldOblique 0 Z %%EndEncoding %%EndSetup 0 A u 0 R 0 G 0 i 0 J 0 j 2 w 4 M [3 5 ]0 d %%Note: 257.9618 304.3015 m 352.1395 304.3015 428.4881 317.5982 428.4881 334 c 428.4881 350.4018 352.1395 363.6985 257.9618 363.6985 c 163.7841 363.6985 87.4354 350.4018 87.4354 334 c 87.4354 317.5982 163.7841 304.3015 257.9618 304.3015 c s 257.9618 334 m S U u 194.4451 248.0587 m 260.7041 248.0587 314.4194 263.255 314.4194 282 c 314.4194 300.745 260.7041 315.9413 194.4451 315.9413 c 128.186 315.9413 74.4707 300.745 74.4707 282 c 74.4707 263.255 128.186 248.0587 194.4451 248.0587 c s 194.4451 282 m S U u 0 O 0 g 1 w []0 d 430 280 m 430 334 L 72 334 L 72 280 L 430 280 L f 251 307 m F U u 0.5 g 301.8057 460 m 301.8057 514 L 72.1943 514 L 72.1943 460 L 301.8057 460 L f 187 487 m F U 0 g /_Helvetica-BoldOblique 12 12 0 0 z [1 0 0 1 81 438]e 18 (Uninfected Program)t T [1 0 0 1 81 372]e 16 (Infected Program)t T u 10 M 289.539 431 m 298.308 453.784 L 307.078 431 L 302.539 431 L 302.539 416.14 306.555 402.686 313.047 392.948 C 321.705 379.961 326.033 362.942 326.033 345.922 C 317.572 345.922 L 317.572 359.693 314.069 373.466 307.064 383.974 C 299.041 396.008 294.078 412.634 294.078 431 C 289.539 431 L f u 0.09 g 0 R 0 G 297.895 453.784 m 306.665 431 L 302.126 431 L 302.126 416.14 306.142 402.686 312.634 392.948 C 321.292 379.961 325.62 362.942 325.62 345.922 C 317.159 345.922 L 317.159 359.693 313.656 373.466 306.651 383.974 C 298.628 396.008 293.665 412.634 293.665 431 C 289.126 431 L 297.895 453.784 L b 0.181 g 297.482 453.784 m 306.252 431 L 301.713 431 L 301.713 416.14 305.729 402.686 312.221 392.948 C 320.879 379.961 325.207 362.942 325.207 345.922 C 316.746 345.922 L 316.746 359.693 313.243 373.466 306.238 383.974 C 298.215 396.008 293.252 412.634 293.252 431 C 288.713 431 L 297.482 453.784 L b 0.272 g 297.07 453.784 m 305.84 431 L 301.301 431 L 301.301 416.14 305.317 402.686 311.809 392.948 C 320.467 379.961 324.795 362.942 324.795 345.922 C 316.334 345.922 L 316.334 359.693 312.831 373.466 305.826 383.974 C 297.803 396.008 292.84 412.634 292.84 431 C 288.301 431 L 297.07 453.784 L b 0.363 g 296.657 453.784 m 305.427 431 L 300.888 431 L 300.888 416.14 304.904 402.686 311.396 392.948 C 320.054 379.961 324.382 362.942 324.382 345.922 C 315.921 345.922 L 315.921 359.693 312.418 373.466 305.413 383.974 C 297.39 396.008 292.427 412.634 292.427 431 C 287.888 431 L 296.657 453.784 L b 0.454 g 296.244 453.784 m 305.014 431 L 300.475 431 L 300.475 416.14 304.491 402.686 310.983 392.948 C 319.641 379.961 323.969 362.942 323.969 345.922 C 315.508 345.922 L 315.508 359.693 312.005 373.466 305 383.974 C 296.977 396.008 292.014 412.634 292.014 431 C 287.475 431 L 296.244 453.784 L b 0.545 g 295.832 453.784 m 304.602 431 L 300.063 431 L 300.063 416.14 304.079 402.686 310.571 392.948 C 319.229 379.961 323.557 362.942 323.557 345.922 C 315.096 345.922 L 315.096 359.693 311.593 373.466 304.588 383.974 C 296.565 396.008 291.602 412.634 291.602 431 C 287.063 431 L 295.832 453.784 L b 0.636 g 295.419 453.784 m 304.189 431 L 299.65 431 L 299.65 416.14 303.666 402.686 310.158 392.948 C 318.816 379.961 323.144 362.942 323.144 345.922 C 314.683 345.922 L 314.683 359.693 311.18 373.466 304.175 383.974 C 296.152 396.008 291.189 412.634 291.189 431 C 286.65 431 L 295.419 453.784 L b 0.727 g 295.006 453.784 m 303.776 431 L 299.237 431 L 299.237 416.14 303.253 402.686 309.745 392.948 C 318.403 379.961 322.731 362.942 322.731 345.922 C 314.27 345.922 L 314.27 359.693 310.767 373.466 303.762 383.974 C 295.739 396.008 290.776 412.634 290.776 431 C 286.237 431 L 295.006 453.784 L b 0.818 g 294.594 453.784 m 303.364 431 L 298.825 431 L 298.825 416.14 302.841 402.686 309.333 392.948 C 317.991 379.961 322.319 362.942 322.319 345.922 C 313.858 345.922 L 313.858 359.693 310.355 373.466 303.35 383.974 C 295.327 396.008 290.364 412.634 290.364 431 C 285.825 431 L 294.594 453.784 L b 0.909 g 294.181 453.784 m 302.951 431 L 298.412 431 L 298.412 416.14 302.428 402.686 308.92 392.948 C 317.578 379.961 321.906 362.942 321.906 345.922 C 313.445 345.922 L 313.445 359.693 309.942 373.466 302.937 383.974 C 294.914 396.008 289.951 412.634 289.951 431 C 285.412 431 L 294.181 453.784 L b U 1 g 285 431 m 293.769 453.784 L 302.539 431 L 298 431 L 298 416.14 302.016 402.686 308.508 392.948 C 317.166 379.961 321.494 362.942 321.494 345.922 C 313.033 345.922 L 313.033 359.693 309.53 373.466 302.525 383.974 C 294.502 396.008 289.539 412.634 289.539 431 C 285 431 L b U u 0.5 g 4 M 308.8057 280 m 308.8057 334 L 79.1943 334 L 79.1943 280 L 308.8057 280 L f 194 307 m F U 0 R 0 G 2 w [3 5 ]0 d 87.4354 334 m S u 0 O 0 g 0.3 w 10 M []0 d 108.0182 359.9782 m 103.0684 346.4946 L 116.5521 341.5448 L 108.7336 337.9252 L 95.25 342.875 L 100.1997 356.3586 L 108.0182 359.9782 L f U u 294.6153 251.1182 m 298.3945 264.9755 L 284.5373 268.7547 L 292.0177 273.0292 L 305.875 269.25 L 302.0957 255.3927 L 294.6153 251.1182 L f U %%Trailer Adobe_Illustrator881 /terminate get exec Adobe_customcolor /terminate get exec Adobe_cshow /terminate get exec Adobe_cmykcolor /terminate get exec endTexFig 281 1023 a @F12 @sf(Figure)14 b(2:)20 b(Add-on)c(Virus)f(Infection)-1227 133 y @F8 @sf(2.5.3)52 b(T)l(riggers)-348 105 y @F12 @sf(Once)24 b(a)e (virus)g(has)g(infected)h(a)f(program,)h(it)e(seeks)i(to)f(spread)g (itself)g(to)g(other)g(programs,)g(and)-1794 57 y(ev)o(en)o(tually)13 b (to)g(other)h(systems.)19 b(Simple)14 b(viruses)f(do)h(no)g(more)f(than)h (this,)f(but)i(most)e(viruses)g(are)h(not)-1795 56 y(simple)h(viruses.)21 b (Common)15 b(viruses)g(w)o(ait)f(for)h(a)g(sp)q(eci\014c)i(triggeri)o(ng)d (condition,)h(and)h(then)g(p)q(erform)-1795 57 y(some)11 b(activit)o(y)l (.)17 b(The)12 b(activit)o(y)e(can)i(b)q(e)g(as)f(simple)g(as)g(prin)o (ting)g(a)g(message)g(to)g(the)g(user,)h(or)f(as)h(complex)-1795 56 y(as)j (seeking)h(particular)e(data)h(items)g(in)g(a)h(sp)q(eci\014c)g(\014le)g (and)g(c)o(hanging)f(their)g(v)m(alues.)21 b(Often,)16 b(viruses)-1795 57 y (are)f(destructiv)o(e,)f(remo)o(ving)g(\014les)i(or)e(reformatting)f(en)o (tire)i(disks.)-1097 76 y(The)g(conditions)f(that)f(trigger)h(viruses)g (can)h(b)q(e)g(arbitraril)o(y)e(complex.)20 b(If)15 b(it)f(is)g(p)q (ossible)g(to)g(write)-1795 56 y(a)20 b(program)f(to)g(determine)h(a)g (set)f(of)h(conditions,)g(then)g(those)g(same)g(conditions)f(can)h(b)q(e)h (used)f(to)-1795 56 y(trigger)10 b(a)h(virus.)19 b(This)11 b(includes)h(w)o (aiti)o(ng)e(for)h(a)h(sp)q(eci\014c)g(date)f(or)g(time,)h(determining)f (the)g(presence)i(or)-1795 57 y(absence)g(of)f(a)g(sp)q(eci\014c)i(set)e (of)g(\014les)g(\(or)g(their)g(con)o(ten)o(ts\),)g(examining)f(user)i(k)o (eystrok)o(es)e(for)h(a)g(sequence)-1793 56 y(of)18 b(input,)h(examining)f (displa)o(y)f(memory)h(for)g(a)g(sp)q(eci\014c)i(pattern,)e(or)g(c)o(hec)o (king)g(\014le)h(attributes)e(for)-1795 57 y(mo)q(di\014cation)i(and)h(p)q (ermission)g(informati)o(on.)33 b(Viruses)19 b(also)g(ma)o(y)g(b)q(e)i (triggered)e(based)h(on)g(some)-1795 56 y(random)c(ev)o(en)o(t.)22 b(One) 16 b(common)g(trigger)f(comp)q(onen)o(t)h(is)f(a)h(coun)o(ter)g(used)g(to)f (determine)h(ho)o(w)g(man)o(y)-1795 57 y(additional)f(programs)g(the)i (virus)f(has)g(succeeded)q 18 x(in)g(infecting|the)g(virus)g(do)q(es)h (not)f(trigger)f(un)o(til)-1795 56 y(it)g(has)g(propagated)f(itself)g(a)h (certain)g(minim)o(um)f(n)o(um)o(b)q(er)h(of)g(times.)k(Of)d(course,)f (the)g(trigger)e(can)j(b)q(e)-1794 57 y(an)o(y)f(com)o(bination)f(of)h (these)g(conditions,)f(to)q(o.)65 183 y(6)-983 b 6 @eop1 7 @bop0 @F4 @sf [< 00FF0003FFC00783E00F00F01E00F83E007C3C007C7C007E7C007E7C007EFC007EFC007EFC 007EFC007EFE007CFE007CFF00F8FD80F0FCFFE0FC7FC0FC08007C00007C00007E00F03E01 F83E01F81F01F80F01F807C0F003F07000FFE0001F80> 23 32 -2 31 28] 54 @dc [< FFFF83FFFEFFFF83FFFE07F0001FC007F0001FC007F0001FC007F0001FC007F0001FC007F0 001FC007F0001FC007F0001FC007F0001FC007F0001FC007F0001FC007F0001FC007F0001F C007F0001FC007F0001FC007FFFFFFC007FFFFFFC007F0001FC007F0001FC007F0001FC007 F0001FC007F0001FC007F0001FC007F0001FC007F0001FC007F0001FC007F0001FC007F000 1FC007F0001FC007F0001FC0FFFF83FFFEFFFF83FFFE> 39 34 -2 33 44] 72 @dc [< 001800C000003800E000003C01E000007C01F000007E03F000007E03F00000FE03D80000FB 07D80001FB079C0001F38F8C0001F18F0C0003E18F060003E0DF060007E0DE070007C0DE03 0007C07E03000F807C01800F807C01800F807801801F007800C0FFE7FF07F8FFE7FF07F8> 37 22 -1 21 40] 119 @dc [< 01FC3FC007FF3FC00F83BE001E00FE003E007E007C003E007C003E00FC003E00FC003E00FC 003E00FC003E00FC003E00FC003E00FC003E00FC003E007C003E007E003E003E003E001F00 7E000F81FE0007FFBE0001FC3E0000003E0000003E0000003E0000003E0000003E0000003E 0000003E0000003E0000003E0000003E0000003E000001FE000001FE00> 26 35 -2 34 31] 100 @dc [< 000E0000000E0000001F0000001F0000003F8000003F8000007FC000007CC000007CC00000 F8600000F8600001F0300001F0300003E0180003E0180007E01C0007C00C000FC00E000F80 06000F800600FFE01FE0FFE01FE0> 27 22 -1 21 30] 118 @dc [< FFE00000FFE000001F0000001F0000001F0000001F0000001F0000001F0000001F0000001F 0000001F0FC0001F3FF8001FE0FC001FC03E001F803F001F001F801F001F801F000FC01F00 0FC01F000FC01F000FC01F000FC01F000FC01F000FC01F000FC01F001F801F001F801F001F 001F803E001FF07C00FF3FF800FF0FE000> 26 32 -2 21 31] 112 @dc [< 01C00003E00007F00007F00007F00003E00001C00000000000000000000000000000000000 C00000C00000C00000C00000C00000C00000E00000E000007000007800003C00001F00001F 80000FC07807E0FC07E0FC07E0FC07E0F807E07007C0380F801FFF0007FC00> 19 35 -3 34 26] 63 @dc /@F11 @newfont @F11 @sf [< 03C00FF01FF83FFC7FFE7FFEFFFFFFFFFFFFFFFFFFFFFFFF7FFE7FFE3FFC1FF80FF003C0> 16 18 -3 19 23] 15 @dc 7 @eop0 0 0 7 @bop1 199 266 a 24155062 14208860 3486433 18353111 30785863 34403860 startTexFig %!PS-Adobe-2.0 EPSF-1.2 %%BoundingBox: 53 279 468 523 %%TemplateBox:288 360 288 360 %%TileBox:-552 730 0 1460 %%Creator: Adobe Illustrator 88(TM) 1.8.3 %%For: (Gene Spafford) (Purdue University Dept of CS) %%Title: (Infection3) %%CreationDate: (2/1/90) (8:09 PM) %%DocumentProcSets: Adobe_packedarray 0 0 %%DocumentSuppliedProcSets: Adobe_packedarray 0 0 %%DocumentProcSets: Adobe_cmykcolor 0 0 %%DocumentSuppliedProcSets: Adobe_cmykcolor 0 0 %%DocumentProcSets: Adobe_cshow 0 0 %%DocumentSuppliedProcSets: Adobe_cshow 0 0 %%DocumentProcSets: Adobe_customcolor 0 0 %%DocumentSuppliedProcSets: Adobe_customcolor 0 0 %%DocumentProcSets: Adobe_Illustrator881 0 0 %%DocumentSuppliedProcSets: Adobe_Illustrator881 0 0 %%ColorUsage: Black&White %%DocumentProcessColors: Black %%DocumentFonts: Helvetica-BoldOblique %%EndComments %%BeginProcSet: Adobe_packedarray 0 0 % packedarray Operators % Version 1.0 5/9/1988 % Copyright (C) 1987, 1988 % Adobe Systems Incorporated % All Rights Reserved userdict /Adobe_packedarray 5 dict dup begin put /initialize % - initialize - { /packedarray where { pop } { Adobe_packedarray begin Adobe_packedarray { dup xcheck { bind } if userdict 3 1 roll put } forall end } ifelse } def /terminate % - terminate - { } def /packedarray % arguments count packedarray array { array astore readonly } def /setpacking % boolean setpacking - { pop } def /currentpacking % - setpacking boolean { false } def currentdict readonly pop end %%EndProcSet Adobe_packedarray /initialize get exec %%BeginProcSet: Adobe_cmykcolor 0 0 % cmykcolor Operators % Version 1.1 1/23/1989 % Copyright (C) 1987, 1988, 1989 % Adobe Systems Incorporated % All Rights Reserved currentpacking true setpacking userdict /Adobe_cmykcolor 4 dict dup begin put /initialize % - initialize - { /setcmykcolor where { pop } { userdict /Adobe_cmykcolor_vars 2 dict dup begin put /_setrgbcolor /setrgbcolor load def /_currentrgbcolor /currentrgbcolor load def Adobe_cmykcolor begin Adobe_cmykcolor { dup xcheck { bind } if pop pop } forall end end Adobe_cmykcolor begin } ifelse } def /terminate % - terminate - { currentdict Adobe_cmykcolor eq { end } if } def /setcmykcolor % cyan magenta yellow black setcmykcolor - { 1 sub 4 1 roll 3 { 3 index add neg dup 0 lt { pop 0 } if 3 1 roll } repeat Adobe_cmykcolor_vars /_setrgbcolor get exec pop } def /currentcmykcolor % - currentcmykcolor cyan magenta yellow black { Adobe_cmykcolor_vars /_currentrgbcolor get exec 3 { 1 sub neg 3 1 roll } repeat 0 } def currentdict readonly pop end setpacking %%EndProcSet %%BeginProcSet: Adobe_cshow 0 0 % cshow Operator % Version 1.1 1/23/1989 % Copyright (C) 1987, 1988, 1989 % Adobe Systems Incorporated % All Rights Reserved currentpacking true setpacking userdict /Adobe_cshow 3 dict dup begin put /initialize % - initialize - { /cshow where { pop } { userdict /Adobe_cshow_vars 1 dict dup begin put /_cshow % - _cshow proc {} def Adobe_cshow begin Adobe_cshow { dup xcheck { bind } if userdict 3 1 roll put } forall end end } ifelse } def /terminate % - terminate - { } def /cshow % proc string cshow - { exch Adobe_cshow_vars exch /_cshow exch put { 0 0 Adobe_cshow_vars /_cshow get exec } forall } def currentdict readonly pop end setpacking %%EndProcSet %%BeginProcSet: Adobe_customcolor 0 0 % Custom Color Operators % Version 1.0 5/9/1988 % Copyright (C) 1987, 1988 % Adobe Systems Incorporated % All Rights Reserved currentpacking true setpacking userdict /Adobe_customcolor 5 dict dup begin put /initialize % - initialize - { /setcustomcolor where { pop } { Adobe_customcolor begin Adobe_customcolor { dup xcheck { bind } if pop pop } forall end Adobe_customcolor begin } ifelse } def /terminate % - terminate - { currentdict Adobe_customcolor eq { end } if } def /findcmykcustomcolor % cyan magenta yellow black name findcmykcustomcolor object { 5 packedarray } def /setcustomcolor % object tint setcustomcolor - { exch aload pop pop 4 { 4 index mul 4 1 roll } repeat 5 -1 roll pop setcmykcolor } def /setoverprint % boolean setoverprint - { pop } def currentdict readonly pop end setpacking %%EndProcSet %%BeginProcSet: Adobe_Illustrator881 0 0 % Adobe Illustrator (TM) Prolog % Version 1.19 1/23/1989 % Copyright (C) 1987, 1988, 1989 % Adobe Systems Incorporated % All Rights Reserved currentpacking true setpacking userdict /Adobe_Illustrator881 72 dict dup begin put % initialization /initialize % - initialize - { userdict /Adobe_Illustrator881_vars 29 dict dup begin put % paint operands /_lp /none def /_pf {} def /_ps {} def /_psf {} def /_pss {} def % text operands /_a null def /_as null def /_tt 2 array def /_tl 2 array def /_tm matrix def /t {} def % color operands /_gf null def /_cf 4 array def /_if null def /_of false def /_fc {} def /_gs null def /_cs 4 array def /_is null def /_os false def /_sc {} def /_i null def Adobe_Illustrator881 begin Adobe_Illustrator881 { dup xcheck { bind } if pop pop } forall end end Adobe_Illustrator881 begin Adobe_Illustrator881_vars begin newpath } def /terminate % - terminate - { end end } def % definition operators /_ % - _ null null def /ddef % key value ddef - { Adobe_Illustrator881_vars 3 1 roll put } def /xput % key value literal xput - { dup load dup length exch maxlength eq { dup dup load dup length 2 mul dict copy def } if load begin def end } def /npop % integer npop - { { pop } repeat } def % marking operators /sw % ax ay length string sw x y { stringwidth exch 5 -1 roll 3 index 1 sub mul add 4 1 roll 3 1 roll 1 sub mul add } def /ss % ax ay length string matrix ss - { 3 -1 roll pop 4 1 roll { 2 npop (0) exch 2 copy 0 exch put pop gsave false charpath currentpoint 4 index setmatrix stroke grestore moveto 2 copy rmoveto } exch cshow 3 npop } def % path operators /sp % ax ay length string sp - { exch pop { 2 npop (0) exch 2 copy 0 exch put pop false charpath 2 copy rmoveto } exch cshow 2 npop } def % path construction operators /pl % x y pl x y { transform 0.25 sub round 0.25 add exch 0.25 sub round 0.25 add exch itransform } def /setstrokeadjust where { pop true setstrokeadjust /c % x1 y1 x2 y2 x3 y3 c - { curveto } def /C /c load def /v % x2 y2 x3 y3 v - { currentpoint 6 2 roll curveto } def /V /v load def /y % x1 y1 x2 y2 y - { 2 copy curveto } def /Y /y load def /l % x y l - { lineto } def /L /l load def /m % x y m - { moveto } def } { /c { pl curveto } def /C /c load def /v { currentpoint 6 2 roll pl curveto } def /V /v load def /y { pl 2 copy curveto } def /Y /y load def /l { pl lineto } def /L /l load def /m { pl moveto } def } ifelse % graphic state operators /d % array phase d - { setdash } def /cf % - cf flatness currentflat def /i % flatness i - { dup 0 eq { pop cf } if setflat } def /j % linejoin j - { setlinejoin } def /J % linecap J - { setlinecap } def /M % miterlimit M - { setmiterlimit } def /w % linewidth w - { setlinewidth } def % path painting operators /H % - H - {} def /h % - h - { closepath } def /N % - N - { newpath } def /n % - n - /N load def /F % - F - { _pf } def /f % - f - { closepath F } def /S % - S - { _ps } def /s % - s - { closepath S } def /B % - B - { gsave F grestore S } def /b % - b - { closepath B } def /W % - W - { clip } def % text painting operators /ta % length string ta ax ay length string { _as moveto _tt aload pop 4 -2 roll } def /tl % - tl - { _tl aload pop translate } def /as % - as array { { 0 0 } { 2 copy _tt aload pop 4 -2 roll sw exch neg 2 div exch neg 2 div } { 2 copy _tt aload pop 4 -2 roll sw exch neg exch neg } { 0 0 } } cvlit def /z % literal size leading tracking align z - { /_a exch ddef /_as as _a get ddef _a 2 le { 0 _tt astore pop 0 exch neg _tl astore pop } { 0 exch neg _tt astore pop neg 0 _tl astore pop } ifelse exch findfont exch scalefont setfont } def /tm % matrix tm - { _tm currentmatrix pop concat } def /I % matrix I - { tm /t { ta sp tl } ddef } def /o % matrix o - { tm /t { ta 4 npop tl newpath } ddef } def /e % matrix e - { tm /t { ta _psf tl newpath } ddef } def /r % matrix r - { tm /t { ta _tm _pss tl newpath } ddef } def /a % matrix a - { tm /t { 2 copy ta _psf newpath ta _tm _pss tl newpath } ddef } def /T % - T - { _tm setmatrix } def % font operators /Z % array literal literal direction Z - { pop findfont begin currentdict dup length 1 add dict begin { 1 index /FID ne { def } { 2 npop } ifelse } forall /FontName exch def dup length 0 ne { /Encoding Encoding 256 array copy def 0 exch { dup type /nametype eq { Encoding 2 index 2 index put pop 1 add } { exch pop } ifelse } forall } if pop currentdict dup end end /FontName get exch definefont pop } def % group operators /u % - u - {} def /U % - U - {} def /q % - q - { gsave } def /Q % - Q - { grestore } def % place operators /` % matrix llx lly urx ury string ` - { /_i save ddef 6 1 roll 4 npop concat userdict begin /showpage {} def false setoverprint pop } def /~ % - ~ - { end _i restore } def % color operators /O % flag O - { 0 ne /_of exch ddef /_lp /none ddef } def /R % flag R - { 0 ne /_os exch ddef /_lp /none ddef } def /g % gray g - { /_gf exch ddef /_fc { _lp /fill ne { _of setoverprint _gf setgray /_lp /fill ddef } if } ddef /_pf { _fc fill } ddef /_psf { _fc exch pop ashow } ddef /_lp /none ddef } def /G % gray G - { /_gs exch ddef /_sc { _lp /stroke ne { _os setoverprint _gs setgray /_lp /stroke ddef } if } ddef /_ps { _sc stroke } ddef /_pss { _sc ss } ddef /_lp /none ddef } def /k % cyan magenta yellow black k - { _cf astore pop /_fc { _lp /fill ne { _of setoverprint _cf aload pop setcmykcolor /_lp /fill ddef } if } ddef /_pf { _fc fill } ddef /_psf { _fc exch pop ashow } ddef /_lp /none ddef } def /K % cyan magenta yellow black K - { _cs astore pop /_sc { _lp /stroke ne { _os setoverprint _cs aload pop setcmykcolor /_lp /stroke ddef } if } ddef /_ps { _sc stroke } ddef /_pss { _sc ss } ddef /_lp /none ddef } def /x % cyan magenta yellow black name gray x - { /_gf exch ddef findcmykcustomcolor /_if exch ddef /_fc { _lp /fill ne { _of setoverprint _if _gf 1 exch sub setcustomcolor /_lp /fill ddef } if } ddef /_pf { _fc fill } ddef /_psf { _fc exch pop ashow } ddef /_lp /none ddef } def /X % cyan magenta yellow black name gray X - { /_gs exch ddef findcmykcustomcolor /_is exch ddef /_sc { _lp /stroke ne { _os setoverprint _is _gs 1 exch sub setcustomcolor /_lp /stroke ddef } if } ddef /_ps { _sc stroke } ddef /_pss { _sc ss } ddef /_lp /none ddef } def % locked object operators /A % value A - { pop } def currentdict readonly pop end setpacking %%EndProcSet %%EndProlog %%BeginSetup Adobe_cmykcolor /initialize get exec Adobe_cshow /initialize get exec Adobe_customcolor /initialize get exec Adobe_Illustrator881 /initialize get exec %%BeginEncoding: _Helvetica-BoldOblique Helvetica-BoldOblique [ 39/quotesingle 96/grave 128/Adieresis/Aring/Ccedilla/Eacute/Ntilde/Odieresis /Udieresis/aacute/agrave/acircumflex/adieresis/atilde/aring/ccedilla/eacute /egrave/ecircumflex/edieresis/iacute/igrave/icircumflex/idieresis/ntilde /oacute/ograve/ocircumflex/odieresis/otilde/uacute/ugrave/ucircumflex /udieresis/dagger/degree/cent/sterling/section/bullet/paragraph/germandbls /registered/copyright/trademark/acute/dieresis/.notdef/AE/Oslash /.notdef/plusminus/.notdef/.notdef/yen/mu/.notdef/.notdef /.notdef/.notdef/.notdef/ordfeminine/ordmasculine/.notdef/ae/oslash /questiondown/exclamdown/logicalnot/.notdef/florin/.notdef/.notdef /guillemotleft/guillemotright/ellipsis/.notdef/Agrave/Atilde/Otilde/OE/oe /endash/emdash/quotedblleft/quotedblright/quoteleft/quoteright/divide /.notdef/ydieresis/Ydieresis/fraction/currency/guilsinglleft/guilsinglright /fi/fl/daggerdbl/periodcentered/quotesinglbase/quotedblbase/perthousand /Acircumflex/Ecircumflex/Aacute/Edieresis/Egrave/Iacute/Icircumflex /Idieresis/Igrave/Oacute/Ocircumflex/.notdef/Ograve/Uacute/Ucircumflex /Ugrave/dotlessi/circumflex/tilde/macron/breve/dotaccent/ring/cedilla /hungarumlaut/ogonek/caron ]/_Helvetica-BoldOblique/Helvetica-BoldOblique 0 Z %%EndEncoding %%EndSetup 0 R 0 G 0 i 0 J 0 j 2 w 10 M [3 5 ]0 d %%Note: 126.499 309 m 377.5 309 l S 0 A 0 O 0 g 1 w 4 M []0 d /_Helvetica-BoldOblique 12 12 0 0 z [1 0 0 1 216 446]e 18 (Uninfected Program)t T [1 0 0 1 216 342]e 16 (Infected Program)t T u 10 M 97.539 436 m 106.308 458.784 L 115.078 436 L 110.539 436 L 110.539 421.14 114.555 407.686 121.047 397.948 C 129.705 384.961 134.033 367.942 134.033 350.922 C 125.572 350.922 L 125.572 364.693 122.069 378.466 115.064 388.974 C 107.041 401.008 102.078 417.634 102.078 436 C 97.539 436 L f u 0.09 g 0 R 0 G 105.895 458.784 m 114.665 436 L 110.126 436 L 110.126 421.14 114.142 407.686 120.634 397.948 C 129.292 384.961 133.62 367.942 133.62 350.922 C 125.159 350.922 L 125.159 364.693 121.656 378.466 114.651 388.974 C 106.628 401.008 101.665 417.634 101.665 436 C 97.126 436 L 105.895 458.784 L b 0.181 g 105.482 458.784 m 114.252 436 L 109.713 436 L 109.713 421.14 113.729 407.686 120.221 397.948 C 128.879 384.961 133.207 367.942 133.207 350.922 C 124.746 350.922 L 124.746 364.693 121.243 378.466 114.238 388.974 C 106.215 401.008 101.252 417.634 101.252 436 C 96.713 436 L 105.482 458.784 L b 0.272 g 105.07 458.784 m 113.84 436 L 109.301 436 L 109.301 421.14 113.317 407.686 119.809 397.948 C 128.467 384.961 132.795 367.942 132.795 350.922 C 124.334 350.922 L 124.334 364.693 120.831 378.466 113.826 388.974 C 105.803 401.008 100.84 417.634 100.84 436 C 96.301 436 L 105.07 458.784 L b 0.363 g 104.657 458.784 m 113.427 436 L 108.888 436 L 108.888 421.14 112.904 407.686 119.396 397.948 C 128.054 384.961 132.382 367.942 132.382 350.922 C 123.921 350.922 L 123.921 364.693 120.418 378.466 113.413 388.974 C 105.39 401.008 100.427 417.634 100.427 436 C 95.888 436 L 104.657 458.784 L b 0.454 g 104.244 458.784 m 113.014 436 L 108.475 436 L 108.475 421.14 112.491 407.686 118.983 397.948 C 127.641 384.961 131.969 367.942 131.969 350.922 C 123.508 350.922 L 123.508 364.693 120.005 378.466 113 388.974 C 104.977 401.008 100.014 417.634 100.014 436 C 95.475 436 L 104.244 458.784 L b 0.545 g 103.832 458.784 m 112.602 436 L 108.063 436 L 108.063 421.14 112.079 407.686 118.571 397.948 C 127.229 384.961 131.557 367.942 131.557 350.922 C 123.096 350.922 L 123.096 364.693 119.593 378.466 112.588 388.974 C 104.565 401.008 99.602 417.634 99.602 436 C 95.063 436 L 103.832 458.784 L b 0.636 g 103.419 458.784 m 112.189 436 L 107.65 436 L 107.65 421.14 111.666 407.686 118.158 397.948 C 126.816 384.961 131.144 367.942 131.144 350.922 C 122.683 350.922 L 122.683 364.693 119.18 378.466 112.175 388.974 C 104.152 401.008 99.189 417.634 99.189 436 C 94.65 436 L 103.419 458.784 L b 0.727 g 103.006 458.784 m 111.776 436 L 107.237 436 L 107.237 421.14 111.253 407.686 117.745 397.948 C 126.403 384.961 130.731 367.942 130.731 350.922 C 122.27 350.922 L 122.27 364.693 118.767 378.466 111.762 388.974 C 103.739 401.008 98.776 417.634 98.776 436 C 94.237 436 L 103.006 458.784 L b 0.818 g 102.594 458.784 m 111.364 436 L 106.825 436 L 106.825 421.14 110.841 407.686 117.333 397.948 C 125.991 384.961 130.319 367.942 130.319 350.922 C 121.858 350.922 L 121.858 364.693 118.355 378.466 111.35 388.974 C 103.327 401.008 98.364 417.634 98.364 436 C 93.825 436 L 102.594 458.784 L b 0.909 g 102.181 458.784 m 110.951 436 L 106.412 436 L 106.412 421.14 110.428 407.686 116.92 397.948 C 125.578 384.961 129.906 367.942 129.906 350.922 C 121.445 350.922 L 121.445 364.693 117.942 378.466 110.937 388.974 C 102.914 401.008 97.951 417.634 97.951 436 C 93.412 436 L 102.181 458.784 L b U 1 g 93 436 m 101.769 458.784 L 110.539 436 L 106 436 L 106 421.14 110.016 407.686 116.508 397.948 C 125.166 384.961 129.494 367.942 129.494 350.922 C 121.033 350.922 L 121.033 364.693 117.53 378.466 110.525 388.974 C 102.502 401.008 97.539 417.634 97.539 436 C 93 436 L b U u 0.5 g 4 M 467 280 m 467 334 L 288.001 334 L 288.001 280 L 467 280 L f 377.5 307 m F U 0 R 0 G 2 w [3 5 ]0 d 87.435 334 m S u 0 O 0 g 0.3 w 10 M []0 d 259.131 299.024 m 269.384 309.082 L 259.326 319.336 L 267.941 319.253 L 278 309 L 267.746 298.941 L 259.131 299.024 L f U u 0.5 g 1 w 4 M 232.998 468 m 232.998 522 L 54 522 L 54 468 L 232.998 468 L f 143.499 495 m F U u 0 g 198.999 282 m 198.999 336 L 54 336 L 54 282 L 198.999 282 L f 126.499 309 m F U %%Trailer Adobe_Illustrator881 /terminate get exec Adobe_customcolor /terminate get exec Adobe_cshow /terminate get exec Adobe_cmykcolor /terminate get exec endTexFig 429 1023 a @F12 @sf(Figure)15 b(3:)k(In)o(trusiv)o(e)c(Virus)g(Infection) -1240 133 y @F4 @sf(2.6)56 b(Ho)n(w)19 b(do)g(viruses)f(spread?)-709 105 y @F12 @sf(Computer)c(viruses)g(can)h(infect)f(an)o(y)g(form)f(of)h (writable)f(storage,)g(including)h(hard)h(disk,)f(\015opp)o(y)g(disk,)-1795 57 y(tap)q(e,)h(optical)e(media,)h(or)g(memory)l(.)19 b(Infections)c(can)g (spread)g(when)g(a)f(computer)h(is)f(b)q(o)q(oted)h(from)f(an)-1795 56 y (infected)h(disk,)g(or)f(when)i(an)e(infected)i(program)d(is)i(run.)20 b (It)15 b(is)f(imp)q(ortan)o(t)g(to)g(realize)h(that)f(often)g(the)-1794 57 y(c)o(hain)g(of)f(infection)h(can)g(b)q(e)g(complex)g(and)g(con)o(v)o (oluted.)19 b(A)14 b(p)q(ossible)g(infection)f(migh)o(t)g(spread)h(in)f (the)-1794 56 y(follo)o(wi)o(ng)h(w)o(a)o(y:)-215 113 y @F11 @sf(\017)23 b @F12 @sf(A)13 b(clien)o(t)f(brings)h(in)g(a)f(disk)o(ette)g(with)h(a)f (program)g(that)h(is)f(malfunctioning)g(\(b)q(ecause)h(of)g(a)g(viral)-1682 57 y(infection\).)-248 94 y @F11 @sf(\017)23 b @F12 @sf(The)14 b (consultan)o(t)g(runs)g(the)h(program)e(to)h(disco)o(v)o(er)f(the)h(cause)h (of)f(the)g(bug|the)i(virus)d(spreads)-1680 56 y(in)o(to)h(the)h(memory)g (of)g(the)g(consultan)o(t's)f(computer.)-974 94 y @F11 @sf(\017)23 b @F12 @sf(The)16 b(consultan)o(t)e(copies)i(the)g(program)e(to)i(another)f (disk)g(for)g(later)g(in)o(v)o(estigati)o(on|the)g(virus)-1681 56 y (infects)g(the)g(cop)o(y)g(utilit)o(y)e(on)j(the)f(hard)g(disk.)-850 94 y @F11 @sf(\017)23 b @F12 @sf(The)12 b(consultan)o(t)e(mo)o(v)o(es)h(on)h (to)f(other)g(w)o(ork)g(preparing)g(a)g(letter|the)h(virus)f(infects)g (the)h(screen)-1680 57 y(editor)i(on)h(the)h(hard)f(disk.)300 203 y(7)-983 b 7 @eop1 8 @bop0 @F4 @sf [< 01E00003F00003F00003F00003F00003F00003F00003F00001F00001F00001F00000F00000 F00000F000007800007800003800001800001C00000C00000600C00300C00300C00180E000 C0E000607FFFF07FFFF87FFFF87FFFFC7FFFFE7FFFFE780000600000> 23 34 -3 33 28] 55 @dc [< 01FF000FFFE03F01F87C007C78003CF0001EF0001EF0001EF0001E70003E3800FC1FFFFC0F FFF81FFFF03FFF8038000030000030000013FC001FFF001F0F803E07C03C03C07C03E07C03 E07C03E07C03E07C03E03C03C03E07CF1F0F8F0FFF7F03FC1E> 24 33 -2 21 28] 103 @dc [< 7FF8007FF8000F80000F80000F80000F80000F80000F80000F80000F80000F80000F80000F 80000F80000F80000F80000F80000F80000F80000F8000FFFC00FFFC000F80000F80000F80 000F80000F80000F80000F83C00F87E007C7E003C7E001E3E000FFC0003F80> 19 35 -1 34 17] 102 @dc [< 2070181C0C06060703033B7FFFFFFE7C38> 8 17 -4 34 16] 39 @dc @F8 @sf [< 00C00001E00003F00003F00003F00003F00003F00003F00001F00001F00001F00001F00000 F00000F000007000007800003800003800001800000C00C00600C00300C00300E001807FFF C07FFFE07FFFF07FFFF87FFFF8600000> 21 30 -3 29 26] 55 @dc @F8 @sf [< FFFFFF00FFFFFFE007C007F007C003F807C001FC07C000FC07C000FE07C000FE07C000FE07 C000FE07C000FE07C000FC07C001FC07C001F807C003F007FFFFC007FFFF8007C00FE007C0 07F007C003F807C001F807C001FC07C001FC07C001FC07C001FC07C001FC07C001F807C003 F007C007E0FFFFFFC0FFFFFE00> 31 31 -2 30 37] 66 @dc [< FFFF0000FFFF000007E0000007E0000007E0000007E0000007E0000007E0000007E0000007 E0000007E0000007E0000007E0000007E0000007FFFE0007FFFF8007E00FE007E003F007E0 01F807E001F807E001FC07E001FC07E001FC07E001FC07E001FC07E001F807E001F807E003 F007E00FE0FFFFFF80FFFFFE00> 30 31 -2 30 36] 80 @dc [< 0007FC00003FFF8000FE01C003F0007007E000380FC000181F80000C3F00000C3F0000067F 0000067E0000067E000000FE000000FE000000FE000000FE000000FE000000FE000000FE00 00007E0000067E0000067F0000063F00000E3F00000E1F80001E0FC0001E07E0003E03F000 FE00FE03DE003FFF0E0007FC02> 31 31 -3 30 38] 67 @dc [< 0007FF0007FF0000F80000F80000F80000F80000F80000F80000F803F8F80FFEF81F87F83F 01F87E00F87E00F87C00F8FC00F8FC00F8FC00F8FC00F8FC00F8FC00F87C00F87E00F83E01 F83F01F81F877807FE3801F818> 24 29 -2 19 28] 113 @dc 8 @eop0 0 0 8 @bop1 142 307 a @F11 @sf(\017)23 b @F12 @sf(The)f(system)f(is)g (switc)o(hed)g(o\013)g(and)h(reb)q(o)q(oted)f(the)h(next)g(da)o(y|the)f (virus)h(is)f(cleared)g(from)-1681 57 y(memory)l(,)c(only)g(to)g(b)q(e)h (reinstalled)e(when)i(either)g(the)f(screen)h(editor)f(or)g(cop)o(y)g (utilit)o(y)f(is)h(used)-1680 56 y(next.)-146 94 y @F11 @sf(\017)23 b @F12 @sf(Someone)14 b(in)o(v)o(ok)o(es)f(the)i(infected)f(screen)h(editor)f (across)f(a)h(net)o(w)o(ork)g(link,)f(th)o(us)h(infecting)g(their)-1681 56 y(o)o(wn)g(system.)-357 142 y @F4 @sf(2.7)56 b(The)18 b(three)g(stages)g (of)h(a)g(virus's)f(life)-916 105 y @F12 @sf(F)l(or)c(a)g(virus)g(to)g (spread,)g(its)g(co)q(de)h(m)o(ust)f(b)q(e)h(executed.)21 b(This)14 b(can)g (o)q(ccur)h(either)f(as)g(the)h(direct)f(result)-1795 56 y(of)f(a)f(user)h (in)o(v)o(oking)e(an)i(infected)g(program,)f(or)g(indirectly)g(through)h (the)g(system)f(executing)h(the)g(co)q(de)-1794 57 y(as)i(part)g(of)f(the)i (system)e(b)q(o)q(ot)h(sequence)i(or)d(a)h(bac)o(kground)g(administratio)o (n)f(task.)-1399 76 y(The)21 b(virus)g(then)g(replicates,)h(infecting)e (other)h(programs.)37 b(It)21 b(ma)o(y)f(replicate)h(in)o(to)f(only)g(one) -1794 56 y(program)c(at)g(a)h(time,)f(it)g(ma)o(y)g(infect)h(some)g (randomly-c)o(hosen)f(set)h(of)f(programs,)g(or)g(it)g(ma)o(y)h(infect)-1795 57 y(ev)o(ery)12 b(program)f(on)h(the)g(system.)19 b(Sometimes)11 b(a)h (virus)g(will)e(replicate)i(based)g(on)g(some)g(random)g(ev)o(en)o(t)-1795 56 y(or)j(on)h(the)f(curren)o(t)h(v)m(alue)g(of)f(the)g(clo)q(c)o(k.)21 b (The)16 b(di\013eren)o(t)f(metho)q(ds)g(will)g(not)g(b)q(e)h(presen)o(ted)g (in)f(detail)-1795 57 y(b)q(ecause)h(the)g(result)e(is)h(the)g(same:)20 b (there)15 b(are)g(additional)f(copies)h(of)f(the)i(virus)e(on)i(y)o(our)e (system.)-1657 76 y(Finally)l(,)j(most)g(viruses)g(incorp)q(orate)g(a)h (manipulation)e(task)h(that)h(can)g(consist)f(of)g(a)h(v)m(ariet)o(y)f(of) -1795 56 y(e\013ects)g(\(some)f(o)q(dd,)i(some)f(malev)o(olen)o(t\))o 16 x (indicating)f(the)h(presence)h(of)e(the)i(virus.)25 b(T)o(ypical)16 b (manip-)-1795 57 y(ulations)g(migh)o(t)g(include)h(am)o(using)f(screen)h (displa)o(ys,)f(un)o(usual)h(sound)g(e\013ects,)g(system)f(reb)q(o)q(ots,)h (or)-1795 56 y(the)e(reformatting)f(of)g(the)i(user's)f(hard)g(disk.)-799 140 y @F8 @sf(2.7.1)52 b(Activ)m(ating)17 b(a)h(virus)-573 105 y @F12 @sf (The)f(IBM)f(PC)g(can)g(b)q(e)h(used)g(as)f(an)g(example)g(to)g(illustra)o (te)f(ho)o(w)h(a)g(virus)f(is)h(activ)m(ated.)23 b(Viruses)16 b(in)-1795 57 y(other)f(t)o(yp)q(es)g(of)g(computer)g(systems)g(b)q(eha)o(v)o(e)g(in)g (similar)f(manners.)-1196 139 y @F8 @sf(The)20 b(IBM)f(PC)g(b)q(o)q(ot)q 21 x(sequence)44 b @F12 @sf(This)17 b(section)g(giv)o(es)f(a)h(detailed)g (description)f(of)h(the)g(v)m(arious)-1795 57 y(p)q(oin)o(ts)k(in)g(the)g (IBM)g(PC)g(b)q(o)q(ot)g(sequence)h(that)e(can)i(b)q(e)f(infected)h(b)o(y)f (a)f(virus.)37 b(W)l(e)22 b(will)d(not)i(go)-1795 56 y(in)o(to)e(extensiv)o (e)h(detail)f(ab)q(out)h(the)g(op)q(erations)g(at)f(eac)o(h)h(of)g(these)g (stages;)i(the)e(in)o(terested)g(reader)-1795 57 y(ma)o(y)15 b(consult)g (the)h(op)q(erations)f(man)o(uals)f(of)h(these)h(systems,)f(or)g(an)o(y)g (of)g(the)h(man)o(y)f(\\ho)o(w-to")f(b)q(o)q(oks)-1794 56 y(a)o(v)m (ailable.)-115 76 y(The)h(IBM)h(PC)e(b)q(o)q(ot)i(sequence)g(has)f(six)g (comp)q(onen)o(ts:)-974 113 y @F11 @sf(\017)23 b @F12 @sf(R)o(OM)15 b (BIOS)i(routines)-455 94 y @F11 @sf(\017)23 b @F12 @sf(P)o(artit)o(ion)14 b (record)h(co)q(de)h(execution)146 150 y(8)-983 b 8 @eop1 9 @bop0 @F12 @sf [< 007FFE000007C0000003C0000003C0000003C0000003C0000003C0000003C0000003C00000 03C0000003C0000003C0000003C0000007C0000007A000000FB000001F1000001E0800003E 0800003C0400007C040000F8020000F0030001F0010001E0008003E0008007C00040078000 400F8000601F8000F8FFF003FF> 32 31 -1 30 34] 89 @dc @F8 @sf [< FFFF007F80FFFF01FFC007E003F86007E007F03007E00FE03007E00FE00007E00FE00007E0 0FE00007E00FC00007E00FC00007E00FC00007E00F800007E00F800007E01F000007E03E00 0007FFFC000007FFFF000007E01FC00007E007E00007E003F00007E003F00007E003F80007 E003F80007E003F80007E003F80007E003F00007E003F00007E007E00007E01FC000FFFFFF 0000FFFFF80000> 36 31 -2 30 39] 82 @dc [< 001FF80000FFFF0001F81F8007E007E00FC003F01F8001F83F8001FC3F0000FC7F0000FE7F 0000FE7E00007EFE00007FFE00007FFE00007FFE00007FFE00007FFE00007FFE00007FFE00 007FFE00007F7E00007E7E00007E7F0000FE3F0000FC1F0000F81F8001F80FC003F007E007 E001F81F8000FFFF00001FF800> 32 31 -3 30 39] 79 @dc @F12 @sf [< C000C000C0006000600060003000300030001800180018000C000C000C0006000600060003 000300030001800180018000C000C000C0006000600060003000300030001800180018000C 000C000C000600060006000300030001> 16 45 -3 33 23] 47 @dc 9 @eop0 0 0 9 @bop1 142 307 a @F11 @sf(\017)23 b @F12 @sf(Bo)q(ot)15 b(sector)f (co)q(de)i(execution)-582 94 y @F11 @sf(\017)23 b @F12 @sf(IO.SYS)16 b (and)f(MSDOS.SYS)h(co)q(de)g(execution)-866 94 y @F11 @sf(\017)23 b @F12 @sf (COMMAND.COM)14 b(command)h(shell)g(execution)-937 94 y @F11 @sf(\017)23 b @F12 @sf(A)o(UTOEXEC.BA)l(T)15 b(batc)o(h)g(\014le)g(execution)-816 139 y @F8 @sf(R)o(OM)i(BIOS)46 b @F12 @sf(When)16 b(an)g(IBM)f(PC,)g(or)g (compatible)g(PC,)g(is)g(b)q(o)q(oted,)h(the)f(mac)o(hine)h(executes)-1794 57 y(a)g(set)g(of)f(routines)g(in)h(R)o(OM)g(\(read-only)g(memory\).)21 b (These)16 b(routines)g(initiali)o(ze)f(the)h(hardw)o(are)f(and)-1794 56 y (pro)o(vide)c(a)g(basic)h(set)f(of)g(input/output)g(routines)g(that)g(can)g (b)q(e)h(used)g(to)f(access)h(the)f(disks,)h(screen,)g(and)-1794 57 y(k)o (eyb)q(oard)j(of)g(the)g(system.)20 b(These)15 b(routines)g(constitute)f (the)i(basic)e(input/output)h(system)g(\(BIOS\).)-1721 76 y(R)o(OM)k (routines)f(cannot)g(b)q(e)h(infected)g(b)o(y)g(viral)e(co)q(de)j(\(except)f (at)f(the)g(man)o(ufacturing)g(stage\),)-1796 56 y(as)k(they)h(are)g (presen)o(t)f(in)h(read-only)f(memory)g(that)g(cannot)h(b)q(e)g(mo)q (di\014ed)g(b)o(y)g(soft)o(w)o(ar)o(e.)41 b(Some)-1794 57 y(man)o (ufacturers)21 b(no)o(w)f(pro)o(vide)h(extended)h(R)o(OMs)f(con)o(taining)f (further)h(comp)q(onen)o(ts)g(of)f(the)i(b)q(o)q(ot)-1795 56 y(sequence) 14 b(\(e.g.,)d(partition)g(record)h(and)g(b)q(o)q(ot)g(sector)g(co)q(de\).) 19 b(This)12 b(trend)h(reduces)g(the)f(opp)q(ortunities)-1795 56 y(for)g (viral)e(infection,)i(but)g(also)g(ma)o(y)f(reduce)i(the)f(\015exibilit)o (y)f(and)h(con\014gurabilit)o(y)f(of)g(the)h(\014nal)g(system.)-1724 140 y @F8 @sf(P)o(artition)18 b(Record)46 b @F12 @sf(The)17 b(R)o(OM)g(co)q(de)h (executes)g(a)f(blo)q(c)o(k)f(of)h(co)q(de)h(stored)e(at)h(a)g(w)o (ell-kno)o(wn)-1796 57 y(lo)q(cation)e(on)h(the)h(hard)f(disk)g(\(head)g (0,)g(trac)o(k)f(0,)h(sector)f(1\).)23 b(The)16 b(IBM)h(PC)f(disk)f(op)q (erating)h(system)-1795 56 y(\(DOS\))10 b(allo)o(ws)f(a)h(hard)h(disk)f (unit)g(to)g(b)q(e)i(divided)e(in)o(to)g(up)h(to)f(four)g(logical)f (partiti)o(ons.)17 b(Th)o(us,)11 b(a)f(100Mb)-1795 56 y(hard)17 b(disk)f (could)g(b)q(e)h(divided)g(in)o(to)e(one)i(60Mb)f(and)g(t)o(w)o(o)g(20Mb)f (partitions.)22 b(These)17 b(partitions)e(are)-1795 57 y(seen)h(b)o(y)g (DOS)g(as)f(separate)g(driv)o(es:)20 b(\\C,")15 b(\\D,")f(and)i(so)f(on.) 21 b(The)16 b(size)f(of)g(eac)o(h)h(partition)e(is)h(stored)-1795 56 y(in)f (the)g(partition)f(record,)h(as)g(is)f(a)h(blo)q(c)o(k)g(of)g(co)q(de)h (resp)q(onsible)f(for)g(lo)q(cating)f(a)g(b)q(o)q(ot)h(blo)q(c)o(k)g(on)h (one)f(of)-1795 57 y(the)h(logical)f(partitio)o(ns.)-355 76 y(The)19 b (partiti)o(on)e(record)i(co)q(de)g(can)g(b)q(e)g(infected)g(b)o(y)f(a)h (virus,)f(but)h(the)g(co)q(de)g(blo)q(c)o(k)f(is)g(only)g(446)-1795 56 y (b)o(ytes)h(in)h(length.)32 b(Th)o(us,)20 b(a)f(common)g(approac)o(h)g(is)g (to)g(hide)h(the)f(original)f(partitio)o(n)h(record)g(at)g(a)-1795 57 y (kno)o(wn)g(lo)q(cation)g(on)g(the)h(disk,)f(and)h(then)g(to)f(c)o(hain)g (to)g(this)g(sector)g(from)f(the)i(viral)e(co)q(de)i(in)f(the)-1794 56 y (partition)13 b(record.)20 b(This)15 b(is)f(the)h(tec)o(hnique)g(used)h(b)o (y)e(the)h(New)g(Zealand)g(virus,)f(disco)o(v)o(ered)g(in)h(1988.)-1796 57 y(\(See)h(\014gures)f(4)g(and)g(5.\))-261 61 y 2 setlinewidth 51 102 a (R)o(OM)-160 -102 y currentpoint newpath 446 2131 moveto 536 2131 lineto stroke moveto currentpoint newpath 506 2139 moveto 536 2131 lineto stroke moveto currentpoint newpath 506 2124 moveto 536 2131 lineto stroke moveto currentpoint newpath 536 2221 moveto 536 2041 lineto 776 2041 lineto 776 2221 lineto 536 2221 lineto stroke moveto 331 77 a(P)o(artit)o(ion)-161 50 y(Record)-489 -127 y currentpoint newpath 776 2221 moveto 776 2041 lineto 1016 2041 lineto 1016 2221 lineto 776 2221 lineto stroke moveto currentpoint newpath 1016 2221 moveto 1016 2041 lineto 1256 2041 lineto 1256 2221 lineto 1016 2221 lineto stroke moveto 852 77 a(Bo)q(ot)-111 50 y(Sector)-962 -127 y currentpoint newpath 1256 2221 moveto 1256 2041 lineto 1706 2041 lineto 1706 2221 lineto 1256 2221 lineto stroke moveto currentpoint newpath 656 2221 moveto 656 2281 lineto stroke moveto currentpoint newpath 656 2281 moveto 1136 2281 lineto stroke moveto currentpoint newpath 1136 2281 moveto 1136 2221 lineto stroke moveto currentpoint newpath 1144 2251 moveto 1136 2221 lineto stroke moveto currentpoint newpath 1129 2251 moveto 1136 2221 lineto stroke moveto 377 317 a(Figure)g(4:)k(Hard)c(disk)g(b)q(efore)h (infection)-370 219 y(9)-983 b 9 @eop1 10 @bop0 /@F0 @newfont @F0 @sf [< FFFC0FC0078007800780078007800780078007800780078007800780078007800780078007 8007800780078007800780078007800780078007800FC0FFFC> 14 31 -2 30 18] 73 @dc [< 001FE0000070380001E01E0003800700070003800F0003C01E0001E03E0001F03C0000F07C 0000F87C0000F878000078F800007CF800007CF800007CF800007CF800007CF800007CF800 007CF800007CF800007C780000787C0000F87C0000F83C0000F03C0000F01E0001E00F0003 C0070003800380070001C00E0000703800001FE000> 30 33 -4 31 38] 79 @dc [< 70F8F8F870> 5 5 -5 4 15] 46 @dc [< 81FC00C60300F80180E000C0C000E0C000608000708000708000708000700000700000F000 01F00003E0000FE001FFC007FF801FFF003FFC007F80007C0000F80000F00000E00020E000 20E00020E000606000606000E03000E01803E00C0C6003F020> 20 33 -4 31 28] 83 @dc [< 003FFF00000003E000000001E000000001E000000001E000000001E000000001E000000001 E000000001E000000001E000000001E000000001E000000001E000000003F000000003D000 000007C80000000F880000000F040000001F060000003E020000003C010000007C01000000 F800800000F000400001F000400003E000200003C000300007C00010000F800018001F8000 3E00FFF000FF80> 33 31 -2 30 37] 89 @dc @F10 @sf [< 8040202010080804043C3C3C3C1C> 6 14 -3 4 14] 44 @dc @F10 @sf [< FFF8000F800007800007800007800007800003C00003C00003C00003C00001E00001E00001 E00001E00000F00000F00000F00000F000007800007800007800007800003C00003C00003C 00003C00001E00001E00001E00001F0001FFF0> 20 31 -3 30 18] 73 @dc 10 @eop0 0 0 10 @bop1 184 266 a 2 setlinewidth 58 162 a @F12 @sf(R)o(OM)-167 -162 y currentpoint newpath 409 416 moveto 499 416 lineto stroke moveto currentpoint newpath 469 424 moveto 499 416 lineto stroke moveto currentpoint newpath 469 409 moveto 499 416 lineto stroke moveto currentpoint newpath 499 506 moveto 499 326 lineto 739 326 lineto 739 506 lineto 499 506 lineto stroke moveto 385 137 a(Viral)-102 50 y(Co)q(de)-486 -187 y currentpoint newpath 739 506 moveto 739 326 lineto 979 326 lineto 979 506 lineto 739 506 lineto stroke moveto currentpoint newpath 979 506 moveto 979 326 lineto 1219 326 lineto 1219 506 lineto 979 506 lineto stroke moveto 834 137 a(Original)-180 50 y(P)o(art.)19 b(Rec)-1011 -187 y currentpoint newpath 1219 506 moveto 1219 326 lineto 1459 326 lineto 1459 506 lineto 1219 506 lineto stroke moveto 1106 137 a(Bo)q(ot)-110 50 y (Sector)-1217 -187 y currentpoint newpath 1459 506 moveto 1459 326 lineto 1759 326 lineto 1759 506 lineto 1459 506 lineto stroke moveto currentpoint newpath 619 506 moveto 619 566 lineto stroke moveto currentpoint newpath 619 566 moveto 1099 566 lineto stroke moveto currentpoint newpath 1099 566 moveto 1099 506 lineto stroke moveto currentpoint newpath 1107 536 moveto 1099 506 lineto stroke moveto currentpoint newpath 1092 536 moveto 1099 506 lineto stroke moveto currentpoint newpath 1099 326 moveto 1099 266 lineto stroke moveto currentpoint newpath 1099 266 moveto 1339 266 lineto stroke moveto currentpoint newpath 1339 266 moveto 1339 326 lineto stroke moveto currentpoint newpath 1332 296 moveto 1339 326 lineto stroke moveto currentpoint newpath 1347 296 moveto 1339 326 lineto stroke moveto 214 377 a (Figure)14 b(5:)20 b(Hard)15 b(disk)g(after)f(infection)h(b)o(y)g(New)g (Zealand)g(Virus)-1400 134 y @F8 @sf(Bo)q(ot)e(sectors)45 b @F12 @sf(The) 10 b(partition)f(record)i(co)q(de)g(lo)q(cates)e(the)i(\014rst)f(sector)g (on)g(the)h(logical)e(partiti)o(on,)-1796 56 y(kno)o(wn)16 b(as)h(the)f(b)q (o)q(ot)h(sector.)23 b(\(If)16 b(a)h(\015opp)o(y)f(disk)h(is)f(inserted,)g (the)h(R)o(OM)f(will)g(execute)h(the)f(co)q(de)i(in)-1795 56 y(its)f(b)q (o)q(ot)g(sector,)f(head)i(0,)f(trac)o(k)f(0,)h(sector)g(1.\))25 b(The)18 b (b)q(o)q(ot)f(sector)f(con)o(tains)h(the)g(BIOS)h(parameter)-1795 57 y (blo)q(c)o(k)d(\(BPB\).)f(The)h(BPB)g(con)o(tains)f(detailed)g(informatio)o (n)g(on)h(the)g(la)o(y)o(out)o 14 x(of)f(the)h(\014ling)f(system)h(on)-1795 56 y(disk,)e(as)g(w)o(ell)f(as)h(co)q(de)g(to)g(lo)q(cate)f(the)h(\014le)g @F0 @sf(IO.SYS)p @F12 @sf(.)g(That)g(\014le)g(con)o(tains)f(the)h(next)g (stage)f(in)h(the)h(b)q(o)q(ot)-1795 57 y(sequence.)21 b(\(See)16 b (Figure)e(6.\))-242 61 y 2 setlinewidth 58 102 a(R)o(OM)-167 -102 y currentpoint newpath 559 1210 moveto 649 1210 lineto stroke moveto currentpoint newpath 619 1218 moveto 649 1210 lineto stroke moveto currentpoint newpath 619 1203 moveto 649 1210 lineto stroke moveto currentpoint newpath 649 1300 moveto 649 1120 lineto 889 1120 lineto 889 1300 lineto 649 1300 lineto stroke moveto 386 77 a(Bo)q(ot)-110 50 y (Sector)-497 -127 y currentpoint newpath 889 1300 moveto 889 1120 lineto 1129 1120 lineto 1129 1300 lineto 889 1300 lineto stroke moveto currentpoint newpath 1129 1300 moveto 1129 1120 lineto 1369 1120 lineto 1369 1300 lineto 1129 1300 lineto stroke moveto 840 77 a(IO.SYS)-111 50 y(File)-953 -127 y currentpoint newpath 1369 1300 moveto 1369 1120 lineto 1609 1120 lineto 1609 1300 lineto 1369 1300 lineto stroke moveto currentpoint newpath 769 1300 moveto 769 1360 lineto stroke moveto currentpoint newpath 769 1360 moveto 1249 1360 lineto stroke moveto currentpoint newpath 1249 1360 moveto 1249 1300 lineto stroke moveto currentpoint newpath 1257 1330 moveto 1249 1300 lineto stroke moveto currentpoint newpath 1242 1330 moveto 1249 1300 lineto stroke moveto 260 318 a(Figure)h(6:)k(Flopp)o(y)c(disk)g(b)q(efore)g (infection)-1204 123 y(A)f(common)f(use)h(of)f(the)h(b)q(o)q(ot)g(sector)f (is)g(to)g(execute)i(an)f(applicatio)o(n)f(program,)f(suc)o(h)j(as)e(a)g (game,)-1795 56 y(automaticall)o(y;)19 b(unfortunately)l(,)f(this)h(can)g (include)g(automati)o(c)f(initiati)o(on)f(of)i(a)f(virus.)30 b(Th)o(us,) 19 b(the)-1794 57 y(b)q(o)q(ot)c(sector)g(is)g(a)f(common)h(target)f(for)h (infection.)-820 76 y(Av)m(ailable)h(space)i(in)f(the)g(b)q(o)q(ot)g (sector)g(is)f(limited,)h(to)q(o)f(\(a)h(littl)o(e)f(o)o(v)o(er)h(460)f(b)o (ytes)h(is)f(a)o(v)m(ailable\).)-1796 56 y(Hence,)f(the)f(tec)o(hnique)g (of)g(relo)q(cating)f(the)h(original)o 13 x(b)q(o)q(ot)g(sector)f(while)h (\014lling)f(the)h(\014rst)g(sector)f(with)-1795 57 y(viral)h(co)q(de)i (is)f(also)f(used)i(here.)-476 76 y(A)10 b(t)o(ypical)f(example)h(of)g (suc)o(h)h(a)f(\\b)q(o)q(ot)g(sector")f(virus)h(is)g(the)h @F10 @sf(A)o (lame)n(da)f @F12 @sf(virus.)17 b(This)10 b(virus)g(relo)q(cates)-1795 56 y (the)16 b(original)o 15 x(b)q(o)q(ot)f(sector)g(to)g(trac)o(k)g(39,)g (sector)g(8,)g(and)h(replaces)f(it)g(with)g(its)g(o)o(wn)g(viral)f(co)q (de.)22 b(\(See)-1794 57 y(Figure)15 b(7.\))-127 76 y(Other)f(w)o(ell-kno)o (wn)f(b)q(o)q(ot)h(sector)f(viruses)h(include)g(the)g @F10 @sf(New)h(Ze)n (aland)j @F12 @sf(\(on)c(\015opp)o(y)g(only\),)f @F10 @sf(Br)n(ain,)-1795 56 y(Se)n(ar)n(ch)s @F12 @sf(,)19 b(and)f @F10 @sf(Italian)j @F12 @sf (viruses.)29 b(Bo)q(ot)18 b(sector)g(viruses)g(are)g(particularly)f (dangerous)h(b)q(ecause)h(they)-1794 57 y(capture)f(con)o(trol)f(of)h(the)g (computer)g(system)g(early)f(in)h(the)h(b)q(o)q(ot)f(sequence,)h(b)q (efore)g(an)o(y)f(an)o(ti-vira)o(l)-1796 56 y(utilit)o(y)c(b)q(ecomes)h (activ)o(e.)428 280 y(10)-995 b 10 @eop1 11 @bop0 @F8 @sf [< FFFFFE0000FFFFFFC00007E007F00007E001F80007E000FC0007E0007E0007E0003F0007E0 003F0007E0001F8007E0001F8007E0001F8007E0001FC007E0001FC007E0001FC007E0001F C007E0001FC007E0001FC007E0001FC007E0001FC007E0001FC007E0001F8007E0001F8007 E0001F8007E0003F0007E0003F0007E0007E0007E000FC0007E001F80007E007F000FFFFFF C000FFFFFE0000> 34 31 -2 30 40] 68 @dc [< 001FFFE000001FFFE0000000FC00000000FC00000000FC00000000FC00000000FC00000000 FC00000000FC00000000FC00000000FC00000000FC00000000FC00000001FC00000001FE00 000003FF00000007F30000000FE18000000FE1C000001FC0C000003F806000003F80700000 7F00300000FE00180001FC001C0001FC000C0003F800060007F000070007F0000380FFFE00 3FF8FFFE003FF8> 37 31 -1 30 40] 89 @dc [< 2070180C0E060603033B7FFFFFFE7C38> 8 16 -4 6 15] 44 @dc @F0 @sf [< FFFFF8000F801E0007800780078003C0078001E0078000F007800078078000780780007C07 80003C0780003C0780003E0780003E0780003E0780003E0780003E0780003E0780003E0780 003E0780003C0780003C0780003C078000780780007807800070078000F0078001E0078003 C0078007800F801E00FFFFF800> 31 31 -3 30 38] 68 @dc @F0 @sf [< FFE0607FFE1F006007E00E006003C00400F003C00400F003C00401C803C00401C803C00401 C803C004038403C004038403C004070203C004070203C004070203C0040E0103C0040E0103 C0040E0103C0041C0083C0041C0083C004380043C004380043C004380043C004700023C004 700023C004E00013C004E00013C004E00013C005C0000BC005C0000BC007800007C00F8000 07E0FF800007FE> 39 31 -3 30 45] 77 @dc @F0 @sf [< 000FF00000380C0000E0030003C00080078000400F0000201E0000201E0000203C0000103C 0000107C00001078000000F8000000F8000000F8000000F8000000F8000000F8000000F800 0000F8000000F8000000780000107C0000103C0000103C0000301E0000301E0000700F0000 70078000F003C0017000E0027000381C30000FE010> 28 33 -4 31 36] 67 @dc [< FF801FFE3E0003F00C0001E00C0001E0040003C0040003C0060007C0020007800200078001 000F0001000F0001FFFF0000801E0000801E0000C03E0000403C0000403C00002078000020 7800002078000010F0000010F0000011F0000009E0000009E0000007C0000007C0000007C0 0000038000000380000003800000010000> 31 32 -3 31 37] 65 @dc [< FFE000401F0000C00E0000C0040001C0040003C0040003C0040007C004000F4004000F4004 001E4004003C4004003C40040078400400F0400400F0400401E0400403C0400403C0400407 8040040F0040040F0040041E0040043C0040043C00400478004004F0004004F0004005E000 4007C000E007C001F0FF800FFE> 31 31 -3 30 37] 78 @dc @F0 @sf [< FFFFFFE00F8003E0078000E007800070078000300780001007800010078000100780000807 80000807800008078020000780200007802000078060000780E00007FFE0000780E0000780 60000780200007802000078020200780002007800020078000200780006007800040078000 C0078001C00F8007C0FFFFFFC0> 29 31 -3 30 34] 69 @dc [< FFE00FFF801F8003F800070001F000030001E000010003E000008007C00000C00780000040 0F800000201F000000101E000000183E000000087C000000047800000006F000000003F000 000001E000000003C000000007C00000000FC00000000F200000001F300000003E10000000 3C080000007C04000000F806000000F002000001F001000003E001800003C001C00007E003 F0007FF80FFE00> 33 31 -2 30 37] 88 @dc @F8 @sf [< 0003FC0000001FFF8000007E03C00000F800600001F000300001F000180003E000180007E0 000C0007E0000C0007E0000C0007E0000C0007E0000C0007E0000C0007E0000C0007E0000C 0007E0000C0007E0000C0007E0000C0007E0000C0007E0000C0007E0000C0007E0000C0007 E0000C0007E0000C0007E0000C0007E0000C0007E0000C0007E0000C0007E0000C00FFFF01 FFE0FFFF01FFE0> 35 31 -2 30 40] 85 @dc [< FFFFFFF0FFFFFFF007E003F007E000F807E0007807E0003807E0001807E0001807E0001807 E0000C07E0600C07E0600C07E0600007E0E00007E1E00007FFE00007FFE00007E1E00007E0 E00007E0600007E0603007E0603007E0003007E0003007E0007007E0006007E000E007E001 E007E007E0FFFFFFE0FFFFFFE0> 30 31 -2 30 34] 69 @dc [< FFF00FFFE0FFF00FFFE0070000FE00030001FC00018003F80000C003F80000E007F0000070 0FE00000300FC00000181FC000001C3F8000000E7F000000067E00000003FE00000003FC00 000003F800000003F800000007F00000000FF00000000FF80000001FD80000003F8C000000 7F060000007E07000000FE03800001FC01800003F800C00003F800E00007F0007000FFFE07 FF80FFFE07FF80> 35 31 -2 30 40] 88 @dc [< 3FF9FFC03FF9FFC007C03E0007C03E0007C03E0007C03E0007C03E0007C03E0007C03E0007 C03E0007C03E0007C03E0007C03E0007C03E0007C03E0007C03E0007C03E0007C03E00FFFF FE00FFFFFE0007C1FE0007C0000007C0000007C0000007C0380007C07C0007C07C0003E07C 0001E07C0000F81C00007FF800000FE000> 26 32 0 31 29] 12 @dc @F0 @sf [< 0007E000001C18000070040000E0020001C0010001C0008003C00080038000800780004007 80004007800040078000400780004007800040078000400780004007800040078000400780 00400780004007800040078000400780004007800040078000400780004007800040078000 4007800040078000E00FC001F0FFFC0FFE> 31 32 -3 30 37] 85 @dc [< 03FFFF00000FC0000007800000078000000780000007800000078000000780000007800000 07800000078000000780000007800000078000000780000007800000078000000780000007 8000000780000007800080078004800780048007800480078004C007800C40078008400780 0860078018780780787FFFFFF8> 30 31 -3 30 36] 84 @dc [< FFFFFC000F801F0007800780078003C0078003E0078001E0078001F0078001F0078001F007 8001F0078001F0078001E0078003E0078003C00780078007801E0007FFFC0007801F000780 0F80078007C0078003C0078003E0078003E0078003E0078003E0078003E0078003C0078007 8007800F000F801E00FFFFF800> 28 31 -3 30 35] 66 @dc @F10 @sf [< 00FE00000381C000060020000C001800180004003800020038000100700001007000008070 000080F0000080F0000000F0000000F0000000F00000007800000078000000780000007800 00003C0000003C0000001E0000101E0000100F000018070000180380001801C0001800C000 1C0060003C0038003C001C004C000781860000FE02> 31 33 -6 31 33] 67 @dc [< 01000000018000000380000003C0000003C0000003E0000003D0000003D0000003C8000003 C8000003C4000003C2000007C2000007810000078100000780800007804000078040000780 20000780200007801000078008000F8008000F0004000F0004000F0002000F0001000F0001 000F0000800F0000C00F8000E0FFF007FC> 30 32 -9 30 34] 86 @dc [< FFFFFFFFFF80> 41 1 -5 12 46] 124 @dc @F8 @sf [< FFE000FFE0001F00001F00001F00001F00001F00001F00001F00001F1F801F7FE01FC1F81F 80FC1F007C1F007E1F003E1F003F1F003F1F003F1F003F1F003F1F003F1F003E1F007E1F00 7E1F80FC1FE1F8FF7FF0FF1FC0> 24 29 -2 19 29] 112 @dc @F8 @sf [< 0030018000007803C000007803C000007803C00000FC07E00000FC07E00001F60FB00001F6 0F300001F60F300003E31E180003E31E180007C1BE0C0007C1BC0C0007C1BC0C000F80F806 000F80F806001F00F803001F00F00300FFE7FE1FE0FFE7FE1FE0> 35 20 -1 19 38] 119 @dc 11 @eop0 0 0 11 @bop1 214 266 a 2 setlinewidth 58 162 a @F12 @sf(R)o(OM)-167 -162 y currentpoint newpath 439 416 moveto 529 416 lineto stroke moveto currentpoint newpath 499 424 moveto 529 416 lineto stroke moveto currentpoint newpath 499 409 moveto 529 416 lineto stroke moveto currentpoint newpath 529 506 moveto 529 326 lineto 769 326 lineto 769 506 lineto 529 506 lineto stroke moveto 385 137 a(Viral)-102 50 y(Co)q(de)-486 -187 y currentpoint newpath 769 506 moveto 769 326 lineto 1009 326 lineto 1009 506 lineto 769 506 lineto stroke moveto currentpoint newpath 1009 506 moveto 1009 326 lineto 1249 326 lineto 1249 506 lineto 1009 506 lineto stroke moveto 840 137 a(IO.SYS)-111 50 y(File)-953 -187 y currentpoint newpath 1249 506 moveto 1249 326 lineto 1489 326 lineto 1489 506 lineto 1249 506 lineto stroke moveto currentpoint newpath 1489 506 moveto 1489 326 lineto 1729 326 lineto 1729 506 lineto 1489 506 lineto stroke moveto 1346 137 a(Bo)q(ot)-110 50 y(Sector)-1457 -187 y currentpoint newpath 649 506 moveto 649 566 lineto stroke moveto currentpoint newpath 649 566 moveto 1609 566 lineto stroke moveto currentpoint newpath 1609 566 moveto 1609 506 lineto stroke moveto currentpoint newpath 1617 536 moveto 1609 506 lineto stroke moveto currentpoint newpath 1602 536 moveto 1609 506 lineto stroke moveto currentpoint newpath 1609 326 moveto 1609 266 lineto stroke moveto currentpoint newpath 1609 266 moveto 1129 266 lineto stroke moveto currentpoint newpath 1129 266 moveto 1129 326 lineto stroke moveto currentpoint newpath 1122 296 moveto 1129 326 lineto stroke moveto currentpoint newpath 1137 296 moveto 1129 326 lineto stroke moveto 355 377 a (Figure)14 b(7:)20 b(After)14 b(Alameda)h(Virus)g(Infection)-1229 134 y @F8 @sf(MSDOS.SYS,)j(IO.SYS)45 b @F12 @sf(The)18 b(b)q(o)q(ot)f(sector)g (next)h(loads)e(the)i @F0 @sf(IO.SYS)f @F12 @sf(\014le,)h(whic)o(h)f (carries)-1795 56 y(out)10 b(further)g(system)g(initializat)o(ion,)o 10 x (then)h(loads)f(the)g @F0 @sf(DOS)g @F12 @sf(system)g(con)o(tained)g(in)g (the)h @F0 @sf(MSDOS.SYS)-1796 56 y @F12 @sf(\014le.)23 b(Both)16 b(these)h (\014les)f(could)g(b)q(e)h(sub)s(ject)f(to)g(viral)f(infection,)g (although)h(no)g(kno)o(wn)g(viruses)g(target)-1796 57 y(them.)-43 140 y @F8 @sf(Command)f(shell)44 b @F12 @sf(The)14 b @F0 @sf(MSDOS.SYS)f @F12 @sf (co)q(de)h(next)g(executes)h(the)e(command)h(shell)g(program)-1796 56 y(\()p @F0 @sf(COMMAND.COM)p @F12 @sf(\).)g(This)g(program)g(pro)o(vides)h(the)g (in)o(terface)g(with)f(the)i(user,)e(allo)o(wing)g(execu-)-1794 56 y(tion)h (of)h(commands)g(from)f(the)h(k)o(eyb)q(oard.)22 b(The)17 b @F0 @sf (COMMAND.COM)e @F12 @sf(program)g(can)h(b)q(e)h(infected,)-1795 57 y(as)e (can)g(an)o(y)g(other)g @F0 @sf(.COM)g @F12 @sf(or)f @F0 @sf(.EXE)g @F12 @sf (executable)i(binary)f(\014le.)-1049 76 y(The)d @F0 @sf(COMMAND.COM)g @F12 @sf(\014le)g(is)f(the)i(sp)q(eci\014c)g(target)e(of)g(the)i @F10 @sf (L)n(ehigh)e @F12 @sf(virus)h(that)f(struc)o(k)h(Lehigh)-1794 56 y(Univ)o (ersit)o(y)f(in)h(No)o(v)o(em)o(b)q(er)f(1987.)18 b(This)11 b(virus)h (caused)g(corruption)g(of)f(hard)h(disks)g(after)f(it)g(had)h(spread)-1794 57 y(to)j(four)g(additional)e @F0 @sf(COMMAND.COM)i @F12 @sf(\014les.)-808 139 y @F8 @sf(A)o(UTOEXEC)24 b(batc)o(h)i(\014les)44 b @F12 @sf(The)22 b @F0 @sf(COMMAND.COM)f @F12 @sf(program)g(is)g(next)g(in)h(the)g(b)q(o)q (ot)-1795 57 y(sequence.)31 b(It)18 b(executes)h(a)f(list)f(of)h(commands)g (stored)g(in)h(the)f @F0 @sf(A)o(UTOEXEC.BA)l(T)f @F12 @sf(\014le.)29 b (This)18 b(is)-1795 56 y(simply)f(a)g(text)h(\014le)f(full)g(of)h (commands)f(to)g(b)q(e)h(executed)h(b)o(y)e(the)h(command)g(in)o (terpreter.)26 b(A)18 b(virus)-1795 57 y(could)f(mo)q(dify)g(this)g(\014le)g (to)g(include)g(execution)g(of)g(itself.)25 b(Ralf)17 b(Burger)g(has)g (describ)q(ed)h(ho)o(w)f(to)g(do)-1795 56 y(exactly)11 b(that)h(in)f(his)h (b)q(o)q(ok)g @F10 @sf(Computer)i(Viruses|A)f(High)g(T)m(e)n(ch)f(Dise)n (ase)p @F12 @sf(.)18 b(His)11 b(virus)h(uses)g(line)f(editor)-1795 57 y (commands)19 b(to)f(edit)h(its)f(co)q(de)h(in)o(to)f(batc)o(h)h(\014les.) 31 b(Although)18 b(a)h(curiosit)o(y)l(,)f(suc)o(h)h(a)g(virus)g(w)o(ould)f (b)q(e)-1794 56 y(slo)o(w)12 b(to)h(replicate)g(and)h(easy)f(to)g(sp)q (ot.)19 b(This)13 b(tec)o(hnique)h(is)e(not)i(used)g(b)o(y)f(an)o(y)g(kno)o (wn)g(viruses)g(\\in)g(the)-1794 57 y(wild.")-120 139 y @F8 @sf(Infection) 24 b(of)f(a)h(user)e(program)45 b @F12 @sf(A)21 b(second)f(ma)s(jor)f (group)h(of)g(viruses)g(spreads)h(b)o(y)f(infecting)-1795 57 y(program)15 b (co)q(de)h(\014les.)22 b(T)l(o)15 b(infect)h(a)f(co)q(de)h(\014le,)g(the)g (virus)f(m)o(ust)g(insert)g(its)g(co)q(de)h(in)g(suc)o(h)g(a)f(w)o(a)o(y)g (that)-1795 56 y(it)g(is)f(executed)i(b)q(efore)g(its)e(infected)i(host)e (program.)19 b(These)d(viruses)f(come)g(in)g(t)o(w)o(o)f(forms:)-1610 114 y @F8 @sf(Ov)o(erwri)o(ting)22 b @F12 @sf(The)15 b(virus)f(writes)g(its)g (co)q(de)h(directly)f(o)o(v)o(er)g(the)h(host)f(program,)f(destro)o(ying)h (part)g(or)-1681 56 y(all)g(of)h(its)f(co)q(de.)21 b(The)15 b(host)g (program)f(will)g(no)h(longer)f(execute)i(correctly)f(after)f(infection.) -842 176 y(11)-995 b 11 @eop1 12 @bop0 12 @eop0 0 0 12 @bop1 74 307 a @F8 @sf(Non-o)o(v)o(erwri)o(ting)22 b @F12 @sf(The)c (virus)g(relo)q(cates)g(the)h(host)f(co)q(de,)i(so)e(that)f(the)i(co)q(de)g (is)f(in)o(tact)g(and)g(the)-1680 57 y(host)d(program)f(can)h(execute)h (normally)l(.)-756 113 y(A)21 b(common)g(approac)o(h)f(used)i(for)f @F0 @sf (.COM)f @F12 @sf(\014les)h(is)g(to)g(exploit)f(the)h(fact)g(that)f(man)o (y)h(of)g(them)-1795 56 y(con)o(tain)15 b(a)g(jump)g(to)g(the)h(start)e (of)h(the)g(executable)h(co)q(de.)21 b(The)16 b(virus)f(ma)o(y)g(infect)g (the)g(programs)g(b)o(y)-1795 57 y(storing)h(this)g(jump,)h(and)g(then)g (replacing)g(it)f(with)g(a)h(jump)g(to)f(its)g(o)o(wn)g(co)q(de.)26 b (When)17 b(the)g(infected)-1794 56 y(program)e(is)h(run,)g(the)h(virus)e (co)q(de)i(is)f(executed.)24 b(When)16 b(the)h(virus)e(\014nishes,)i(it)e (jumps)i(to)e(the)i(start)-1796 57 y(of)e(the)g(program's)f(original)o 14 x (co)q(de)i(using)f(the)g(stored)g(jump)g(address.)20 b(\(See)c(Figure)e (8.\))-1467 61 y 2 setlinewidth currentpoint newpath 146 944 moveto 146 764 lineto 296 764 lineto 296 944 lineto 146 944 lineto stroke moveto 10 103 a(JUMP)-140 -103 y currentpoint newpath 296 944 moveto 296 764 lineto 896 764 lineto 896 944 lineto 296 944 lineto stroke moveto 345 103 a(Host)h (Co)q(de)309 b(Original)14 b(.COM)g(\014le)-1236 -103 y currentpoint newpath 146 1304 moveto 146 1124 lineto 296 1124 lineto 296 1304 lineto 146 1304 lineto stroke moveto 10 463 a(JUMP)-140 -463 y currentpoint newpath 296 1304 moveto 296 1124 lineto 596 1124 lineto 596 1304 lineto 296 1304 lineto stroke moveto 195 463 a(Host)h(Co)q(de)-405 -463 y currentpoint newpath 596 1304 moveto 596 1124 lineto 746 1124 lineto 746 1304 lineto 596 1304 lineto stroke moveto 471 463 a(Virus)-579 -463 y currentpoint newpath 746 1304 moveto 746 1124 lineto 896 1124 lineto 896 1304 lineto 746 1304 lineto stroke moveto 610 463 a(JUMP)-740 -463 y currentpoint newpath 221 944 moveto 221 1004 lineto stroke moveto currentpoint newpath 221 1004 moveto 596 1004 lineto stroke moveto currentpoint newpath 596 1004 moveto 596 944 lineto stroke moveto currentpoint newpath 604 974 moveto 596 944 lineto stroke moveto currentpoint newpath 589 974 moveto 596 944 lineto stroke moveto currentpoint newpath 221 1304 moveto 221 1364 lineto stroke moveto currentpoint newpath 221 1364 moveto 671 1364 lineto stroke moveto currentpoint newpath 671 1364 moveto 671 1304 lineto stroke moveto currentpoint newpath 679 1334 moveto 671 1304 lineto stroke moveto currentpoint newpath 664 1334 moveto 671 1304 lineto stroke moveto currentpoint newpath 821 1124 moveto 821 1064 lineto stroke moveto currentpoint newpath 821 1064 moveto 446 1064 lineto stroke moveto currentpoint newpath 446 1064 moveto 446 1124 lineto stroke moveto currentpoint newpath 439 1094 moveto 446 1124 lineto stroke moveto currentpoint newpath 454 1094 moveto 446 1124 lineto stroke moveto 874 437 a (After)g(infection)f(b)o(y)-351 50 y(Ov)o(erwriting)g(virus)-1226 -487 y currentpoint newpath 146 1664 moveto 146 1484 lineto 296 1484 lineto 296 1664 lineto 146 1664 lineto stroke moveto 10 823 a(JUMP)-140 -823 y currentpoint newpath 296 1664 moveto 296 1484 lineto 896 1484 lineto 896 1664 lineto 296 1664 lineto stroke moveto 345 823 a(Host)h(Co)q(de)-555 -823 y currentpoint newpath 896 1664 moveto 896 1484 lineto 1046 1484 lineto 1046 1664 lineto 896 1664 lineto stroke moveto 771 823 a(Virus)-879 -823 y currentpoint newpath 1046 1664 moveto 1046 1484 lineto 1196 1484 lineto 1196 1664 lineto 1046 1664 lineto stroke moveto 910 823 a(JUMP)-1040 -823 y currentpoint newpath 221 1664 moveto 221 1724 lineto stroke moveto currentpoint newpath 221 1724 moveto 971 1724 lineto stroke moveto currentpoint newpath 971 1724 moveto 971 1664 lineto stroke moveto currentpoint newpath 979 1694 moveto 971 1664 lineto stroke moveto currentpoint newpath 964 1694 moveto 971 1664 lineto stroke moveto currentpoint newpath 1121 1484 moveto 1121 1424 lineto stroke moveto currentpoint newpath 1121 1424 moveto 596 1424 lineto stroke moveto currentpoint newpath 596 1424 moveto 596 1484 lineto stroke moveto currentpoint newpath 589 1454 moveto 596 1484 lineto stroke moveto currentpoint newpath 604 1454 moveto 596 1484 lineto stroke moveto 1174 797 a(After)g(infection)f(b)o(y)-385 50 y(Nono)o(v)o(erwriti)o(ng)g(virus) -1560 -847 y currentpoint newpath 146 2024 moveto 146 1844 lineto 296 1844 lineto 296 2024 lineto 146 2024 lineto stroke moveto 21 1183 a(Virus)-129 -1183 y currentpoint newpath 296 2024 moveto 296 1844 lineto 896 1844 lineto 896 2024 lineto 296 2024 lineto stroke moveto 345 1183 a(Host)h(Co)q(de) 291 -26 y(Simplest)g(o)o(v)o(erwrit)o(ing)-379 50 y(infection)g(strategy) -787 130 y(Figure)g(8:)k(Infection)d(of)e(user)i(applications)-1215 124 y (Notice)i(that)g(in)g(the)h(case)f(of)g(the)h(o)o(v)o(erwriti)o(ng)e (virus,)i(the)f(more)g(complex)h(infection)f(strategy)-1796 56 y(often)12 b (means)f(that)g(all)g(but)h(a)g(small)e(blo)q(c)o(k)i(of)f(the)h(original)o 11 x(program)e(is)i(in)o(tact.)17 b(This)12 b(means)f(that)g(the)-1794 57 y (original)i(program)h(can)h(b)q(e)g(started,)f(although)g(often)g(it)g (will)f(exhibit)i(sp)q(oradic)f(errors)g(or)h(abnormal)-1796 56 y(b)q(eha)o (vior.)691 183 y(12)-995 b 12 @eop1 13 @bop0 @F8 @sf [< 1E0000007F800000E1C00000C0E00000FC600000FC30000078300000001800000018000000 1C0000001C0000003E0000003E0000007F0000007F000000FF800000F9800001F9C00001F0 C00001F0C00003E0600003E0600007C0300007C030000F8018000F8018001F001C00FFE07F 80FFE07F80> 25 29 -1 19 28] 121 @dc @F10 @sf [< 1F0031C060E06070E038E03CE01CE01EE01EE01E700F700F700F700F380F380F3C0E3A0E1D 0C1CF01C001C000E000E000E000E0007000700070007003F800780> 16 32 -5 31 21] 98 @dc @F12 @sf [< 07000F800F800F800700000000000000000000000200020002000200020002000300010001 80018000C000E000700038603CF03CF03CE03C4038403830700FC0> 14 32 -3 31 21] 63 @dc /@F7 @newfont @F7 @sf [< 001FC000FFF001FFFC03E03E07800E0F00021E00003E00003C00007C000078000078000078 0000F00000F00000F00000F00000F00000F00000F00000F000007800007800007800007C00 003C00003E00001E00000F000007800C03E03C01FFFC00FFF8001FC0> 23 34 -3 32 29] 67 @dc [< 001E0000001E0000001E0000001E0000001E0000001E0000001E0000001E0000001E000000 1E0000001E0000001E0000001E0000001E0000001E0000001E0000001E0000001E0000001E 0000001E0000001E0000001E0000001E0000001E0000001E0000001E0000001E0000001E00 00001E0000FFFFFFC0FFFFFFC0FFFFFFC0> 26 32 -2 31 31] 84 @dc [< F0003CF00078F00078F000F0F000F0F001E0F001C0F003C0F00780F00780F00F00F00F00F0 1E00F01E00F03C00FFF800FFFF00FFFF80F007C0F003E0F001E0F000F0F000F0F000F0F000 F0F000F0F001E0F003E0F007C0FFFF80FFFF00FFF800> 22 32 -5 31 29] 82 @dc [< FFFF80FFFF80FFFF80F00000F00000F00000F00000F00000F00000F00000F00000F00000F0 0000F00000F00000F00000F00000F00000F00000F00000F00000F00000F00000F00000F000 00F00000F00000F00000F00000F00000F00000F00000> 17 32 -5 31 25] 76 @dc [< FFC0FFC0FFC0> 10 3 -1 11 15] 45 @dc [< F00003E0780003C0780003C0780007C03C0007803C0007803C000F801E000F001E000F000F FFFE000FFFFE000FFFFE0007003C0007803C0007803C000380780003C0780003C0780001C0 F00001E0F00001E0F00000E0E00000E1E00000F1E0000071C0000073C000007BC000003B80 00003B8000003F8000001F0000001F0000> 27 32 -1 31 30] 65 @dc [< FFFC00FFFF80FFFFC0F007E0F001F0F000F8F0007CF0003CF0001EF0001EF0001EF0000FF0 000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000EF0001EF0001EF0003CF000 3CF00078F000F8F001F0F007E0FFFFC0FFFF80FFFC00> 24 32 -5 31 33] 68 @dc [< FFFFE0FFFFE0FFFFE0F00000F00000F00000F00000F00000F00000F00000F00000F00000F0 0000F00000F00000FFFF80FFFF80FFFF80F00000F00000F00000F00000F00000F00000F000 00F00000F00000F00000F00000FFFFC0FFFFC0FFFFC0> 19 32 -5 31 27] 69 @dc 13 @eop0 0 0 13 @bop1 74 307 a @F8 @sf(Memory-resi)o(den)o(t)21 b(viruses)o 44 x @F12 @sf(The)f(most)e(\\successful")i(viruses)f(to)f(date)i(exploit)e(a)h (v)m(ariet)o(y)g(of)-1795 57 y(tec)o(hniques)c(to)f(remain)g(residen)o(t)g (in)g(memory)g(once)h(their)f(co)q(de)i(has)e(b)q(een)i(executed)f(and)g (their)f(host)-1795 56 y(program)i(has)g(terminated.)24 b(This)16 b (implies)g(that,)g(once)h(a)f(single)g(infected)h(program)e(has)i(b)q(een)h (run,)-1795 57 y(the)j(virus)g(p)q(oten)o(tially)e(can)i(spread)h(to)e(an)o (y)h(or)f(all)g(programs)g(in)h(the)g(system.)37 b(This)21 b(spreading)-1795 56 y(o)q(ccurs)16 b(during)g(the)f(en)o(tire)g(w)o(ork)g(session)g(\(un)o (til)f(the)i(system)f(is)g(reb)q(o)q(oted)h(to)f(clear)g(the)h(virus)f (from)-1795 56 y(memory\),)d(rather)g(than)h(during)f(a)g(small)g(p)q (erio)q(d)h(of)f(time)g(when)h(the)g(infected)g(program)e(is)h(executing) -1794 57 y(viral)i(co)q(de.)-136 76 y(Th)o(us,)g(the)i(t)o(w)o(o)e (categories)g(of)g(memory-residen)o(t)h(virus)g(are:)-1158 113 y @F8 @sf (T)l(ransien)o(t)22 b @F12 @sf(The)16 b(viral)e(co)q(de)j(is)e(activ)o(e)g (only)g(when)h(the)g(infected)g(p)q(ortion)f(of)g(the)h(host)f(program)g (is)-1681 57 y(b)q(eing)g(executed.)-421 94 y @F8 @sf(Residen)o(t)22 b @F12 @sf(The)11 b(virus)g(copies)g(itself)f(in)o(to)g(a)h(blo)q(c)o(k)g (of)g(memory)f(and)i(arranges)e(to)g(remain)h(activ)o(e)f(after)-1681 56 y (the)18 b(host)g(program)f(has)i(terminated.)28 b(The)19 b(viruses)f(are)g (also)f(kno)o(wn)h(as)g(TSR)h(\()p @F8 @sf(T)p @F12 @sf(erminate)-1681 56 y (and)c @F8 @sf(S)p @F12 @sf(ta)o(y)f @F8 @sf(R)p @F12 @sf(esiden)o(t\))h (viruses.)-668 114 y(Examples)c(of)f(memory-residen)o(t)g(viruses)h(are)f (all)g(kno)o(wn)h(b)q(o)q(ot)f(sector)h(viruses,)g(the)g @F10 @sf(Isr)n (aeli,)h(Casc)n(ade)p @F12 @sf(,)-1796 56 y(and)k @F10 @sf(T)m(r)n(ac)n (eb)m(ack)e @F12 @sf(viruses.)-374 76 y(If)k(a)f(virus)g(is)g(presen)o(t)h (in)g(memory)f(after)g(an)g(application)f(exits,)i(ho)o(w)f(do)q(es)h(it)f (remain)g(activ)o(e?)-1795 57 y(That)f(is,)f(ho)o(w)h(do)q(es)g(the)g (virus)g(con)o(tin)o(ue)g(to)f(infect)h(other)g(programs?)22 b(The)17 b (answ)o(er)e(is)h(that)f(it)h(also)-1796 56 y(infects)h(the)g(standard)f (in)o(terrupts)g(used)h(b)o(y)g(DOS)g(and)g(the)g(BIOS)h(so)f(that)f(it)g (is)g(in)o(v)o(ok)o(ed)g(b)o(y)h(other)-1795 57 y(applications)d(when)i (they)f(mak)o(e)g(service)g(requests.)-844 76 y(The)k(IBM)g(PC)f(uses)h (man)o(y)g(in)o(terrupts)e(\(b)q(oth)i(hardw)o(are)f(and)h(soft)o(w)o (are\))o 18 x(to)f(deal)g(with)g(asyn-)-1794 56 y(c)o(hronous)11 b(ev)o (en)o(ts)f(and)h(to)f(in)o(v)o(ok)o(e)g(system)g(functions.)18 b(All)10 b (services)h(pro)o(vided)f(b)o(y)h(the)f(BIOS)i(and)f(DOS)-1794 57 y(are) 18 b(in)o(v)o(ok)o(ed)f(b)o(y)h(the)g(user)g(storing)f(parameters)g(in)h (mac)o(hine)g(registers,)f(then)i(causing)f(a)f(soft)o(w)o(are)-1796 56 y (in)o(terrupt.)-121 76 y(When)i(an)g(in)o(terrupt)f(is)g(raised,)h(the)g (op)q(erating)g(system)f(calls)g(the)h(routine)f(whose)h(address)g(it)-1795 57 y(\014nds)14 b(in)f(a)f(sp)q(ecial)h(table)g(kno)o(wn)f(as)h(the)g @F10 @sf(ve)n(ctor)g @F12 @sf(or)g @F10 @sf(interrupt)g @F12 @sf(table.) 19 b(Normally)l(,)11 b(this)i(table)f(con)o(tains)-1795 56 y(p)q(oin)o (ters)k(to)g(handler)h(routines)f(in)g(the)h(R)o(OM)g(or)f(in)g (memory-residen)o(t)g(p)q(ortions)g(of)g(the)h(DOS)g(\(see)-1795 56 y (\014gure)e(9\).)k(A)c(virus)f(can)h(mo)q(dify)f(this)h(table)f(so)g(that)g (the)h(in)o(terrupt)f(causes)h(viral)e(co)q(de)j(\(residen)o(t)e(in)-1795 57 y(memory\))g(to)h(b)q(e)h(executed.)-425 76 y(By)i(trapping)g(the)g(k)o (eyb)q(oard)g(in)o(terrupt,)g(a)g(virus)g(can)g(arrange)f(to)h(in)o (tercept)g(the)g @F7 @sf(CTRL-AL)l(T-)-1794 56 y(DEL)f @F12 @sf(soft)g (reb)q(o)q(ot)h(command,)g(mo)q(dify)f(user)h(k)o(eystrok)o(es,)f(or)g(b)q (e)h(in)o(v)o(ok)o(ed)f(on)h(eac)o(h)g(k)o(eystrok)o(e.)26 b(By)-1794 57 y (trapping)16 b(the)h @F0 @sf(BIOS)h @F12 @sf(disk)e(in)o(terrupt,)g(a)h (virus)f(can)h(in)o(tercept)g(all)e @F0 @sf(BIOS)j @F12 @sf(disk)e (activit)o(y)l(,)g(including)-1795 56 y(reads)j(of)f(b)q(o)q(ot)h (sectors,)g(or)f(disguise)h(disk)g(accesses)g(to)f(infect)h(as)f(part)h (of)f(a)h(user's)f(disk)h(request.)-1795 57 y(By)i(trapping)f(the)g @F0 @sf (DOS)h @F12 @sf(service)f(in)o(terrupt,)h(a)f(virus)g(can)h(in)o(tercept)f (all)g @F0 @sf(DOS)g @F12 @sf(service)h(requests)-1795 56 y(including)15 b (program)f(execution,)h @F0 @sf(DOS)g @F12 @sf(disk)g(access,)g(and)g (memory)g(allo)q(catio)o(n)f(requests.)-727 158 y(13)-995 b 13 @eop1 14 @bop0 14 @eop0 0 0 14 @bop1 671 266 a 2 setlinewidth currentpoint newpath 671 401 moveto 671 266 lineto 971 266 lineto 971 401 lineto 671 401 lineto stroke moveto 16 79 a @F12 @sf(In)o(terrupt)15 b(13h)-284 -79 y currentpoint newpath 671 536 moveto 671 401 lineto 971 401 lineto 971 536 lineto 671 536 lineto stroke moveto 16 214 a(In)o(terrupt)g(14h)-284 -214 y currentpoint newpath 671 671 moveto 671 536 lineto 971 536 lineto 971 671 lineto 671 671 lineto stroke moveto 131 349 a(...)-170 -349 y currentpoint newpath 671 806 moveto 671 671 lineto 971 671 lineto 971 806 lineto 671 806 lineto stroke moveto 16 484 a(In)o(terrupt)g(21h)-284 -484 y currentpoint newpath 1121 536 moveto 1121 266 lineto 1271 266 lineto 1271 536 lineto 1121 536 lineto stroke moveto 471 122 a(BIOS)-108 50 y(R)o(OM)-580 -172 y currentpoint newpath 1121 806 moveto 1121 536 lineto 1271 536 lineto 1271 806 lineto 1121 806 lineto stroke moveto 478 417 a(DOS)-573 -417 y currentpoint newpath 971 334 moveto 1121 371 lineto stroke moveto currentpoint newpath 1090 371 moveto 1121 371 lineto stroke moveto currentpoint newpath 1094 356 moveto 1121 371 lineto stroke moveto currentpoint newpath 971 469 moveto 1121 431 lineto stroke moveto currentpoint newpath 1094 446 moveto 1121 431 lineto stroke moveto currentpoint newpath 1090 431 moveto 1121 431 lineto stroke moveto currentpoint newpath 971 739 moveto 1121 671 lineto stroke moveto currentpoint newpath 1097 690 moveto 1121 671 lineto stroke moveto currentpoint newpath 1091 676 moveto 1121 671 lineto stroke moveto -32 617 a (Figure)g(9:)k(Normal)14 b(in)o(terrupt)h(usage)-1159 134 y(A)h(t)o (ypical)f(virus)g(migh)o(t)g(trap)h(the)g @F0 @sf(DOS)g @F12 @sf(service)g (in)o(terrupt,)f(causing)g(its)h(co)q(de)g(to)g(b)q(e)h(executed)-1794 56 y (b)q(efore)f(calling)e(the)h(real)f @F0 @sf(DOS)h @F12 @sf(handler)h(to)e (pro)q(cess)i(the)f(request.)20 b(\(See)15 b(\014gure)h(10.\))-956 61 y 2 setlinewidth currentpoint newpath 619 1269 moveto 619 1134 lineto 919 1134 lineto 919 1269 lineto 619 1269 lineto stroke moveto 16 80 a(In)o (terrupt)f(13h)-284 -80 y currentpoint newpath 619 1404 moveto 619 1269 lineto 919 1269 lineto 919 1404 lineto 619 1404 lineto stroke moveto 16 215 a(In)o(terrupt)g(14h)-284 -215 y currentpoint newpath 619 1539 moveto 619 1404 lineto 919 1404 lineto 919 1539 lineto 619 1539 lineto stroke moveto 131 350 a(...)-170 -350 y currentpoint newpath 619 1674 moveto 619 1539 lineto 919 1539 lineto 919 1674 lineto 619 1674 lineto stroke moveto 16 485 a(In)o(terrupt)g(21h)-284 -485 y currentpoint newpath 1069 1404 moveto 1069 1134 lineto 1264 1134 lineto 1264 1404 lineto 1069 1404 lineto stroke moveto 493 123 a(BIOS)-108 49 y(R)o(OM)-602 -172 y currentpoint newpath 1069 1674 moveto 1069 1404 lineto 1264 1404 lineto 1264 1674 lineto 1069 1674 lineto stroke moveto 500 417 a(DOS)-595 -417 y currentpoint newpath 1069 1944 moveto 1069 1674 lineto 1264 1674 lineto 1264 1944 lineto 1069 1944 lineto stroke moveto 476 687 a(VIR)o(US)-617 -687 y currentpoint newpath 919 1202 moveto 1069 1239 lineto stroke moveto currentpoint newpath 1038 1239 moveto 1069 1239 lineto stroke moveto currentpoint newpath 1042 1224 moveto 1069 1239 lineto stroke moveto currentpoint newpath 919 1337 moveto 1069 1299 lineto stroke moveto currentpoint newpath 1042 1314 moveto 1069 1299 lineto stroke moveto currentpoint newpath 1038 1299 moveto 1069 1299 lineto stroke moveto currentpoint newpath 919 1607 moveto 1069 1809 lineto stroke moveto currentpoint newpath 1045 1790 moveto 1069 1809 lineto stroke moveto currentpoint newpath 1057 1781 moveto 1069 1809 lineto stroke moveto currentpoint newpath 1264 1809 moveto 1324 1809 lineto stroke moveto currentpoint newpath 1324 1809 moveto 1324 1539 lineto stroke moveto currentpoint newpath 1324 1539 moveto 1264 1539 lineto stroke moveto currentpoint newpath 1294 1532 moveto 1264 1539 lineto stroke moveto currentpoint newpath 1294 1547 moveto 1264 1539 lineto stroke moveto -88 888 a(Figure)f(10:)19 b(In)o(terrupt)d(v)o(ectors)e(with)h(TSR)g(virus)-1338 187 y @F8 @sf(2.7.2)52 b(Replication)17 b(strategies)-655 105 y(T)o(yp)q (es)45 b @F12 @sf(Viruses)14 b(can)g(b)q(e)g(group)q(ed)h(in)o(to)e(four)g (categories,)g(based)h(on)g(the)g(t)o(yp)q(e)g(of)f(\014les)h(they)g (infect:)-1727 113 y @F11 @sf(\017)23 b @F12 @sf(Bo)q(ot)15 b(sector)f (viruses)h(that)g(only)f(infect)h(b)q(o)q(ot)g(sectors)g(\(or)f(rarely)l (,)g(partition)g(records\))-774 150 y(14)-995 b 14 @eop1 15 @bop0 15 @eop0 0 0 15 @bop1 142 307 a @F11 @sf(\017)23 b @F12 @sf(System)d(viruses)g (that)g(are)g(targeted)g(against)f(particular)g(system)h(\014les,)i(suc)o (h)f(as)f(the)g(DOS)-1680 57 y(command)15 b(shell)-342 93 y @F11 @sf(\017) 23 b @F12 @sf(Direct)d(viruses)h(that)f(scan)i(through)e(the)h(DOS)h (directory)e(structure)h(on)g(disk)g(lo)q(oking)f(for)-1681 57 y(suitable) 14 b(\014les)h(to)g(infect)-472 94 y @F11 @sf(\017)23 b @F12 @sf(Indirect) 12 b(viruses)f(that)g(w)o(ait)g(un)o(til)g(the)h(user)f(carries)g(out)h (an)g(activit)n(y)f(on)g(a)h(\014le)f(\(e.g.,)g(execution)-1680 56 y(of)k (a)f(program\))g(b)q(efore)i(infecting)e(it)-685 114 y(T)l(ransien)o(t)20 b (viruses)h(are)g(alw)o(a)o(ys)o 20 x(direct)g(in)g(that)f(they)h(attempt)g (to)f(infect)h(one)g(or)g(more)g(\014les)-1795 56 y(\(usually)f(in)g(the)h (same)f(directory)g(or)g(home)h(directory\))e(b)q(efore)i(terminating.)35 b (Residen)o(t)21 b(viruses)-1795 56 y(can)f(b)q(e)f(either)g(direct)g(or)g (indirect)g(\(or)f(w)o(orse,)h(b)q(oth\).)32 b(The)19 b(recen)o(tly)g(rep)q (orted)h @F10 @sf(T)m(r)n(ac)n(eb)m(ack)e @F12 @sf(virus)-1795 57 y (infects)11 b(an)o(y)g(\014le)h(executed)g(\(indirect\),)e(while)h(also)f (incremen)o(tally)h(scanning)g(the)g(directory)g(structure)-1795 56 y (\(direct\).)-92 76 y(In)23 b(general,)g(indirect)f(viruses)h(are)f(slo)o (w)o(er)f(to)h(spread,)i(but)e(often)h(pass)f(unnoticed)h(as)f(their)-1795 57 y(infection)15 b(activiti)o(es)f(are)h(disguised)g(among)f(other)h (disk)g(access)h(requests.)-1319 139 y @F8 @sf(Signatures)25 b(to)h(prev)o (en)o(t)f(reinfection)44 b @F12 @sf(One)23 b(problem)f(encoun)o(tered)h(b)o (y)g(viruses)f(is)f(that)h(of)-1795 57 y(rep)q(eated)f(infection)f(of)f (the)i(host,)f(leading)g(to)f(depleted)i(memory)f(and)g(early)g (detection.)35 b(In)20 b(the)-1794 56 y(case)15 b(of)f(b)q(o)q(ot)h (sector)f(viruses,)h(this)f(could)h(\(dep)q(ending)g(on)g(strategy\))e (cause)i(a)g(long)f(c)o(hain)g(of)h(link)o(ed)-1795 57 y(sectors.)32 b(In) 20 b(the)g(case)f(of)g(a)g(program-infecting)f(virus)h(\(or)g(link)g (virus\),)g(rep)q(eated)h(infection)f(ma)o(y)-1795 56 y(result)h(in)h(con)o (tin)o(ual)f(extension)g(of)h(the)g(host)f(program)g(eac)o(h)h(time)f(it)g (is)h(reinfected.)37 b(There)21 b(are)-1795 57 y(indeed)e(some)g(viruses)f (that)g(exhibit)g(this)g(b)q(eha)o(vior)g(\(e.g.,)g(the)g(Israeli)g(virus)g (extends)h @F0 @sf(.EXE)f @F12 @sf(\014les)-1795 56 y(1808)c(b)o(ytes)h (eac)o(h)g(time)g(they)g(are)g(infected\).)-724 76 y(T)l(o)20 b(prev)o(en)o (t)g(this)f(unnecessary)i(gro)o(wth)e(of)h(infected)g(\014les,)h(man)o(y)f (viruses)g(implan)o(t)f(a)h(unique)-1794 57 y @F10 @sf(signatur)n(e)i @F12 @sf(that)g(signals)f(that)h(the)h(\014le)g(or)f(sector)g(is)g (infected.)42 b(The)23 b(virus)f(will)f(c)o(hec)o(k)i(for)f(this)-1795 56 y (signature)16 b(b)q(efore)i(attempting)e(infection,)g(and)i(will)e(place)h (it)f(when)i(infection)e(has)i(tak)o(en)e(place;)i(if)-1795 57 y(the)d (signature)g(is)f(presen)o(t,)h(the)h(virus)e(will)g(not)h(reinfect)g(the)g (host.)-1117 76 y(A)f(virus)g(signature)g(can)g(b)q(e)h(a)f(c)o (haracteristic)f(sequence)i(of)f(b)o(ytes)g(at)g(a)g(kno)o(wn)g(o\013set)g (on)g(disk)g(or)-1795 56 y(in)h(memory)l(,)g(a)g(sp)q(eci\014c)h(feature)f (of)g(the)h(directory)e(en)o(try)h(\(e.g.,)f(alteration)g(time)g(or)h(\014le)h (length\),)e(or)-1795 56 y(a)h(sp)q(ecial)g(system)g(call)f(a)o(v)m (ailable)g(only)h(when)g(the)h(virus)e(is)h(activ)o(e)f(in)h(memory)l(.) -1345 77 y(The)20 b(signature)f(is)g(a)h(mixed)g(blessing.)34 b(The)20 b (virus)f(w)o(ould)h(b)q(e)g(easier)g(to)f(sp)q(ot)h(if)f(reinfections)-1795 56 y(caused)d(disk)g(space)g(to)f(b)q(e)h(exhausted)h(or)e(sho)o(w)o(ed)g (ob)o(vious)g(disk)h(activit)n(y)l(,)f(but)g(the)h(signature)f(do)q(es)-1794 56 y(pro)o(vide)k(a)g(metho)q(d)h(of)f(detection)g(and)g(protection.)32 b (Virus)19 b(sw)o(eep)g(programs)f(are)h(a)o(v)m(ailable)f(that)-1795 57 y (scan)h(\014les)g(on)f(disk)h(for)f(the)h(signatures)e(of)i(kno)o(wn)f (viruses,)h(as)g(are)f(\\ino)q(culation")f(routines)h(that)-1795 56 y(fak)o (e)d(the)g(viral)f(signature)g(in)h(clean)h(systems)e(to)h(prev)o(en)o(t)g (the)g(virus)g(from)f(attempting)g(infection.)-874 227 y(15)-995 b 15 @eop1 16 @bop0 @F2 @sf [< 00FF800007FFF0001FFFFC003F01FE007C007F007E007F80FF007FC0FF003FC0FF003FE0FF 003FE07E003FE03C003FE000003FE000003FE000003FC000003FC000007F8000007F000000 7E000001FC0000FFF00000FFC0000007F0000001F8000001FC000000FE000000FF000000FF 000F007F801F807F803F807F803F807F803F807F803F80FF001F00FF000F81FE0007FFFC00 03FFF000007F8000> 27 39 -3 38 34] 51 @dc [< FFFE001FFFFEFFFE001FFFFEFFFE001FFFFE01C00000FF0001C00000FF0001E00001FF0000 E00001FE0000E00001FE0000700003FC0000700003FC0000780007FC00003FFFFFF800003F FFFFF800001FFFFFF000001C000FF000001E001FF000000E001FE000000E003FE000000700 3FC0000007003FC0000007807FC0000003807F80000003C0FF80000001C0FF00000001C0FF 00000000E1FE00000000E1FE00000000F3FE0000000073FC0000000073FC000000003FF800 0000003FF8000000003FF8000000001FF0000000001FF0000000000FE0000000000FE00000 00000FE00000000007C00000000007C00000000003800000> 47 41 -2 40 52] 65 @dc [< 7FFF1FFFC07FFF1FFFC07FFF1FFFC007F001FC0007F001FC0007F001FC0007F001FC0007F0 01FC0007F001FC0007F001FC0007F001FC0007F001FC0007F001FC0007F001FC0007F001FC 0007F001FC0007F001FC0007F001FC0007F001FC0007F001FC0007F001FC0007F001FC0007 F001FC0007F001FC00FFFFFFFC00FFFFFFFC00FFFFFFFC0007F000000007F000000007F000 000007F000000007F000F00007F001F80007F003FC0007F003FC0007F003FC0003F803FC00 01F801F80000FC00F800007F80F000001FFFC0000001FF0000> 34 42 -1 41 38] 12 @dc [< FFFEFFFEFFFE0FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00F E00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE0 0FE00FE0FFE0FFE0FFE0> 15 42 -3 41 19] 108 @dc [< FFFFFFFF00FFFFFFFF00FFFFFFFF0003FC01FF0003FC007F8003FC001F8003FC000F8003FC 000F8003FC00078003FC00078003FC00038003FC00038003FC0003C003FC0001C003FC0001 C003FC0001C003FC0001C003FC00000003FC00000003FC00000003FC00000003FC00000003 FC00000003FC00000003FC00000003FC00000003FC00000003FC00000003FC00000003FC00 000003FC00000003FC00000003FC00000003FC00000003FC00000003FC00000003FC000000 03FC000000FFFFFC0000FFFFFC0000FFFFFC0000> 34 41 -3 40 41] 76 @dc [< 7FFF807FFF807FFF8007F00007F00007F00007F00007F00007F00007F00007F00007F00007 F00007F00007F00007F00007F00007F00007F00007F00007F00007F00007F00007F000FFFF C0FFFFC0FFFFC007F00007F00007F00007F00007F00007F00007F00007F03E07F07F03F07F 03F87F01F87F00FE3E003FFC0007F0> 24 42 -2 41 21] 102 @dc @F10 @sf [< 3C0000660000F300007B000031800001800001C00001C00000C00000E00000E00000E00000 E000007000007000007000007000007000007000003800003800003800003800003800001C 00001C00001C00001C0001FFE0000E00000E00000E00000E00000E00000700000700000718 00033C00033C00019C000078> 22 41 2 31 14] 102 @dc [< 7FE0FFE07FF0> 12 3 -3 10 16] 45 @dc @F10 @sf [< E0F0F8F870> 5 5 -5 4 14] 46 @dc @F10 @sf [< FFF800000F8000000780000007800000078000000780000003C0000003C0000003C0000003 C0000001E0200001E0200001E0200001E0200000F0300000FFF00000F0300000F010000078 0800007808000078080000780010003C0008003C0008003C0008003C0008001E0008001E00 08001E0018001E003801FFFFFC> 30 31 -3 30 30] 70 @dc @F10 @sf [< 00FC0000038304000E00CC001C002E0018003E0038001E0070001E0070000F0070000F0070 000F00F0000F00F0000780F0000780F000FFF0F00000007800000078000000780000007800 00003C0000003C0000001E0000201E0000200E00003007000030038000300380003001C000 3800E0007800300078001C00980007030C0000FC04> 30 33 -6 31 35] 71 @dc [< 78780084C600E58100F38100F3808063808001C04001C00001C00001C00000E00000E00000 E00040E0002070C02071E01071E01068E00CC440038380> 19 20 -3 19 21] 120 @dc @F4 @sf [< 0000380000000038000000007C000000007C00000000FE00000000FE00000000FE00000001 FF00000001FF00000003FD80000003F980000007F9C0000007F0C0000007F0C000000FF060 00000FE06000001FE03000001FC03000003FC03800003F801800003F801800007F800C0000 7F000C0000FF00060000FE00060001FE00070001FC00030001FC00030003F800018003F800 018007F80000C007F00000C0FFFF800FFEFFFF800FFE> 39 34 -1 33 42] 86 @dc [< FFFCFFFCFFFCFFFC> 14 4 -1 12 19] 45 @dc @F4 @sf [< 80FF80C7FFE0FF00F8FC003CF0003CE0001EE0001EC0001FC0001FC0001F00003F00003F00 007F0003FF003FFE03FFFE0FFFFC1FFFF83FFFF07FFFC07FFF00FFE000FF0000FC0000FC00 0CF8000CF8000C78001C78001C7C003C3C007C1F03FC07FF8C01FC04> 24 34 -3 33 31] 83 @dc 16 @eop0 0 0 16 @bop1 74 307 a @F2 @sf(3)69 b(Viruses)23 b(as)h(Arti\014cial)f (Life)-835 121 y @F12 @sf(No)o(w)18 b(that)f(w)o(e)h(kno)o(w)g(what)g (computer)g(viruses)g(are,)g(and)h(ho)o(w)e(they)i(spread,)f(w)o(e)g(can)h (ask)f(if)f(they)-1794 57 y(represen)o(t)12 b(a)f(form)f(of)h(arti\014cial)f (life.)18 b(The)12 b(\014rst,)f(and)h(ob)o(vious,)f(question)g(is)g(\\What)f (is)h(life?")19 b(Without)-1796 56 y(an)c(answ)o(er)g(to)f(this)h (question,)g(w)o(e)f(will)g(b)q(e)i(unable)g(to)e(sa)o(y)h(if)f(a)h (computer)g(virus)g(is)g(\\aliv)o(e.")o -1566 76 a(One)h(list)e(of)g(prop)q (erties)h(asso)q(ciated)g(with)f(life)h(w)o(as)f(presen)o(ted)i(in)f([)p (3)o(].)20 b(That)14 b(list)g(included:)-1628 126 y @F11 @sf(\017)23 b @F10 @sf(Life)15 b(is)h(a)h(p)n(attern)f(in)g(sp)n(ac)n(e-time)e @F12 @sf (rather)h(than)g(a)g(sp)q(eci\014c)h(material)d(ob)s(ject.)-1414 94 y @F11 @sf(\017)23 b @F10 @sf(Self-r)n(epr)n(o)n(duction)p @F12 @sf(,)14 b (in)h(itself)f(or)h(in)g(a)g(related)f(organism.)-1062 94 y @F11 @sf(\017) 23 b @F10 @sf(Information)16 b(stor)n(age)g(of)g(a)h(self-r)n(epr)n(esen)o (tation.)-924 93 y @F11 @sf(\017)23 b @F10 @sf(A)16 b(metab)n(olism)f @F12 @sf(that)f(con)o(v)o(erts)g(matter/energy)l(.)-904 94 y @F11 @sf(\017) 23 b @F10 @sf(F)m(unctional)15 b(inter)n(actions)g(with)i(the)f(envir)n (onment.)-956 94 y @F11 @sf(\017)23 b @F10 @sf(Inter)n(dep)n(enden)o(c)n (e)15 b(of)h(p)n(arts)p @F12 @sf(.)-542 94 y @F11 @sf(\017)23 b @F10 @sf (Stability)16 b(under)g(p)n(erturb)n(ations)f @F12 @sf(of)g(the)g(en)o (vironmen)o(t.)-1016 94 y @F11 @sf(\017)23 b @F10 @sf(The)16 b(ability)g (to)g(evolve)p @F12 @sf(.)-462 93 y @F11 @sf(\017)23 b @F10 @sf(Gr)n(owth) 17 b(or)f(exp)n(ansion)-455 126 y @F12 @sf(Let)f(us)g(examine)h(eac)o(h)f (of)g(these)g(c)o(haracteristics)e(in)i(relation)f(to)h(computer)g (viruses.)-1583 142 y @F4 @sf(3.1)56 b(Viruses)18 b(as)h(patterns)g(in)f (space-time)-945 105 y @F12 @sf(There)h(is)f(an)h(ob)o(vious)f(matc)o(h)g (to)g(this)g(c)o(haracteristic.)29 b(Viruses)18 b(are)h(represen)o(ted)g (b)o(y)g(patterns)f(of)-1795 56 y(computer)i(instructions)e(that)h(exist)f (o)o(v)o(er)h(time)g(on)g(man)o(y)g(computer)g(systems.)33 b(Viruses)19 b (are)g(not)-1795 57 y(asso)q(ciated)c(with)g(the)h(ph)o(ysical)f(hardw)o (are,)g(but)g(with)g(the)h(instructions)f(executed)h(\(sometimes\))f(b)o (y)-1795 56 y(that)g(hardw)o(are.)-296 142 y @F4 @sf(3.2)56 b(Self-repro)q (duction)17 b(of)i(viruses)-804 105 y @F12 @sf(One)e(of)f(the)g(primary)g (c)o(haracteristi)o(cs)f(of)h(computer)g(viruses)g(is)g(their)g(abilit)o (y)f(to)g(repro)q(duce)i(them-)-1794 56 y(selv)o(es)e(\(or)f(an)h(altered)g (v)o(ersion)f(of)h(themselv)o(es\).)k(Th)o(us,)c(this)g(c)o(haracteristi)o (c)f(is)h(met.)-640 239 y(16)-995 b 16 @eop1 17 @bop0 @F4 @sf [< FFFFE0FFFFE003F80003F80003F80003F80003F80003F80003F80003F80003F80003F80003 F80003F80003F80003F80003F80003F80003F80003F80003F80003F80003F80003F80003F8 0003F80003F80003F80003F80003F80003F80003F800FFFFE0FFFFE0> 19 34 -1 33 21] 73 @dc @F4 @sf [< 180FC0001C3FF8001EE07C001FC03E001F801F001F001F801F000F801F000FC01F000FC01F 000FC01F000FC01F000FC01F000FC01F000FC01F000FC01F000F801F000F801F001F001F80 1E001FF07C001F3FF8001F0FE0001F0000001F0000001F0000001F0000001F0000001F0000 001F0000001F0000001F0000001F0000001F000000FF000000FF000000> 26 35 -2 34 31] 98 @dc 17 @eop0 0 0 17 @bop1 74 307 a @F4 @sf(3.3)56 b(Information)18 b(storage)g(of)h(a)g (self-represe)o(n)n(tation)-1192 106 y @F12 @sf(This,)e(to)q(o,)f(is)g(an)h (ob)o(vious)f(matc)o(h)g(for)g(computer)h(viruses.)24 b(The)17 b(co)q(de)g (that)f(de\014nes)i(the)f(virus)f(is)h(a)-1795 56 y(template)d(that)g(is)h (used)g(b)o(y)g(the)g(virus)f(to)g(replicate)h(itself.)j(This)d(is)f (similar)f(to)h(the)h(DNA)g(molecules)-1795 56 y(of)g(what)g(w)o(e)f (recognize)i(as)e(organic)h(life.)-718 142 y @F4 @sf(3.4)56 b(Virus)18 b (metab)r(olism)-564 105 y @F12 @sf(This)d(prop)q(ert)o(y)f(in)o(v)o(olv)o (es)g(the)h(organism)f(taking)f(in)i(energy)g(or)g(matter)f(from)g(the)h (en)o(vironmen)o(t)f(and)-1794 57 y(using)g(it)g(for)f(its)h(o)o(wn)g (activit)o(y)l(.)o 19 x(Computer)g(viruses)g(use)g(the)h(energy)f(of)g (computation)f(exp)q(ende)q(d)j(b)o(y)-1795 56 y(the)g(system)g(to)f (execute.)23 b(They)16 b(do)g(not)f(con)o(v)o(ert)h(matter,)e(but)i(mak)o (e)g(use)g(of)g(the)g(electrical)e(energy)-1794 56 y(presen)o(t)e(in)g (the)g(computer)g(to)f(tra)o(v)o(erse)g(their)h(patterns)f(of)h (instructions)e(and)j(infect)e(other)h(programs.)-1796 57 y(In)k(this)f (sense,)g(they)g(ha)o(v)o(e)g(a)g(metab)q(olism.)-763 141 y @F4 @sf(3.5) 56 b(F)-5 b(unctional)19 b(in)n(teractions)e(with)i(the)f(virus's)g(en)n (vironmen)n(t)-1418 106 y @F12 @sf(Viruses)e(p)q(erform)h(examinations)e (of)h(their)g(host)g(en)o(vironmen)o(ts)f(as)h(part)g(of)g(their)g (activities.)22 b(They)-1794 56 y(alter)13 b(in)o(terrupts,)f(examine)i (memory)e(and)i(disk)f(arc)o(hitectures,)g(and)h(alter)e(addresses)i(to)f (hide)g(them-)-1794 57 y(selv)o(es)j(and)h(spread)g(to)f(other)h(hosts.) 23 b(They)17 b(v)o(ery)g(ob)o(viously)e(alter)h(their)g(en)o(vironmen)o(t)g (to)g(supp)q(ort)-1794 56 y(their)g(existence.)25 b(Man)o(y)16 b(viruses)h (acciden)o(tally)e(alter)h(their)h(en)o(vironmen)o(t)f(b)q(ecause)h(of)g (bugs)g(or)f(un-)-1794 56 y(foreseen)e(in)o(teractions.)k(The)c(ma)s(jor)e (p)q(ortion)h(of)h(damage)f(from)g(all)g(computer)g(viruses)h(is)f(a)h (result)f(of)-1795 57 y(these)j(in)o(teractio)o(ns.)-362 141 y @F4 @sf (3.6)56 b(In)n(terdep)r(endence)o 18 x(of)18 b(virus)g(parts)-880 106 y @F12 @sf(Living)c(organisms)g(cannot)g(b)q(e)h(arbitrarily)o 14 x(divided)f (without)g(destro)o(ying)g(them.)19 b(The)c(same)f(is)h(true)-1795 56 y (of)f(computer)g(viruses.)19 b(Should)c(a)e(computer)h(virus)g(ha)o(v)o(e)g (a)f(p)q(ortion)h(of)g(its)f(\\anatom)o(y")f(excised,)i(the)-1794 56 y (virus)19 b(w)o(ould)f(probably)h(cease)g(to)f(function)h(normally)l(,)g (if)f(at)g(all.)31 b(F)l(ew)19 b(viruses)f(are)h(written)f(with)-1795 57 y (sup)q(er\015uous)e(co)q(de,)g(and)f(ev)o(en)g(so,)g(the)g(w)o(orking)f (co)q(de)h(cannot)g(b)q(e)h(divided)f(without)f(destro)o(ying)g(the)-1794 56 y(virus.)-111 142 y @F4 @sf(3.7)56 b(Virus)18 b(stabilit)n(y)g(under)g (p)r(erturbations)-993 105 y @F12 @sf(Computer)f(viruses)h(run)g(on)g(a)f (v)m(ariet)o(y)g(of)g(mac)o(hines)h(under)g(di\013eren)o(t)f(op)q(erating)g (systems.)27 b(Man)o(y)-1795 56 y(of)17 b(them)g(are)g(able)g(to)f (compromise)h(\(and)g(defeat\))g(an)o(ti-virus)f(and)h(cop)o(y)g (protection)f(mec)o(hanisms.)-1795 57 y(They)c(ma)o(y)g(adjust)f (on-the-\015y)i(to)e(insu\016cien)o(t)h(storage,)f(disk)h(errors,)f(and)h (other)g(exceptional)f(ev)o(en)o(ts.)-920 218 y(17)-995 b 17 @eop1 18 @bop0 @F4 @sf [< 01FF000FFFC01F01F03C0038780038F8001CF0001CF0001EF0001EF0003EF000FE7801FE78 07FC3C1FFC1E7FF807FFF003FFE007FFC00FFF801FFFC01FF9E03FE0F03F80783F00783E00 783C00781C00781C00F00E00F00703E003FFC000FE00> 23 32 -2 31 28] 56 @dc @F4 @sf [< 03F8000FFE001C0F801E03C03F01E03F00F03F00F83F00F81E007C00007C00007C00207E07 FC7E0FFE7E1E037E3E01FE7C00FE7C00FEFC007EFC007EFC007EFC007EFC007CFC007CFC00 7C7C00787C00F83E00F01E01F00F83E007FF8001FE00> 23 32 -2 31 28] 57 @dc [< 0003FF00C0001FFFC3C0007F80E7C001FC003FC003F0001FC007E0001FC00FC0001FC01F80 001FC03F00001FC03F00001FC07F00001FC07F00001FC07E000FFFFCFE000FFFFCFE000000 00FE00000000FE00000000FE00000000FE00000000FE00000000FE000000007E000000C07E 000000C07F000000C03F000001C03F000001C01F800003C00FC00003C007C00007C003F000 0FC001F8003FC0007F00F1C0001FFFC0C00003FE0040> 38 34 -3 33 44] 71 @dc @F12 @sf [< 080000E0180003100C0006080600060406000C0403000C0401801C0201801C0200C01C0200 601C0200601C0200301C0200181C0200180C04000C0C040006060400060608000303100003 00E00F0180001880C0003040C000702060006020300060103000E0101800E0100C00E0100C 00E0100600E0100300E01003006013F980602C06C0703001C030600060188000300F000030 > 31 37 -3 33 38] 37 @dc @F16 @sf [< 0FE030304018C00CE00EE00E000E000E000C0018003007E0006000380018001C701C701C60 1830300FE0> 15 21 -1 20 18] 51 @dc @F4 @sf [< 00FE0007FFC00F83E01F01F03E00F83E00F87C007C7C007C7C007CFC007EFC007EFC007EFC 007EFC007EFC007EFC007EFC007EFC007EFC007EFC007EFC007EFC007EFC007C7C007C7C00 7C7C007C3E00F83E00F81F01F00F83E007FFC000FE00> 23 32 -2 31 28] 48 @dc @F17 @sf [< 1F0060808040C060C0600060004000800F000180008000C060C060C021801F00> 11 16 -1 15 15] 51 @dc @F15 @sf [< 8040202010101070F0F060> 4 11 -3 3 11] 44 @dc [< FF00FFC01C001E0008001C0008001C00040038000400380006007800020070000200700001 FFE0000100E0000100E0000081C0000081C0000081C0000043800000438000004380000027 000000270000003F0000001E0000001E0000000C0000000C0000000C0000> 26 26 -1 25 29] 65 @dc [< 003E0000C1800180400300400700200600200E00100E00100E00100E00100E00100E00100E 00100E00100E00100E00100E00100E00100E00100E00100E00100E00100E00100E00100E00 38FFE1FF> 24 26 -2 25 29] 85 @dc [< 87E0D818E004C006C00280038003800300030007000E003E07FC1FF83FE07E007000E000C0 02C002C002C0066006200E18360FC2> 16 26 -2 25 21] 83 @dc [< 780000E40000E20000E1000001000001000000800000800001C00001C00001C00003A00003 A0000790000710000710000E08000E08001E0C001C04001C04003C0600FF1F80> 17 23 -1 15 20] 121 @dc [< FFFF800E01E00E00F00E00780E00380E003C0E003C0E003C0E003C0E003C0E00780E00700E 01E00FFF800E03C00E00E00E00F00E00780E00780E00780E00780E00780E00700E00E00E01 C0FFFF00> 22 26 -2 25 27] 66 @dc [< 003F0001C0C00300300E00081C00081C0004380004780002700002700002F00000F00000F0 0000F00000F00000F000007000027000027800023800061C00061C000E0E001E03002E01C0 C6003F02> 23 26 -2 25 28] 67 @dc [< 007FC0000E00000E00000E00000E00000E00000E0007CE001C2E00381E00700E00700E00E0 0E00E00E00E00E00E00E00E00E00E00E00700E00300E00381E000C260003C200> 18 23 -1 15 20] 113 @dc [< FFFFC00E03C00E00C00E00400E00400E00600E00200E00200E00200E00000E00000E00000E 00000E00000E00000E00000E00000E00000E00000E00000E00000E00000E00000E00000E00 00FFF000> 19 26 -2 25 24] 76 @dc 18 @eop0 0 0 18 @bop1 74 307 a @F12 @sf(Some)14 b(are)g(capable)g(of)f(running)h (on)g(most)f(v)m(arian)o(ts)g(of)h(p)q(opular)g(p)q(ersonal)f(computers)h (under)h(almost)-1796 57 y(an)o(y)d(soft)o(w)o(are)f(con\014guration|a)h (stabilit)o(y)f(and)h(robustness)h(seen)g(in)f(few)h(commercial)e (applications.)-1796 141 y @F4 @sf(3.8)56 b(Virus)18 b(ev)n(olution)-506 105 y @F12 @sf(It)g(is)g(here)h(that)e(viruses)h(displa)o(y)f(a)h (di\013erence)h(from)e(systems)h(w)o(e)f(traditionall)o(y)g(view)h(as)g (\\aliv)n(e.")-1796 57 y(No)e(computer)g(viruses)g(ev)o(olv)o(e)f(as)g(w)o (e)h(commonly)f(use)h(the)h(term,)e(although)g(it)g(is)h(conceiv)m(able)g (that)-1795 56 y(a)h(v)o(ery)g(complex)g(virus)g(could)h(b)q(e)g (programmed)e(to)h(ev)o(olv)o(e)g(and)g(c)o(hange.)27 b(Ho)o(w)o(ev)o(er,) 16 b(suc)o(h)i(a)f(virus)-1795 57 y(w)o(ould)f(b)q(e)i(so)e(large)g(and)h (complex)g(as)f(to)g(b)q(e)i(man)o(y)e(orders)h(of)f(magnitude)h(larger)e (than)i(most)f(host)-1795 56 y(programs,)c(and)h(probably)g(bigger)f(than)h (the)g(host)f(op)q(erating)h(systems.)18 b(Th)o(us,)13 b(there)g(is)g (some)f(doubt)-1794 57 y(that)j(suc)o(h)g(a)g(virus)g(could)g(run)g(on)h (enough)f(hosts)g(to)f(allo)o(w)g(it)g(to)h(ev)o(olv)o(e.)-1231 76 y (Mutations)k(of)h(viruses)h(do)g(exist,)g(ho)o(w)o(ev)o(er.)36 b(There)21 b (are)f(v)m(arian)o(ts)g(of)g(man)o(y)h(kno)o(wn)f(viruses,)-1795 56 y (with)h(as)g(man)o(y)g(as)g(15)f(kno)o(wn)h(for)g(some)g(IBM)h(PC)f (viruses.)38 b(The)21 b(v)m(ariations)f(in)o(v)o(olv)o(ed)g(can)i(b)q(e) -1794 56 y(v)o(ery)15 b(small,)o 14 x(on)f(the)h(order)g(of)f(t)o(w)o(o)f (or)h(three)h(instructions)f(di\013erence,)g(to)g(ma)s(jor)g(c)o(hanges)g (in)o(v)o(olving)-1796 57 y(di\013erences)h(in)g(messages,)f(activ)m (ation,)f(and)j(replication.)o 19 x(The)f(source)g(of)g(these)g(v)m (ariations)e(app)q(ears)-1794 56 y(to)h(b)q(e)i(programmers)e(\(the)g (original)f(virus)i(authors)f(or)g(otherwise\))g(who)h(alter)f(the)h (viruses)f(to)h(a)o(v)o(oid)-1796 57 y(an)o(ti-viral)e(mec)o(hanisms,)i (or)f(to)h(cause)g(di\013eren)o(t)g(kinds)g(of)g(damage.)-1140 76 y(There)j (is)g(also)g(one)h(case)f(where)h(t)o(w)o(o)e(di\013eren)o(t)h(strains)f (of)h(a)g(Macin)o(tosh)g(virus)g(are)g(kno)o(wn)g(to)-1795 56 y(in)o (teract)11 b(to)g(form)g(infections)g(unlik)o(e)g(the)h(\\paren)o(ts,")f (although)g(these)h(in)o(teractions)e(usually)i(pro)q(duce)-1794 57 y (\\sterile")i(o\013spring)g(that)g(are)h(unable)h(to)e(repro)q(duce)i (further.)k([)p(6)o(])-1172 141 y @F4 @sf(3.9)56 b(Gro)n(wth)-314 105 y @F12 @sf(Viruses)12 b(certainly)f(do)g(exhibit)h(gro)o(wth.)17 b(Some)12 b (transien)o(t)f(viruses)g(will)g(infect)g(ev)o(ery)h(\014le)g(on)f(a)h (system)-1795 57 y(after)h(only)g(a)g(few)h(activ)m(ations.)k(The)c (spread)f(of)h(viruses)f(through)g(commercial)g(soft)o(w)o(a)o(re)g(and)g (public)-1794 56 y(bulletin)k(b)q(oards)g(is)g(another)g(indication)f(of)h (their)g(wide-spread)g(replication.)25 b(One)18 b(reasonable)f(set)-1795 57 y(of)e(estimates)e(had)i(the)g(n)o(um)o(b)q(er)g(of)g(computer)f(virus)h (infections)f(in)g(1989)g(at)g(a)h(lev)o(el)f(50%)g(ab)q(o)o(v)o(e)g(the) -1794 56 y(1988)i(rate.)p -16 w @F16 @sf(3)28 16 y @F12 @sf(The)i(n)o(um)o (b)q(er)f(of)g(new)h(virus)f(\\sp)q(ecies")g(rep)q(orted)h(in)f(the)h (\014rst)f(four)g(mon)o(ths)g(of)g(1990)-1796 57 y(has)g(undergone)g(a)f (15-fold)g(increase)g(o)o(v)o(er)g(the)g(same)h(p)q(erio)q(d)g(in)f(1989.) 23 b(Clearly)l(,)15 b(computer)i(viruses)-1795 56 y(are)e(exhibiting)f(ma)s (jor)g(gro)o(wth.)-574 141 y @F4 @sf(3.10)56 b(Other)18 b(b)r(eha)n(vior) -530 106 y @F12 @sf(As)g(already)g(noted,)g(computers)h(viruses)e(exhibit)h (\\sp)q(ecies")g(with)g(w)o(ell-de\014ned)h(ecological)d(nic)o(hes)-1794 56 y(based)d(on)g(host)g(mac)o(hine)f(t)o(yp)q(e,)i(and)f(v)m(ariations)e (within)h(these)h(sp)q(ecies.)20 b(These)13 b(sp)q(ecies)h(are)e(adapted) -1794 40 y 718 -2 z 50 26 a @F17 @sf(3)4 32 y @F15 @sf(P)o(ersonal)i(comm)o (unication,)f(Assistan)o(t)g(U.S.)f(A)o(ttorney)i(Bill)e(Co)q(ok,)h (quoting)g(Bell)g(Labs')g(estimates.)-714 151 y @F12 @sf(18)-995 b 18 @eop1 19 @bop0 @F2 @sf [< 007FFFF8007FFFF8007FFFF80000FE000000FE000000FE000000FE000000FE000000FE0000 00FE000000FE00FFFFFFF8FFFFFFF8FFFFFFF8E0007E0070007E0038007E001C007E000E00 7E000E007E0007007E0003807E0001C07E0000E07E0000E07E0000707E0000387E00001C7E 00000E7E00000E7E0000077E000003FE000001FE000000FE000000FE0000007E0000003E00 00001E0000000E00> 29 39 -2 38 34] 52 @dc [< C01FF000E0FFFE00F3FFFF00FFE01F80FF0007C0FC0003E0F80003F0F00001F0F00001F0E0 0001F8E00001F8E00001F8600001F8000003F8000007F800000FF800007FF00007FFF000FF FFE003FFFFE007FFFFC00FFFFF801FFFFE003FFFFC007FFFE0007FFE0000FFC00000FF0000 00FE0000E0FE0000E0FC0000E0FC0001E0FC0001E07C0001E07C0003E03E0007E01F001FE0 0F807FE007FFF9E003FFF0E0007F8060> 29 41 -4 40 38] 83 @dc [< 0FC00000003FE00000007C78000000FE3C000000FE1E000000FE0E000000FE0F0000007C07 0000003807800000000380000000038000000001C000000001C000000003E000000003E000 000007F000000007F00000000FF80000000FF80000000FF80000001FDC0000001FDC000000 3FDE0000003F8E0000007F8F0000007F070000007F07000000FE03800000FE03800001FC01 C00001FC01C00003FC01E00003F800E00007F800F00007F000700007F0007000FFFE03FF80 FFFE03FF80FFFE03FF80> 33 39 -1 26 36] 121 @dc @F2 @sf [< FFFFF0003FF0FFFFF001FFF8FFFFF003FE1C03FC0007F80E03FC000FF80703FC001FF80703 FC001FF00703FC001FF00003FC001FF00003FC001FF00003FC001FE00003FC001FE00003FC 001FE00003FC001FE00003FC001FE00003FC001FC00003FC003F800003FC003F800003FC00 7F000003FC00FC000003FFFFF0000003FFFFFE000003FC007FC00003FC001FE00003FC0007 F80003FC0007F80003FC0003FC0003FC0003FE0003FC0003FE0003FC0003FE0003FC0003FE 0003FC0003FE0003FC0003FE0003FC0003FC0003FC0007FC0003FC0007F80003FC000FF000 03FC007FE000FFFFFFFF8000FFFFFFFE0000FFFFFFE00000> 48 41 -3 40 52] 82 @dc 19 @eop0 0 0 19 @bop1 74 307 a @F12 @sf(to)15 b(sp)q(eci\014c)h(en)o(vironmen)o(ts)e (and)i(will)d(not)i(surviv)o(e)g(if)g(mo)o(v)o(ed)f(to)h(a)g(di\013eren)o (t)f(en)o(vironmen)o(t.)-1550 76 y(Some)g(viruses)h(also)e(exhibit)h (predatory)g(b)q(eha)o(vior.)19 b(F)l(or)14 b(instance,)g(the)h(DenZuk)g (virus)f(will)f(seek)-1794 57 y(out)20 b(and)h(o)o(v)o(erwrit)o(e)e (instances)h(of)g(the)g(Brain)g(virus)g(if)g(b)q(oth)g(are)g(presen)o(t)h (on)f(the)g(same)g(system.)-1795 56 y(Other)15 b(viruses)f(exhibit)f (territoria)o(l)g(b)q(eha)o(vior|marking)g(their)h(infected)g(domain)g(so)g (that)f(others)h(of)-1795 57 y(the)h(same)g(t)o(yp)q(e)h(will)d(not)i(en)o (ter)g(and)h(comp)q(ete)f(with)g(the)g(original)e(infection.)-1375 161 y @F2 @sf(4)69 b(Summary)q 24 x(and)24 b(Commen)n(ts)-868 121 y @F12 @sf (Our)15 b(examination)e(of)g(computer)i(viruses)e(leads)h(us)h(to)e(the)i (conclusion)f(that)f(they)h(are)g(v)o(ery)g(close)g(to)-1795 56 y(what)g (w)o(e)f(migh)o(t)g(de\014ne)i(as)f(\\arti\014cia)o(l)e(life.")19 b (Rather)14 b(than)g(represen)o(ting)f(a)h(scien)o(ti\014c)f(ac)o(hiev)o (emen)o(t,)-1795 57 y(this)20 b(probably)g(represen)o(ts)g(a)g(\015a)o(w)g (in)g(our)g(de\014nition.)34 b(T)l(o)20 b(suggest)g(that)g(computer)g (viruses)g(are)-1795 56 y(aliv)o(e)e(also)f(implies)h(to)g(me)h(that)f (some)g(part)g(of)g(their)g(en)o(vironmen)o(t|the)h(computers,)g (programs,)-1796 57 y(or)e(op)q(erating)g(systems|also)g(represen)o(ts)g (arti\014cial)f(life.)26 b(Can)18 b(life)f(exist)g(in)g(an)h(otherwise)e (barren)-1794 56 y(and)g(empt)o(y)f(ecosystem?)20 b(A)c(de\014nition)f(of)g (\\life")f(should)h(probably)g(include)h(something)e(ab)q(out)h(the)-1794 57 y(en)o(vironmen)o(t)g(in)g(whic)o(h)g(that)f(life)h(exists.)-671 76 y (I)j(w)o(ould)g(also)g(b)q(e)h(disapp)q(oin)o(ted)f(if)g(computer)g (viruses)g(w)o(ere)g(considered)h(as)f(the)g(\014rst)g(form)g(of)-1795 56 y (arti\014cial)12 b(life,)h(b)q(ecause)h(their)f(origin)g(is)g(one)h(of)f (unethical)g(practice.)19 b(Viruses)13 b(created)h(for)f(malicious)-1796 57 y(purp)q(oses)g(are)g(ob)o(viously)e(bad;)i(viruses)f(constructed)h(as)f (exp)q(erimen)o(ts)h(and)g(released)f(in)o(to)g(the)g(public)-1794 56 y (domain)21 b(are)g(lik)o(ewise)f(unethical,)i(and)g(p)q(o)q(or)f(science)h (b)q(esides:)33 b(exp)q(erimen)o(ts)21 b(without)f(con)o(trols,)-1796 56 y (strong)14 b(h)o(yp)q(otheses,)h(and)f(the)h(consen)o(t)g(of)f(the)h(sub)s (jects.)k(F)l(acetiously)l(,)13 b(I)i(suggest)g(that)e(if)i(computer)-1795 57 y(viruses)f(ev)o(olv)o(e)f(in)o(to)g(something)h(with)f(arti\014cial)g (consciousness,)h(this)f(migh)o(t)g(pro)o(vide)h(a)g(do)q(ctrine)g(of)-1795 56 y(\\original)o 14 x(sin")h(for)f(their)h(theology)l(.)-566 76 y(More)i (seriously)l(,)g(I)h(w)o(ould)g(suggest)f(that)g(there)h(is)f(something)g (to)g(b)q(e)i(learned)e(from)h(the)f(study)-1794 57 y(of)f(computer)g (viruses:)21 b(the)16 b(imp)q(ortance)f(of)h(the)g(realization)e(that)i (exp)q(erimen)o(tation)f(with)g(systems)-1795 56 y(in)j(some)g(w)o(a)o(y)f (\(almost\))g(aliv)o(e)g(can)h(b)q(e)h(dangerous.)29 b(Computer)18 b (viruses)g(ha)o(v)o(e)g(caused)g(millions)f(of)-1795 57 y(dollars)g(of)h (damage)g(and)g(un)o(told)g(aggra)o(v)m(ati)o(on.)28 b(Some)18 b(of)g (them)h(ha)o(v)o(e)e(b)q(een)j(written)d(as)h(harmless)-1795 56 y(exp)q (erimen)o(ts,)i(and)f(others)g(as)g(malicio)o(us)f(misc)o(hief.)31 b(All) 19 b(ha)o(v)o(e)f(\014rmly)h(ro)q(oted)g(themselv)o(es)f(in)h(the)-1794 57 y(p)q(o)q(ol)d(of)g(a)o(v)m(ailable)f(computers)h(and)g(storage)f (media,)g(and)i(they)f(are)g(lik)o(ely)f(to)g(b)q(e)i(frustrating)d(users) -1794 56 y(and)h(harming)e(systems)h(for)f(y)o(ears)h(to)f(come.)20 b (Similar)12 b(but)j(considerably)e(more)h(tragic)f(results)g(could)-1794 57 y(o)q(ccur)20 b(from)e(careless)g(exp)q(erimen)o(tation)h(with)f (organic)g(forms)g(of)h(arti\014cial)e(life.)31 b(W)l(e)19 b(m)o(ust)f (nev)o(er)-1794 56 y(lose)d(sigh)o(t)g(of)g(the)h(fact)f(that)f(\\real)h (life")g(is)g(of)g(m)o(uc)o(h)h(more)f(imp)q(ortance)g(than)g(\\arti\014cial)f (life,")g(and)-1794 56 y(w)o(e)h(should)g(not)g(allo)o(w)e(our)i(exp)q (erimen)o(ts)h(to)e(threaten)h(our)g(exp)q(erimen)o(ters.)-1353 162 y @F2 @sf(Reference)o(s)-301 118 y @F12 @sf([1])22 b(F)l(red)15 b(Cohen.)20 b @F10 @sf(Computer)d(Viruses)p @F12 @sf(.)i(PhD)c(thesis,)f(Univ)o(ersit)o (y)g(of)h(Southern)h(Califor)o(nia,)d(1985.)-915 125 y(19)-995 b 19 @eop1 20 @bop0 @F10 @sf [< 07E000000C18000038040000300200007001000070008000F0004000F0004000F0002000F0 002000F0002000780010007800100078001000780010003C0008003C0008003C0008003C00 08001E0004001E0004001E0004001E0004000F0002000F0002000F0002000F000200078001 00078001000780010007C003C07FFC1FF8> 29 32 -9 30 34] 85 @dc [< E0F0F8F870000000000000000000000E1F1F0F07> 8 20 -5 19 14] 58 @dc @F10 @sf [< FFF000000F8000000780000007800000078000000780000003C0000003C0000003C0000003 C0000001E0000001E0000001E0000001E0000000F0000000FFFC0000F00F0000F003C00078 00E0007800F00078007800780078003C003C003C003C003C003C003C003C001E003C001E00 38001E0070001E00E001FFFF80> 30 31 -3 30 31] 80 @dc [< FF8103FFC0001C01803E00000C01801E00000401C01E00000401E01E00000401E01E000002 03900F00000203900F00000203880F00000203840F00000103840780000103820780000103 8207800001038107800000838083C00000838083C00000838043C00000870043C000004700 21E00000470021E00000470011E00000470009E00000270008F00000270004F00000270004 F00000270002F000001700017800001700017800001E0000F800001E0000FC0001FE00007F C0> 42 31 -3 30 41] 77 @dc [< C020100804040202011D3F3F1F0E> 8 14 -9 31 14] 39 @dc [< 0F800010C000307000703800601C00701C00F01E00F00E00F00F00700F00700F0078078078 07807807807C07803C07003E07003E06001D84001E78001E00000E00000F00000700000380 C00181E000C1E00060E0003020001C200007C0> 19 31 -5 29 23] 54 @dc @F10 @sf [< 3C0000630000F1800079C00030E00000E00000E00000700000700000700000700000380000 3800003800003800001C00001C00001C00001C00000E00000E00000E00020E000107000107 00008700008700004600003C00000000000000000000000000000000000000000000000380 0003C00003C0000180> 18 40 2 30 14] 106 @dc @F12 @sf [< 387CFCFCB8808080404020201008> 6 14 -3 31 13] 96 @dc @F12 @sf [< FFFFFC> 22 1 0 12 23] 123 @dc @F10 @sf [< FFFFFE000F001F000780070007800100078001800780008003C0004003C0004003C0002003 C0002001E0001001E0200001E0200001E0200000F0300000F0300000FFF00000F030000078 1800007808000078080000780808003C0004003C0004003C0004003C0004001E0004001E00 04001E000C001E001C01FFFFFE> 31 31 -3 30 31] 69 @dc @F12 @sf [< FFFC3FFC0FC007E0078007C0078007800780078007800F0007801E0007801E0007803C0007 803C00078078000780F00007C0F00007A1E0000791E0000793C000078F8000078780000783 00000781000007808000078040000780200007801000078008000780040007800200078001 00078001800FC003E0FFFC0FFC> 30 31 -2 30 35] 75 @dc 20 @eop0 0 0 20 @bop1 97 307 a @F12 @sf([2])22 b(P)o(eter)c(J.)h(Denning.)31 b @F10 @sf(Computers)20 b(Under)g(A)o(ttack:)f(Intruders,)h(Worms)g(and)g (Viruses)p @F12 @sf(.)30 b(A)o(CM)-1701 57 y(Press)15 b(\(Addison-W)l (esley\),)f(1990.)-675 93 y([3])22 b(J.)e(Do)o(yne)h(F)l(armer)f(and)h (Alletta)f(d'A.)g(Belin.)37 b(Arti\014cial)19 b(life:)h(The)h(coming)f(ev)o (olution.)36 b(In)-1700 57 y @F10 @sf(Pr)n(o)n(c)n(e)n(e)m(dings)12 b(in)h (Celebr)n(ation)g(of)h(Murr)n(ay)g(Gel)r(l-Man)-5 b('s)14 b(60th)g (Birthday)p @F12 @sf(.)f(Cam)o(bridge)f(Univ)o(ersit)o(y)-1702 56 y (Press,)i(1990.)19 b(T)l(o)c(app)q(ear.)-542 94 y([4])22 b(Willi)o(am)14 b (Gibson.)19 b @F10 @sf(Neur)n(omanc)n(er)p @F12 @sf(.)g(Ace/The)d(Berk)o (eley)f(Publishing)g(Group,)f(1984.)-1573 94 y([5])22 b(Lance)17 b(J.)g (Ho\013man.)25 b @F10 @sf(R)n(o)n(gue)17 b(Pr)n(o)n(gr)n(ams:)h(Viruses,)f (Worms,)h(and)g(T)m(r)n(ojan)f(Horses)p @F12 @sf(.)24 b(V)l(an)18 b(Nos-) -1701 56 y(trand)c(Reinhold,)i(New)f(Y)l(ork,)f(NY,)h(1990.)-825 94 y([6]) 22 b(John)g(Norstad.)41 b @F10 @sf(Disinfe)n(ctant)21 b(On-line)h(Do)n (cumentation)p @F12 @sf(.)41 b(North)o(w)o(estern)22 b(Univ)o(ersit)o(y)l (,)e(1.8)-1701 57 y(edition,)14 b(June)i(1990.)-449 94 y([7])22 b(John)d (F.)f(Sho)q(c)o(h)i(and)f(Jon)g(A.)f(Hupp.)32 b(The)19 b(`w)o(orm')e (programs|early)h(exp)q(erimen)o(ts)h(with)f(a)-1701 56 y(distributed)c (computation.)19 b @F10 @sf(Communic)n(ations)d(of)g(the)g(A)o(CM)p @F12 @sf (,)e(25\(3\):17)o(2{1)o(80,)f(Marc)o(h)i(1982.)-1747 94 y([8])22 b(Eugene) 14 b(H.)f(Spa\013ord.)k(An)d(analysis)e(of)h(the)h(in)o(ternet)f(w)o(orm.)j (In)e(C.)f(Ghezzi)h(and)g(J.)f(A.)h(McDer-)-1701 56 y(mid,)e(editors,)g @F10 @sf(Pr)n(o)n(c)n(e)n(e)n(dings)o 14 x(of)i(the)h(2nd)g(Eur)n(op)n(e)n (an)f(Softwar)n(e)g(Engine)n(ering)f(Confer)n(enc)m(e)p @F12 @sf(,)f (pages)-1701 57 y(446{46)o(8.)h(Springer-V)l(erlag,)i(Septem)o(b)q(er)h (1989.)-924 93 y([9])22 b(Eugene)13 b(H.)g(Spa\013ord.)j(The)d(in)o (ternet)g(w)o(orm:)e(Crisis)h(and)h(aftermath.)i @F10 @sf(Communic)n (ations)f(of)g(the)-1700 57 y(A)o(CM)p @F12 @sf(,)f(32\(6\):67)o(8{68)o (7,)g(June)k(1989.)-745 94 y([10])22 b(Eugene)14 b(H.)f(Spa\013ord,)f (Kathleen)i(A.)f(Heaph)o(y)l(,)h(and)g(Da)o(vid)e(J.)i(F)l(erbrac)o(he.)j @F10 @sf(Computer)e(Viruses:)-1701 56 y(De)n(aling)k(with)j(Ele)n(ctr)n (onic)d(V)m(andalism)g(and)i(Pr)n(o)n(gr)n(amme)n(d)f(Thr)n(e)n(ats)p @F12 @sf(.)33 b(AD)o(APSO,)20 b(Arlington,)-1702 57 y(V)-5 b(A,)14 b (1989.)-289 93 y([11])22 b(Da)o(vid)15 b(J.)i(Stang.)24 b @F10 @sf (Computer)18 b(Viruses)p @F12 @sf(.)24 b(National)15 b(Computer)h(Securit)o (y)g(Asso)q(ciation,)g(W)l(ash-)-1701 57 y(ington,)e(DC,)g(2nd)h(edition,)f (Marc)o(h)h(1990.)33 748 y(20)-995 b 20 @eop1 (\nEND-JOB paper.dvi\n) print flush restore