TCP/IPºÍ̸ջϵÁзì϶£¨NAME:WRECK£©·ÖÎö
°ä²¼¹¦·ò 2021-04-25·ì϶¸ÅÊö
2021Äê04ÔÂ13ÈÕ£¬Fourscore×êÑг¢ÊÔÊÒÓëJSOFºÏ×÷£¬Åû¶ÁËÒ»×éеÄDNS·ì϶£¬±»³ÆÎªNAME:WRECK¡£ÕâЩ·ì϶ӰÏìÁËËÄÖÖÊ¢ÐеÄTCP/IP²Ö¿â--¼´FreeBSD¡¢IPnet¡¢Nucleus NETºÍNetX£¬ËüÃÇÆÕ±é´æÔÚÓÚ³ÛÃûµÄITÈí¼þºÍÊ¢ÐеÄIOT/OT¹Ì¼þÖУ¬²¢ÓпÉÄÜÓ°ÏìÈ«ÇòÊý°ÙÍòµÄÎïÁªÍøÉ豸¡£¹¥»÷ÕßÄܹ»ÀûÓÃÕâЩ·ì϶ʹÊÜÓ°ÏìµÄÉ豸ÍÑ»ú»ò¶ÔÉ豸½øÐнÚÔì¡£
ÓйؽéÉÜ
1¡¢DNSºÍ̸֮ѹËõÖ¸Õë
ÔÚ֮ǰµÄÎÄÕÂÖУ¬ÎÒÃǽéÉÜÁË»ù´¡µÄDNSºÍ̸£¬ÆäÖÐÓòÃûÊÇÓÉÒ»Á¬´®µÄlabel×é³ÉµÄ£¬ÈçÏÂͼËùʾ:

ÆäÖкì¿òËùʾΪÿ¸ölabelµÄ³¤¶È£¬Ã¿¸ölabel×Ϊ63×Ö½Ú£¬²¢ÇÒ´¦ÖõÄʱ³½£¬³ýÁ˵ÚÒ»¸ö³¤¶È×Ö½Ú£¬½«Ã¿¸ö³¤¶È×Ö½Ú´úÌæÎª¡±.¡±£¬×îºóÓöµ½null×Ö½ÚʵÏÖ£¬´Ó¶ø×é³ÉÁË×îºóµÄÓòÃû¡£
²»ÍâÔÚһЩ»Ø¸´°üÖУ¬»áÔ̺¬ÂÅ´ÎA¼Í¼»òCNAME¼Í¼£¬Õâ¾ÍÔì³ÉÁËDNSÊý¾Ý¹ýÓÚÈß³¤£¬Òò¶øDNSºÍ̸µÄÉè¼ÆÕßÉè¼Æ³öÁËѹËõÖ¸Õë¡£ÔÚѹËõÖ¸ÕëµÄ»úÔìÖУ¬Í¨¹ýÖ¸ÕëÖ¸Ïò֮ǰ³öÏÖ¹ýµÄÒ»Á¬´®label´Ó¶ø´ïµ½Ñ¹ËõµÄÖ÷ÕÅ¡£Õâ¸öÖ¸ÕëÓÉÁ½¸ö×Ö½Ú×é³É£¬µÚÒ»¸ö×Ö½ÚµÄǰÁ½¸öbitsΪ11£¬ºóÃæ14¸öbitsÎªÆ«ÒÆµØÖ·¡£

ÏÂÃæ¾ÙÒ»¸ö¾ßÌåµÄÀý×Ó£¬ÈçÏÂͼÊý¾Ý°üËùʾ£¬ºì¿òÄÚΪѹËõÖ¸Õ룬ָÏòÆ«ÒÆ0x0cµÄµØÎ»£¬Ò²¾ÍÊÇwww.example.comµÄ¿ªÍ·´¦¡£

2¡¢DHCPºÍ̸
DHCP¶¯Ì¬Ö÷»úÅäÖúÍ̸£¬Ç°ÉíÊÇBOOTPºÍ̸£¬ÊÇÒ»¸ö¾ÖÓòÍøµÄÍøÂçºÍ̸£¬Ê¹ÓÃUDPºÍ̸¹¤×÷£¬Í¨³£±»ÓÃÓÚ¾ÖÓòÍø»·¾³£¬ÖØÒª×÷ÓÃÊǼ¯ÖеØÖÎÀí¡¢·ÖÅäIPµØÖ·£¬Ê¹¿Í»§¶Ë¶¯Ì¬µÄ»ñµÃIPµØÖ·¡¢GatewayµØÖ·¡¢DNS·þÎñÆ÷µØÖ·µÈÐÅÏ¢£¬²¢¿ÉÄÜÌáÉýµØÖ·µÄʹÓÃÂÊ¡£
DHCP±¨ÎĹ²ÓÐ8ÖÖ£¬±ðÀëÈçÏÂËùʾ£º
DHCPDISCOVER £º¿Í»§¶ËÆðÍ·DHCP¹ý³Ì·¢Ë͵ı¨ÎÄ£¬ÊÇDHCPºÍ̸µÄÆðÍ·¡£
DHCPOFFER£º·þÎñÆ÷½Ó¹Üµ½DHCPDISCOVERÖ®ºó×ö³öµÄÏìÓ¦£¬Ô̺¬ÁË´ÍÓë¿Í»§¶ËµÄIP£¨yiaddr£©¡¢¿Í»§¶ËµÄMACµØÖ·¡¢×âÔ¼¹ýÆÚ¹¦·ò¡¢·þÎñÆ÷µÄ¼ø±ð·ûÒÔ¼°ÆäËûÐÅÏ¢¡£
DHCPREQUEST£º¿Í»§¶Ë¶ÔÓÚ·þÎñÆ÷·¢³öµÄDHCPOFFERËù×ö³öµÄÏìÓ¦¡£ÔÚÐøÔ¼×âÆÚµÄʱ³½Í¬Ñù»áʹÓá£
DHCPACK£º·þÎñÆ÷Ôڽӹܵ½¿Í»§¶Ë·¢À´µÄDHCPREQUESTÖ®ºó·¢³öµÄ³É¹¦È·Èϵı¨ÎÄ¡£ÔÚ³ÉÁ¢ÏνӵÄʱ³½£¬¿Í»§¶ËÔڽӹܵ½Õâ¸ö±¨ÎÄÖ®ºó²Å»áÈ·ÈÏ·ÖÅ䏸ËüµÄIPºÍÆäËûÐÅÏ¢Äܹ»±»ÔÊÐíʹÓá£
DHCPNAK£ºDHCPACKµÄÏà·´µÄ±¨ÎÄ£¬°µÊ¾·þÎñÆ÷»Ø¾øÁ˿ͻ§¶ËµÄÒªÇó¡£
DHCPRELEASE£ºÍ¨³£³Ê´Ë¿Ì¿Í»§¶Ë¹Ø»ú¡¢ÏÂÏßµÈÇé¿ö¡£Õâ¸ö±¨ÎĽ«»áʹDHCP·þÎñÆ÷¿ªÊÍ·¢³ö´Ë±¨ÎĵĿͻ§¶ËµÄIPµØÖ·¡£
DHCPINFORM£º¿Í»§¶Ë·¢³öÏò·þÎñÆ÷ÒªÇóһЩÐÅÏ¢µÄ±¨ÎÄ¡£
DHCPDECLINE£ºµ±¿Í»§¶Ë·¢ÏÖ·þÎñÆ÷·ÖÅäµÄIPµØÖ·ÎÞ·¨Ê¹Óã¨ÈçIPµØÖ·Ã¬¶Üʱ£©£¬½«·¢³ö´Ë±¨ÎÄ£¬Í¨Öª·þÎñÆ÷²»ÈÝʹÓøÃIPµØÖ·¡£
DHCPÊý¾Ý°ü·¢Ë͹ý³Ì£¬ÈçÏÂͼËùʾ£º

DHCP±¨ÎÄÌåʽÈçÏÂͼËùʾ£º

²¿ÃÅÊý¾ÝÓò½ç˵£¬ÈçÏÂËùʾ£º
xid£ºËæ»úÌìÉúµÄÒ»¶Î×Ö·û´®£¬Á½¸öÊý¾Ý°üÕ¼ÓÐÒ»ÑùµÄxid×¢Ã÷ËûÃÇÊôÓÚͳһ´Î»á»°¡£
ciaddr£º¿Í»§¶Ë»áÔÚ·¢ËÍÒªÇóʱ½«×Ô¼ºµÄIP·ÅÔÚ´Ë´¦¡£
yiaddr£º·þÎñÆ÷»á½«ÏëÒª·ÖÅ䏸¿Í»§¶ËµÄIP·ÅÔÚ´Ë´¦¡£
siaddr£ºÊèµ¼·¨Ê½ÖÐʹÓõÄÏÂÒ»¸ö·þÎñÆ÷µÄIPµØÖ·£»ÓÉ·þÎñÆ÷ÔÚDHCPOFFER£¬DHCPACKÖзµ»Ø¡£
chaddr£º¿Í»§¶ËµÄMACµØÖ·¡£
giaddr£ºÈôÊDZØÒª¿ç×ÓÍø½øÐÐDHCPµØÖ··¢·Å£¬ÔòÔÚ´Ë´¦ÌîÈë¾¹ýµÄ·ÓÉÆ÷µÄIPµØÖ·¡£
sname£º·þÎñÆ÷Ö÷ÓòÃû¡£
options£ºÄܹ»×ÔÓÉÔö³¤µÄ²¿ÃÅ£¬ÓÃÓÚ´æ·Å¿Í»§¶ËÏò·þÎñÆ÷ÒªÇóÐÅÏ¢ºÍ·þÎñÆ÷µÄÓ¦´ðÐÅÏ¢¡£
DHCPÓòËÑË÷Ñ¡Ï¸ÃÑ¡Ïî´ÓDHCP·þÎñÆ÷´«µÝµ½DHCP¿Í»§¶Ë£¬ÒÔÖ¸¶¨ÔÚʹÓÃDNS½âÎöÖ÷»úÃûʱʹÓõÄÓòËÑË÷ÁÐ±í¡£¸ÃÑ¡ÏîµÄ´úÂëΪ119£¬ÌåʽÈçÏÂͼËùʾ£º

¾Ù¸öÀý×Ó£¬ÏÂͼÊÇ¡°eng.apple.com¡±ºÍ¡°marketing.apple.com¡±×é³ÉµÄËÑË÷ÁбíµÄʾÀý±àÂ룺

¸ÃʾÀý±àÂëÒÑ·ÖΪÈý¸ö¡°ÓòËÑË÷Ñ¡Ï¡£ÔÚ¿Í»§¶Ë½âÎö֮ǰ£¬ËùÓÐÓòËÑË÷Ñ¡ÏîÔÚÂß¼É϶¼´®Áªµ½Ò»¸öÊý¾Ý¿éÖС£ÒÔµÚÒ»¸ö¡°ÓòËÑË÷Ñ¡ÏΪÀý£¬µÚÒ»¸ö×Ö½ÚΪ119£¬µÚ¶þ¸ö×Ö½ÚΪ9£¬°µÊ¾ºóÃæSearchstringµÄ³¤¶È£¬Ê£ÏµÄÊý¾Ý¾ùΪSearchstring¡£ÕâÈý¸ö¡°ÓòËÑË÷Ñ¡ÏµÄSearchstring×éºÏ³ÉÒ»¸öÆëÈ«¾ÛºÏ¿é£¬¿É°µÊ¾Îª£º
|3|¡¯e¡¯|¡¯n¡¯|¡¯g¡¯|5|¡¯a|¡¯p¡¯|¡¯p|¡¯l¡¯|¡¯e¡¯|3|¡¯c¡¯|¡¯o¡¯|¡¯m¡¯|0|9|¡¯m¡¯|¡¯a¡¯|¡¯r¡¯|¡¯k¡¯|¡¯e¡¯|¡¯t¡¯|¡¯i¡¯|¡¯n¡¯|¡¯g¡¯|0xC0|0x04|¡£
¡°eng.apple.com¡±µÄ±àÂëÒÔÁã½á⣬ÒÔÏóÕ÷Ãû³ÆµÄ½áβ¡£¡°marketing¡±£¨Õë¶Ômarketing.apple.com£©µÄ±àÂëÒÔÁ½¸ö°Ëλ×Ö½ÚµÄѹËõÖ¸ÕëC004£¨Ê®Áù½øÔ죩½á⣬¸ÃÖ¸ÕëÖ¸ÏòDomainSearchOptionÊý¾ÝµÄÆëÈ«¾ÛºÏ¿é£¨´ÓµÚÒ»¸ö¡°ÓòËÑË÷Ñ¡ÏÖеÄSearchstringÆðÍ·£©ÖÐµÄÆ«ÒÆÁ¿4£¬ÆäÖÐÁíÒ»¸öÓÐЧ±àÂëÄܹ»ÕÒµ½ÆëÈ«µÄÓòÃû£¨¡°apple.com¡±£©¡£ÈçÏÂͼËùʾ£º

ÿ¸öËÑË÷ÓòÃû¶¼±ØÐëÒÔÁã»òÁ½¸ö°Ëλλ×éѹËõÖ¸Õë½áβ¡£ÈôÊÇ½Ó¹ÜÆ÷´ïµ½ËÑË÷ÁбíÑ¡ÏîÊý¾ÝµÄÆëÈ«»ã×Ü¿éµÄĩβʹØýÔÚͨ¹ýËÑË÷ÓòÃû½øÐнâÂ룬¶øÃ»ÓÐÕÒµ½Áã»òÓÐЧµÄÁ½¸ö°Ëλλ×éѹËõÖ¸Õ룬ÄÇô±ØÐ뽫²¿ÃŶÁÈ¡µÄÓòÃûÊÓΪÎÞЧÓòÃû¡£
·ì϶·ÖÎö
1¡¢Nucleus NETϵÁзì϶

ÉÏͼΪNucleus NETºÍ̸ջÖеÄDNS_Unpack_Domain_Name()º¯Êý£¬Õâ¸öº¯ÊýÓÃÀ´´¦ÖÃDNSÓ¦´ð¼Í¼¡£µÚÒ»¸ö²ÎÊýdstÊÇÖ¸ÏòÒ»¸öbuffer£¬ÓÃÓÚ¿½±´½âÎöµÄÓòÃû¡£µÚ¶þ¸ö²ÎÊýsrcÖ¸ÏòÓòÃûµÄµÚÒ»¸ö×Ö½Ú£¬µÚÈý¸ö²ÎÊýÖ¸ÏòDNS HeaderµÄµÚÒ»¸ö×Ö½Ú¡£
´úÂëͨ¹ýwhileÑ»·È¥½âÎöÓòÃû£¨µÚ7ÐУ©£¬Ö±µ½srcΪnull×Ö½Ú£¬Ò²¾ÍÊÇÓòÃûµÄ½áβ¡£Ö®ºó½«µÚÒ»¸ölabelµÄ³¤¶È¸³Öµ¸øsize£¨µÚ9ÐУ©¡£ÏÂÃæ£¬Ò²¾ÍÊÇ×î³ÁÒªµÄÒ»²½¾ÍÊDz鳸Ã×Ö½ÚÊÇ·ñΪѹËõÖ¸Õë¡£ÈôÊDz»ÊÇ£¬srcÖ¸ÕëÇ°ÒÆÒ»¸ö×Ö½Ú£¬¶øºó½«src¿½±´µ½dst¡£¶øºóÿ¸ölabelÖ®¼ä¼Ó¡±.¡±¡£ÎªÕý³£µÄ½âÎöÓòÃûÈ˳̡£ÈôÊÇÊÇѹËõÖ¸Õë²¢ÇÒÊǵÚÒ»¸öѹËõÖ¸Õ룬retval¼ÓÁ½¸ö×Ö½Ú£¨µÚ10£¬11ÐУ©£¬¶øºóƾ¾ÝÆ«ÒÆÍÆËãlabelÕØÊ¼µØÎ»£¬¶øºó½«³¤¶È¸³Öµ¸øsize£¬Ö®ºóÕý³£´¦Öá£
Õâ¶Î´úÂë¿´ÆðÀ´Ã»ÓÐÎÊÌâÏÖʵÉÏÔ̺¬4¸ö¼«¶ÈÑϳÁµÄÎÊÌ⣬ÆäÔì³ÉµÄ·ì϶±àºÅ±ðÀëΪCVE-2020-27736¡¢CVE-2020-27738¡¢ CVE-2020-15795¡¢CVE-2020-27009¡£
£¨1£©¶Ôlabel³¤¶ÈûÓÐ×öÑéÖ¤
ƾ¾ÝÉÏÎĽ²ÊöµÄÄÚÈÝ£¬Ã¿¸ölabelµÄµÚÒ»¸ö×Ö½Ú´ú±í³¤¶È£¨µÚ8£¬16ÐУ©£¬µ«ÊÇ·¨Ê½Ã»Óвé³Õâ¸ö³¤¶ÈÊÇ·ñ´ú±íÕæÊµÊý¾Ý°üÖÐlabelµÄ³¤¶È£¬Õâ¿Éµ¼Ö¶ÁÈ¡³¬¹ýÒÑ·ÖÅä½á¹¹ÌåµÄbuffer£¬Ôì³É»Ø¾ø·þÎñ¡£
£¨2£©¶ÔѹËõÖ¸ÕëµÄÆ«ÒÆÃ»ÓÐ×öÑéÖ¤
ƾ¾ÝÉÏÎĽ²ÊöµÄÄÚÈÝ£¬·¨Ê½ÅжÏΪѹËõÖ¸Õëºó£¬±ã»áͨ¹ý¸ø³öµÄÆ«ÒÆÈ¥Ñ°ÕÒ½âÎölabel£¨µÚ14,15,16ÐУ©£¬µ«ÊÇ·¨Ê½Ã»ÓÐÑéÖ¤Æ«ÒÆµÄÁìÓò£¬Õâµ¼ÖÂÆ«ÒÆÖµÄܹ»ËÁÒâ¸ø¶¨£¬Õâµ¼ÖÂÄܹ»Ô½½ç¶Áд£¬´Ó¶øRCE¡£
£¨3£©¶ÌȱNULLÖÕÖ¹Åж¨
ƾ¾ÝRFC1035µÄ±íÊö£¬NULL×Ö½Ú(0x00)°µÊ¾nameµÄ½á⣨µÚ7ÐУ©¡£µ«ÊÇÔںöàDNS½âÎö·¨Ê½Öв»×ã¶ÔNULL×Ö½ÚµÄÑéÖ¤£¬Õâµ¼Ö¹¥»÷ÕßÄܹ»Í¨¹ý½ÚÔìNULL×Ö½ÚÔÚÌØ¶¨µÄµØÎ»£¬Í¨¹ýºÍǰ¼¸¸öÎÊÌâÏà½áºÏ£¬Í¬ÑùÄܹ»ÊµÏֿɿصÄÄÚ´æ¶Áд¡£
£¨4£©¶ÔÓòÃûµÄ³¤¶ÈûÓÐ×öÏÞ¶È
ƾ¾ÝRFC1035µÄ³ÂÊö£¬´ÓDNS¼Í¼ÀïÌáÈ¡µÄÓòÃû²»Ó¦¸Ã³¬¹ý255×Ö½Ú£¬Ö»¹Üÿ¸ölabelÏÞ¶ÈÁ˲»³¬¹ý63¸ö×Ö½Ú£¨µÚ15ÐУ©£¬µ«ÊÇÕâÖ»ÊÇÒ»´ÎÐÔ¿½±´µÄ³¤¶È£¬²¢Ã»ÓÐÏÞ¶ÈÏÖʵ¿½±´µÄ³¤¶È¡£ÈçÏÂͼËùʾ£¬Í¨¹ýNU_Allocate_Memory()º¯Êý·ÖÅ䏸name 255¸ö×Ö½Ú¸ö¿Õ¼ä£¨µÚ50ÐУ©£¬¼´DNS_MAX_NAME_SIZE¡£ºóÃæÅ²ÓÃDNS_Unpack_Domain_NameµÄ¹ý³ÌÖУ¬ÏÔÈ»Äܹ»Í¨¹ý»ú¹Ø¶ñÒâµÄÊý¾Ý°üÒç³öÕâ255×Ö½Ú¡£

ËùÒÔÆ¾¾ÝÒÔÉÏÄÚÈÝ£¬PoCµÄ±àдµÄ˼·ÓкöಽÖ裬ºÃ±ÈÄܹ»È÷¨Ê½Ê¼ÖÕÎÞ·¨Í˳öÑ»·£¬ÀàËÆÏÂͼ£º

c0ΪѹËõÖ¸Õ룬1eÎªÆ«ÒÆÁ¿£¬¶øÆ«ÒƵĵØÎ»ÕýºÃ³ÁÐÂÖ¸Ïòc0£¬Ôì³ÉÎÞÏÞÑ»·¡£
2¡¢FreeBSD·ì϶£¨CVE-2020-7461£©
¸Ã·ì϶³Ê´Ë¿Ìdhclient½âÎöDHCPÊý¾Ý°üÖеġ°ÓòËÑË÷Ñ¡ÏÊý¾Ýʱ£¬ÓÉÓÚÌìǵ²é³ÃýÎó¶øµ¼Ö¶ÑÒç³ö¡£dhclinetÊÇFreeBSDϵͳÖÐÓÃÓÚÌṩDHCP·þÎñµÄ¶þ½øÔ취ʽ£¬Ö´ÐкÅÁdhclient em0±ã¿É½øÐÐDHCPÅäÖã¬em0ÎªÍø¿¨¡£Ô´ÂëλÓÚsbin\dhclient\options.c£¬´Ódo_packet()º¯ÊýÆðÍ·£¬´úÂëÇåµ¥ÈçÏÂͼËùʾ£º

¸Ãº¯ÊýÓÃÓÚ´¦ÖÃDHCP¿Í»§¶Ë½Ó¹Üµ½µÄÊý¾Ý°ü£¬ÐÐ890£¬Å²ÓÃparse_options()º¯Êý½âÎöÊý¾Ý°üÖеÄoptions£¬´úÂëÇåµ¥ÈçÏÂͼËùʾ£º

ÐÐ106£¬Å²ÓÃexpand_domain_search()º¯Êý½øÒ»²½½âÎöDHCPÓòËÑË÷Ñ¡ÏîÊý¾Ý£¬¸Ãº¯Êý½øÐÐÁ½¸ö²Ù×÷£¬µÚÒ»²½²Ù×÷ÊÇÏÈ»ñÈ¡ËùÓÐÓòÃû±êÇ©µÄ×ܳ¤¶È£¬µÚ¶þ²½²Ù×÷ÊÇÆ¾¾ÝµÚÒ»²½»ñÈ¡µÄ³¤¶È½øÐÐÄÚ´æ·ÖÅ䣬²¢¿½±´ËùÓÐÓòÃû±êÇ©¡£
ÏÈ¿´µÚÒ»²Ù×÷£¬ÈôºÎ»ñÈ¡ËùÓÐÓòÃû±êÇ©µÄ³¤¶È£¬¹Ø¼ü´úÂëʵÏÖÈçÏÂͼËùʾ£º

Ê×ÏÈÅжÏoptionsÊÇ·ñΪ¿Õ£¬²»Îª¿Õ¾Í»ñÈ¡options£¬ÐÐ229£¬¶øºó½øÈëwhileÑ»·£¬Å²ÓÃfind_search_domain_name_len()º¯Êý´¦ÖÃoptions£¬¸Ãº¯Êýͨ¹ýÒ»¸öwhileÑ»·Öð¸ö×Ö½Ú½âÎöSearchsting²¢·ÖÀà´¦Ö㬵ÚÒ»ÖÖÇé¿öµÄ¹Ø¼ü´úÂëʵÏÖÈçÏÂͼËùʾ£º

ÈôÊǶÁÈ¡µ½data[i]Ϊ0£¬°µÊ¾ÓòÃû±êÇ©µÄ½á⣬²¢·µ»Ø¸ÃÓòÃû±êÇ©³¤¶È¡£½Ó×ŵڶþÖÖÇé¿öµÄ¹Ø¼ü´úÂëʵÏÖÈçÏÂͼËùʾ£º

ÈôÊǶÁÈ¡µ½data[i]Ϊ0xC0£¬°µÊ¾ÎªÑ¹ËõÖ¸Õ룬ָÏòÁíÒ»¸öÓòÃû±êÇ©£¬ÐÐ287£¬ÍÆËãpointer£¬¶øºó¶Ô¸ÃÖ¸Õë½øÐÐÁìÓò²é³ÅжÏÊÇ·ñÔ½½ç£¨µÚ299ÐУ©£¬µÝ¹éŲÓÃfind_search_domain_name_len()º¯Êý½âÎöѹËõÖ¸ÕëÖ¸ÏòµÄÁíÒ»¸öÓòÃû±êÇ©£¨µÚ301ÐУ©£¬µÝ¹éŲÓ÷µ»Øºó£¬½øÐÐdomain_name_len += pointer_lenÀÛ¼Ó¡£ÈôÊǼȲ»ÊÇ0½áβҲ²»ÊÇѹËõÖ¸Õ룬Ôò˳´ÎÀÛ¼Ó²¢ÒÆÎ»Óα꣬ʵÏÖ´úÂëÈçÏÂͼËùʾ£º

ÔÚµÚ299Ðк͵Ú301ÐÐÖ®¼äÊÇ´æÔÚÎÊÌâµÄ£¬ÈôÊǵݹ鴦ÖÃѹËõÖ¸ÕëÖ¸ÏòµÄÁíÒ»¸öÓòÃû±êÇ©²»ºÏ·¨Ê±£¬·µ»ØµÄpointer_lenΪ-1£¬ÕâÀﲢûÓн«ÆäÊÓΪÎÞЧ²¢½øÐзµ»Ø£¬¶øÊÇÈԾɷµ»Ø²¿ÃÅÓòÃû±êÇ©³¤¶È¡£
ÔÙ¿´µÚ¶þ²Ù×÷£¬·ÖÅ仺³åÇø²¢½øÐÐÓòÃû±êÇ©¿½±´£¬¹Ø¼ü´úÂëÈçÏÂͼËùʾ£º

ÕâÀïexpanded_lenÎªÍÆËã³öÀ´µÄÓòÃû±êÇ©µÄ³¤¶È£¨µÚ242ÐУ©£¬·ÖÅäÒ»¶ÎÄڴ棨µÚ248ÐУ©£¬½øÈëwhileÑ»·£¬Å²ÓÃexpand_search_domain_name()º¯Êý½øÐÐÓòÃû±êÇ©¿½±´£¬ÊµÏÖ´úÂëÈçÏÂͼËùʾ£º

¸Ãº¯ÊýºÍfind_search_domain_name_len()º¯ÊýʵÏÖ¸ù»ùÊÇÒ»ÑùµÄ£¬·ÖÀà´¦ÖÃ0½áβºÍѹËõÖ¸Õ룬µ«ÊÇÔÚ´¦ÖÃѹËõÖ¸ÕëµÄÇé¿öʱ£¬²¢Ã»ÓÐÅжÏÖ¸ÕëÁìÓòµÄºÏÀíÐÔ¡£ÐÐ366£¬Å²ÓÃmemcpy½øÐÐÓòÃû±êÇ©¿½±´£¬¿½±´³¤¶ÈΪlabel_len¡£
ƾ¾ÝǰÎÄ·ÖÎö£¬µÚÒ»²½²Ù×÷Ôڵݹ鴦ÖÃѹËõÖ¸ÕëµÄÇé¿öʱ£¬ÊÇ´æÔÚÎÊÌâµÄ£¬²¢Ã»ÓÐÅׯúÔ̺¬ÎÞЧѹËõÖ¸ÕëµÄÓòÃû±êÇ©¡£Äܹ»»ú¹ØÒ»¸öÌØÊâµÄÓòÃû±êÇ©»ìºÏlebalµÄµÝ¹é½âÎö£¬¸ÃÓòÃû±êÇ©°µÊ¾Îª£º| 1 |x3F|x00| 1 |'A'|xC0|x01|¡£
˳´Î¶ÁÈ¡µ½label_lenΪ0xC0ʱ£¬½øÒ»²½µÝ¹éŲÓýâÎö£¬Õâ´Î¶ÁÈ¡µ½label_lenΪ0x3f£¬½«0x3fµ±³ÉÁËÓòÃû³¤¶È£¬µ«ÊǵÚ305ÐУ¬ÅжϲúÉúÔ½½ç£¬Òò¶ø·µ»Ø-1¡£

µ«ÊÇÕâÀïÒÀÈ»ÍÆËã³ödomain_name_lanΪ1£¬Òò¶øµÚ¶þ¸öÓòÃûÔ̺¬Ò»¸ö0x41¡£

×îºóÍÆËã³öexpanded_lenΪ0x5£¬ÈçÏÂͼËùʾ£º

¶øºóÆðÍ·½øÐеڶþ²½¿½±´²Ù×÷£¬ÏÈ¿½±´µÚÒ»¸ödomain£º0x3f¡£ÈçÏÂͼËùʾ£º

µÚ¶þ´Î¿½±´µÚ¶þ¸ödomain£º0x41¡£ÈçÏÂͼËùʾ£º

µÝ¹é½âÎöѹËõÖ¸Õë0XC004ʱ£¬²úÉúÁË»ìºÏ£¬ÈçÏÂͼËùʾ£º

ÃýÎ󵨽«0x3fµ±³Élabel_len£¬ÕâÏÔÖøÊÇ´óÓÚexpanded_lenµÄ£¬Ö±½Ó¿½±´µ¼ÖÂÒç³ö¡£²»ÍâÔÚÏÖʵ²âÊÔÖУ¬²¢Î´²úÉúÄÚ´æ·ÛË飬¶øÄܹ»»ú¹ØÆäËûµÄÓòÃû±êÇ©ÏÝÈëÎÞÏ޵ݹ飬ÈÃdhclient¹ý³Ì²Ö¿âºÄ¾¡µ¼Ö±ÀÀ££¬Ôì³É»Ø¾ø·þÎñ¡£

´ëÖý¨Òé
FreeBSD¡¢Nucleus NETºÍ NetX£¬½¨ÒéÏÈÖ´ÐÐÒÔϰ²È«½¨Ò飬ÔÙʵʱ¸üÐÂÉ豸¹©¸øḚ́䲼µÄ°²È«¸üС£
°²È«½¨Ò飺
ʹÓÃһЩ»º½âÐÅÏ¢À´¿ª·¢¼ì²âDNS·ì϶µÄÊðÃû£»
·¢ÏÖ²¢Å̵ãÔËÐÐÒ×Êܹ¥»÷²Ö¿âµÄÉ豸£»
Ö´ÐзֶνÚÔìºÍÊʵ±µÄnetwork hygiene£»
¼à¶½ÊÜÓ°ÏìµÄÉ豸¹©¸øḚ́䲼µÄ²¹¶¡£»
ÅäÖÃÉ豸ÒÀÀµÄÚ²¿DNS·þÎñÆ÷£»
¼à¿ØËùÓÐÍøÂçÁ÷Á¿ÖеĶñÒâÊý¾Ý°ü¡£


¾©¹«Íø°²±¸11010802024551ºÅ