Pwnable 4

_int_malloc, _int_free 분석 2: _int_malloc 함수 분석

(숫자)는 현재 중괄호가 몇 개나 쒸워져있는지를 나타낸다. 중괄호가 열리는 부분과 닫히는 부분에 각각 하나씩 있다. if (!checked_request2size (bytes, &nb)) { __set_errno (ENOMEM); return NULL; }먼저 요청 크기가 최소, 최대 크기 사이인지 확인한다.if (__glibc_unlikely (av == NULL)) { void *p = sysmalloc (nb, av); if (p != NULL) alloc_perturb (p, bytes); return p; }할당된 힙이 없을 시 새로운 힙을 할당한다. (1)if ((unsigned long) (nb) 요청 크기가 fastbin의 크기보다 작다면..

보안/pwnable 2025.05.27

_int_malloc, _int_free 분석 1: 자료구조

먼저 chunk, bin, arena에 대해서 정리하고 시작하겠다. glibc 2.35 버전을 분석했다. _int_malloc, _int_free 소스코드: https://elixir.bootlin.com/glibc/glibc-2.35/source/malloc/malloc.c#L3769해당 링크의 아래쪽으로 계속가면 _int_free도 있다.chunkmalloc() 함수가 호출됨으로서 할당받는 영역 struct malloc_chunk { INTERNAL_SIZE_T mchunk_prev_size; /* Size of previous chunk (if free). */ INTERNAL_SIZE_T mchunk_size; /* Size in bytes, including overh..

보안/pwnable 2025.05.27