본문/내용
1. phase 1
bomb lab의 첫 번째 단계인 phase 1은 기본적인 시스템 프로그래밍의 원리를 이해하고 실제 C언어를 사용해 메모리와 프로세스의 동작 방식을 학습하는 데 초점을 맞춘다. 이 단계에서는 주로 스택과 관련된 버퍼 오버플로우 공격을 실습하게 된다. phase 1의 목표는 간단한 버퍼에 입력된 값을 조작하여 특정 메모리 위치의 데이터에 접근하거나 이를 조작하는 방법을 배우는 것이다. phase 1의 개발 환경은 리눅스 기반 시스템에서 이루어지며, GCC 컴파일러를 사용해 C 프로그램을 작성하고 컴파일하게 된다. 이를 통해 개발자는 다양한 컴퓨터 아키텍처에서 메모리가 어떻게 관리되는지를 이해할 수 있다. 학생들은 주어진 바이너리 프로그램을 분석하면서 메모리의 흐름과 함수 호출, 스택의 구조를 파악하게 된다. 이 과정에서 디버거(gdb)를 활용하여 프로그램의 실행 흐름을 추적하고, 스택 프레임과 지역 변수의 배치를 관찰하는 것이 중요하다. 주어진 프로그램은 사용자로부터 입력을 받아 특정 조건을 만족해야 `success` 메시지를 출력하게 되어 있다. 이를 위해 사용자는 프로그램의 예상 입력을 파악하고, 스택 구조를 이용하여 메모리의 내용을…