Sunrin

    No-mitigation binary exploit

    1. 코드 읽기 :3 setup 함수는 stdin, stdout, stderr을 초기화시켜주는 함수이다. :12 setup 함수를 실행한다. :14 buf라는 0x100 크기의 변수를 선언한다. :16 "What's your name? : " 을 출력한다. :17 gets() 함수로 buf에 입력을 받는다. :19,20,21 "Hello, (buf 안에 있는 값) !!!" 을 출력한다. :23 "Last greeting : " 을 출력한다. :24 gets() 함수로 buf에 입력을 받는다. [exploit 코드 만들기] :3 "What's your name?: " 까지의 문자열을 가져온다. :7 "AAAAA ... AA\n" 여기서 개행은 어디로 사라질까? -> gets함수에서 null문자로 바꿔준다...

    Webhacking Project - PHP와 MySQL

    보호되어 있는 글입니다.

    Dreamhack - Introduction of Webhacking 정리

    보호되어 있는 글입니다.

    Stack Frame

    I. Stack Frame : RSP와 RBP로 스택을 관리하는 기법 1. RSP와 RBP ① RSP : Stack Point Register - 스택이 움직일 때마다 움직이며 스택의 맨 꼭대기 부분을 가리킨다. - RBP의 반대 방향을 가리킨다. ② RBP : Base Point Register - RSP는 스택이 움직일 때마다 움직이지만 RBP는 고정되어 있으며 움직이지 않는다. 2. 스택 (Stack) - 스택 영역은 함수의 호출과 관련되는 지역변수와 매개변수가 저장되는 영역이다. - 스택 영역은 함수 호출과 함께 할당된다. 함수의 호출이 끝나면 없어진다. - 후입선출(LIFO : Last In First Out) 구조이다. (프링글스 통, 엘리베이터 탑승 등을 생각하면 이해하기 쉽다.) 3. 스택..

    Python 문법

    보호되어 있는 글입니다.

    C Pointer 실습

    생각해 볼 문제 https://modoocode.com/23 씹어먹는 C 언어 - modoocode.com 문제 1 : * 와 & 연산자의 역할이 무엇인지 말해보세요. *는 포인터가 가리키는 주소에 저장된 값을 반환하고 &는 변수의 주소값을 반환한다. 1 2 3 4 5 6 7 8 9 10 11 12 13 #include int main() { int *po; //po라는 정수형 포인터 변수 선언 int num = 11; po = # //po에 num의 주소값을 대입 printf("num 주소 : %d\n",&num); printf("포인터 po : %d\n",po); printf("포인터 po가 가리키는 값 : %d\n",*po); return 0; } Colored by Color Scripte..

    C pointer

    처음 들었을 때 생각났던 것은 발표할 때 사용하는 프레젠테이션 레이저 포인터였다.레이저 포인터는 발표 자료 등을 가리키는 역할을 한다.C 포인터도 무언가를 가리키는 역할을 하지 않을까 싶다.I. 포인터(Pointer)먼저 주소값은 무엇인가?데이터의 주소값은 어느 데이터가 저장된 메모리의 처음 시작하는 주소를 말한다. int형 데이터로 예시를 들어보았다.아래 예시에서는 메모리의 시작하는 주소인 0x11이 데이터의 주소값이 된다. int형 데이터는 4바이트의 크기를 가지기 때문에 0x10~0x13의 메모리를 차지한다.C에서는 주소값을 1바이트 크기의 메모리 공간으로 나누기 때문에4byte는 네 칸으로 표현된다.포인터는 무엇인가?C에서 포인터는 메모리의 주소값을 저장하는 변수이다.포인터는 데이터의 주소값을 가..