반응형
동적으로 할당되는 힙(heap)의 정확한 크기 구하기.
할당받는 힙의 크기는 요청한 크기와 정확하게 일치할 때도 있지만 조금의 차이가 있을 수도 있다.
요청한 Size와 동일한 크기의 Chunk가 존재한다면 딱 맞게 주겠지만, 아니라면 조금 더 큰 Chunk에서 잘라내어 할당하기도 한다.
Chunk의 크기는 8bytes의 배수이기 때문이다. 따라서 요청한 Heap 크기보다 조금 더 크게 할당 될 수도 있다.
(=-> 때문에, Bins로 관리 시 Size의 나머지 3bit를 | N | M | P |의 Flags로 사용함.)
코딩 시 할당된, 사용 가능한 힙 크기를 정확하게 알아야할 때가 있는데 함수를 통해 구하는 법을 알아보자.
윈도우즈 플랫폼 같은 경우는
_msize(힙주소)
리눅스와 유닉스의 경우에는
malloc_usable_size(힙주소)
함수 호출의 결과로 실제 사용가능한 힙 크기를 구할 수 있다.
반응형
'취약점 분석 > 힙(Heap)' 카테고리의 다른 글
힙의 세부 항목 조회 (0) | 2019.03.12 |
---|---|
힙 블럭 합병(Coalecing), 해제 과정 (0) | 2019.03.12 |
힙 할당 메커니즘 (기초) (0) | 2019.03.09 |
전역플래그 GFlgas 설정 위치 (0) | 2019.03.09 |
힙(Heap) 구조 - Linux (1) | 2018.05.09 |