일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- 신경망 학습
- c언어
- 활성화함수파이썬
- C알고리즘
- 파이썬
- 보안
- 신경망구현
- 파이썬신경망
- 정보보안
- 항등함수
- 소프트맥스함수
- 알고리즘
- 스트림암호
- 밑바닥부터시작하는딥러닝
- 백준
- 딥러닝파이썬
- BOJ
- C언어알고리즘
- 버퍼오버플로우
- 인공지능
- 신경망파이썬
- 8086CPU레지스터
- FTZlevel10
- C언어 알고리즘
- BOF
- 백준알고리즘
- 머신러닝
- 딥러닝
- 신경망
- 달고나bof
- Today
- Total
목록버퍼오버플로우 (3)
HeeJ's
버퍼(buffer)? 시스템이 연산 작업을 하는데 있어 필요한 데이터를 일시적으로 저장하는데, 여기서 사용되는 그 저장공간 대부분의 프로그램에서는 버퍼를 스택에 생성한다. 스택은 함수 내에서 선언한 지역 변수가 저장되고, 함수가 끝나면 반환된다. buffer overflow는 미리 준비된 버퍼에 버퍼의 크기보다 큰 데이터가 들어갈 때 발생하게 된다. ex) 40바이트의 스택이 있다. 41~44바이트의 데이터가 들어간다면 이전 함수의 base pointer를 수정하게 될 것이다. 45~48바이트의 데이터가 들어간다면 return address가 저장되어있는 공간을 침범할 것이다. 48바이트 이상을 쓰게 된다면 return address를 포함한 그 이전 스택에 저장된 데이터마저 바뀔 것이다. 시스템에게 명..
레지스터? CPU가 프로세스를 실행하기 위해서 프로세스를 CPU에 적재시켜야 한다. 또, 흩어져 있는 명령어 집합과 데이터들을 적절하게 사용하기 위해서 여러 저장공간이 필요하다. cpu가 빨리 읽고 써야하는 데이터들이기 때문에 cpu 내부 메모리를 사용한다. => 레지스터(register) 1. 범용 레지스터(General-Purpose register) 2. 세그먼트 레지스터(segment register) 3. 포인트 레지스터(point register) 4. 플래그 레지스터(Program status and control register) 5. 인덱스 레지스터(Index register) 6. 인스트럭션 포인터(instruction pointer) - 범용 레지스터 논리 연산, 수리 연산에 사용되는..
1. 메모리 구조 8086 Memory Architecture 인텔 8086이란? 인텔사에서 개발한 16비트의 CPU이다. 8086은 20비트의 메모리 주소 버스를 갖고 있어 총 1MB의 물리 메모리를 다룰 수 있다. '세그멘테이션'이라는 방식을 통해 메모리에 접근하도록 되어있다. High address Available Space Kernel Low address 시스템이 초기화되기 시작하면 시스템은 커널을 메모리에 적재시키고 가용 메모리 영역을 확인하게 된다. 운영에 필요한 기본적인 명령어 집합을 커널에서 찾기 때문에 커널은 반드시 본인의 위치에 있어야 한다. 커널은 64kByte 영역에 자리잡지만 이를 확장하여 요즘 운영체제는 더 큰 영역을 사용한다. 운영체제는 하나의 프로세스를 실행시키면 이 프로..