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£ºÈôÊÇÐèÒª¿ç×ÓÍø¾ÙÐÐ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»ÊÇ£¬£¬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ÐУ©£¬£¬¿ÉÊdzÌÐòûÓмì²éÕâ¸ö³¤¶ÈÊÇ·ñ´ú±íÕæÊµÊý¾Ý°üÖÐlabelµÄ³¤¶È£¬£¬Õâ¿Éµ¼Ö¶ÁÈ¡Áè¼ÝÒÑ·ÖÅɽṹÌåµÄbuffer£¬£¬Ôì³É¾Ü¾øÐ§ÀÍ¡£¡£¡£¡£¡£
£¨2£©¶ÔѹËõÖ¸ÕëµÄÆ«ÒÆÃ»ÓÐ×öÑéÖ¤
ƾ֤ÉÏÎĽ²ÊöµÄÄÚÈÝ£¬£¬³ÌÐòÅжÏΪѹËõÖ¸Õëºó£¬£¬±ã»áͨ¹ý¸ø³öµÄÆ«ÒÆÈ¥Ñ°ÕÒÆÊÎölabel£¨µÚ14,15,16ÐУ©£¬£¬¿ÉÊdzÌÐòûÓÐÑéÖ¤Æ«ÒÆµÄ¹æÄ££¬£¬Õâµ¼ÖÂÆ«ÒÆÖµ¿ÉÒÔí§Òâ¸ø¶¨£¬£¬Õâµ¼Ö¿ÉÒÔÔ½½ç¶Áд£¬£¬´Ó¶ø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ÐÐÖ®¼äÊDZ£´æÎÊÌâµÄ£¬£¬ÈôÊǵݹ鴦Öóͷ£Ñ¹ËõÖ¸ÕëÖ¸ÏòµÄÁíÒ»¸öÓòÃû±êÇ©²»ÕýÄÇʱ£¬£¬·µ»ØµÄpointer_lenΪ-1£¬£¬ÕâÀﲢûÓн«ÆäÊÓΪÎÞЧ²¢¾ÙÐзµ»Ø£¬£¬¶øÊÇÒÀ¾É·µ»Ø²¿·ÖÓòÃû±êÇ©³¤¶È¡£¡£¡£¡£¡£
ÔÙ¿´µÚ¶þ²Ù×÷£¬£¬·ÖÅÉ»º³åÇø²¢¾ÙÐÐÓòÃû±êÇ©¿½±´£¬£¬Òªº¦´úÂëÈçÏÂͼËùʾ£º

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

¸Ãº¯ÊýºÍfind_search_domain_name_len()º¯ÊýʵÏÖ»ù±¾ÊÇÒ»ÑùµÄ£¬£¬·ÖÀà´¦Öóͷ£0×îºóºÍѹËõÖ¸Õ룬£¬¿ÉÊÇÔÚ´¦Öóͷ£Ñ¹ËõÖ¸ÕëµÄÇéÐÎʱ£¬£¬²¢Ã»ÓÐÅжÏÖ¸Õë¹æÄ£µÄºÏÀíÐÔ¡£¡£¡£¡£¡£ÐÐ366£¬£¬Å²ÓÃmemcpy¾ÙÐÐÓòÃû±êÇ©¿½±´£¬£¬¿½±´³¤¶ÈΪlabel_len¡£¡£¡£¡£¡£
ƾ֤ǰÎÄÆÊÎö£¬£¬µÚÒ»²½²Ù×÷Ôڵݹ鴦Öóͷ£Ñ¹ËõÖ¸ÕëµÄÇéÐÎʱ£¬£¬ÊDZ£´æÎÊÌâµÄ£¬£¬²¢Ã»ÓÐÑïÆú°üÀ¨ÎÞЧѹËõÖ¸ÕëµÄÓòÃû±êÇ©¡£¡£¡£¡£¡£¿£¿£¿£¿ÉÒԽṹһ¸öÌØÊâµÄÓòÃû±êÇ©»ìÏý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ºÅ