Post

[Memory] Image 영역?

메모리 분석 유틸리티 중 하나인 VMmap에 대해 알게되어 사용하게 되었습니다. 그런데 제가 아는 것과는 다른 부분이 몇 가지 존재하여 블로그에 정리하게 되었습니다.

[Memory] Image 영역?

메모리 분석 유틸리티 중 하나인 VMmap에 대해 알게되어 사용하게 되었습니다. 그런데 제가 아는 것과는 다른 부분이 몇 가지 존재하여 블로그에 정리하게 되었습니다.

먼저 일반적으로 알려진 메모리 구조는 다음과 같습니다.

주소 ↑

| 영역 이름 | 설명 | | —————————– | —————————————————————————– | | Kernel space | 운영체제가 사용하는 영역. 사용자 프로세스는 접근 불가. | | | Heap | malloc/new로 사용하는 동적 메모리. 보통 위쪽(주소↑)으로 성장. 단편화 가능. | | (Heap과 Stack 사이 빈 공간) | 힙이 확장되거나 스택이 내려오면서 충돌 여지가 있는 공간. | | Stack | 함수 호출 시 스택 프레임이 아래 방향(주소↓)으로 쌓임. 지역변수/리턴주소 저장. | | BSS / Data | BSS: 초기값 0 전역변수, Data: 초기화된 전역변수. | | Text(Code) | 실행 코드 영역. 보통 Read + Execute, Write 불가. |

주소 ↓

하지만 VMMap에서의 구성은 다음과 같았습니다.

여기서 알게 된 점은 Image가 우리가 알고 있던 Code가 저장되는 영역이라는 점입니다. 실제로 더미코드를 아주 많이 추가했을 때 아래와 같은 차이점을 보였습니다.

도움이 되는 유틸리티를 사용할 때, 사용되는 키워드의 차이점을 인지해야 효율적으로 사용할 수 있겠습니다.

This post is licensed under CC BY 4.0 by the author.