2026-08-21 13:51:31 +07:00
|
|
|
---
|
|
|
|
|
title: "Open Book — Python Source"
|
2026-08-21 14:28:04 +07:00
|
|
|
type: "writeup"
|
|
|
|
|
section: "writeups"
|
|
|
|
|
status: "published"
|
|
|
|
|
author: "asep"
|
|
|
|
|
tags: ["gemastik", "ctf", "warmup", "misc"]
|
|
|
|
|
path: "writeups/gemastik-2026-warmup/ch7-open-book.md"
|
|
|
|
|
created_at: "2026-08-21T07:25:34.522Z"
|
|
|
|
|
updated_at: "2026-08-21T07:25:34.522Z"
|
2026-08-21 13:51:31 +07:00
|
|
|
event: "GEMASTIK 2026 Warmup"
|
2026-08-21 14:28:04 +07:00
|
|
|
challenge: "Open Book — Python Source"
|
2026-08-21 13:51:31 +07:00
|
|
|
category: "misc"
|
|
|
|
|
points: 500
|
|
|
|
|
difficulty: "easy"
|
|
|
|
|
flag: "GEMASTIK19{pyth0n_s0urc3_t3rbuka}"
|
|
|
|
|
---
|
|
|
|
|
# Open Book (500 pts) — Misc / Source
|
|
|
|
|
|
|
|
|
|
**File:** `chall.py`
|
|
|
|
|
|
|
|
|
|
Password yang benar **langsung dicetak dari array `SECRET`** (ASCII codes):
|
|
|
|
|
|
|
|
|
|
```python
|
|
|
|
|
SECRET = [71, 69, 77, 65, 83, 84, 73, 75, 49, 57, 123, 112, 121, 116, 104, 48, 110, 95,
|
|
|
|
|
115, 48, 117, 114, 99, 51, 95, 116, 51, 114, 98, 117, 107, 97, 125]
|
|
|
|
|
|
|
|
|
|
flag = "".join(chr(c) for c in SECRET)
|
|
|
|
|
print(flag)
|
|
|
|
|
# GEMASTIK19{pyth0n_s0urc3_t3rbuka}
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
## Flag
|
|
|
|
|
|
2026-08-21 14:28:04 +07:00
|
|
|
`GEMASTIK19{pyth0n_s0urc3_t3rbuka}`
|