코드 세그먼트(Code Segment) 실행 가능한 기계 코드가 위치하는 영역으로 텍스트 세그먼트 라고도 불린다 프로그램이 동작하려면 코드를 실행할 수 있어야 하므로 이 세그먼트에는 읽기 권한과 실행 권한이 부여된다 쓰기 권한을 제거하는 이유는 공격코드 삽입이 쉬워지기 때문 main 함수가 컴파일 되면 기계 코드로 변환되는데, 이 기계 코드가 코드 세그먼트에 위치한다 데이터 세그먼트(Data Segment) 컴파일 시점에 값이 정해진 전역 변수 및 전역 상수들이 위치한다 CPU가 이 세그먼트의 데이터를 읽을 수 있어야 하므로, 읽기 권한이 부여됨 데이터 세그먼트는 다시 쓰기가 가능한 것과 불가능한 것으로 분류되는데, 전역 변수와 같이 프로그램이 실행되면서 값이 변할 수 있는 데이터 들이 위치하는 세그먼트..
Dreamhack
컴퓨터 구조(Computer Architecture) 폰노이만 구조 중앙처리장치 - 버스 - 메모리 의 구조로 되어 있음 중앙처리장치는 연산, 버스는 데이터 통로, 메모리는 연산할 데이터를 보내는 역할 중앙처리장치에도 레지스터라는 메모리가 있는데, 연산속도가 데이터 교환보다 빠르므로 병목을 방지하고 원활한 연산을 위해 레지스터가 존재함 명령어 집합 구조(Instruction Set Architecture, ISA) x86, ARM 등의 명령어 집합 구조가 존재함 x86-64는 intel의 64비트 아키텍처이다 아키텍처의 64비트, 32비트는 중앙처리장치가 한 번에 처리할 수 있는 데이터의 양 다른말로 WORD 라고 부르는데, 32비트 아키텍처의 경우 가상메모리 공간이 상대적으로 적어서 고성능의 소프트웨어..