대기중
Large Bin Attack 질문
add(0x320) # 0 => smallbin(unsortedbin)
add(0x100) # 1 => no merge
add(0x400) # 2 => largebin
add(0x100) # 3 => no merge
add(0x410) # 4 => largebin(unsortedbin)
add(0x100) # 5 => no merge
  • Large Bin Attack에서 사용될 힙 청크들을 할당한다.
free(0) # unsortedbin -> 0
free(2) # unsortedbin -> 0 -> 2
  • smallbin 크기의 청크와 첫 번째 large bin 크기의 청크를 해제하였다.
  • 그 결과 unsorted bin 에 0번과 2번 청크가 들어갔다.
add(0x100) # unsortedbin -> 0, largebin -> 2
free(4) # unsortedbin -> 0 -> 4, largebin -> 2
  • 0x100만큼 추가 할당이 하여 unsortedbin 에 들어가 있는 0번 청크에서 0x100 크기의 메모리가 할당되고 나머지가 unsorted bin에 남게 된다.

질문

add(0x100)

  • unsortedbin 에 들어가 있던 0 번 청크(0x320 - smallbin) 에서 0x100 크기만 할당하고 나머지 값이 남게되면 unsorted bin, last_remainder 에 저장되는 건가요?
#시스템해킹
작성자 정보
더 깊이 있는 답변이 필요할 때
드림핵 팀과 멘토에게 직접 문의해 보세요!
답변 0