|  |
| |
| 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 |
|