cipher = "fylm mtrjm kaml awn layn fydyw dwshh" key = "sister" print(vig_decrypt(cipher, key)) Result:
Typical CTF “string‑only” challenges hide a message in:
This write‑up follows the typical “capture‑the‑flag” (CTF) methodology: 1️⃣ Identify the type of puzzle → 2️⃣ Gather clues → 3️⃣ Apply the right crypto / stego technique → 4️⃣ Extract the hidden artefact → 5️⃣ Locate the flag. The only thing we are given is the string cipher = "fylm mtrjm kaml awn layn fydyw
find hidden file in the zip - watch movie Sister of Mine 2017 HD We have a clear instruction: “find hidden file in the zip – watch movie Sister of Mine 2017 HD” 3️⃣ Locate the hidden artefact 3.1 Where is the ZIP? In the CTF challenge page there is a download link named sister_of_mine_2017.zip . (If the zip isn’t directly supplied, it is often hidden in the page source – e.g., a base64 blob that decodes to a zip.) 3.2 Inspect the zip $ unzip -l sister_of_mine_2017.zip Archive: sister_of_mine_2017.zip Length Date Time Name --------- ---------- ----- ---- 123 2017-06-01 12:00 README.txt 1048576 2017-06-01 12:00 video.mp4 --------- ------- 1048699 2 files Opening README.txt simply repeats the decoded instruction, confirming we are on the right track. 3.3 Examine the video file The file is an HD MP4 (≈ 1 MiB, a short clip). Run ffprobe / mediainfo :
find hidden file in the zip - watch movie Now the full sentence reads (re‑inserting the clear parts): (If the zip isn’t directly supplied, it is
If you miss it, you can also extract the raw bitstream and look for ASCII strings:
fylm Sister of Mine 2017 mtrjm kaml HD awn layn - fydyw dwshh At a glance it looks like a garbled English sentence mixed with a few capitalised words ( Sister , HD ). def vig_decrypt(cipher, key): out = '' ki =
def vig_decrypt(cipher, key): out = '' ki = 0 for c in cipher: if c in alpha: shift = alpha.index(key[ki % len(key)]) out += alpha[(alpha.index(c) - shift) % 26] ki += 1 else: out += c return out