Dreamhack - pwnable
Linux Memory Layout
세그먼트 리눅스에서는 프로세스의 메모리를 크게 5가지의 세그먼트(Segment)로 구분합니다. 여기서 세그먼트란 적재되는 데이터의 용도별로 메모리의 구획을 나눈 것인데, 크게 코드 세그먼트, 데이터 세그먼트, BSS 세그먼트, 힙 세그먼트, 그리고 스택 세그먼트로 구분합니다. 운영체제가 메모리를 용도별로 나누면, 각 용도에 맞게 적절한 권한을 부여할 수 있다는 장점이 있습니다. 권한은 읽기, 쓰기, 그리고 실행이 존재하며, CPU는 메모리에 대해 권한이 부여된 행위만 할 수 있습니다. 예를 들어, 데이터 세그먼트에는 프로그램이 실행되면서 사용하는 데이터가 적재됩니다. CPU는 이곳의 데이터를 읽을 수 있어야 하며, 따라서 이 영역에는 읽기 권한이 부여됩니다. 반면 이 영역의 데이터는 실행 대상이 아니므로..
2022. 12. 18. 16:03