E-Detective ºô¸ôºÊÅ¥¨t²Î¤§¤u§@­ì²z

¥Ò. Snifferºô¸ô°ò¦­ì²z§Þ¥©¸Ô¸Ñ
¤@¡BSniffer¾ú¥v
Sniffer¬O¤@­Ó¥j¦Ñªº§Þ³N¡AÃö©óÀb«È¡BºôºÞ¡Bĵ¹î¤Î±¡³ø¤H­û¦bºô¸ô¤W¨Ï¥ÎSniffer¨ÓÀò¨ú¸ê°T¤w¸g¤£¬O¤°»ò·sÂA¨Æ¡A¹L¥h¦³«Ü¦h¦¨¥\¯}®×ªº®×¨Ò¡C¤°»ò¬OSniffer©O¡H Sniffer´N¬Oºô¸ôÅÑÅ¥¾¹¡ASnifferÀR®¨®¨ªº¤u§@¦bºô¸ôªº©³¼h¡A§â§Aªº¯µ±K¥þ³¡°O¿ý¤U¨Ó¡C¬Ý¹L«Âº¸¥v±K´µºtªº¡m¥þ¥Á¤½¼Ä¡n¹q¼v¶Ü¡H Sniffer´N¹³¹q¼vùØ­±ºë¥©ªºÅÑÅ¥¾¹¤@¼Ë¡AÅý§A¨¾¤£³Ó¨¾ªº¥ý¶i§Þ³N¤Î³]³Æ¡C

Sniffer¥i¥H¬O³nÅé¡A¤]¥i¥H¬Oµ²¦X¤F³nÅ骺µwÅé(Appliance)¡A¬JµM¬O³nÅ騺´N­n¤À§@·~¨t²Î¡A±`¨£ªº¦³¦bWindows¡B UNXI ¡BLinux ¡BFreeBSDµ¥§@·~¨t²Î¤U¾Þ§@ªº¡AµwÅ骺SnifferºÙ¬°ºô¸ô«Ê¥]±´¶å¾¹¡A¤£½×¬OµwÅé³]³Æ©ÎªÌ¬O³nÅé¡A¥\¯à¥Øªº¥u¦³¤@­Ó¡A´N¬O­nÂ^¨ú¦bºô¸ô¤W¶Ç¿éªº¦UºØ«Ê¥]¤Î¸ê°T¡C


·í §A¦b¦¬¨ú§AªºEmail®É©ÎªÌ¬O¤WeBayÁʶR§A³ßÅwªºª««~ªº®É­Ô¡A§A¬O§_·|·Q¨ì§AªºªB¤Í±Hµ¹§Aªº¹q¤l¶l¥ó¡A§Aªº«H¥Î¥d±b¸¹Åܦ¨¤F¤@­Ó¤S¤@­Óªº¸ê°T«Ê¥]¦b ºô¸ô¤W¤£°±ªº¶Ç°e®É¡A¨Ç¸ê°T«Ê¥]·|³Q¦³¤ß¤H¤hºÊÅ¥©O¡H§Aªº¾á¼~¤£¬O¨S¦³¹D²zªº¡A¦]¬°Sniffer¥i¥HÅý§Aªº¾á¼~Åܦ¨¹ê»Úµo¥Íªº¦MÀI¡C´N¦p¦P¹q¸Ü½u¸ô¥i¥H ³QÅÑÅ¥¤@¼Ë¡C



¤G¡Bºô¸ô°ò¦ª¾ÃÑ

¦b¦¹Â²³æªº¤¶²Ð¤@¤Uºô¸ô°ò¦ª¾ÃÑ

¡]1¡^TCP/IPµ²ºc

¶}©ñ¨t²Î¤¬³s¡]OSI¡^¼Ò«¬±Nºô¸ô¹º¤À¬°¤C¼h¼Ò«¬¡A¤À§O¥Î¥H¦b¦U¼h¤W¹ê²{¤£¦Pªº¥\¯à¡C

³o¤C¼h¤À§O¬°¡GÀ³¥Î¼h¡Bªí¥Ü¼h¡B·|¸Ü¼h¡B¶Ç¿é¼h¡Bºô¸ô¼h¡B¸ê®Æ³sµ²¼h¤Îª«²z¼h¡C¦ÓTCP/IPÅé¨t¤]¦P¼Ë¿í´` ³o¤C¼h¼Ð·Ç¡A¥u¤£¹L¦b¬Y¨ÇOSI¥\¯à¤W¶i¦æ¤FÀ£ÁY¡A±Nªí¥Ü¼h¤Î·|¸Ü¼h¦X¨Ö¤JÀ³¥Î¼h¤¤¡A©Ò¥H¹ê»Ú¤W§Ú­Ì¥´¥æ¹DªºTCP/IP¶È¶È¦³5¼h¦Ó¤w¡Aºô¸ô¤Wªº¤À¼hµ² ºc¨M©w¤F¦b¦U¼h¤Wªº¨óij¤À§G¤Î¥\¯à¹ê²{¡A±q¦Ó¨M©w¤F¦U¼h¤Wºô¸ô³]³Æªº¨Ï¥Î¡C¹ê»Ú¤W«Ü¦h¦¨¥\ªº¨t²Î³£¬O°ò©óOSI¼Ò«¬ªº¡A¦p¡G¦p«Ê¥]¤¤Ä~¡BATM¡BISDN µ¥¡C


TCP/IPªººô¸ôÅé¨tµ²ºc
-----------------------------------
| SMTP | DNS | HTTP | FTP | TELNET| À³¥Î¼h
-----------------------------------
| TCP | UDP | ¶Ç¿é¼h
-----------------------------------
| IP | ICMP | ARP RARP | ºô¸ô¼h
------------------------
| IEEE 802 ¤A¤Óºô SLIP/PPP PDN etc| ¸ê®Æ³sµ²¼h
-----------------------------------
| ºô¥d ¹qÆl Âùµ±½u etc | ª«²z¼h
-----------------------------------

±q¤W­±ªº¹Ï¤¤§Ú­Ì¥i¥H¬Ý¥X¡A²Ä¤@¼hª«²z¼h©M²Ä¤G¼h¸ê®Æ³sµ²¼h¬OTCP/IPªº°ò¦¡A¦ÓTCP/IP¥»¨­¨Ã¤£¤Q¤ÀÃö¤ß§C¼h¡A¦]¬°³B¦b¸ê®Æ³sµ²¼hªººô¸ô³]³ÆÅX°Êµ{¦¡±N¤W¼hªº¨ó©w©M¹ê»Úªºª«²z¤¶­±¹jÂ÷¶}¨Ó¡Cºô¸ô³]³ÆÅX°Êµ{¦¡¦ì©ó¤¶½è³X°Ý¤l¼h(MAC)¡C

¡]2¡^©M«Ê¥]Â^¨ú¦³Ãöªººô¸ô³]³Æ
¸ô¥Ñ¾¹Router¡G¸ô¥Ñ¾¹¤SºÙ¬°¸ô®|¾¹¡A¥Î¤á¦bºô¸ô¼h¤W³s±µ¤£¦Pºô¸ô©Ò¥ÎªºµwÅé»P³nÅé¡A¸ô¥Ñ¾¹»P¾ô±µ¾¹ (Bridge) ªº¥\¯àÃþ¦ü¡AÂǵ۱N³\¦h¸û¤pªººô¸ô³sµ²¦b¤@°_¡A¥H«K¦³®ÄÂX¥Rºô¸ô¡C¸ô¥Ñ¾¹¥i¥H³s±µ¨Ï¥Î¤£¦Pºô»Úºô¸ô³q°T¨ó©w (IP ) ©M¶Ç¿é¤èªkªº°Ï°ìºô¸ô (LAN ) ¡C
¥æ´«¾÷Switch : §@¥Î¬O¦b³s±µ°Ï°ìºô¸ô¡A¨Ï±o²³¦h°Ï°ìºô¸ô³sµ²°_¨Ó¡A¦Ó¦¨¬°¤@­Ó¤jªººô»Úºô¸ô¡C

¡]3¡^TCP/IP»P¤A¤Óºô¸ô
¤A¤Óºô¸ô©MTCP/IP¥i¥H»¡¬O¬Û¤¬¬Û¦¨ªº¡A¥i¥H»¡¨âªÌªºÃö«Y´X¥G¬O±K¤£¥i¤À¡A¤A¤Óºô¸ô¦b¤@©M¤G¼h´£¨Ñª«²z¤WªºÁp¾÷¡A¦Ó TCP/IP¤u§@¦b¤W¼h¡A¨Ï¥Î32¦ì¤¸ªºIP¦ì§}¡A¤A¤Óºô«h¨Ï¥Î48¦ì¤¸ªºMAC¦ì§}¡A¨âªÌ¶¡¨Ï¥ÎARP©MRARP¨óij¶i¦æ¬Û¤¬Âà´«¡C±q§Ú­Ì¤W­± TCP/IPªº¼Ò«¬¹Ï¤¤¥i¥H²M·¡ªº¬Ý¨ì¨âªÌªºÃö«Y¡C

¸üªiºÊÅ¥/½Ä¬ðÀË´ú(CSMA/CD)§Þ³N³Q´¶¹Mªº¨Ï¥Î¦b¤A¤Óºô¤¤¡A©Ò¿×¸üªiºÊÅ¥¬O«ü¦b¤A¤Óºô¤¤ªº¨C­Ó¯¸ÂI³£ ¨ã¦³¦Pµ¥ªºÅv§Q¡A¦b¶Ç¿é¦Û¤vªº¸ê®Æ®É¡A­º¥ýºÊÅ¥«H¹D¬O§_ªÅ¶¢¡A¦pªGªÅ¶¢¡A´N¶Ç¿é¦Û¤vªº¸ê®Æ¡A¦pªG³q¹D³Q¦û¥Î¡A´Nµ¥«Ý³q¹DªÅ¶¢¡C¦Ó½Ä¬ðÀË´ú«h¬O¬°¤F¨¾¤îµo¥Í ¨â­Ó¯¸ÂI¦P®ÉºÊ´ú¨ìºô¸ô¨S¦³³Q¨Ï¥Î®É¦Ó²£¥Í½Ä¬ð¡C¤A¤Óºô±Ä¥Î¼s¼½¾÷¨î¡A©Ò¦³»Pºô¸ô³s±µªº¤u§@¯¸³£¥i¥H¬Ý¨ìºô¸ô¤W¶Ç»¼ªº¸ê®Æ¡C

¤U­±ªº¹Ï¬O¤@­Ó¨å«¬ªº¦b¤A¤Óºô¤¤«È¤á»P¦øªA¾¹¨Ï¥Î

TCP/IP¨óijªº³q«H¡C

¥Î¤á¶iµ{ FTP«È¤á <-------------------------> FTP¦øªA¾¹ À³¥Î¼h

| |

¤º®Ö¤¤ªº¨óij´Ì TCP <-------------------------> TCP ¶Ç¿é¼h

| |

¤º®Ö¤¤ªº¨ó©w´Ì IP <-------------------------> IP ºô¸ô¼h

| |

¤A¤ÓºôÅX°Êµ{¦¡ <-------------------------> ¤A¤ÓºôÅX°Êµ{¦¡ ¸ê®Æ³sµ²¼h

¢w¢w¢w¢w¢w¢w-------------------------------


¤T
¡BSnifferªº­ì²z
­nª¾¹D¦b¤A¤Óºô¤¤¡A©Ò¦³ªº³q°T³£¬O¼s¼½ªº¡A¤]´N¬O»¡³q±`¦b¦P¤@­Óºô¬qªº©Ò¦³ºô¸ô¤¶­±³£¥i¥H³X°Ý¦bª«²z´CÅé¤W¶Ç¿éªº©Ò¦³¸ê®Æ¡A¦Ó¨C¤@­Óºô¸ô¤¶­±³£¦³¤@­Ó°ß¤@ªºµwÅé¦ì§}¡A³o­ÓµwÅé¦ì§}¤]´N¬Oºô¥dªºMAC¦ì§}¡A¤j¦h¼Æ¨t²Î¨Ï¥Î48 bitªº¦ì§}¡A³o­Ó¦ì§}¥Î¨Óªí¥Üºô¸ô¤¤ªº¨C¤@­Ó³]³Æ¡A¤@¯ë¨Ó»¡¨C¤@¶ôºô¥d¤WªºMAC¦ì§}³£¬O¤£¦Pªº¡A¨C­Óºô¥d¼t®a±o¨ì¤@¬q¦ì§}¡AµM«á¥Î³o¬q¦ì§}¤À°tµ¹¨ä¥Í²£ªº¨C­Óºô¥d¤@­Ó¦ì§}¡C¦bµwÅé¦ì§}©MIP¦ì§}¶¡¨Ï¥ÎARP©MRARP¨óij¶i¦æ¬Û¤¬Âà´«¡C

¦b¥¿±`ªº±¡ªp¤U¡A¤@­Óºô¸ô¤¶­±À³¸Ó¥u¦^À³³o¼Ëªº¨âºØ«Ê¥]¸ê®Æ¡G

1.»P¦Û¤vµwÅé¦ì§}¬Û¤Ç°tªº«Ê¥]¸ê®Æ¡C
2.µo¦V©Ò¦³¾÷¾¹ªº¼s¼½«Ê¥]¸ê®Æ¡C

¦b¤@­Ó¹ê»Úªº¨t²Î¤¤¡A¸ê®Æªº¦¬µo¬O¥Ñºô¸ô¥d¨Ó§¹¦¨¤u§@ªº¡Aºô¥d±µ¦¬¨ì¶Ç¿é¨Óªº¸ê®Æ¡Aºô¥d¤ºªº³æ¤ùµ{¦¡±µ¦¬¸ê®Æ «Ê¥]ªº¥ØªºMAC¦ì§}¡A®Ú¾Ú¹q¸£¤Wªººô¥dÅX°Êµ{¦¡³]¸mªº±µ¦¬¼Ò¦¡§PÂ_¸Ó¤£¸Ó±µ¦¬¡A»{¬°¸Ó±µ¦¬´N±µ¦¬«á²£¥Í¤¤Â_«H¸¹³qª¾CPU¡A»{¬°¤£¸Ó±µ¦¬´N¥á±¼¤£ºÞ¡A©Ò ¥H¤£¸Ó±µ¦¬ªº¸ê®Æºô¥d´NºIÂ_¤F¡A¹q¸£®Ú¥»´N¤£ª¾¹D¡CCPU±o¨ì¤¤Â_«H¸¹²£¥Í¤¤Â_¡A§@·~¨t²Î´N®Ú¾Úºô¥dªºÅX°Êµ{¦¡³]¸mªººô¥d¤¤Â_µ{¦¡¦ì§}½Õ¥ÎÅX°Êµ{¦¡±µ¦¬¸ê ®Æ¡AÅX°Êµ{¦¡±µ¦¬¸ê®Æ«á©ñ¤J«H¸¹°ïÅ|Åý§@·~¨t²Î³B²z¡C¦Ó¹ï©óºô¥d¨Ó»¡¤@¯ë¦³¥|ºØ±µ¦¬¼Ò¦¡¡G

¼s¼½¤è¦¡¡G ¸Ó¼Ò¦¡¤Uªººô¥d¯à°÷±µ¦¬ºô¸ô¤¤ªº¼s¼½¸ê°T¡C
²Õ¼½¤è¦¡¡G ³]¸m¦b¸Ó¼Ò¦¡¤U ªººô¥d¯à°÷±µ¦¬²Õ¼½¸ê®Æ¡C
ª½±µ¤è¦¡¡G ¦b³oºØ¼Ò¦¡¤U¡A¥u¦³¥Øªººô¥d¤~¯à±µ¦¬¸Ó¸ê®Æ¡C
²VÂø¼Ò¦¡¡G ¦b³oºØ¼Ò¦¡¤Uªººô¥d¯à°÷±µ¦¬¤@¤Á³q¹L¥¦ ªº¸ê®Æ¡A¦Ó¤£ºÞ¸Ó¸ê®Æ¬O§_¬O¥u¶Çµ¹¥¦ªº¡C

Á` µ²¤@¤U¡A­º¥ý¡A§Ú­Ìª¾¹D¤F¦b¤A¤Óºô¸ô¤¤¬O°ò©ó¼s¼½¤è¦¡¶Ç°e¸ê®Æªº¡A¤]´N¬O»¡¡A©Ò¦³ªº¹êÅé«H¸¹³£­n¸g¹L§Úªº¾÷¾¹¡A¦A¦¸¡Aºô¥d¥i¥H¸m©ó¤@ºØ¼Ò¦¡¥s²VÂø¼Ò¦¡ ¡]promiscuous¡^¡A¦b³oºØ¼Ò¦¡¤U¤u§@ªººô¥d¯à°÷±µ¦¬¨ì¤@¤Á³q¹L¥¦ªº¸ê®Æ¡A¦Ó¤£ºÞ¹ê»Ú¤W¸ê®Æªº¥Øªº¦a§}¬O¤£¬O¥L¡C³o¹ê»Ú¤W´N¬O§Ú­ÌSniffer ¤u§@ªº°ò¥»­ì²zÅýºô¥d±µ¦¬¤@¤Á¥L©Ò¯à±µ¦¬ªº¸ê®Æ¡C

§Ú­Ì¨Ó¬Ý¤@­Ó²³æªº¨Ò¤l¡A¾÷¾¹A¡BB¡BC»P¶°½u¾¹HUB¬Û³s±µ¡A¶°½u¾¹HUB³q¹L¸ô¥Ñ¾¹Router³X°Ý ¥~³¡ºô¸ô¡C³o¬O¤@­Ó«Ü²³æ¤]«Ü±`¨£ªº±¡ªp¡A¤ñ¦p»¡¦b¤½¥q¤j¼ÓùØ¡A§Ú©Ò¦bªººô¸ô³¡¿ì¤½«Çùتº´X¥x¾÷¾¹³q¹L¶°½u¾¹³s±µ¡A¦Óºô¸ô³¡¡B¶}µo³¡¡B¥«³õ³¡¤]¬O¦P¼Ë¦p ¦¹¡A´X­Ó³¡ªùªº¶°½u¾¹³q¹L¸ô¥Ñ¾¹³s±µ¡CÁÙ¬O¦^¨ì§Ú­Ìªº¹Ï¤@¤W¨Ó¡A­È±oª`·Nªº¤@ÂI¬O¾÷¾¹A¡BB¡BC¨Ï¥Î¤@­Ó´¶³qªºHUB³s±µªº¡A¤£¬O¥ÎSWITCH¡A¤]¤£¬O ¥ÎROUTER¡A¨Ï¥Î SWITCH©MROUTERªº±¡ªp­n¤ñ³o½ÆÂø±o¦h¡C


 
§Ú ­Ì°²³]¤@¤U¾÷¾¹A¤WªººÞ²z­û¬°¤FºûÅ@¾÷¾¹C¡A¨Ï¥Î¤F¤@­ÓFTP©R¥O¦V¾÷¾¹C¶i¦æ»·ºÝµn³°¡A¨º»ò¦b³o­Ó¥ÎHUB³s±µªººô¸ôùظê®Æ¨«¦V¹Lµ{¬O³o¼Ëªº¡C­º¥ý¾÷¾¹ A¤WªººÞ²z­û¿é¤Jªºµn³°¾÷¾¹CªºFTP©R¥O¸g¹LÀ³¥Î¼hFTP¨ó©w¡B¶Ç¿é¼hTCP¨ó©w¡Bºô¸ô¼hIP¨ó©w¡B¸ê®Æ³sµ²¼h¤Wªº¤A¤Óºô¸ôÅX°Êµ{¦¡¤@¼h¤@¼hªº¥]»q¡A³Ì «á°e¨ì¤Fª«²z¼h¡A§Ú­Ìªººô½u¤W¡C±µ¤U¨Ó«Ê¥]¸ê®Æ°e¨ì¤FHUB¤W¡A²{¦b¥ÑHUB¦V¨C¤@­Ó±µÂI¼s¼½¥Ñ¾÷¾¹Aµo¥Xªº«Ê¥]¸ê®Æ¡A¾÷¾¹B ±µ¦¬¨ì¥ÑHUB¼s¼½µo¥Xªº«Ê¥]¸ê®Æ¡A¨ÃÀˬd¦b«Ê¥]¸ê®Æ¤¤ªº¦ì§}¬O§_©M¦Û¤vªº¦a§}¬Û¤Ç°t¡Aµo²{¤£¬Oµo¦V¦Û¤vªº«á§â³o«Ê¥]¸ê®Æ¥á±ó¡A¤£¤©²z¸B¡C¦Ó¾÷¾¹C¤]±µ¦¬ ¨ì¤F«Ê¥]¸ê®Æ¡A¨Ã¦b¤ñ¸û¤§«áµo²{¬Oµo²{¦Û¤vªº¡A±µ¤U¨Ó¥L´N¹ï³o«Ê¥]¸ê®Æ¶i¦æ¤ÀªR³B²z¡C

¦b¤W­±³o­Ó²³æªº¨Ò¤l¤¤¡A¾÷¾¹B¤WªººÞ²z­û¦pªG«Ü¦n©_¡A¥L«Ü·Qª¾¹D¨s³ºµn³°¾÷¾¹C¤WFTP©R¥O¬O¤°»ò¡H¨º»ò¥L­n°µªº«Ü²³æ¡A¶È¶È»Ý­n§â¦Û¤v¾÷¾¹¤Wªººô¥d¸m©ó²VÂø¼Ò¦¡¡A¨Ã¹ï±µ¦¬¨ìªº«Ê¥]¸ê®Æ¶i¦æ¤ÀªR¡A±q¦Ó§ä¨ì¦x¥]§t¦b«Ê¥]¸ê®Æ¤¤ªº¸ê°T¡C


¥|¡B°µ¤@­Ó¦Û¤vªºsniffer
¦b¤W¤@¸`ùØ¡A§Ú­Ì¤w¸gª¾¹D¤FSnifferªº°ò¥»­ì²z¬O«ç»ò¤@¦^¨Æ¡A³o¤@¸`§Ú­Ì¨Ó¿Ë¦Û°Ê¤â°µ¤@­Ó¦Û¤vªºsniffer¡A¥Îµ{¦¡½X¨Ó¸ÑÄÀ¤ñ¤°»ò³£­n¨Ó±o¯u¹ê¡A¤]§ó®e©ö²z¸Ñ¡C

¦^ÀY·Q¤@·Q§Ú­Ì¤W­±»¡ªº­ì²z¡A§Ú­Ì­n°µªº¨Æ±¡¦³´X¥ó¡G

1. §âºô¥d¸m©ó²VÂø¼Ò¦¡¡C 2. Â^¨ú¼Æ¾Ú¥]¡C 3. ¤ÀªR¸ê®Æ¥]¡C

ª`¡G¤U­±ªº·½©l½X¨ú¦ÜChad Renfroªº<< Basic Packet-Sniffer Construction from the Ground Up>>¤@¤å¤¤

/************************Tcp_sniff_2.c********************/
1.#include
2.#include
3.#include
4.#include
5.#include
6.#include
7.#include
8.#include
9.#include "headers.h"
#define INTERFACE "eth0"
/*Prototype area*/
10.int Open_Raw_Socket(void);
11.int Set_Promisc(char *interface, int sock);
12.int main() {
13.int sock, bytes_recieved, fromlen;
14.char buffer[65535];
15.struct sockaddr_in from;
16.struct ip *ip;
17.struct tcp *tcp;
18.sock = Open_Raw_Socket();
19. Set_Promisc(INTERFACE, sock);
20. while(1)
22. {
23. fromlen = sizeof from;
24. bytes_recieved = recvfrom(sock, buffer, sizeof buffer, 0, (struct sockaddr *)&from, &fromlen);
25. printf("\nBytes received ::: %5d\n",bytes_recieved);
26. printf("Source address ::: %s\n",inet_ntoa(from.sin_addr));
27. ip = (struct ip *)buffer;
/*See if this is a TCP packet*/
28. if(ip->ip_protocol == 6) {
29. printf("IP header length ::: %d\n",ip->ip_length);
30. printf("Protocol ::: %d\n",ip->ip_protocol);
31. tcp = (struct tcp *)(buffer + (4*ip->ip_length));
32. printf("Source port ::: %d\n",ntohs(tcp->tcp_source_port));
33. printf("Dest port ::: %d\n",ntohs(tcp->tcp_dest_port));
34. }
35. }
36.}
37.int Open_Raw_Socket() {
38. int sock;
39. if((sock = socket(AF_INET, SOCK_RAW, IPPROTO_TCP)) < 0) {
/*Then the socket was not created properly and must die*/
40. perror("The raw socket was not created");
41. exit(0);
42. };
43. return(sock);
44. }
45.int Set_Promisc(char *interface, int sock ) {
46. struct ifreq ifr;
47. strncpy(ifr.ifr_name, interface,strnlen(interface)+1);
48. if((ioctl(sock, SIOCGIFFLAGS, &ifr) == -1)) {
/*Could not retrieve flags for the interface*/
49. perror("Could not retrive flags for the interface");
50. exit(0);
51. }
52. printf("The interface is ::: %s\n", interface);
53. perror("Retrieved flags from interface successfully");
54. ifr.ifr_flags |= IFF_PROMISC;
55. if (ioctl (sock, SIOCSIFFLAGS, &ifr) == -1 ) {
/*Could not set the flags on the interface */
56. perror("Could not set the PROMISC flag:");
57. exit(0);
58. }
59. printf("Setting interface ::: %s ::: to promisc", interface);
60. return(0);
61. }
/***********************EOF**********************************/


¤W­±³o¬qµ{¦¡¤¤¦³«Ü¸Ô²Óªºµù¸Ñ¡A­º¥ý

²Ä10¦æ--int Open_Raw_Socket(void); ¬O§Ú­Ìªº¦Û©w¨ç¼Æ¡A¤º®e¦p¤U¡G

37.int Open_Raw_Socket() {
38. int sock;
39. if((sock = socket(AF_INET, SOCK_RAW, IPPROTO_TCP)) < 0) {
/*Then the socket was not created properly and must die*/
40. perror("The raw socket was not created");
41. exit(0);
42. };
43. return(sock);
44. }


²Ä39¦æ if((sock = socket(AF_INET, SOCK_RAW, IPPROTO_TCP)) < 0) {

³oùاڭ̨ϥΤFsocket¨ç¼Æ¡A¨Ï³Ð«Ø¤F¤@­Ó­ì©l®M¥ó¤¶­±¡A¨Ï¤§Â^¨úTCP/IP«Ê¥]¸ê®Æ¡C

±µ¤U¨Ó²Ä11¦æ-int Set_Promisc(char *interface, int sock)¡A³o¤]¬O§Ú­Ìªº¦Û©w¨ç¼Æ¡A¥Øªº¬O§âºô¥d³]©w¨ì²VÂø¼Ò¦¡¡A¤º®e¦p¤U¡G

45.int Set_Promisc(char *interface, int sock ) {
46. struct ifreq ifr;
47. strncpy(ifr.ifr_name, interface,strnlen(interface)+1);
48. if((ioctl(sock, SIOCGIFFLAGS, &ifr) == -1)) {
/*Could not retrieve flags for the interface*/
49. perror("Could not retrive flags for the interface");
50. exit(0);
51. }
52. printf("The interface is ::: %s\n", interface);
53. perror("Retrieved flags from interface successfully");
54. ifr.ifr_flags |= IFF_PROMISC;
55. if (ioctl (sock, SIOCSIFFLAGS, &ifr) == -1 ) {
/*Could not set the flags on the interface */
56. perror("Could not set the PROMISC flag:");
57. exit(0);
58. }
59. printf("Setting interface ::: %s ::: to promisc", interface);
60. return(0);
61. }


­º¥ý struct ifreq ifr;©w¤@¤F¤@­Óifrregªºµ²ºcifr¡A±µ¤U¨Óstrncpy(ifr.ifr_name, interface,strnlen(interface)+1);¡A´N¬O§â§Ú­Ìºô¸ô³]³Æªº¦W¦r¶ñ¼g¨ìifrµ²ºc¤¤¡A¦b³oùØ #define INTERFACE "eth0" ¡AÅý§Ú­Ì¦A©¹¤U¬Ý,

ioctl(sock, SIOCGIFFLAGS, &ifr),SIOCGIFFLAGS½Ð¨Dªí¥Ü»Ý­nÀò¨ú¤¶­±¼Ð»x¡A²{¦b¨ì¤F²Ä54¦æ¡A¦b§Ú­Ì¦¨¥\ªºÀò¨ú¤¶­±¼Ð»x«á§â¥L³]©w¦¨²VÂø¼Ò¦¡¡A

ifr.ifr_flags |= IFF_PROMISC;ioctl (sock, SIOCSIFFLAGS, &ifr)¡COK¡A²{¦b§Ú­Ì©Ò»¡ªº²Ä¤@¨B¤w¸g§¹¦¨--------§âºô¥d³]©w¦b²VÂø¼Ò¦¡¡C

²{¦b¶i¤J²Ä¤G¨B¡AÂ^¨ú«Ê¥]¸ê®Æ¡C±q²Ä20¦æ¶}©l¡A§Ú­Ì¶i¤J¤F¤@­Ó°j°é¡A while(1)¡A¦b²Ä24¦æ¡Arecvfrom(sock, buffer, sizeof buffer, 0, (struct sockaddr *)&from, &fromlen)¡A³o­Ó¨ç¼Æ­n°µªº´N¬O±µ¦¬¸ê®Æ¡A¨Ã¥B§â±µ¦¬¨ìªº¸ê®Æ©ñ¤Jbuffer¤¤¡C´N¬O³o»ò²³æ¡A¤w¸g§¹¦¨¤F§Ú­Ì­nÂ^¨ú«Ê¥]¸ê®Æªº¥ô°È¡C

¨ì¤F²Ä¤T¨B¡A¤ÀªR«Ê¥]¸ê®Æ¡C27¦æ¡Aip = (struct ip *)buffer¡A¨Ï§Ú­Ì¦bÀYÀɤ¤ªºIPµ²ºc¹ïÀ³©ó©Ò±µ¦¬¨ìªº¸ê®Æ¡A±µ¤U¨Ó§PÂ_¦bºô¸ô¼h¤¤¬O§_¨Ï¥Îªº¬OTCP¨óij¡Aif(ip-> ip_protocol == 6) ¡A¦pªGµª®×¬O¡Atcp¸ê°T¥]±q¾ã­ÓIP/TCP¥] buffer + (4*ip->ip_length) ¦ì§}³B¶}©l¡A©Ò¥H31¦æ tcp = (struct tcp *)(buffer + (4*ip->ip_length))¡AµM«á¹ïÀ³µ²ºc§â§A©Ò»Ý­nªº¸ê°T¿é¥X¡C

/*************************headers.h**************************/
/*structure of an ip header*/
struct ip {
unsigned int ip_length:4; /*little-endian*/
unsigned int ip_version:4;
unsigned char ip_tos;
unsigned short ip_total_length;
unsigned short ip_id;
unsigned short ip_flags;
unsigned char ip_ttl;
unsigned char ip_protocol;
unsigned short ip_cksum;
unsigned int ip_source; unsigned int ip_dest;
};
/* Structure of a TCP header */
struct tcp {
unsigned short tcp_source_port;
unsigned short tcp_dest_port;
unsigned int tcp_seqno;
unsigned int tcp_ackno;
unsigned int tcp_res1:4, /*little-endian*/
tcp_hlen:4,
tcp_fin:1,
tcp_syn:1,
tcp_rst:1,
tcp_psh:1,
tcp_ack:1,
tcp_urg:1,
tcp_res2:2;
unsigned short tcp_winsize;
unsigned short tcp_cksum;
unsigned short tcp_urgent;
};

/*********************EOF***********************************/

±q¤W­±ªº¤ÀªR§Ú­Ì¥i¥H²M·¡ªº»{ÃѨì¡A»{ÃѤ@­ÓSniffer»Ý­n¹ïTCP/IP¨ó©w¦³µÛ¸Ô²ÓªºÁA¸Ñ¡A§_«h§A®Ú¥»µLªk§ä¨ì§A»Ý­nªº¸ê°T¡C¦³¤F¤W­±ªº°ò¦¡A§A¥i¥H¦Û¤v¨Ó°µ¤@­Ó§A»Ý­nªºSniffer¤F¡C


¤­¡B±`¥ÎªºSniffer
«Ü¤Ö¦³­ì¦]·|Åý§A¦Û¤v¿Ë¦Û°Ê¤â¨Ó°µ¤@­Ó¦Û¤vªºSniffer¡A°£«D§A¬O·QÁA¸Ñ¥Lªº­ì²z¡A©ÎªÌ¬O¨ä¥L¤@¨Ç¯S§Oªº­ì¦]¡A¤ñ¦p§A­n¦b¬Y­Ó¯S®íªºÀô¹ÒÄdºI¤@¨Ç¯S®íªº¸ê®Æ¥]¡C¤U­±§Ú­Ì´N¨Ó¬Ý¬Ý¤@¨Ç¦bºô¸ô¤W¸g±`¨Ï¥ÎªºSniffer¡C

¡]1¡^WindowsÀô¹Ò¤U
WindowsÀô¹Ò¤U³ÌµÛ¦Wªº¬ONetxray¥H¤ÎSniffer pro¡C

¡]2¡^UNUX¤ÎLinuxÀô¹Ò¤U
UNUX¤ÎLinuxÀô¹Ò¤UªºsnifferºØÃþ·Ð¦h,¦psniffit, snoop, tcpdump, dsniffµ¥³£¬O¤ñ¸û±`¨£ªº¡A¥L­Ì³£¦³¤@­Ó¦n³B´N¬O´£¨Ñ§K¶Oªº­ì©l½X¨Ñ§A¬ã¨s¨Ï¥Î¡C

1. Sniffit
Sniffit¥i¥H¹B¦æ¦bSolaris¡BSGI©MLinuxµ¥¥­»O¤W¡A¥ÑLawrence Berkeley Laboratory ¹êÅç«Ç¶}µoªº¤@­Ó§K¶Oªººô¸ôºÊÅ¥³nÅé¡C³ÌªñSniffit 0.3.7¤]±À¥X¤FNTª©¥»¡A¨Ã¤]¤ä´©WINDOWS 2000.
§A¥i¥H¦b³oùاä¨ìsniffit
http://reptile.rug.ac.be/~coder/sniffit/sniffit.html


2. snoop
­Y¦w¸Ë¦bSolaris¤U¡A¬O¤@­Ó¥Î©óÅã¥Üºô¸ô¥æ³qªºµ{¦¡¡A¤£¹LSniffer¬O§âÂù¤b¼C¡A¬JµMºÞ²z­û¯à¥Î¥L¨ÓºÊµø¦Û ¤vªººô¸ô¡A·íµM¤@­Ó¤ßÃh´c·Nªº¤J«IªÌ¤]¥i¥H¥Î¥L¨ÓSniffer¦Û¤v·P¿³½ìªº¤º®e¡C­È±o¤@´£ªº¬O¡ASNOOP³Qµo²{¦s¦b¤@­Ó½w½Ä°Ï·¸¥Xº|¬}¡A·í¥H¾É­P¤J«I ªÌ¥H¹B¦æ snoop(³q±`¬°root)ªº¨­¥÷»·ºÝ¶i¤J¨t²Î¡C

3. tcpdump
tcpdmp¬O¤@­Óª¾¦W«×«Ü°ªªººô¸ôºÊÅ¥³nÅé¡AFREEBSDÁÙ§â¥Lªþ±a¦b¤F¨t²Î¤W¡A¬O¤@­Ó³Q«Ü¦hUNIX°ª¤â»{¬°¬O¤@­Ó±M·~ªººô¸ôºÞ²z¤u¨ã¡C

4. dsniff
¤§©Ò¥H­n½Í½Ídsniff¡A¬O¦]¬°¥L¤£¶È¶È¬O¤@­Ósniffer³nÅé¡A¦b¥Lªº¾ã­Ó®M¥ó¥]¤¤¡A¥]§t¤F«Ü¦h¨ä¥L¦³¥Îªº¤u¨ã¡A¦p arpspoof¡Adnsspoof¡Amacof¡Atcpkillµ¥µ¥¡ASnifferªº¤â¬q§ó¥[ªº¦h¼Ë©M½ÆÂø¤Æ¡Cdsniff¬O¥ÑDugSong¶}µoªº§A¥i¥H¦b¥Lªº¥D­¶¤W§ä¨ì³o­Ó¤u¨ã¡C ¥Ø«edsniff¤ä«ùOpenBSD (i386), Redhat Linux (i386), ©MSolaris (sparc). ¨Ã¥B¦bFreeBSD, Debian Linux, Slackware Linux, AIX,©MHP-UX¤W¤]¯à¹BÂà±o«Ü¦n¡C¦ý¬Odsniff»Ý­n´X­Ó¨ä¥L®aªº³nÅé¦@¦P¨Ï¥Î¡A¥L­Ì¤À§O¬O¡ABerkeley DB ¡AOpenSSL¡A libpcap¡A libnet¡A libnids¡C¦pªG±ø¥ó¤¹³\ªº¸Ü¡A§A³Ì¦n¯à°÷¿Ë¦ÛŪ¤@Ūdsniffªº­ì©l½X¡A§A¥i¥H¦b
http://naughty.monkey.org/~dugsong/
§ä¨ìdsniff¡C



¤»¡B²`¤J¤§Sniffer¤§¹B¥Î
³æ¯ÂªºSnifferªº¥\¯à©l²×¬O¦³­­ªº¡A©Ò¥H¦b¤j¦h¼Æªº±¡ªp¤U¡ASniffer©¹©¹©M¨ä¥Lµ{¦¡µ²¦X°_¨Ó¨Ï¥Î¡A Sniffer©M spoof¥H¤Î¨ä¥¦µ{¦¡µ²¦X¦b¤@°_¨Ï¥Î¹ïºô¸ô«Ê¥]¸ÑªR¸û¬°§¹¾ã¡C³æ¯ÂªºSniffer¦n¤ñ¯Ê¤F¤@°¦»L¡AµLªkµo´§¤jªº§@¥Î¡A¨Ò¦p¦bSniffer­ì²z¤@¸`¤¤ §Ú­Ì°Q½×ªº¨Ò¤lùØ¡A§Ú¤@¦Aªº±j½Õ§Ú­Ì¨Ï¥Îªº¬O¤@­Ó´¶³qªºHUB¶i¦æ³s±µ¬O¦³­ì¦]ªº¡A¦pªG§Ú­Ì±NHUB¥Î¤@­Óswitch¥N´À¡A¨º±¡ªp´N­n½ÆÂø¤@¨Ç¤F¡A§Ú­Ì ªº¾÷¾¹A¡BB¡BC»PSwitch¬Û³s±µ¡A¦ÓSwitch³q¹L¸ô¥Ñ¾¹Router³X°Ý¥~³¡ºô¸ô¡C§Ú­Ì¥ý¨ÓÁA¸ÑSwitchªº¤u§@­ì²z¡G

¦bHUB ¥u¬O²³æ¦a§â©Ò±µ¦¬¨ìªº«H¸¹³q¹L©Ò¦³°ð¡]°£¤F«H¸¹¨Óªº¨º­Ó°ð¤f¡^­«½Æµo°e¥X¥h¤£¦P¡A¦ÓªºSwitch«o¥i¥HÀˬd¨C¤@­Ó¦¬¨ìªº¸ê®Æ¥]¡A¨Ã¹ï¸ê®Æ¥]¶i¦æ¬ÛÀ³ªº³B²z¡C

¦bSwitch¤º«O¦sµÛ¨C¤@­Óºô¬q¤W©Ò¦³¸`ÂIªºª«²z¦ì§}¡A¥u¤¹³\¥²­nªººô¸ô¬y¶q³q¹LSwitch¡CÁ|¨Ò¨Ó»¡¡A ·íSwitch±µ¦¬¨ì¤@­Ó«Ê¥]¸ê®Æ¤§«á¡A®Ú¾Ú¦Û¨­«O¦sªººô¸ô¦ì§}ªíÀˬd¸ê®Æ¥]¤º¥]§tªºµo°e©M±µ¦¬¤è¦ì§}¡C¦pªG±µ¦¬¤è¦ì©óµo°e¤è¤§ºô¬q¡A¸Ó¸ê®Æ¥]´N·|³Q Switch¥á±ó¡A¤£¯à³q¹L¥æ´«¾÷¶Ç°e¨ì¨ä¥Lªººô¬q¡F¦pªG±µ¦¬¤è©Mµo°e¤è¦ì©ó¨â­Ó¤£¦Pªººô¬q¡A¸Ó¸ê®Æ¥]´N·|³QSwitchÂàµo¨ì¥Ø¼Ð¤§ºô¬q¡C³o¼Ë¡A³q¹L¥æ ´«¾÷ªº¹LÂo©MÂàµo¡A¥i¥H¦³®ÄÁקKºô¸ô¼s¼½¸I¼V¡A´î¤Ö¿ù»~«Ê¥]©M¯}¸H«Ê¥]ªº¥X²{¡C²{¦b¥«°â¦h¬°Switch¡C

²{¦b¦^¨ì§Ú­Ìªº¨Ò¤l¤¤¨Ó¡A§Ú­Ì°²³]¾÷¾¹A¤WªººÞ²z­û¬°¤FºûÅ@¾÷¾¹C¡A¨Ï¥Î¤F¤@­ÓFTP©R¥O¦V¾÷¾¹C¶i¦æ»· ºÝµn¤J¡A¨º»ò¦b³oùØ¡A¸ê®Æ¬O³o¼Ë¨«ªº¡G­º¥ý¾÷¾¹A¤WªººÞ²z­û¿é¤Jªºµn³°¾÷¾¹CªºFTP«ü¥O¸g¹LÀ³¥Î¼hFTP¨ó©w¡B¶Ç¿é¼hTCP¨ó©w¡Bºô¸ô¼hIP¨ó©w¡B¸ê®Æ ³sµ²¼h¤Wªº¤A¤Óºô¸ôÅX°Êµ{¦¡¤@¼h¤@¼hªº¥]»q¡A³Ì«á°e¨ì¤Fª«²z¼h¡A§Ú­Ìªººô½u¤W¡C±µ¤U¨Ó«Ê¥]¸ê®Æ°e¨ì¤FSwitch¤W¡A¦ÓSwitchÀˬd«Ê¥]¸ê®Æ¤¤ªº¥Øªº ¦a§}¡A¨Ã¦b¥L¦Û¨­«O¦sªººô¸ô¦ì§}ªí¤¤ª¾¹D¤F¥LÀ³¸Ó§â³o«Ê¥]¸ê®Æµo¨ì¾÷¾¹C¨ºùØ¡A©ó¬O¡A±µ¤U¨Ó¾÷¾¹C±µ¦¬¨ì¤F±qAµo¨Óªº¸ê°T¡Aµo²{¥L¬Oµoµ¹¦Û¤vªº¸ê°T¡A©ó¬O ¶i¦æ¤ÀªR³B²z¡C

OK¡A²{¦b§Ú­Ì¾÷¾¹B¤WªººÞ²z­ûªº¦n©_¤ß¥u¯à²`²`ªº®IÂæb¤ßùؤF¡A¦]¬°¸ê®Æ¥]®Ú¥»´N¨S¦³¸g¹L¥L¡A´Nºâ¥L§â¦Û¤vªººô¥d³]¸m¦¨²VÂø¼Ò¦¡¤]¬O¦³¤OµL³B¨Ï¡C


¤A. ¹q¸£Å²ÃÑ (Computer Forensics)



¤@¡B¹q¸£Å²ÃÑ
¹q ¸£Å²ÃÑ (Computer Forensics)¬O§Q¥Î¬ì¾Çªº¤èªk¹ï¹q¸£µ¥¸ê°T¬ì§Þ³]³Æ¶i¦æ¥Ç¸o»`ÃÒ¡A¥H´£¨Ñ¦³¤Oªº½u¯Á¡A¨ÓÀ°§U¥Ç¸o®×¥óªº°»¹î©Î¬Oªk®xªº¼f°T¡C¹q¸£Å²ÃѨ䣬O¤@¶µ·s ¿³ªº¬ì¾Ç¬ã¨s¡A¦b¼Ú¬üµ¥°ê®a¬ù©ó¤Q¦~«e´N¤v¸g¦¨¥ß¤F±M·~ªº¹q¸£Å²Ãѳ¡ªù¡A¬°¬F©²©Î­xĵµ¥°õªk³æ¦ì´£¨Ñ¥Ç¸o»`ÃÒ¸ê°T¡A¥H¤Î¸ê·½©M¤H¤~¤§¾ã¦X¡C¥Ñ©óºô¸ô¤Î¹q¸£ ³]³Æªº¤éº¥´¶¤Î¡A¦b³\¦h°Ó·~Àô¹Ò¦p¤½¥q¦æ¸¹¤º±±½]®Ö¤]¶}©l¦³¤F³oÃþªº»Ý¨D¡A¦]¦¹³o´X¦~¹q¸£Å²ÃѤ~¶}©l³vº¥°Ó·~¤Æ¡C¦A¥[¤W°ª¬ì§Þ¥Ç¸o¨Æ¥ó¦¨ªø¤ñ²v¹L°ª¡B¬ì§Þ ¶i¨B¹L©ó¨³³t¡B®×¥ó½ÆÂø©Ê¤]¤éº¥´£ª@¡A¨Ï±o¬F©²©Î­xĵµ¥°õªk³æ¦ì¦³­­ªº¹q¸£Å²ÃѤH­û¤]¤O¤£±q¤ß¡A¦Ó¤@¨Ç¬F©²°õªk³æ¦ì¶}©l¹ï¥~»P·~¬Éªº±M·~¤H¤~¦X§@¡A¦@¦P¶i ¦æ®×¥ó°»¿ì¨Ï¥Î¤§Å²Ãѳ]³Æ»s³y¬ãµo¤uµ{¤u§@¡C¦Óºô¸ô«Ê¥]Â^¨ú»PÁÙ­ì¸ÑªR¥¿¬OÄÝ©ó¹q¸£Å²ÃѬì¾Ç¤§¤@³¡¥÷¡C


¤G¡B±`¨£ºô¸ô¤W¶Ç°eªº«Ê¥]
¹q¸£¦bºô¸ô¤W¶Ç°eªº«Ê¥]«H®§¡A±`¨£ªº¦Ü¤Ö¦³500 ~ 600ºØ¡A³o¨Ç±`¨£ªºªA°È®e©ö³Q§Q¥Î¬°¥Ç¸o´C¤¶ªÌ¥]§t:
1. ¹q¤l¶l¥ó»P·s»D¸s²Õ(Email and News Group)¡A
2. §Y®É«H®§(Instant Message)¡A
3. Àɮ׶ǻ¼(FTP)¡A
4. ºô­¶ÂsÄý(Web Browser)¡A
5. ºô­¶¶l¥ó(Web Mail)¡A
6. »·ºÝµn¤J(Telnet)¡A
7. ºô¸ô¹q¸Ü(VOIP)¤Îµø°T·|ij(Video Conference)¡A
8. 綫¤W¹CÀ¸(Network Online Game)
µù:
E-Detective¨t²Î¥Ø«e¥iºÊµø ºÊÅ¥ °¼¿ý¤§ºô¸ôªA°È
ÂŦ⬰¤w¥þ³¡§¹¦¨  ¬õ¦â¬°³¡¤À§¹¦¨  ¶Â¦â¬°©|¥¼°õ¦æ



¤T
¡B¥H¤U¬O¦UÃþ«Ê¥]¸ÑªRÀ³¥Î¤§Â²³æ»¡©ú¡G
a. ¥H¹q¤l¶l¥ó¨Ó»¡¡A¨ÌPOP3 (±H¤J¶l¥ó)¤ÎSMTP (±H¥X¶l¥ó)¤À¬°¤G¤jÃþ¡A¦b³o¤G¤jÃþ¤§¤U¤S¥i¤À¦Ü¤Ö10¦hºØ¤p«¬¤£¦Pªº¶Ç¿é¤è¦¡¡A¨ä¦U¦Û¾Ö¦³¤£ºÉ¬Û¦üªº°T®Ø¼Ò¦¡¡C
b. ¥H®É¤U³Ì¬y¦æªººô­¶¶l¥ó(Web Mail)¨Ó»¡¡A§ó¬O¨ÌISP©ÎªÌ¬O´£¨ÑªA°È·~ªÌ¤§¤£¦P¡A¦Ó¦U¦³¦U¦Û¤§¤£¦P°T®Ø³W½d¡C
c. §Y®É«H®§«h¥]§t¤F°ê¤º³Ì¤j¨Ï¥Î±Ú¸s¤§MSN¡BICQ/AOL¡B Yahoo¤Î QQ¡K ¡Kµ¥¤£¦P¤½¥q©Î²Õ´´£¨ÑªºªA°È¡C¦Ó¨C¤@ºØ§Y®É«H®§ªA°È¤S¥i¯à¦]¬°¤£¦Pºô¸ôÀô¹Ò¦Ó³Ð³y¤£¦P«Ê¥]¶Ç»¼¤è¦¡¡C
d. E-Detective¨t²Î¥Ø«e¥iºÊµø ºÊÅ¥ °¼¿ý¤§ºô­¶¶l¥ó­p¦³:
Yahoo
Hotmail
hinet
seednet
url
pchome
sina
yam
Giga
163.net ( mail.tom.com )
www.163.com ( mail.163.com )
sohu.com
Maildozy (Thailand)
µù: §ó¦hºØÃþ¤§Web Mail ÀH®É¥i¨Ì»Ý¨D¥[¤J.


¥|¡B±M·~ª¾ÃѤιï¬ì§Þ¥»¨­ªºÁA¸Ñ



«Ê¥]¸ÑĶ¤u§@­«­nªº¤@Àô´N¬O±M·~ª¾ÃѤιï¬ì§Þ¥»¨­ªºÁA¸Ñ¡C¥Ñ©ó¬ì§Þ¥»¨­¶i¨B§Ö³t¡A¦]¦¹¹ï¤£¦P¬ì§Þ¥­¥x¶i¦æ¥Ç¸o»`ÃÒ¥i¥H»¡¬O§¹¥þ¤£¦Pªº»â°ì¡C¨Ò ¦p¦b Windows §@·~¨t²Î¤W»`ÃÒ¡A«h§¹¥þ©M¦b Linux §@·~¨t²Î¤W¤£¦P¡A©Ò­nª`·Nªº¨Æ¶µ¤Î¨BÆJ¤]¤£¦P¡C´Nºâ¬O¦b¦P¤@¥­¥x¤W¡A¥i¬O¹ï¤£¦P¬ì§Þªº»`ÃÒÁÙ¬O»Ý­n±Ä¥Î¤£¦Pªº§Þ¥©¡A¨Ò¦p¦P¼Ë¬O¦b Windows¥­¥x¤W¡A¦Ó¥B¦P¼Ë¬O¹q¤l¶l¥ó¨t²Î (Email  Client)¡A¦ý¬O¹ï MS outlook ¤Î¹ï Lotus Notes ©Ò»Ý±Ä¨úªº«Ê¥]¸ÑĶ»`ÃÒ§Þ¥©«h¬O§¹¥þ¤£¦Pªº¡C¦b«Ê¥]¸ÑĶ¤u§@¤¤±`±`·|¾D¹J¨ì¦b½Ò¥»¤W¨S¦³¾Ç¹Lªº³W®æ¡A¦Ó¥@¬É¤W¤]§ä¤£¨ì§¹¾ãªº¤åÄm¨Ó°O¸ü»¡©ú³o¨Ç³W®æ¡A¬Æ¦Ü ©ó³s²£¥Í³o¨Ç«Ê¥]ªº³nÅé³£¬O§Ú­Ì¥¼´¿¨£¹L©Î¥¼ª¾³W®æªºÀ³¥Î³nÅé¡C¦]¦¹§Ú­Ì±o¹³¤j®ü¼´°w¯ë´£°_«H¤ß¡A¹ª°_«i®ð¾aµÛ«÷¤j«¬«÷¹Ï¯ëªº¤èªk¡A¤@ÂI¤@ÂIª¼¤HºN¶H¯ë±N ¯u¹ê´ê¥X¨Ó¡A³]ªkÁÙ­ì¨ì­ìª¬¡F¦A­«·s¼g¥X­ì©l³W®æ¡A§ä¥X³W«h¡C¦³®É­Ô§Ú­Ì·|¾D¹J¨ì¤@¨Ç§x¹Ò¡A²¦³º¡A§Ú­Ì¬O§Q¥ÎÁÙ­ì¤uµ{¨Ó¸ÑĶ¸ê°T¡A§Ú­Ì¨Ã¤£¤@©w¯à¦V­ì³]­p ªÌ½Ð¯q¡A¥u¯à¾a¤vª¾ªºª¾ÃѾ¨¶q¥h°²³]¡C°¸º¸¤]·|¦]¥Ñ©ó¤£¦Pªº E-Mail ¦¬µo³nÅé¡B©Î¬O FTP¡B©Î¬O§Y®É³q«H³nÅé¦b¤£¦Pªººô¸ôÀô¹Ò©Î¬[ºc¤U¡A«Ê¥]©Î°T®Ø®æ¦¡·|²£¥Í¤£¦Pµ²ºc¡A¦Óµo¥Í«Ê¥]¸ÑĶ¥Yºlªº¨Æ¥ó¡C¦b¦¹¤@ª¬ªp¤U¥u¦n­««Ø¼ÒÀÀÀô¹Ò¡A§ä¥X­ì¦] §ï¶iµ{¦¡©ÎªÌ¬OµwÅé¸Ë¸m¡C²¦³º³o¨Ç«Ê¥]¸ÑĶªºÀ³¥Îµ{¦¡¬O¸g¹L¨Ï¥ÎªÌªø´Á¨Ï¥Î¸gÅç¡A¤Î¹ê¥Î»Ý¨D©Ò´£¥X¤§«Øij¡A¤£Â_§ï¶i¦Ó±N¦UºØºô¸ô¬[ºc¤W©Ò¾D¹Jªº§xÃø¤§³B¤© ¥H­×¥¿§¹¦¨(µù ¤@)¡C

¦p¦P¦D¨ÆŲ©w®õ¤æ §õ©÷à±³Õ¤h©Ò»¡¹Lªº¸Ü¡G¡y¨CÁû¤l¼u¦b»s³y¹Lµ{¤¤¡A©ÎªÌ¬OÀ»µo«á³£·|¦bª«²z¤W²£¥Í¤u¨ã²ª¡A¥u­n¨Ì¤u¨ã²ª´N¦³¾÷·|§ä¨ì¨Ó·½¡A°l¥X¯u¶H¡z¡C¼Æ¦ìŲÃѧޥ©¥ç¦P¡A¨C­Ó¤£¦PÀ³¥Î³nÅé©ÎªÌ¬O³]³Æ¡A²£¥Íªº«Ê¥]¥ç·|¨ã¦³¨ä¿W¯Sªº¤u¨ã²ª¡C·í§Ú­Ì§Q¥Î¤@¨Ç¤èªkŲ§O¥X«Ê¥]¨ä©Ò¥]§tªº¤u¨ã²ª®É¡A´N´X¥G¥i¥H½T©w§Ú­Ì¥i¥H§¹¦¨¥¿½T¸ÑĶ¨ÃÁ٭즹¤@³W®æ«Ê¥]¡AµL½×¬Oºô­¶¶l¥ó(Web Mail)¡BFTP¡BTelnet¡B§Y®É«H®§(IM)¡B¬Æ¦Ü©ó VOIP¡B¼v¹³¡K ¡Kµ¥¡CÁÙ¦³¥t¤@¶µ¥O§Ú­Ìı±o³Â·Ð¤Î¦Y¤Oªº¤u§@¡A¦]¬°§Ú­Ì¤£¦ý­n¸ÑĶ«Ê¥]¡AÁÙ­n±N¨ä¯Ç¤J¸ê®Æ®w¤¤ºÞ²z¡B³Æ¬d¡A¦]¦¹¸ÑĶ©Ò±oµ²ªG¡A±`»Ý°µ®æ¦¡Âà´«¥H«K¸ê®Æ¥¿½T§e²{¡A¨Ï±o¥¦¦¨¬°¤@®M«D±`½ÆÂø¦a¨t²Î¡C

µù ¤@¡G
¨Ò¦p ¨p¤H¬ã¨sMSN ºô¯¸ http://www.hypothetic.org/docs/msn/index.php
It is written primarily for programmers that want to write software that uses the MSN Messenger protocol.

¨Ò¦p ¨p¤H¬ã¨sICQ ºô¯¸ http://iserverd.khstu.ru/oscar/
OSCAR. "Open System for Communication in Realtime" - the internal project name (as opposed to the external marketing name) used to identify Instant Messenger protocol.

³o¬Ò¬O¥Ñ¤@¸s·R¦nªÌ±Ú¸s¦@¦PºûÅ@¡A¦b³o­Óºô¯¸¤W»¡©ú¤F¸ê®Æ¦h¨Ó¦Û±Àºt¤Î²q´ú¡C


¤­¡B¥¼¨Ó¨t²Îµo®i¤§®i±æ ¡V ¥Ø¼Ð¦¨¬°¦h¤¸¥\¯à¤§±M·~¨t²Î
¹L¥h¤@¦~¨t²Î¶}©lµo®i¨Ã¦¨¬°±M·~¦D¨ÆŲÃѤu¨ã¤§©l¡A¬ãµo¥Ø¼ÐµÛ­«©ó°ò¦«Ê¥]¸ÑĶ¤Îºô¸ôÀ³¥Îµ{¦¡¤§¬ã¨s¡C¥Ñ©ó°ò¦«Ê¥]¸ÑĶ¤Îºô¸ôÀ³¥Îµ{¦¡¤§¬ã¨s¤w¸g§¹¦¨¡A¥¼¨Ó¤@¦~±NµÛ­«©ó¤U¦C¬ã¨s­«ÂI¡G
a. ¶i¶¥«Ê¥]¸ÑªR¤§¬ã¨s»P¥[±j§ï¶i
b. ºô¸ô¹q¸Ü(VOIP)¤Îµø°T·|ij(Video conference)°¼¿ýºÊÅ¥
c. µL綫ºô¸ôºÊÅ¥¤Î©w¦ì
d. ¨ä¥L¦]Á{®É©Ê»Ý­n²£¥Í¤§¬ã¨sÃD¥Ø
e. ¸ê®Æ¥[±K»P¸Ñ±K§Þ³N¬ã¨s

 
±i¨Ô May. 08, 2005


¦^¤W­¶