https://gee.cs.oswego.edu/dl/html/malloc.html오래된 글이지만 유용한 개념같아 번역하여 정리해둔다.해당 내용은 매우 오래되었으며, malloc의 현재 버전에 대한 세부 정보를 반영하지 않음에 유의 (그래도 ptmalloc의 기본 알고리즘은 dlmalloc과 흡사하게 작동함)Introduction메모리 할당자는 인프라 소프트웨어 엔지니어링에서 흥미로운 case study를 형성한다. 나(Doug Lea)는 1987년에 하나를 작성하기 시작했고, 이 할당자는 malloc(), free()의 구현, realloc()과 몇가지 보조 유틸리티 루틴을 제공한다.할당자는 특정 이름을 받은 적은 없지만, 대부분의 사람들은 이를 Doug Lea’s Malloc 또는 줄여서 dlmallo..
LD_PRELOAD유닉스 계열 운영체제에서 제공하는 환경 변수로, 동적 링커(dynamic linker)에 특정 라이브러리를 강제로 로드하도록 지시하는데에 사용된다.이를 통해, 프로그램 기본 라이브러리 함수 동작을 재정의하여 후킹 등에 사용할 수 있다. How to use?프로그램 실행 시LD_PRELOAD=./your_lib.so ./target_program환경 변수 등록export LD_PRELOAD=./your_lib.so비활성화하려면, unset LD_PRELOAD 명령어를 입력한다.gdb에서 사용pwndbg> set env LD_PRELOAD ./your_lib.sopwntools에서 사용p = process('./target_program', env={'LD_PRELOAD':'./your..
pwnable 공부를 하다보면, 어떤 기법은 glibc ~~ 이상부터 통하지 않는다거나, 어느 기능이 사라졌다거나 하는 내용을 한번쯤은 마주쳤을 텐데 "그래서 그게 우분투 몇 버전이야?" 싶었던 적이 있을 것이다. glibc 버전 뿐만이 아니라 다양한 정보들을 알아보기 쉽게 정리해둔 사이트가 있다. DistroWatchDistrowatch는 리눅스 배포판과 관련된 정보를 제공하는 웹사이트로, 리눅스 및 기타 오픈소스 운영체제(OS)에 관심이 있는 사용자들에게 배포판의 최신 뉴스, 업데이트, 리뷰, 다운로드 링크 등을 제공한다. 다음 링크는 우분투에 관한 정보이다.https://distrowatch.com/table.php?distribution=ubuntu DistroWatch.com: UbuntuRea..
하이퍼바이저란 무엇인가?커널까지는 뭐하는 앤지 대충 알겠는데, 최신 OS에 대해 논하다보면 항상 Hypervisior라는 단어가 빠지지 않는다.하이퍼바이저란 무엇일까?1. Hypervisor하이퍼바이저는 가상화를 구현하기 위해 기반이 되는 기술이고가상화 계층을 구현해주는 소프트웨어를 말한다. 하드웨어 위에서 가상 머신을 생성하고 자원을 할당하고, 요청을 처리해주는 매니저의 역할을 수행한다. 그래서 가상 머신 매니저(Virtual Machine Manager) 또는 가상 머신 모니터(Virutual Machine Monitor, VMM) 라고 불리기도 한다. 그럼 이 하이퍼바이저가 우리가 사용하는 윈도우 아래에서 왜 작동하는가?윈도우는 OS가 하나인데 하이퍼바이저를 두면 뭐가 좋아서? 싶다. 우선 하이퍼..