cdor1's lab
Top Chunk 구하기 본문
malloc이 3번 됐을때 주소들의 상황이다.
현재 top chunk는 0x804c0e0에 존재하는데 만약 우리가 0x804c008의 주소를 leak 해낼수 있다면
주소 계산을 통해 top chunk를 구할 수 있다.
a = malloc(0x40u); #1
b = malloc(0x40u); #2
c = malloc(0x40u); #3
일 때
prev_size, size 등 등을 계산해서
1번째 청크 72
2번째 청크 64
3번째 청크 72
0x804C010 + 0xd0(72+64+72) = 0x804c0e0
확실한 주소를 구하려면 32bit 환경에서는 +8을 64비트 환경에서는 +16을 해주어야 한다.
이유는 청크 앞에 붙는 size 플래그와 널 때문이다.
'Security > Pwnable' 카테고리의 다른 글
pwnable 문제 주의할 것 (0) | 2016.11.22 |
---|---|
Boston key party ctf 2016 cookbook (0) | 2016.11.22 |
angr (0) | 2016.11.17 |
BCTF bcloud (0) | 2016.11.17 |
DEFCON22 Quals babyfirst-heap (0) | 2016.11.10 |
Comments