ptmalloc2의 Large bin attack 이해


ptmalloc2의 Large bin attack 이해

미리 알아둘 것 ptmalloc2의 bin 구조 ptmalloc2에서의 malloc()과 heap() glibc 2.23 이하의 환경에서 실습할 수 있을겁니다. 이번에 살펴볼 Large bin attack은 ptmalloc2에서의 free()를 통해 할당 해제된 large bin의 내용을 조작하여 원하는 임의 주소(arbitrary address)에 해당 heap chunk의 절대 메모리 주소를 덮어쓰는 공격입니다. 개인적으로는 뭐 늘 그랬던 것 같기도 하지만... 이해하는데 좀 어려웠습니다. 우선 먼저 large bin이 어떤 구조를 가지고 있는지 이해할 필요가 있습니다. free()된 상태의 large bin 구조는 아래와 같습니다. (아래에서 "워드(word)"라 함은 CPU에서 한 번에 데이터를 처리하는 단위로 32비트 CPU 환경에서는 4바이트(32비트 → DWORD), 64비트 CPU 환경에서는 8바이트(64비트 → QWORD) 라고 함) 1번째 워드: prev_size ...


#C #ptmalloc2 #pwn #pwnable #디버깅 #리눅스 #설명 #시스템 #시스템해킹 #실습 #memory #malloc #large_bin_attack #chunk #Clang #dynamic #free #GDB #glibc #heap #heap_corruption #large_bin #예제

원문링크 : ptmalloc2의 Large bin attack 이해