분류 전체보기
Heap 메모리 구조2 - bins
Indexbinsfast binunsorted binsmall binlarge binlast_remaindertcache bin 💡해당 글에서는 tcachebin를 제외한 fastbin, unsortedbin, smallbin, largebin에 대해서 설명하므로, glibc-2.23 버전을 기준으로 한다. binsBin이라는 구조를 이용하여 해제된 청크를 크기 단위로 관리한다. 이는 메모리 할당 요청시 이전에 사용했던 크기의 chunk가 있다면 신속하게 재할당하기 위함이다. 크기에 따라 4가지 유형으로 나뉜다(glibc-2.26 이후 tcachebins가 추가되어 5가지의 bins). 크기가 클 수록 할당/해제가 느려지고, 크기가 작을 수록 할당/해제가 빠른 bins를 사용한다. fast bin이름 그..
Heap 메모리 구조1 - Chunk 필드와 종류
Index메모리 구조Heap 영역 할당chunk 필드prev_sizesizedatachunk 종류Allocated chunkFreed chunkTop chunk정리 메모리 구조메모리 구조 중에서 heap을 관리하는 구조와 규칙에 대해서 알아보려고 한다.heap은 프로그램이 실행되고 동적으로 메모리를 할당하고 해제하는 영역이다. C언어에서는 malloc 함수를 사용하여 메모리를 할당하고, free 함수를 사용하여 할당된 공간을 해제한다.Heap 영역 할당malloc 함수 호출 전 malloc 함수 호출 후heap 공간이 메모리에 할당된 것을 확인할 수 있다. 프로그램이 시작하면서 만들어 진 것이 아닌, 실행 도중 생겨난 영역으로 동적할당이 된 것이다. chunk 필드malloc_chunk의 구조는 다음과 ..
N2T exe파일로 만들기 (config 숨기기)
N2T(Notion to Tistory) 설치 및 오류 해결방법Index설치 환경Notion에서 Tistory로 자동 업로드 방법N2T 오류(ERROR) 및 해결방법TISTORY의 REDIRECT_URI 경로 지정 오류pip3 install -r requirements.txt 오류 설치 환경OS : windows 11Python : Python 3.11.1 Notion에서 Tistory로 자동 업로드 방법Notion에서 Tistory로 자동 업로드 #8 (N2T)개요드디어 Notion에서 Tistory 옮기는 코드를 정리해서 공개하려고 합니다. 처음 작업을 시작한지가 벌써 1년 반 정도가 지난 것 같네요.https://she11.tistory.com/137 Notion 글을 Tistory에 자동으로 업로..
[Dreamhack] uaf_overwrite - write up
Index문제보호기법 확인uaf_overwrite.c코드 분석전역 변수 선언human_func()robot_func()custom_func()문제 풀이Libc LeakLocal Exploit Issue 익스플로잇 uaf_overwriteDescription Exploit Tech: Use After Free에서 실습하는 문제입니다.https://dreamhack.io/wargame/challenges/357/ 문제보호기법 확인모든 보호 기법이 걸려있다. uaf_overwrite.c// Name: uaf_overwrite.c // Compile: gcc -o uaf_overwrite uaf_overwrite.c #include #include #include #include struct Human { ch..
[Dreamhack] ssp_001 - write up
Index문제보호기법 확인ssp_001.c문제 풀이익스플로잇 ssp_001Description 이 문제는 작동하고 있는 서비스(ssp_001)의 바이너리와 소스코드가 주어집니다. 프로그램의 취약점을 찾고 SSP 방어 기법을 우회하여 익스플로잇해 셸을 획득한 후, "flag" 파일을 읽으세요. "flag" 파일의 내용을 워게임 사이트에 인증하면 점수를 획득할 수 있습니다. 플래그의 형식은 DH{...} 입니다.https://dreamhack.io/wargame/challenges/33/ 문제보호기법 확인NX와 Stack Canary가 적용되어 있다. ssp_001.c#include #include #include #include void alarm_handler() { puts("TIME OUT"); ex..
[Dreamhack] basic_exploitation_003 - write up
Index문제보호기법 확인basic_exploitation_003.c문제 풀이익스플로잇 basic_exploitation_003Description 이 문제는 서버에서 작동하고 있는 서비스(basicexploitation003)의 바이너리와 소스 코드가 주어집니다. 프로그램의 취약점을 찾고 익스플로잇해 셸을 획득한 후, "flag" 파일을 읽으세요. "flag" 파일의 내용을 워게임 사이트에 인증하면 점수를 획득할 수 있습니다. 플래그의 형식은 DH{...} 입니다.https://dreamhack.io/wargame/challenges/5/ 문제보호기법 확인NX bit가 켜져있고, Partial RELRO이므로 GOT overwrite가 가능하다. basic_exploitation_003.c#includ..
[Dreamhack] basic_exploitation_002 - write up
Index문제보호기법 확인basic_exploitation_002.c문제 풀이익스플로잇 basic_exploitation_002Description 이 문제는 서버에서 작동하고 있는 서비스(basicexploitation002)의 바이너리와 소스 코드가 주어집니다. 프로그램의 취약점을 찾고 익스플로잇해 셸을 획득한 후, "flag" 파일을 읽으세요. "flag" 파일의 내용을 워게임 사이트에 인증하면 점수를 획득할 수 있습니다. 플래그의 형식은 DH{...} 입니다.https://dreamhack.io/wargame/challenges/4/문제보호기법 확인NX bit가 켜져있고, Partial RELRO이므로 GOT overwrite가 가능하다. basic_exploitation_002.c#include..
[Dreamhack] rev-basic-9 write up
Index문제문제풀이파이썬 풀이 코드 rev-basic-9Reversing Basic Challenge #9 이 문제는 사용자에게 문자열 입력을 받아 정해진 방법으로 입력값을 검증하여 correct 또는 wrong을 출력하는 프로그램이 주어집니다. 해당 바이너리를 분석하여 correct를 출력하는 입력값을 찾으세요! 획득한 입력값은 DH{} 포맷에 넣어서 인증해주세요. 예시) 입력 값이 AppleBanana일 경우 flag는 DH{AppleBanana} Reference Reverse Engineering Fundamental Roadmaphttps://dreamhack.io/wargame/challenges/23/문제실행 파일(exe)이 주어지고, 실행하면 사용자 입력을 받고 프로그램이 종료된다. 문제..