티스토리 뷰
malloc 과 free를 잘 알아보기 위해 코드를 짜봤다.
>>heap.c
#include <stdio.h>
int main(){
char *a;
char *b;
char *c;
char *d;
char *e;
a = malloc(20);
b = malloc(20);
c = malloc(20);
printf("%p\n", a);
printf("%p\n", b);
printf("%p\n", c);
free(a);
free(b);
d = malloc(20);
e = malloc(20);
printf("%p\n", d);
printf("%p\n", e);
return 0;
}
a, b, c를 할당해준다.
그러면 a | b | c 이렇게 쌓이겠다.
그런다음 a와 b를 free 한 다음
d와 e를 malloc해주면
e | d | c
first fit 알고리즘에 의해 이렇게 들어간다. d가 제일 낮은 주소에 들어가는 것이 아닌 c 바로 전에 들어간다.
실행 결과이다.
hyomin@ubuntu:~/baobob/heap$ ./heap
0x672010
0x672030
0x672050
0x672030
0x672010
'pwnable > 정리' 카테고리의 다른 글
heap exploit 공부 (0) | 2018.07.25 |
---|---|
heap2.c (0) | 2018.07.25 |
fsb tip(fmtstr_payload) (0) | 2018.07.23 |
objdump 자주 쓰는거, nm (0) | 2018.07.13 |
pwntools ssh 연결 한 다음 process실행 (0) | 2018.07.12 |
Comments
최근에 올라온 글
최근에 달린 댓글
TAG
- tcache
- TLS
- hacking
- glibc
- 해킹
- SQLi
- heap
- pwable
- stack reusing
- overflow
- rt_sigreturn
- FSB
- fastbin
- fsop
- oob
- exit
- shellcoding
- srop
- pwnable
- ebp change
- 본선가고싶다
- fastbindup
- codegate
- pwnable.tw
- HackCTF
- Total
- Today
- Yesterday