시스템 해킹

 1576, 1/79 회원가입  로그인  
   짹잭이
   http://jack2.tistory.com
   [BOF] Hackerschool Handbook#1 BOF 왕기초편에서...

http://www.hackerschool.org/HS_Boards/zboard.php?AllArticle=true&no=1585 [복사]


p.82 에 있는 code를 수행한 결과


$ cat ex2.c
#include <stdio.h>

int get_area(int x,int y)
{
        int area;

        printf("인자 x의 주소 0x%x\n", &x);
        printf("인자 y의 주소 0x%x\n", &y);
        printf("함수 내 area 주소 0x%x\n", &area);

        area = x*y;
        return area;
}

int main()
{
        int x = 10, y = 20;
        int area;

        printf("x의 주소 : 0x%x\n", &x);
        printf("y의 주소 : 0x%x\n", &y);
        printf("area의 주소 : 0x%x\n", &area);

        area = get_area(x,y);
        printf("사각형의 넓이 : %d\n",area);
}


$ ./ex2
x의 주소 : 0x22ac8c
y의 주소 : 0x22ac88
area의 주소 : 0x22ac84
인자 x의 주소 0x22ac70
인자 y의 주소 0x22ac74
함수 내 area 주소 0x22ac5c
사각형의 넓이 : 200

이와 같이 결과가 나오는데 0x22ac5c 와 0x22ac70 사이에 SFP, RET(Return Address)가 있다고 했는데 책에 나온 내용을 읽어보면 SFP, RET 각각 4byte 라고 하면 SFP는 0x22ac60 RET는 0x22ac64로 예상이 됩니다.

그러면 0x22ac68, 0x22ac6c 이 부분이 남게 되는데 이 부분에는 무엇이 있는 것일까요??

참고로 개발환경은 windows xp 에서 cygwin 으로 컴파일한 결과입니다.

  Hit : 4487     Date : 2012/06/21 04:31



    
cd80 윈도우즈는 모르겠는데 스택쿠키나 SEH들어가있는거 아닌가요??
해쿨 보프 왕기초편은 레드햇6.2에서 하시는게 제일 수월하실거에요
ftp.superuser.co.kr
2012/06/21