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