전체 글
![[Linux Kernel Exploit] Slab Allocator & msg_msg Struct](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2Fu5UK0%2FbtsJSLFDCI0%2FAAAAAAAAAAAAAAAAAAAAAG3TJypG47dwtqJGM7T6wwz1O5Unf9s6KblOqLAhLkKA%2Fimg.png%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1753973999%26allow_ip%3D%26allow_referer%3D%26signature%3DWaos5CzicOm5iHUADy3EEnDkaDQ%253D)
[Linux Kernel Exploit] Slab Allocator & msg_msg Struct
1. 개요리눅스 커널 익스플로잇을 공부하다 보면 힙 스프레이 라는 개념이 등장합니다. 스프레이는 직역하면 무언가를 뿌리는 것 인데요. 익스플로잇 관점으로 다시 해석하면 무언가를 뿌리는데 힙 영역에 객체를 뿌리는 것 입니다. 스프레이가 필요한 이유는 리눅스 커널의 randomized free list 때문인데요. 이번 글에선 힙 스프레이에 자주 사용되는 msg_msg 구조체의 구조에 대해 간략히 알아보도록 하겠습니다. 2. Slab Allocatormsg_msg 구조체에 대해 알아보기에 앞서 리눅스 커널의 할당자(Allocator)에 대해 알아보겠습니다. 현재 리눅스 커널은 Slab Allocator를 사용하며 유저 영역의 힙과는 다르게 동작합니다. 구조를 보면 크게 cache라는 덩어리 안에 slab이 ..
![[pwnable.tw] calc write-up](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2Fsjkgs%2FbtsJEiJj0JS%2FAAAAAAAAAAAAAAAAAAAAAO1lsewT0ciU5ysJ_Vv2J2lERmwV8gBc3WXhZQ78fOil%2Fimg.png%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1753973999%26allow_ip%3D%26allow_referer%3D%26signature%3DrTsmPv9kkNYi%252BnCxCEpaS4foQ4c%253D)
[pwnable.tw] calc write-up
시간 제한이 걸려있는 계산기다.편의를 위해 변수 이름을 바꾸고 구조체를 만들었다.00000000 pool_st struc ; (sizeof=0x194, mappedto_16)00000000 ; XREF: calc/r00000000 pool_idx dd ? ; XREF: calc+7D/r00000004 buf dd 100 dup(?) ; XREF: calc+86/r00000194 pool_st ends00000194메인 함수는 계산기 함수 calc를 호출해준다.int __cdecl main(int argc, const ch..