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
- AWS 보안 아키텍처 분석
- reversing
- AWS 보안 사고 사례 모음
- AWS
- dreamhack
- AWS 아키텍처 분석
- reversing.kr
- programmers
- AWS Active Directory
- AWS 3 Tier Architecture
- network
- 침입 차단 시스템(IPS)
- C
- operating system
- python
- terraform
- AWS 인프라 아키텍처
- AWS 인프라 분석
- AWS 사고 사례 분석
- AWS 침해 사고 사례 분석
- 운영체제
- 드림핵
- IAM Federation
- AWS IAM Role
- 프로그래머스
- AWS 침해사고 사례 분석
- 네트워크
- TryHackMe
- 리버싱
- Amazon S3
Archives
- Today
- Total
lhywk 님의 블로그
[Dreamhack] r-xor-t 본문
문제
이 문제는 사용자에게 문자열 입력을 받아 입력값을 검증하고 플래그를 출력하는 프로그램이 주어집니다.
해당 바이너리를 분석하여 플래그를 찾으세요!
문제 풀이
IDA를 통해 먼저 코드를 분석해 보겠습니다.

해당 코드의 순서는 다음과 같습니다.
1. 값을 입력한다.
2. 입력 문자열이 64자인지 확인한다.
3. 입력값에 13을 더하고 & 0x7F을 한다.
4. 역순으로 바꾼다.
5. 3을 xor 연산한다.
6. 하드코딩된 문자열과 연산 값을 비교한다.
문제를 풀이하기 위한 역연산 순서는 다음과 같습니다.
1. 하드코딩된 문자열에 3을 xor 한다.
2. 역순으로 바꾼다.
3. 13을 빼고 0x7F를 & 한다.
input_data = "C@qpl==Bppl@<=pG<>@l>@Blsp<@l@AArqmGr=B@A>q@@B=GEsmC@ArBmAGlA=@q"
data_array = bytearray([ord(i) for i in input_data])
for i in range(64):
data_array[i] = data_array[i] ^ 3
data_array.reverse()
for i in range(64):
data_array[i] = (data_array[i] - 13) & 0x7F
for i in data_array:
print(chr(i), end='')
페이로드는 다음과 같습니다.
'Reversing > Dreamhack' 카테고리의 다른 글
| [Dreamhack] Recover (0) | 2026.01.18 |
|---|---|
| [Dreamhack] Easy Assembly (0) | 2026.01.10 |
| [Dreamhack] Small Counter (0) | 2025.12.28 |
| [Dreamhack] Check Return Value (0) | 2025.12.26 |
| [Dreamhack] Check Function Argument (0) | 2025.12.26 |