로딩
요청 처리 중입니다...

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 # 예제