DreamHack 6

[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..

[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