본문 바로가기

취약점 분석/힙(Heap)

실질적으로 할당된 힙 크기 구하기

반응형

동적으로 할당되는 힙(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