태그: Theory

[How2Heap] Overlapping_Chunks

Overlapping_Chunks.c 이 기법은 glibc에서 tcache옵션이 disabled된 상태에만 작동한다. simple chunks overlapping heap에 chunk 3개를 할당해보자. 3개의 chunk가 여기에 할당됐다: p1=0x603010 p2=0x603110 p3=0x603210 이제 p2 chunk를 free시켜보자 p2 c

[How2Heap] Poison_null_byte

Poison_null_byte.c 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949

[How2Heap] House_of_spirit

House_of_spirit.c house of spirit malloc을 한 번 호출해서 메모리를 설정한다. 이제 fake fastbin 영역을 가리키는 포인터를 overwirte할 것이다. 이 영역(메모리 길이: 80)은 chunk가 2개 있다. 첫번째는 0x7fffffffe338에서 시작하고 두번째는 0x7fffffffe378에서 시작한다. 이 영

[How2Heap] unsafe_unlink

unsafe_unlink.c 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960#include <stdio.h>#include <stdlib.h>#include <string.h&g

[How2Heap] fastbin_dup_into_consolidate

fastbin_dup_into_consolidate.c 12345678910111213141516171819202122#include <stdio.h>#include <stdint.h>#include <stdlib.h>int main() { void* p1 = malloc(0x40); void* p2 = mal

[How2Heap] fastbin_dup_into_stack

fastbin_dup_into_stack.c 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849#include <stdio.h>#include <stdlib.h>int main(){ fprintf(stderr, "ma