| pjm2108 |
esp°¡ ½ºÅÃÀÇ °¡Àå ¾Æ·§ºÎºÐÀ» °¡¸®Å°°í Àֱ⠶§¹®ÀÔ´Ï´Ù. ¾î¼Àºí¸®·Î °üÂûÇÏ¸é ½±°Ô ÀÌÇØ µË´Ï´Ù.
ebp´Â ½ºÅÃÀÇ ½ÃÀۺκÐ, esp´Â ½ºÅÃÀÇ ³¡ºÎºÐÀ» ³ªÅ¸³»´Â ·¹Áö½ºÅͶó°í ¸»ÇÏ°í ½ÃÀÛÇսôÙ.
push ebp
mov ebp, esp
sub esp, 40h
..Áß·«
add esp, 40h
mov esp, ebp
pop ebp
ret
ÀÌ°Ô ÇÔ¼ö¸¦ call Çϸé À̵¿ÇÑ ·çƾÀÇ ±âº» ÇüÅÂÀÔ´Ï´Ù. stdcallÀÌ³Ä fastcallÀÌ³Ä ¹¹ ÀÌ·±°Å¿¡ µû¶ó ´Þ¶óÁø´Ù´Âµ¥, ÀÏ´ÜÀº Àú·± ÇüÅÂÀ̱¸¿ä. sub esp, 40h¸¦ ´«¿©°Ü º¸½Ã¸é µË´Ï´Ù. ÀÌ°Ç ½ºÅÃÀÇ Å©±â°¡ 40h ¶ó´Â ÀǹÌÀÔ´Ï´Ù.
¿ø·¡ esp°¡ ebp¿´À½À» ±â¾ïÇϸé, esp¿¡¼ -40h ÇßÀ¸´Ï, ½ºÅÃÀÇ °¡Àå ¾Æ·§ºÎºÐÀ» °¡¸®Å°°í ÀÖ´Ù´Â °ÍÀÌ ÀÌÇØµÇÁÒ?
ÇѸ¶µð·Î ¸»ÇÏ¸é ½ºÅÃÀº [esp ---------<------- ebp][ret] À̶ó°í º¸½Ã¸é µË´Ï´Ù.
¹æÇâÀÌ ÀÌ»óÇÒ ¼ö Àִµ¥, ¸¸¾à int a; ¸¦ Çϼż Áö¿ªº¯¼ö¸¦ ¼±¾ðÇϸé ... ¾Æ ½ºÅÿ¡ ´ëÇÑ°Ç ²÷À»²²¿ä.
¾Æ¹«Æ° esp°¡ ½ºÅÃÀÇ ¸¶Áö¸· ºÎºÐÀ» °¡¸®Å°°í Àֱ⠶§¹®¿¡ À̸¦ ÅëÇØ offsetÀ» ÃßÃøÇϰڴÙ! ¶ó´Â °Ì´Ï´Ù.
À§ÀÇ 40h´Â ¾î¶² Áö¿ªº¯¼öµµ ¼±¾ðµÇÁö ¾Ê¾ÒÀ» ¶§ ÀÔ´Ï´Ù. ¸¸¾à int Çü Áö¿ªº¯¼ö°¡ Çϳª Ãß°¡µÇ¸é -44h ÇϰÚÁÒ.. |
2013/05/04 |
|