시스템 및 프로그래밍 기본 사항 쉘코드의 동작 원리에 대한 설명에 앞서, 앞으로 이를 이해하는 데 필요한 기본적인 시스템의 메모리 구조 및 어셈블리 명령어, 그리고 프로그램 세부 동작 과정을 차례로 살펴본다. 1. 인텔(Intel) x86 32비트 레지스터 인텔 x86 아키텍쳐에서 제공하는 32비트 레지스터는 크게 범용(General-Purpose) 레지스터, 세그먼트(Segment) 레지스터, 명령어 포인터(Instruction Pointer), 플래그(Flag) 레지스터로 나누어 볼 수 있다. 먼저 범용 레지스터는 일반적인 연산이나 데이터 저장 등의 용도로 사용되는 4개의 일반 레지스터와(EAX,EBX,ECX,EDX), 간접 주소 지정 및 문자열 비교에 사용되는 2개의 인덱스(Index) 레지스터(E..