본문 바로가기

heap4

(HackCTF) 훈폰정음 writeup TL;DR heap challenge, tcache tcache 가 있는 GLIBC 2.27 라이브러리를 사용하는문제다. add table 배열의 index 0~6 에 0x000 ~ 0x400 size 의 chunk 를 할당받아 저장해줄 수 있다. 이미 chunk 가 존재하면 안됨 size 는 size 배열에 저장된다. edit table[index] 에 chunk 가 있으면, size[index] 만큼 수정가능. delete int delete() { int result; // eax int v2; // [rsp+Ch] [rbp-4h] puts("인덱스를 입력하시오:"); result = smooth(); v2 = result; while ( v2 >= 0 && v2 2022. 2. 26.
[Pwnable] Heap chunk 정리 보호되어 있는 글 입니다. 2021. 8. 5.
[Pwnable] (Heap) Heap Feng Shui 정리 ( feat . HackCTF 풍수지리설) Heap Feng Shui, 힙 풍수라고 읽고 Heap 영역에 할당된 Chunk 들의 Layout 을 조작해 exploit 하는 기법입니다. 풍수지리설 (400) 장소를 추가, 삭제, 업데이트 그리고 삭제할 수 있는 프로그램이다. 32bit 바이너리니까 ida32 로 열어보자. main 함수에서 중요 기능은 3부분이다. description 의 size 를 입력받고 add_location 호출 index 를 입력받고 delete_location 호출 index 를 입력받고 update_desc 호출 그리고 cnt 변수가 0x32 가 되면 종료해버린다. add_location v3 은 0x80 만큼 할당받은 곳. s 는 a1 만큼 할당받은 곳이다. 그리고 store[cnt]+4 에 0x7c 만큼 입력받는다.. 2021. 4. 17.
[HackCTF] (Pwnable) Beginner_Heap 풀이 beginner_heap.bin 파일을 받을 수 있다. .bin 이라고 너무 당황하지말고, file beginner_heap.bin 해보면 ELF 파일인 걸 알 수 있다. void FUN_004008a8(void) { undefined4 *puVar1; void *pvVar2; undefined4 *puVar3; long in_FS_OFFSET; char local_1018 [4104]; undefined8 local_10; local_10 = *(undefined8 *)(in_FS_OFFSET + 0x28); puVar1 = (undefined4 *)malloc(0x10); *puVar1 = 1; pvVar2 = malloc(8); *(void **)(puVar1 + 2) = pvVar2; puVar3.. 2020. 6. 24.