heap 관련하여 질문 드립니다.

해당 문제에서 tcache를 채우기 위해 아래와 같은 반복문으로
alloc과 free를 반복해 채우게 되는데요,

for i in range(7):
    cook_cat_food('123', '0')
    feed_cat('0')

위와 같이 작성했을 때 동일한 크기로 alloc을 요청하게 되므로
반복 과정 중에 생성되는 tcache의 free chunk가 재사용되게 되고
tcache가 제대로 채워지지 않아야 될 것 같은데,
재사용하지 않고 새로운 값이 할당되는 이유가 무엇인가요?
도저히 모르겠어서 질문 드립니다..

#pwnable
작성자 정보
답변 1
avatar
keyme
CTF Second Place

그게 이 문제의 핵심 취약점이라고 말할 수 있을 것 같은데요. 여기에 남기기에는 너무 큰 힌트가 될 것 같아서 keyme#0837로 디스코드 주시면 관련한 내용 설명드리겠습니다.

2024.03.22. 10:18
질문에 대한 답을 알고 계신가요?
지식을 나누고 포인트를 획득해보세요.
답변하고 포인트 받기