문제: DreamHack — Collect Me 분류: Reversing 난이도: 🥉 브론즈 4 FLAG:
DH{14d2f0c62de3cf038b52f9f60755af2b}
문제 설명이 할 일을 정확히 알려준다.
이 문제에서 주어지는 프로그램은
func_n()형태의 함수들을 가지고 있습니다.func_0()부터func_927()까지 총 928개 함수가 있습니다. 각 함수는 char형 지역 변수 1개씩을 가지고 있습니다. func_0()부터 func_927()까지 순차적으로 각 지역 변수를 추출하여 문자열을 만드세요.
즉 928개 함수가 각자 글자 하나씩을 품고 있고, 번호 순서대로 모으면 문자열이 된다. 그 문자열 안에서 플래그를 찾으면 된다. 함수를 손으로 928개 열 순 없으니 스크립트로 긁는 게 핵심이다.

문제 개요
| 항목 | 내용 |
|---|---|
| 문제명 | Collect Me |
| 난이도 | 🥉 브론즈 4 |
| 분류 | Reversing (x86-64 ELF) |
| 제공 파일 | collect_me (non-PIE, not stripped) |
| 목표 | 928개 함수의 지역 변수를 모아 플래그 찾기 |
| 핵심 기법 | objdump로 즉시값(immediate) 정적 추출 + 스크립트 조립 |
실행해서 얻는 게 아니라, 디스어셈블 결과를 파싱해 값을 긁어모으는 정적 분석 문제다.
배경 — 즉시값과 정적 추출
이 문제의 각 함수는 mov BYTE PTR [rbp-0x1], 0xXX 한 줄로 지역 변수에 상수 한 바이트를 넣는다. 여기서 는 명령어에 박힌 **즉시값(immediate)**이라, 프로그램을 실행하지 않아도 디스어셈블만 하면 그 값을 그대로 읽을 수 있다.




Comments
댓글
댓글을 남기려면 로그인이 필요해요. (네이버 · 구글 계정)
댓글 불러오는 중…