: 시스템 해킹으로 /bin/sh (shell) 을 탈취하여 작업을 수행하는 것
SHELL 획득이 중요한 이유?
: 쉘은 사용자와 커널간의 인터페이스 역할을 하여
다양한 명령어를 통해 커널과 대화를 할 수 있게 도와준다(명령어 해석기)
이때 쉘을 통해 /etc/passwd 파일이나 /etc/shadow(사용자 pw 해시값이 저장된 파일)을 가져올 수 있다


리눅스의 메모리 구조에는 아래의 5가지 세그먼트가 존재한다.
: 함수가 호출될 때, 그 함수만의 스택 공간을 구분하기 위해서 생기는 공간

: x86(32bit Architecture)에서 사용하는 함수 호출 규약
void caller(){
callee(1,2); //callee의 인자로 1,2가 전달됨 -> 2부터 push!
}
Cdel함수 호출 처리 순서
1. Caller가 전달할 argument를 stack에 push
2. calle prolog
3. callee epilog
4. caller가 call과정에서 사용한 stack정리 (callee가 아닌 caller가 인자를 정리한다)
5. 함수 반환 값은 eax로 전달

: x64(64bit Architecture)에서 사용하는 함수 호출 규약
