Fc2-ppv-1864525 -
But let’s assume the real challenge hides it deeper (e.g., the trailing data is just a decoy). We’ll keep digging to illustrate a full methodology. Even though we already located a flag, extracting the raw streams is useful for later analysis.
Using an online Morse decoder (or the morse Python library):
zsteg -a frames/frame_00123.png No obvious LSB payload. The audio track is often used for hidden data. 6.1 Convert audio to WAV ffmpeg -i audio.aac audio.wav 6.2 Spectrogram inspection sonogram -i audio.wav -o spectrogram.png # (or use Audacity → Analyze → Plot Spectrum) The spectrogram shows a faint pattern resembling Morse code near 10 s. 6.3 Extract Morse Export the 8–10 s slice: fc2-ppv-1864525
import re, sys, json, urllib.parse, requests html = open('page.html').read() m = re.search(r'var\s+videoUrl\s*=\s*"([^"]+)"', html) url = urllib.parse.unquote(m.group(1)) print(url) Result (example):
exiftool frames/frame_00123.png | grep -i comment No comment fields. Run zsteg on a few frames (install from Ruby gems or use stegsolve for a quick visual test): But let’s assume the real challenge hides it deeper (e
Use exiftool on a few frames to see if any hidden data was appended:
dd if=fc2_1864525.mp4 of=payload.bin bs=1 skip=124567890 strings payload.bin | grep -i flag # => flagFC2_PPV_1864525_fake Flag: Using an online Morse decoder (or the morse
00000000 66 6c 61 67 7b 46 43 32 5f 50 50 56 5f 31 38 36 |flag 00000010 34 35 32 35 5f 66 61 6b 65 7d 0a 00 00 00 00 00 ......| ...