8086 메모리 구조 1) 기본적인 메모리 구조 8086 시스템의 기본적인 메모리 구조는 위와 같으며, 시스템이 운영에 필요한 기본적인 명령을 커널에서 찾기 때문에 커널 영역은 반드시 저 위치에 있어야 한다. 32bit 시스템에서는 CPU가 한꺼번에 처리할 수 있
예시로 위의 간단한 프로그램이 실행되었을 때 프로세스가 메모리에 적재된 후 메모리와 레지스터가 어떻게 동작하는지 알아보자.일단 위 C 프로그램을 gcc를 통해 어셈블리 코드로 변경하면 아래와 같이 변환된다.프로그램이 컴파일 되어 실제 메모리 상에 어느 위치에 존재하게
버퍼(Buffer) : 시스템이 연산 작업을 하는데에 있어 필요한 데이터를 일시적으로 저장하는 공간. 대부분의 프로그램에서는 버퍼를 stack에 생성한다. buffer overflow는 생성된 버퍼에 버퍼의 크기보다 큰 데이터가 저장될 때 발생한다. stack에서 버
쉘 코드 만들기 쉘 코드는 바이너리 형태의 기계어 코드로, 쉘 코드를 만들어야 하는 이유는 실행중인 프로세스에 어떠한 동작을 하도록 코드를 넣어 실행 흐름을 조작할 것이므로 실행 가능한 상태의 명령어를 만들어야 하기 때문이다. 기계어에 능통하다면 기계어로 바로 작성하면