ÒýÑÔ£º
Ò». ÕªÒª Raw Socket: ÔʼÌ×½Ó×Ö ¿ÉÒÔÓÃËüÀ´·¢ËÍ
ͻ񻣼
ʲôÊÇsubsystem£¿nt¼Ü¹¹£¨windows nt¡¢windows xp¡¢windows 2003£©µÄ³õʼÉè¼ÆÊǺÜÓÐÒ°Ðĵģ¬ËüÏ£ÍûÔÚntÉÏ¿ÉÒÔ²»¼ÓÐ޸ĵØÔËÐÐos2¡¢unix³ÌÐò¡£ËùÒÔÔÚntÖÐÓÐsubsystemµÄ¸ÅÄÿ¸ösubsystemÕë¶ÔÒ»¸öƽ̨£¬ntdll.dllÊÇËùÓÐsubsystemµÄ»ù´¡¡£»òÕß˵ntdll.dllͳһÌṩntϵͳµÄapi½Ó¿Ú£¬subsystemΪ¸÷¸öƽ̨µÄÓ¦ÓÃ......
ͻ񻣼
¡¡¡¡£ª£ª£ª¼ò¡¡½é£ª£ª£ª¡¡¡¡±¾ÎÄÊ×ÏȼòÒª½éÉÜÁËÒ»ÏÂwindowsÖеöÓë¼ÓËÙ¼ü±íÓйصÄapiº¯Êý¼°½á¹¹¡£È»ºó¶ÔÔÚwin32λ³ÌÐòÖÐʵÏÖ¼ÓËÙ¼ü±í½øÐÐÁË̽ÌÖ£¬·Ö±ð¾ÍapiϵÄjava/j2me/code/ target=_blank>³ÌÐòÉè¼Æ¼°mfcϵijÌÐòÉè¼Æ½øÐÐÁËÐðÊö¡£¡¡¡¡¶ÔÓÚÔËÐÐʱ¿É±à¼µÄ¼ÓËÙ¼ü±í½öÔÚmfcϽøÐÐÁËÏêϸÃèÊö¡£°üÀ¨ÆäʵÏÖÔÀí£¬²¢Òýµ¼´ó¼Ò½¨Á¢ÁËÒ»¸öÓÃÓڱ༼ÓËÙ¼üµÄ¶Ô»°¿ò£¬º¬ÏêϸµÄ´ú......
Sniffer ʵÏÖÖ® Óà Raw Socket ʵÏÖ Sniffer(1)
Ò». ÕªÒª raw socket: ÔʼÌ×½Ó×Ö ¿ÉÒÔÓÃËüÀ´·¢ËÍÓë½ÓÊÕ ip ²ãÒÔÉϵÄÔʼÊý¾Ý°ü, Èç icmp, tcp, udp... int sockraw = socket(af_inet, sock_raw, ipproto_raw); ÕâÑùÎÒÃǾʹ´½¨ÁËÒ»¸ö raw socket sniffer: Ðá̽Æ÷ ¹ØÓÚÐá̽Æ÷µÄÔÀíÎÒÏë´ó¶àÊýÈË¿ÉÄܶ¼ÖªµÀ 1. °ÑÍø¿¨ÖÃÓÚ»ìÔÓģʽ; 2. ²¶»ñÊý¾Ý°ü; 3. ·ÖÎöÊý¾Ý°ü. µ«¾ßÌåµÄʵÏÖÖªµÀµÄÈ˿֞Ͳ»ÊÇÄÇô¶àÁË. ºÃ, ÏÖÔÚÈÃÎÒÃÇÓà raw socket µÄ×öÒ»¸ö×ÔÒÑµÄ sniffer.¶þ. °ÑÍø¿¨ÖÃÓÚ»ìÔÓģʽ ÔÚÕý³£µÄÇé¿öÏÂ,Ò»¸öÍøÂç½Ó¿ÚÓ¦¸ÃÖ»ÏìÓ¦Á½ÖÖÊý¾ÝÖ¡: Ò»ÖÖÊÇÓë×Ô¼ºÓ²¼þµØÖ·ÏàÆ¥ÅäµÄÊý¾ÝÖ¡ Ò»ÖÖÊÇ·¢ÏòËùÓлúÆ÷µÄ¹ã²¥Êý¾ÝÖ¡ Èç¹ûÒªÍø¿¨½ÓÊÕËùÓÐͨ¹ýËüµÄÊý¾Ý, ¶ø²»¹ÜÊDz»ÊÇ·¢¸øËüµÄ, ÄÇô±ØÐë°ÑÍø¿¨ÖÃÓÚ»ìÔÓģʽ. Ò²¾ÍÊÇ˵ÈÃËüµÄ˼ά»ìÂÒ, ²»°´Õý³£µÄ·½Ê½¹¤×÷. Óà raw socket ʵÏÖ´úÂëÈçÏÂ: setsockopt(sock, ipproto_ip, ip_hdrincl, (char*)&flag, sizeof(flag); //ÉèÖà ip Í·²Ù×÷Ñ¡Ïî bind(sockraw, (psockaddr)&addrlocal, sizeof(addrlocal); //°Ñ sockraw °ó¶¨µ½±¾µØÍø¿¨ÉÏ ioctlsocket(sockraw, sio_rcvall, &dwvalue); //Èà sockraw ½ÓÊÜËùÓеÄÊý¾Ý flag ±êÖ¾ÊÇÓÃÀ´ÉèÖà ip Í·²Ù×÷µÄ, Ò²¾ÍÊÇ˵ҪÇ××Ô´¦Àí ip Í·: bool flag = ture; addrlocal Ϊ±¾µØµØÖ·: sockaddr_in addrlocal; dwvalue ΪÊäÈëÊä³ö²ÎÊý, Ϊ 1 ʱִÐÐ, 0 ʱȡÏû: dword dwvalue = 1; ûÏëµ½Õâô¼òµ¥°É?Èý. ²¶»ñÊý¾Ý°ü ÄãµÄ sockraw ÏÖÔÚÒѾÔÚ¹¤×÷ÁË, ¿ÉÒÔÔÚ¾ÖÓòÍøÄÚÆäËüµÄµçÄÔÉÏÓà sniffer ¼ì²â¹¤¾ß¼ì²âÒ»ÏÂ, ¿´ÄãµÄÍø¿¨ÊÇ·ñ´¦ÓÚ»ìÔÓģʽ(±ÈÈç digitalbrain µÄ arpkiller). ²»ÄÜÈÃËû°×°×µÄÀË·Ñ×ÊÔ´°¡, ×¥°ü! recv(sockraw, recvbuf, buffer_size, 0); //½ÓÊÜÈÎÒâÊý¾Ý°ü #define buffer_size 65535 char recvbuf[buffer_size]; Ô½À´Ô½·¢ÏÖ sniffer ÔÀ´Èç´ËµÄ¼òµ¥ÁË, Õâôһ¸öº¯Êý¾ÍÒѾÍê³ÉץȡÊý¾Ý°üµÄÈÎÎñÁË.ËÄ. ·ÖÎöÊý¾Ý°ü Õâ»Ø×¥À´µÄ°üÓëÆ½³£Óà socket ½ÓÊÜİü¿É¾Í²»ÊÇÒ»»ØÊ¶ùÁ? ÀïÃæ°üº¬ ip, tcp µÈÔʼÐÅÏ¢. Òª·ÖÎöËüÊ×ÏȵÃÖªµÀÕâЩ½á¹¹. Êý¾Ý°üµÄ×ÜÌå½á¹¹: ---------------------------------------------- | ip header | tcp header(or x header) | data | ---------------------------------------------- ip header structure: 4 8 16 32 bit |--------|--------|----------------|--------------------------------| | ver | ihl |type of service | total length &nbs...
ÏÂÒ»Ò³ ÕªÒª£ºÕýÔò±í´ïʽ×îʵÓõÄÒ»¸öµØ·½ÊÇÑéÖ¤Óû§ÊäÈë¡£Ëü¿ÉÒÔÇáËÉÑéÖ¤Óʱࡢµç»°ºÅÂë¡¢ÐÅÓÿ¨ºÅÂ롪¡ªÒÔ¼°ÏÖʵÊÀ½çÖи÷ÖÖÀàÐ͵ÄÐÅÏ¢¡£Ò»¸öÕýÔò±í´ïʽ¿ÉÒÔÌæ»»³É´òÉõÖÁÉϰÙÐйý³Ì´úÂë¡£unix ºÍ web ±à³ÌÓïÑÔÈç perl´ÓÒ»¿ªÊ¼¾ÍÓÐÕýÔò±í´ïʽ£¬µ«ÔÚ windows ÊÀ½ç»òmfc£¬´ÓÀ´¶¼ÊÇʹÓõÚÈý·½¿â£¬Ò»Ö±µ½ .net ¿ò¼Ü²Å½áÊøÕâ¸ö¾ÖÃæ¡£Òò´ËÏÖÔÚ .net Ìṩһ¸öÍêÕûµÄÕýÔò±í´ïʽ¿â£¬ÎªÊ²Ã´²»ÔÚmfcÓ¦ÓóÌÐòÖÐʹ......