ÇÁ·Î±×·¡¹Ö

 3198, 1/160 ȸ¿ø°¡ÀÔ  ·Î±×ÀΠ 
   relilau
   http://relilauhome.tistory.com
   gcc 4.4.5¿¡¼­ ¾î¼Àºí¸®¾î Áú¹®

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


Á¦°¡

int main()
{
write(1, "Hello, Students!\n", 17);
}

ÀÌ·± Äڵ带 Æäµµ¶ó14¿¡¼­ gcc 4.4.5¿¡¼­ ÄÄÆÄÀÏ Çß½À´Ï´Ù.
À̸¦ gdb·Î µð½º¾î¼ÀºíÀ» ÇØºÃ´õ´Ï

   0x00000000004003f4 <+0>:        push   %rbp
   0x00000000004003f5 <+1>:        mov    %rsp,%rbp
   0x00000000004003f8 <+4>:        mov    $0x6,%edx
   0x00000000004003fd <+9>:        mov    $0x46fc50,%esi
   0x0000000000400402 <+14>:        mov    $0x1,%edi
   0x0000000000400407 <+19>:        mov    $0x0,%eax
   0x000000000040040c <+24>:        callq  0x40c560 <write>
   0x0000000000400411 <+29>:        leaveq
   0x0000000000400412 <+30>:        retq  

ÀÌ·¸°Ô ³ª¿Ô½À´Ï´Ù. ±×·±µ¥ ÇØÄ¿½ºÄð °­Á¿¡¼­ º¸´Ï±î(°°Àº ÄÚµå)

0x80481e0 <main>:       push   %ebp
0x80481e1 <main+1>:     mov    %esp,%ebp
0x80481e3 <main+3>:     sub    $0x8,%esp
0x80481e6 <main+6>:     sub    $0x4,%esp
0x80481e9 <main+9>:     push   $0x11
0x80481eb <main+11>:    push   $0x808ce68
0x80481f0 <main+16>:    push   $0x1
0x80481f2 <main+18>:    call   0x804ccf0 <write>
0x80481f7 <main+23>:    add    $0x10,%esp
0x80481fa <main+26>:    leave
0x80481fb <main+27>:    ret

ÀÌ·±½ÄÀ¸·Î ³ª¿É´Ï´Ù. ºñ±³Çغ¸´Ï±î óÀ½ ½ÃÀÛ¿¡¼­ ÇØÄ¿½ºÄð¿¡¼­´Â push %ebpÀε¥ Àü push %rbp¿´½À´Ï´Ù.
retµµ retq·Î ¹Ù²î¾î³ª¿É´Ï´Ù.
write ÇÔ¼ö¿¡¼­ ÀÎÀÚ¸¦ ÀüÇØÁÖ´Â °Íµµ push°¡ ¾Æ´Ñ mov °í¿ä..

gcc¹öÀüÀÌ ¹Ù²ñ¿¡ µû¶ó¼­ ÀÌ·¸°Ô µÈ °ÍÀϱî¿ä??
ÀÌ »óÅ·Π±×³É BOF ¹è¿ì´Â °Ô ³ªÀ»±î¿ä??(»ýÃʺ¸ÀÔ´Ï´Ù. ¿ø¸®¸¸ ¾Ë°í ¾î¶»°Ô ÇØ¾ßµÇ´ÂÁö´Â ¸ð¸¨´Ï´Ù.)
gcc¸¦ ´Ù¿î±×·¹À̵åÇÏ°í ¾µ±î¿ä?



  Hit : 5111     Date : 2011/09/02 11:33



    
$Zero 64ºñÆ®°¡ µÇ¸é¼­ ·¹Áö½ºÅÍÀÇ Á¾·ù°¡ Ãß°¡µÇ°í È®ÀåµÇ¾ú½À´Ï´Ù.

ebp¿ª½Ã 16¿¡¼­ 32ºñÆ®·Î È®ÀåµÇ¸é¼­ »ý±ä ·¹Áö½ºÅÍÀ̰í

rbp¿ª½Ã ebp¿¡¼­ 64ºñÆ®°¡ µÇ¸é¼­ È®ÀåµÈ ·¹Áö½ºÅÍÀÔ´Ï´Ù.

64ºñÆ® ¸®¹ö½ÌÀº Á» »ý¼ÒÇÑ ºÎºÐÀÌ ¸¹À¸´Ï ¹®¼­¸¦ Çϳª Âü°íÇϽÉÀÌ ÁÁÀ» µí ÇÕ´Ï´Ù.
2011/09/03  
$Zero »ý°å´Ù´Â ¸»º¸´Ü È®À嵯´Ù´Â ¸»ÀÌ Á¤È®ÇÑ Ç¥ÇöÀÌ´Ï È¥µ· ¾øÀ¸½Ã±æ.

bp - > ebp - > rbp

ÀÌ·¸°Ô È®ÀåµÈ °ÍÀÔ´Ï´Ù.
2011/09/03