1. Overview & Team
Event: GEMASTIK XIX (Penyisihan Keamanan Siber 2026)
Date: 21 Agustus 2026
Team: POROS La Haula wa la quwwata Illa Billah (FAZer0, Araahi, Phya)
2. Crypto: common-encoding (100 pts)
Challenge Analysis
Given an encoded string constructed from tokens containing combinations of S, O, H, D, W, Z:
SOOHOHHDWOOHOOODWOOHOHHDWOOHOHODWOOHOHHDWOOHHOHHDWOOHOHHDWOOHHHODWOOHOHODWO...
By analyzing frequency distribution and character patterns:
- Characters
SandZmark the start and end of the payload stream. DandWact as delimiter tokens between encoded character blocks.Hrepresents bit0andOrepresents bit1(Inverted Binary).
Python Solver
cipher = "SOOHOHHDWOOHOOODWOOHOHHDWOOHOHODWOOHOHHDWOOHHOHHDWOOHOHHDWOOHHHODWOOHOHODWOOHHOODWOOHOHODWOOHOHHDWOOHOHHDWOOOHHODWOOHOHHDWOOHHHOHDWOOHHOODWOOHHHODWOOHHOODWOOOHHODWOOHOOODWOOHHHOHDWOOHOHODWOOHOHHDWOOHOHODWOOHOHODWOOHOHODWOOHOHHDWOOHOHHDWOOHHOOHDWOOHOHODWOOHHOHDWOOHHOHDWOOHHHODWOOHHOHDWOOHHHODWOOHOHODWOOHHOOHDWOOHOOODWOOHHOODWOOHOOODWOOHOHODWOOHOOHDWOOHHOHDWOOHOOHDWOOHHOHHDWOOHOOHDWOOOHHODWOOHOOODWOOHOHHDWOOHHOHDWOOHHOHHDWOOHOOHDWOOHHOODWOOHOOODWOOHHOHDWOOHOOODWOOOHHODWOOHOOODWOOHHHHDWOOHOOODWOOHOHHDWOOHOOHDWOOHHOOHDWOOHHOHDWOOHHOHHDWOOHOOHDWOOHOOHDWOOHOOHDWOOHHHOODWOOHOOHDWOOHHHODWOOHOOHDWOOHOOODWOOHOHODWOOHHOOHDWOOHOHHDWOOHOHHDWOOHHOODWOOHHHHDWOOHOOHDWOOHHOHODWOOHOOHDWOOHOOODWOOHOOODWOOHHOHHZ"
clean = cipher.strip("SZ")
blocks = [b.replace('W', '') for b in clean.split('D') if b]
result_chars = []
for b in blocks:
inverted_bits = b.replace('H', '0').replace('O', '1')
padded = inverted_bits.zfill(8)
val = int(padded, 2)
if 32 <= val <= 126:
result_chars.append(chr(val))
flag_content = "".join(result_chars).replace(" ", "")
print(f"[+] Recovered Flag: GEMASTIK19{{{flag_content}}}")
ℹ️common-encoding Flag
Challenge Flag
Click to Decrypt3. Reverse Engineering: Dot Matrix (100 pts)
The binary simulates a LED dot matrix display board. Binary analysis using Ghidra reveals memory mapping where pixel raster buffers are stored as row-wise byte bitmasks. De-rasterizing the dynamic frame buffers extracts the ASCII glyph rendering of the flag.