|
http://www.hackerschool.org/HS_Boards/zboard.php?AllArticle=true&no=1685 [º¹»ç]
.global main
main:
jmp go
func:
pop %ebx ; %ebx¿¡ "/bin/sh" ¹®ÀÚ¿ ½ÃÀÛÇÏ´Â ÁÖ¼Ò °ª µé¾î°¨
movl $0x0, %eax
push %eax ; %eax¿¡ 0 À» ³ÖÀº µÚ ½ºÅÿ¡ PUSH (str[1]=null ±¸Çö)
push %ebx ; ¹®ÀÚ¿ ½ÃÀÛ ÁÖ¼Ò °ª ½ºÅÿ¡ PUSH (str[0]="/bin/sh" ±¸Çö)
movl %esp, %ecx ; %ecx´Â ¹®ÀÚ¿ ¹è¿ÀÇ ½ÃÀÛ ÁÖ¼Ò °ª (str °ª ±¸Çö)
movl $0x0, %edx ; %edx¿¡ null °ª
movl $0xb, %eax ; execveÀÇ ½Ã½ºÅÛ ÄÝ ¹øÈ£ 11À» %eax¿¡ ³ÖÀ½
int $0x80
go:
call func
.string "/bin/sh"
¿©±â¼ call À»Çϸé, ret¿¡ µé¾î°£´Ù´Â °Í ±îÁø ¾Ë°Ú´Âµ¥.. ¼³¸íÀ» º¸´Ï, ret¿¡ .stringÀÌ µé¾î°¡°í espµµ ret(.string)À» °¡¸£Å²´Ù°í ³ª¿À´Â ±º¿ä..
½±°Ô ¼³¸íÁ» ÇØÁÖ¼¼¿ä |
Hit : 3758 Date : 2013/06/03 10:09
|