·¢²¼Ê±¼ä : ÐÇÆÚÈý ÎÄÕ»ª¿Æ_¼ÆËã»úϵͳʵÑ鱨¸æ¸üÐÂÍê±Ï¿ªÊ¼ÔĶÁ
ʵÑé2£º ²ðµ¯ÊµÑé
2.1 ʵÑé¸ÅÊö
ʵÑéÄ¿µÄ£ºÔöÇ¿¶Ô³ÌÐòµÄ»úÆ÷¼¶±íʾ¡¢»ã±àÓïÑÔ¡¢µ÷ÊÔÆ÷ºÍÄæÏò¹¤³ÌµÈ·½ÃæÔÀíÓë¼¼ÄܵÄÕÆÎÕ¡£
ʵÑéÄ¿±ê£ºÐèÒª²ð³ý¾¡¿ÉÄܶàµÄÕ¨µ¯¡£
ʵÑéÒªÇó£ºÊ¹ÓÃgdbµ÷ÊÔÆ÷ºÍobjdumpÀ´·´»ã±àÕ¨µ¯µÄ¿ÉÖ´ÐÐÎļþ£¬²¢µ¥²½¸ú×Ùµ÷ÊÔÿһ½×¶ÎµÄ»úÆ÷´úÂ룬´ÓÖÐÀí½âÿһ»ã±àÓïÑÔ´úÂëµÄÐÐΪ»ò×÷Ó㬽ø¶øÉè·¨¡°Íƶϡ±³ö²ð³ýÕ¨µ¯ËùÐèµÄÄ¿±ê×Ö·û´®¡£ ʵÑéÓïÑÔ£ºc¡£ ʵÑé»·¾³£ºlinux
2.2 ʵÑéÄÚÈÝ
Ò»¸ö¡°binary bombs¡±£¨¶þ½øÖÆÕ¨µ¯£¬ÏÂÎĽ«¼ò³ÆΪըµ¯£©ÊÇÒ»¸öLinux¿ÉÖ´ÐÐC³ÌÐò£¬°üº¬ÁË6¸ö½×¶Î£¨phase1~phase6£©¡£Õ¨µ¯ÔËÐеÄÿ¸ö½×¶ÎÒªÇóÄãÊäÈëÒ»¸öÌض¨µÄ×Ö·û´®£¬ÈôÄãµÄÊäÈë·ûºÏ³ÌÐòÔ¤ÆÚµÄÊäÈ룬¸Ã½×¶ÎµÄÕ¨µ¯¾Í±»¡°²ð³ý¡±£¬·ñÔòÕ¨µ¯¡°±¬Õ¨¡±²¢´òÓ¡Êä³ö \×ÖÑù¡£ÊµÑéµÄÄ¿±êÊDzð³ý¾¡¿ÉÄܶàµÄÕ¨µ¯²ã´Î¡£
ÿ¸öÕ¨µ¯½×¶Î¿¼²ìÁË»úÆ÷¼¶ÓïÑÔ³ÌÐòµÄÒ»¸ö²»Í¬·½Ã棬ÄѶÈÖ𼶵ÝÔö£º * ½×¶Î1£º×Ö·û´®±È½Ï * ½×¶Î2£ºÑ»· * ½×¶Î3£ºÌõ¼þ/·ÖÖ§ * ½×¶Î4£ºµÝ¹éµ÷ÓúÍÕ» * ½×¶Î5£ºÖ¸Õë
* ½×¶Î6£ºÁ´±í/Ö¸Õë/½á¹¹
ÁíÍ⻹ÓÐÒ»¸öÒþ²Ø½×¶Î£¬µ«Ö»Óе±ÄãÔÚµÚ4½×¶ÎµÄ½âÖ®ºó¸½¼ÓÒ»Ìض¨×Ö·û´®ºó²Å»á³öÏÖ¡£
ΪÁËÍê³É¶þ½øÖÆÕ¨µ¯²ð³ýÈÎÎñ£¬ÄãÐèҪʹÓÃgdbµ÷ÊÔÆ÷ºÍobjdumpÀ´·´»ã±àÕ¨µ¯µÄ¿ÉÖ´ÐÐÎļþ£¬²¢µ¥²½¸ú×Ùµ÷ÊÔÿһ½×¶ÎµÄ»úÆ÷´úÂ룬´ÓÖÐÀí½âÿһ»ã±àÓïÑÔ´úÂëµÄÐÐΪ»ò×÷Ó㬽ø¶øÉè·¨¡°Íƶϡ±³ö²ð³ýÕ¨µ¯ËùÐèµÄÄ¿±ê×Ö·û´®¡£Õâ¿ÉÄÜÐèÒªÄãÔÚÿһ½×¶ÎµÄ¿ªÊ¼´úÂëÇ°ºÍÒý±¬Õ¨µ¯µÄº¯ÊýÇ°ÉèÖöϵ㣬ÒÔ±ãÓÚµ÷ÊÔ¡£
2.2.1 ½×¶Î1 ×Ö·û´®±È½Ï
1. ÈÎÎñÃèÊö£ºÍ¨¹ýphase_1µÄ·´»ã±à´úÂëÕÒ³öÒªÊäÈëµÄ×Ö·û´®¡£
2. ʵÑéÉè¼Æ£ºÀûÓÃgdb½áºÏ¶ÏµãÀ´¶¯Ì¬µØ·ÖÎö¡£ 3. ʵÑé¹ý³Ì£º
¹Û²ìphase_1µÄ·´»ã±à´úÂ룬Èçͼ2.1.1Ëùʾ£º
ͼ2.1.1
·¢ÏÖÔÚµ÷ÓÃstrings_not_equal¶Ô±È×Ö·û´®Ö®Ç°£¬ÓÐÒ»¸öµØÖ·ËÍÈëÁ˶ÑÕ»£¬´óµ¨²Â²â¸ÃµØÖ·¾ÍÊÇÕýÈ·×Ö·û´®µÄÊ×Ö·£¬ÓÚÊÇÔÚphase_1´¦Ï¸ö¶Ïµã£¬ÔËÐÐÖÁ´Ë´¦ºó£¬ÓÃxÃüÁî²é¿´×Ö·û´®¡£Èçͼ2.1.2Ëùʾ£º
ͼ2.1.2
¹Ê²Â²â¡°Border relations with Canada have never been better.¡±¾ÍÊÇËùÐè×Ö·û´®¡£ÖØÐÂÖ´ÐиóÌÐò£¬Ö±½ÓÊäÈë¸Ã×Ö·û´®£¬¹Û²ì½á¹û¡£Èçͼ2.1.3Ëùʾ£º
ͼ2.1.3
4. ʵÑé½á¹û£ºÈçͼ2.1.3Ëùʾ£¬½×¶ÎÒ»²ðµ¯³É¹¦£¡
½×¶ÎÒ»ºÜ¼òµ¥£¬µ±³õµÄÕÒ³ö×Ö·û´®Ê×µØÖ·¾Í¿ÉÒÔÁË£¬Ã»ÓÐʲô´óµÄÄѵ㡣
2.2.2 ½×¶Î2 Ñ»·
1. ÈÎÎñÃèÊö£ºÍ¨¹ýphase_2µÄ·´»ã±à´úÂëÍƶϵڶþ½×¶ÎÒªÊäÈëµÄÊý¾Ý 2. ʵÑéÉè¼Æ£ºÀûÓÃgdb½áºÏ¶ÏµãÀ´¶¯Ì¬µØ·ÖÎö 3. ʵÑé¹ý³Ì£º
¹Û²ìphase_1µÄÇ°Ò»²¿·Ö·´»ã±à´úÂ룬Èçͼ2.2.1Ëùʾ£º
ͼ2.2.1
·¢ÏÖÊäÈëµÄÓ¦¸ÃÊÇÁù¸öÊý×Ö£¬¶øÇÒÒªÇó[esp+0x18]±ØÐë´óÓÚµÈÓÚ0²ÅÐУ¬ÓÚÊDzâÊÔÊäÈë¡°0 1 2 3 4 5¡±£¬¹Û²ìÕâЩÊý×ÖÔÚµ÷ÓÃread_six_numbersºóÊÇÈçºÎ´æ·ÅÔÚÕ»Öеģ¬Èçͼ2.2.2Ëùʾ£º
ͼ2.2.2
¹Û²ìµ½Ö´ÐÐread_six_numbersºó£¬ÊäÈëµÄÊý×ÖÒÀ´Î´æ·ÅÔÚesp+0x18¡¢esp+0x1c¡¢esp+0x20¡¢esp+0x24¡¢esp+0x28¡¢esp+0x2cÖУ¬¹Ê¶ÔÊäÈëµÄÊý×ÖÊ×ÏȾÍÒªÓеÚÒ»¸öÊý²»ÄÜСÓÚ0¡£¼ÌÐø¹Û²ìphase_2µÄºóÒ»²¿·Ö·´»ã±à´úÂ룬Èçͼ2.2.3Ëùʾ£º
ͼ2.2.3
ÄÜÈÝÒ×·¢ÏÖÕâÊÇÒ»¸öÑ»·£¬Ê×ÏȽ«ebx¸³ÖµÎª1£¬È»ºó±È½Ï[esp+ebx*4+0x14]¼ÓÉÏebxÓë[esp+ebx*4+0x18]ÊÇ·ñÏàµÈ£¬ÏàµÈ¾Íebx¼ÓÒ»¼ÌÐøÖ´ÐУ¬Ö±µ½ebxµÈÓÚ6ºóÍ˳ö¡£
È»ºóÀ´·ÖÎöÓ¦¸ÃÊäÈëµÄÖµ¡£µÚÒ»¸öÊýÖ»Òª´óÓÚµÈÓÚ0¾Í¿ÉÒÔ¡£
²»·Á¾ÍÊäÈë0¡£Ëû½«»á±»±£´æÔÚesp+0x18´¦¡£ËùÒÔebxµÈÓÚ1ʱ£¬ÓÐ[esp+ebx*4+0x18]=[esp+0x1c]=[esp+ebx*4+0x14]+ebx=[esp+0x18]+1¡£¹ÊµÚ¶þ
¸öÊäÈëµÄÊý×ÖÓ¦¸ÃΪ0+1=1¡£Í¬Àí·ÖÎö¿ÉµÃºóÃæµÄÊýÒÀ´ÎΪ3¡¢6¡¢10¡¢15¡£¹ÊÕâÁù¸öÊýÒÀ´ÎΪ0¡¢1¡¢3¡¢6¡¢10¡¢15¡£
ÖØÐÂÖ´ÐиóÌÐò£¬Ö±½ÓÊäÈë¡°0 1 3 6 10 15¡±£¬¹Û²ì½á¹û¡£Èçͼ2.2.4Ëùʾ£º
ͼ2.2.4
4. ʵÑé½á¹û£ºÈçͼ2.2.4Ëùʾ£¬½×¶Î¶þ²ðµ¯³É¹¦£¡
½×¶Î¶þÉæ¼°µ½ÁËСµÄÑ»·£¬ÂýÂýµÄÒÀ´ÎÖ´ÐкÜͬÒâ¾ÍÄÜ·¢ÏÖ¹æÂÉ£¬Ò²²»ÊǺÜÄÑ¡£
2.2.3 ½×¶Î3 Ìõ¼þ/·ÖÖ§
1. ÈÎÎñÃèÊö£ºÍ¨¹ýphase_3µÄ·´»ã±à´úÂëÍƶϵÚÈý½×¶ÎÒªÊäÈëµÄÊý¾Ý 2. ʵÑéÉè¼Æ£ºÀûÓÃgdb½áºÏ¶ÏµãÀ´¶¯Ì¬µØ·ÖÎö 3. ʵÑé¹ý³Ì£º
¹Û²ìphase_3µÄÇ°Ò»²¿·Ö·´»ã±à´úÂ룬Èçͼ2.3.1Ëùʾ£º
ͼ2.3.1
·¢ÏÖÊäÈëµÄÓ¦¸ÃÒªÇó__isoc99_sscanf@pltµÄ·µ»ØÖµ´óÓÚ1£¬ÓÚÊǹ۲ìµ÷ÓÃ__isoc99_sscanf@pltʱ¸ñʽ×Ö·û´®µÄÖµ£¬ÔÚ0x8048c23´¦Ï¶ϵãÈ»ºó½øÈ뺯Êýµ¥²½µ÷ÊÔ£¬²¢²âÊÔÊäÈë¡°0 1 2 3 4¡±£¬Èçͼ2.3.2Ëùʾ£º
ͼ2.3.2
¹Û²ìµ½¸ñʽ×Ö·û´®Îª¡°%d %d¡±£¬¹ÊÖ»ÐèÊäÈëÁ½¸öÊý×Ö¼´¿É¡£Í¬phase_2²Ù×÷¿ÉÒÔ·¢ÏÖÊäÈëµÄÊý×ÖÒÀ´Î´æ·ÅÔÚesp+0x18¡¢esp+0x1cÖС£¼ÌÐø¹Û²ìphase_3µÄ