목록System Hacking (12)
Information Security
C언어 프로그램 실행과정 이해하기 CPU가 프로그램을 실행하는 과정 중에 취약점이 발생하기 때문에, 소스코드가 실행 파일로 만들어지는 과정을 알아야 한다. IDE를 사용하지 않고 C언어로 작성된 소스 코드를 직접 컴파일, 어셈블하면서 과정을 파악해볼 것이다. ※ 우리가 이때까지 C언어를 배우면서 사용한 Visual Studio, 자바를 배우면서 사용한 이클립스는 컴파일러가 아니고 IDE(Integrated Development Environment: 통합 개발 환경)이다. IDE는 컴파일러, 편집기, 디버거를 하나로 묶은 소프트웨어이다. 일단 vi 편집기로 Hello World를 출력하는 소스를 작성한다. gcc 명령어로 해당 파일을 컴파일 한다. 명령어 실행 후 아무것도 출력되지 않으면 에러 없이 컴파..
System Hacking - 실습 환경 구성 오늘부터는 대표적인 시스템 취약점인 Buffer Overflow를 이해하기 위한 기초 공부를 할 것이다. 먼저 실습 환경을 구성해야 한다. 이번에는 과거(2000년?)에 사용하던 운영체제인 RedHat 6.2로 실습을 진행할 것이다. https://ko.wikipedia.org/wiki/%EB%A0%88%EB%93%9C%ED%96%87 1. Booting 부팅이 조금 오래걸린다. 기다리다가 부팅이 완료되면 root 계정으로 로그인한다. 2. 실습 도구 -GCC (GNU Compiler Collection) -NASM (Netwired Assembler) -GDB (GNU Debugger) 실습을 진행하기 위해서 필요한 도구는 위의 세가지이다. 이들 중 GCC..