-
[BlackHat Heap] Free a chunkHack/Pwnable 2016. 11. 30. 01:45
청크를 free() 하는 과정은 public_free함수에 들어가면 초기화 된 모든 debuging hooks가 호출된다.
free() 에 전달된 포인터가 NULL이면 그 루틴은 즉시 리턴되고, 아니면 청크에 대한 내부 포인터가 얻어지며 mmap()을 통해 할당되었는지 확인하고, 맵핑되지 않았으면 루틴을 반환한다.
그렇지 않으면, arena_for_chunk()에 대한 호출을 통해 청크의 arena를 얻는다. arena가 발견된다면, mutex lock을 하고, _int_free()에 대한 호출이 arena에 대한 포인터와 free()에 전달된다.
나머지는 알아서 읽으셔욧...!
'Hack > Pwnable' 카테고리의 다른 글
[BlackHat Heap] GNU libc's double free() protection (0) 2016.11.30 [BlackHat Heap] Traditional double free() exploitation (0) 2016.11.30 [BlackHat Heap] Allocate a block (0) 2016.11.30 [BlackHat Heap] Binning (0) 2016.11.29 [BlackHat Heap] Chunks of memory (0) 2016.11.29