분류 전체보기 36

[Dreamhack][시스템해킹] note

[문제링크](https://dreamhack.io/wargame/challenges/1346) 문제에는 binary 파일과 dockerfile이 존재한다. 1. 분석이번에도 main함수는 존재하지 않는다. __libc_start_call_main을 통해 call rax로 main 함수에 들어온다.그렇게 얻은 어셈블리를 디컴파일한 결과는 다음과 같다. main() { func_0x4016bd(); while(true) { func_0x401662(); scanf("%d", rbp-0xc); if(*(int*)(rbp-0xc) == 4) { func_0x40127a(); continue; } if..

[Dreamhack][시스템해킹] kidheap

[문제 링크](https://dreamhack.io/wargame/challenges/1887) 문제는 binary 파일과 dockerfile이 존재한다. 1. 분석gdb로 보면 free, puts, printf, read, strtoull, malloc, setvbuf, atoi, exit은 존재한다. main 함수는 존재하지 않으니 pet pals문제처럼 gdb로 __libc_start_call_main에서 찾아 들어갔다.일단 사용자 함수들은 다음과 같다.main() { initialize() puts("** Don't worry! it's just note challenge! **")input: menu() printf("> ") read(0, rbp-0xa, 2) ..

[Dreamhack][시스템해킹] pet pals - 드림핵 서버 익스

일단 이전에 쓴 글이 있으니 링크 남겨두겠다. https://code-learn-ing.tistory.com/37 [Dreamhack][시스템해킹] pet pals[문제 링크](https://dreamhack.io/wargame/challenges/1080) 문제는 dockerfile과 binary파일이 존재한다. 1. 분석gdb로 보면, main함수를 알수가 없다. 따라서, __libc_start_main에 breakpoint를 걸고, 실제 메모리를 얻어 디code-learn-ing.tistory.com 이때, 로컬 파일 및 도커에서는 실행이 된 상태였고, 드림핵 익스만 실패한 상태였다.글 쓰고 왜 안될까 하고 보다가 설마 하고 본 부분이 해결점이었다. 1. 원인 분석일단 안되는 부분을 설명해보겠다.안..

[Dreamhack][시스템해킹] pet pals

[문제 링크](https://dreamhack.io/wargame/challenges/1080) 문제는 dockerfile과 binary파일이 존재한다. 1. 분석gdb로 보면, main함수를 알수가 없다. 따라서, __libc_start_main에 breakpoint를 걸고, 실제 메모리를 얻어 디스어셈블링해야한다.이는 디스어셈블링한후 수동으로 디컴파일 한 결과이다.main() { initialize(); menu(); scanf("%d", [rbp-0x44]); switch([rbp-0x44]) { case 1: func1([rbp-0x40]); break; case 2: func2([rbp-0x40]); break; case 3: func..

[독서 기록] 삼체2: 암흑의 숲

삼체 2 암흑의 숲 책을 읽었다. 1. 책을 읽게 된 계기지금껏 계기를 계속 써왔기에 적고 있지만, 읽은 이유는 간단하다. 삼체 1을 재밌게 읽었고, 그래서 뒷 내용이 궁금했고, 그래서 삼체 2를 읽었다. 우리는 벌레다 라고 끝났고, 앞으로 그 벌레인 인간이란 존재가 어떻게 삼체에 대응하는지가 궁금했다. 이번 편에서 어떻게 그 과정을 풀지가 궁금했다. 2. 간략 줄거리 & 생각정리 줄거리는 역시, 나무위키나 넷플을 보는 게 정확할 거다. 그래서 줄거리보다는 읽으며 각 파트별로 내가 든 생각과 감정 등을 정리하려 한다. 삼체에서 군함이 오고있다. 또, 무인 탐측기도 보냈다. 무인 탐측기는 속도가 더 빠르기에 남은 시간은 더 줄었다. 이에 어떻게 대응할것인가로 나온 것이 면벽자. 타일러, 레이디아즈, 하..

책/소설 2026.08.13

[Dreamhack][시스템 해킹] dreamvm

[문제 링크](https://dreamhack.io/wargame/challenges/93) 문제는 binary 파일 하나만 존재한다. 1. 분석gdb로 보면, 함수는 read_all, write_all.constprop, main이 있는 것을 확인할 수 있다. 또한,0x0000000000400508 _init0x0000000000400530 abort@plt0x0000000000400540 write@plt0x0000000000400550 __stack_chk_fail@plt0x0000000000400560 close@plt0x0000000000400570 read@plt0x0000000000400580 open@plt0x0000000000400590 main0x00000000004007..

[Dreamhack][암호학] 집가고시프다

[문제링크](https://dreamhack.io/wargame/challenges/3021) 문제를 다운로드하여보면 구성은 다음과 같다. 문제를 보니 일반 pwnable이랑 구성이 비슷하다. chall 파일이 있고, flag.txt가 있다. chall.enc를 읽어보면와.... 이거 쉽지 않다. hint.txt를 보면 다음과 같이 쓰여있다."X or going_to_home" 이게 뭘까... 곰곰이 생각해 보니X or going_to_homeXor going_to_homexor "going_to_home"이 된다. 일단 chall.enc를 going_to_home으로 xor 해보겠다.data = open("chall.enc", "rb").read()key = b"going_to_home"key = ..

보안/암호학 2026.07.12

[시스템 해킹][Dreamhack] string

[문제링크](https://dreamhack.io/wargame/challenges/68) 로그인 | Dreamhack dreamhack.io문제는 다음과 같다. 1. 분석일단 c코드를 살펴본다.void input(char *buf) { printf("Input: "); read(0, buf, 255);}void print(char *buf) { warnx(buf);}warnx는 printf와 같이 작동한다고 하는데 buf를 직접 하고 있으니 FSB가 가능할 것 같다. 테스트를 해보자$ ./string1. Input2. Print3. Exit> 1Input: aaaa %p %p %p %p %p %p %p %p1. Input2. Print3. Exit> 2string: aaaa 0xfff46278 0x8..

[독서 기록] 프로젝트 헤일메리

프로젝트 헤일메리 책을 읽었다. 1. 책을 읽게 된 계기 / 책을 읽으며 느낌이 책을 읽게된건 큰 이유가 없었다. 그냥 선임분이 다 읽고, "이거 재밌더라. 너 좋아하겠더라" 해서 그때 읽을 것도 없었기에 그냥 읽었다. 또, 선임분께서 '마션'의 작가라고 해서 혹해서 읽은것도 있다.근데 알고보니, 이 책이 영화로 나온다고 하대? 아싸, 영화 나오기전에 다 읽고 영화보면 되겠다라는 생각으로 읽었던것 같다.그리고,이 책을 다 읽은날: 3월 18일.영화 한국 개봉일: 3월 18일.현재 기록 작성일: 3월 19일매우 기분 좋은 상태로 글을 작성하고 있다. 이 책은, 그레이스의 시점에서, 우주에서의 시점과, 지구에서의 시점을 번갈아가며 이야기를 진행한다. 어찌 보면, 초반, 그레이스의 기억이 아예 없는 상태로 시..

책/소설 2026.03.19

[백준][9374] 감시 카메라

문제는 다음과 같다. 1. 문제 내용 정리- 문제에서는 볼록 다각형이 주어진다. - 각 좌표는 반시계방향으로 주어진다.- 카메라의 위치는 처음 나오는 두 좌표의 중점(첫 선분의 중점)에 위치한다.- 카메라가 볼수 있는 각도는 카메라가 설치된 변의 수직 기준, 좌우로 45도 각도만큼 볼수 있다.- 전체 넓이의 카메라가 볼수 있는 넓이의 비율을 출력하여야한다. 2. 해결 발상1) 카메라의 위치를 (0,0)으로 변경할 수 있도록, 모든 점을 평행이동한다. (모든 좌표에서, 카메라의 위치를 뺀다.)2) 카메라가 위치하는 변의 벡터를 x성분, 그에 수직하는 벡터를 y성분으로 하여 행렬 연산을 진행한다. (그 결과, 첫 변은 x축 위에 존재하며, y>=0의 위치에 크기와 방향만 바뀐 도형이 그려진다.3) 차례로 y..

알고리즘/백준 2026.03.07