22018, 1/1101 ȸ¿ø°¡ÀÔ  ·Î±×ÀΠ 
   jsi606897
   asdf.png (573.5 KB), Download : 28     [¿À¸¥ÂÊ ¹öư ´­·¯ ´Ù¿î ¹Þ±â]
   ftz level 11¹ø bof¹®Á¦ Ç®´Ù°¡ ±Ã±ÝÁõ »ý°Ü¼­ ±Û ³²°Üº¾´Ï´Ù

http://www.hackerschool.org/HS_Boards/zboard.php?AllArticle=true&no=37066 [º¹»ç]



ã¾Æ´Ù³æ´Âµ¥ ¾È³ª¿À±æ·¡ ±Û ³²±é´Ï´Ù.

1.sfp¶ó´Â °Ô Á¤È®ÇÏ°Ô ¹º°¡¿ä?? ¸ðµÎ »çÀüÀûÀǹ̸¸ °¡¸£ÃÄ Áֽðí Á¤È®ÇÏ°Ô ¹ºÁö ¾È °¡¸£ÃÄÁֽó׿ä... ÀÌÀü ÇÔ¼ö¿¡¼­ ¾²´ø base pointer¸¦ ÀúÀåÇÏ´Â °Í°ú ¿¬°üÀÌ ÀÖ´Â °Í±îÁö “U¿¡ ¸ð¸£°Ú¾¹´Ï´Ù.

2. ¸Þ¸ð¸® ±¸Á¶¸¦ º¸¸é
256 + dummy(8 byte) ±îÁö´Â ÀÌÇØ°¡ °©´Ï´Ù¸¸ sfp¿Í retÀÌ ¿Ö ³ª¿À´Â °ÅÁÒ??
»õ·Î¿î ÇÔ¼ö°¡ È£ÃâµÉ ¶§³ª ³ª¿À´Â °Íµé ¾Æ´Ñ°¡¿ä?? ¹è¿­ÀÌ ¼±¾ðµÇ¾ú´Ù°í sfp¿Í retÀÌ ¿Ö
µîÀåÇÏ´ÂÁö ¸ð¸£°Ú½À´Ï´Ù

ÇÑ ¼ö °¡¸£ÃÄÁֽʽÿä

  Hit : 4828     Date : 2019/07/22 04:00



    
ka0r1 1 1. Àúµµ bof °øºÎÇßÀ» ´ç½Ã sfp¶õ°É °ÇµéÁö ¾Ê¾Æ¼­ È®½ÇÇÏ°Ô ¸ð¸£°ÚÁö¸¸...
Stack Frame Pointer¿¡ ¾àÀڷμ­ ¿À·¡Àü Á¦°¡ ´Ô°ú ºñ½ÁÇÑ Áú¹®¿¡ Çߴµ¥
"½ºÅà ÇÁ·¹ÀÓ ±â¹ý"À̶õ °É µéÀº ÀûÀÌ ÀÖ½À´Ï´Ù.
½ºÅà ÇÁ·¹ÀÓ(Stack Frame)À̶õ ÇÔ¼ö°¡ È£ÃâµÇ¾úÀ» ¶§ ±× ÇÔ¼ö°¡ °¡Áö´Â °ø°£ ±¸Á¶ÀÔ´Ï´Ù.
ÇÔ¼ö°¡ µ¿ÀÛÀ» Á¾·áÇÏ°í º¹±Í ÁÖ¼Ò·Î µ¹¾Æ°¥ ¶§ ½ºÅà ÇÁ·¹ÀÓÀº ¼Ò¸êµË´Ï´Ù.

2.
¸¸¾à¿¡

void function(void)
{
int arr[256];
}

void main()
{
function();
}

ÀÌ·± °£´ÜÇÑ ¼Ò½ºÀÇ ÇÁ·Î±×·¥ÀÌ ÀÖ´Ù°í Ĩ½Ã´Ù.
ÄÄÆÄÀÏÀ» ÇÑ µÚ ÇÁ·Î±×·¥ÀÌ »ý¼ºµÉ °Çµ¥ ÀÌ ÇÁ·Î±×·¥À» ½ÇÇàÇϸé
´ÔÀÌ ±¸ÃàÇϽŠFTZ´Â ·¹µåÇÞ 8Àΰ¡? 9Àΰ¡? ¾î·µç À̰ɷΠ¾Ë°í Àִµ¥...
±× ¿î¿µÃ¼Á¦»ó¿¡¼­ functionÇÔ¼ö¸¦ gdb·Î µð¹ö±ëÀ» ÇØº¸¸é


[ ret ] 4byte ³ôÀº ÁÖ¼Ò
[ sfp ] 4byte
[ dummy ] 8byte
[ arr[256] ] 8byte * 256

ÀÌ·± ½ÄÀ¸·Î ¸Þ¸ð¸®ÀÇ ½ºÅà ¿µ¿ª¿¡ ¹èÄ¡µË´Ï´Ù.
´ÔÀÌ ±Ã±ÝÇØÇϽô sfp¿Í retÀÌ ¿Ö ³ª¿À³Ä¸é...
¾î¶² ÇÔ¼ö´ø °£¿¡ ÇÔ¼ö¸¦ È£ÃâÇÒ ¶§¸¶´Ù ¼Ò½º ÄÚµåÀÇ ¸Ç À§¿¡ ¹è¿­ÀÌ ÄÄÆÄÀÏ µÇ±â ÀÌÀü¿¡
Ç×»ó ret°ú sfpÀÌ µû¶ó ºÙ½À´Ï´Ù.
³ôÀº ÁÖ¼Ò¿¡¼­ ³·Àº ÁÖ¼Ò·Î µ¥ÀÌÅͰ¡ LIFO(Last In-First Out, ÈÄÀÔ¼±Ãâ)°úÁ¤À» °ÅÄ¡°Ô µË´Ï´Ù.
ÀÌ ¶§ ¼±¾ðÇÑ º¯¼ö´Â À§¿¡¼­ºÎÅÍ ¾Æ·¡·Î ³ôÀº ÁÖ¼Ò¿¡¼­ ³·Àº ÁÖ¼Ò·Î ÇÒ´çµË´Ï´Ù.
¾î·µç ¾î¶² ÇÔ¼ö¿¡¼­ ÇÒ´ç¹ÞÀº º¯¼öµéÀÌ ´Ù »ç¿ëµÇ¸é ¸¶Áö¸·ºÎÅÍ Ã³À½±îÁö ½ºÅÿ¡ ÀÖ´Â º¯¼öµéÀ»
´Ù ¾ø¾Ö(?)¹ö¸®°ÚÁÒ? ±×¸®°í ³ª¸é ¸Ç ¸¶Áö¸·¿¡ retÀ» ÂüÁ¶ÇÏ¿© ÀÚ½ÅÀÌ ±ÍȯÇÒ ÇÔ¼öÀÇ ÁÖ¼Ò¸¦
ÂüÁ¶ÇÏ´Â °ÍÀÔ´Ï´Ù.

·çÆ®±ÇÇÑÀÇ ½©À» µû´Â ½©Äڵ带 ´õ¹Ì³ª ¹è¿­°°Àº ¿ë·®ÀÌ ³Ë³ËÇÑ °ø°£¿¡ ³Ö¾î³õ°í
ret·Î ±× ½©Äڵ尡 ÀÖ´Â ÁÖ¼Ò¸¦ ³Ö´Â´Ù¸é ±×°Ô ¹Ù·Î ¹öÆÛ ¿À¹öÇ÷οì¶ó´Â ±â¹ýÀÔ´Ï´Ù.

sfp¿Í ret°¡ ¿Ö ³ª¿À´ÂÁö´Â ¾Æ¼ÌÀ» °Ì´Ï´Ù.
¹öÆÛ ¿À¹öÇ÷οìÀÇ ÇÙ½ÉÀ» ¾Ë·Á¸é ƯÈ÷ ret(return address)ÀÇ °³³äÀ» ¼÷ÁöÇϽñ⠹ٶø´Ï´Ù.
2019/07/22  
ka0r1 ¿ÀŸ Á¤Á¤ÇÕ´Ï´Ù.
intÇü arr¹è¿­ÀÇ °¢°¢ÀÇ Å©±â´Â 8¹ÙÀÌÆ®°¡ ¾Æ´Ï¶ó 4¹ÙÀÌÆ®ÀÔ´Ï´Ù.
2019/07/22  
jsi606897 À½ ±Ùµ¥ Àú°Å´Â functionÇÔ¼ö¸¦ µð¹ö±ëÇßÀ» ¶§¶ó mainÀ¸·Î ´Ù½Ã retrun Çϴ°ÅÁö ¾Ê³ª¿ä??
Á¦°¡ ±Ã±ÝÇѰÍÀº mainÀÌ ½ÃÀÛÇÏÀÚ¸¶ÀÚ ¹è¿­À» ÇÒ´çÇߴµ¥ sfp ¿Í retÀÌ ³ª¿À´Â ÀÌÀ¯¸¦ ¸ð¸£°Ú½À´Ï´Ù.
main¿¡¼­ ¹Ù·Î char str[256];À» ¼±¾ðÇÏ°í ºê·¹ÀÌÅ© Æ÷ÀÎÆ®¸¦ °Ç ´ÙÀ½¿¡ gdb·Î µð¹ö±ëÇßÀ» ¶§ sfp ¿Í retÀº main ÀÌÀü¿¡ init process()ÀÇ °ÍÀΰ¡¿ä??
2019/07/22  
ss4747 ¾È³çÇϼ¼¿ä!!

¸ðÀÇÇØÅ· °¡´ÉÀÚ ¸ðÁý ÁßÀÎ ÇØ¿Ü¾÷üÀÔ´Ï´Ù

¾÷¹«ÀÇ ÁøÇà¹æ½ÄÀº ÇÁ¸®·£¼­ Çü½ÄÀ¸·Î ÀúÈñ°¡ Á¦°øÇص帰

»çÀÌÆ® ¸ðÀÇÇØÅ· ¼º°ø½Ã °Ç´ç À¸·Î Áö±ÞÇØµå¸³´Ï´Ù

ÀÚ¼¼ÇѾȳ»»çÇ×¹× ±âŸ¹®ÀÇ´Â ÅÚ·¡±×·¥ ss4747 ¿©±â·Î ¿¬¶ôÁÖ½Ã¸é »ó¼¼ÇÏ°Ô ¾Ë·Áµå¸®°Ú½À´Ï´Ù
2019/10/04