text

    [Dreamhack] Linux Memory Layout 정리

    CPU가 필요한 데이터를 읽고 처리하는데, 연산의 결과를 메모리 다시 적재를 한다. 그래서 CPU의 동작과 메모리 사이의 관련은 크고, 메모리 값의 조작으로 CPU의 잘못된 동작을 유도 할 수 있다. 이 오염된 메모리를 메모리 오염 취약점이라고 한다. (드림핵 커리큘럼에서는 메모리 오염에 관련 취약점을 공부함) 리눅스 프로세스의 메모리 구조 리눅스에서 프로세스는 크게 5가지의 세그먼트(Segment)로 구분한다. 세그먼트 : 적재되는 데이터의 용도별로 메몰의 구획을 나눈 것. 용도별로 나누어, 용도에 맞게 적절한 권한이 부여 되는데, 이 권한은 읽기, 쓰기, 실행이 존재하며, CPU는 이 권한이 부여된 행위만 할 수 있다. 코드(Text) 세그먼트(Code Segment) - 실행 가능한 기계코드가 위치..