Notice
Recent Posts
Recent Comments
Link
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | |
| 7 | 8 | 9 | 10 | 11 | 12 | 13 |
| 14 | 15 | 16 | 17 | 18 | 19 | 20 |
| 21 | 22 | 23 | 24 | 25 | 26 | 27 |
| 28 | 29 | 30 |
Tags
- 프로그래머스
- IAM Federation
- terraform
- AWS 인프라 분석
- AWS 침해 사고 사례 분석
- programmers
- C
- AWS 3 Tier Architecture
- AWS 인프라 아키텍처
- 리버싱
- AWS IAM Role
- AWS 보안 아키텍처 분석
- TryHackMe
- AWS 침해사고 사례 분석
- AWS 아키텍처 분석
- AWS 보안 사고 사례 모음
- 침입 차단 시스템(IPS)
- python
- network
- AWS Active Directory
- 운영체제
- AWS
- operating system
- Amazon S3
- 드림핵
- reversing
- reversing.kr
- 네트워크
- AWS 사고 사례 분석
- dreamhack
Archives
- Today
- Total
lhywk 님의 블로그
[Dreamhack] Simple Patch Me 본문
문제
이 문제는 실제 시간으로 365일이 흐르면 플래그를 출력하는 프로그램이 주어집니다.
프로그램을 패치하여 플래그를 획득하세요!
문제 풀이
해당 바이너리는 elf입니다.
리눅스 환경에서 실행시켜 보겠습니다.

실행시켜봤는데 플래그를 1년 뒤에 준답니다.
IDA로 분석해보겠습니다.

아까 본 문자열이 있는 곳으로 넘어가 보겠습니다.

x을 눌러 참조하고 있는 주소인 main으로 가보겠습니다.

코드를 보겠습니다.
dword_40404C가 0부터 0x2237까지 반복되면서 플래그 값인 a2가 연산되고 있습니다.
그런데 7 라인에 sleep 함수를 호출하여 3600초를 자서 너무 오래 자고 있습니다.
이를 무력화하면 플래그를 획득할 수 있을 것 같습니다.
pwndbg를 이용하여 풀이해보겠습니다.

main의 주소를 먼저 확인합니다.

b *0x40127B로 중단점을 설정합니다.

r을 눌러 실행시키면 main의 어셈블리가 보입니다.
n을 눌러 쭉 내려가 보겠습니다.

mov edi, 0xe10으로 edi에 값을 넣고
sleep 함수를 호출하고 있습니다.

해당 라인($PC)을 mov edi, 0으로 패치해 줍니다.
그리고 c를 눌러 끝까지 실행해 보겠습니다.

sleep 함수가 0초로 무력화되어 플래그를 획득합니다.
'Reversing > Dreamhack' 카테고리의 다른 글
| [Dreamhack] Check Return Value (0) | 2025.12.26 |
|---|---|
| [Dreamhack] Check Function Argument (0) | 2025.12.26 |
| [Dreamhack] Simple Crack Me 2 (0) | 2025.12.23 |
| [Dreamhack] Simple Crack Me (0) | 2025.12.23 |
| [Dreamhack] rev-basic-8 (0) | 2025.12.23 |