Search for a command to run...
A mystery beneath the powder... Under this sea of whiteness, a secret patiently waits to be uncovered. Invisible to the naked eye, it will reveal itself only to those who know how to look differently. Sometimes, magic hides in the details.
Don't try to open the image "as is", it may consume a large amount of RAM memory and crash your system. This challenge is intended to be solved programmatically. We hope you enjoy it.
ZIP password: I_Wont_Crash_My_PC
We're given a password protected ZIP file containing ho_ho_snooow.tiff.
First, we extract the ZIP with the provided password:
7z x -p"I_Wont_Crash_My_PC" white_as_snow.zip
Checking the image properties:
tiffinfo ho_ho_snooow.tiff
Image Width: 100000 Image Length: 100000
Bits/Sample: 8
Compression Scheme: JPEG
Photometric Interpretation: RGB color
The image is 100,000 x 100,000 pixels, that's why the challenge warns about RAM usage. The TIFF uses a pyramid structure with multiple resolution levels for efficient access.
The hints "white as snow" and "invisible to the naked eye" suggest there's something hidden in the white pixels. We need to find pixels that aren't pure white (255, 255, 255).
Using python with tifffile and zarr for memory-efficient tile based reading:
import numpy as np
import tifffile
import zarr
from PIL import Image
# Open with zarr
store = tifffile.imread("ho_ho_snooow.tiff", aszarr=True)
z = zarr.open(store, mode='r')
# Use a lower resolution pyramid level for speed
img = z['4'] # Smallest level
data = np.array(img)
# Find non white pixels
not_white_mask = np.any(data != 255, axis=2)
ys, xs = np.where(not_white_mask)
# Extract and visualize the hidden region
min_x, max_x = xs.min(), xs.max()
min_y, max_y = ys.min(), ys.max()
region = data[min_y:max_y+1, min_x:max_x+1]
# make non-white pixels black, white stays white
enhanced = np.where(not_white_mask[min_y:max_y+1, min_x:max_x+1, np.newaxis], 0, 255)
Image.fromarray(enhanced.astype(np.uint8).repeat(3, axis=2)).save("hidden_image.png")
This reveals a QR code hidden in the white image.
Scanning the QR code gives us a base64 string:
VWsxN1NEQmZTREJmU0RCZlVWSmZRekJrTTE4eGJsOVVhRE5mVTI0d2QzMD0=
Decoding it gives another base64 string, then the flag:
echo "VWsxN1NEQmZTREJmU0RCZlVWSmZRekJrTTE4eGJsOVVhRE5mVTI0d2QzMD0=" | base64 -d
# Uk17SDBfSDBfSDBfUVJfQzBkM18xbl9UaDNfU24wd30=
echo "Uk17SDBfSDBfSDBfUVJfQzBkM18xbl9UaDNfU24wd30=" | base64 -d
# RM{H0_H0_H0_QR_C0d3_1n_Th3_Sn0w}