#dokydoky
Stack Buffer OverFlow
ms visual studio 6.0에서 간단한 bof 코드를 컴파일해보고 분석해보자. #include h4ck(void){ int i, *p; p=&i; p+=2; *p+=13; } main(void){ h4ck(); printf("H4cking\n"); printf("Cr4cking\n"); } 우선 알아야 할 것이. 1. 메모리구조는 Text, Data, Heap, Stack 영역으로 나뉜다. 2. Stack영역은 다른영역과는 달리 높은주소->낮은주소로 변수가 쌓인다.(변수 내부에서는 낮은주소->높은주소) 3. 함수를 호출하면 우선 스택에 ret(retrun 주소), SFP(Stack Frame Pointer), 매개변수, 지역변수 순서대로 쌓인다. 이 때, Stack BOF는 ret주소를 의도적으..
System Hacking
2011. 8. 24. 22:57
이차 배열 동적할당 하다가 코딩 실수
내 경험.. 얼마 전, 프로그래밍을 하다가 오류가 발생했다. 아무리 봐도 오류날 이유가 없었는데, 하나하나 디버깅 해봐도 도저히 모르겠음. 그러다가 free() 함수를 주석처리 해보니 오류가 안나는 거다.. 당시 문제있던 코드를 재현해보면 #include #include int main(){int i;int m, n;char** dp; printf("m, n 입력 : ");scanf("%d %d", &m, &n); dp = (char**)malloc( sizeof(char) * n );if( dp == NULL ){printf("dp 메모리할당 실패 \n");return 1;} for(i=0; i
Programming
2011. 8. 6. 01:15