[Heap] malloc.c 분석(1)
이 포스트에서는 우리가 malloc(), free()함수 호출시 어떤 과정을 통해 메모리가 할당, 해제되는지 살펴 볼 것이다. malloc() 함수 호출 libc_malloc() → 사용하는 Thread에 맞게 Arena 설정 후, int_malloc()함수 호출. int_malloc() → 재사용 가능한 bin을 탐색하여 재할당, 없으면 Top Chunk에서 분리해서 할당. Top Chunk가 요청한 크기보다 작다면 sysmalloc()함수 호출. sysmalloc() → 시스템에 메모리를 요청해서 Top Chunk를 확장하고 대체. 혹은 brk()나 mmap()을 통해 메모리 할당. free() 함수 호출 libc_free() → mmap으로부터 할당된 메모리일 경우, munmap_chunk()함수를..
Pwnable/Heap
2019. 5. 4. 20:50