Tcache Poisoning 원가젯 중간에 왜 "D"*8을 넣는건가요?

alloc(0x40, p64(fh))
alloc(0x40, p64(og))
로 하면 익스플로잇이 안됩니다..
alloc(0x40, p64(fh))
alloc(0x40, "D"*8)
alloc(0x40, p64(og))
를 해야 하는데 중간에 왜 "D"*8을 넣는건가요?
free hook에 저장된 주소를 바로 호출하는게 아닌건가요?

#pwnable
작성자 정보
답변 1
avatar
Rasser
워게임: 20

아마 fh가 free_hook이고 og가 one_gadget인거 같은데, 중간에 한번더 allocate하는 이유는 할당되는 순서와 bp걸어서 hook이 무엇으로 덮이는지를 보시면 이해하실수 있습니다.

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