Таск достаточно простой, но базовый, поэтому и возникло желание оформить подробный разбор. Надеюсь (и искренне верю), что разбор окажется полезным для тех, кто будет его читать.
Переименовываем презентацию в архив и распаковываем:
В подобных заданиях первым делом стоит проверить медиа-контент презентации на наличие стеганографии или посторонних данных. Идем в каталог ppt/, затем в media/. Файл image2.png выглядит подозрительно: при ненулевом размере он не содержит видимого изображения. Это хороший повод проверить его структуру более детально:
Bash:
Код:
pngcheck -vtp7 image2.png
# Вывод:
zlib warning: different version
(
expected
1.2
.13, using
1.3
.1
)
File: image2.png
(
79414
bytes
)
chunk IHDR at offset 0x0000c, length
13
644
x
771
image,
32
-bit RGB+alpha, non-interlaced
chunk IDAT at offset 0x00025, length
8192
zlib: deflated, 32K window, fast compression
chunk IDAT at offset 0x02031, length
8192
chunk IDAT at offset 0x0403d, length
8192
chunk IDAT at offset 0x06049, length
8192
chunk IDAT at offset 0x08055, length
8192
chunk IDAT at offset 0x0a061, length
8192
chunk IDAT at offset 0x0c06d, length
8192
chunk IDAT at offset 0x0e079, length
8192
chunk IDAT at offset 0x10085, length
8192
chunk IDAT at offset 0x12091, length
4714
chunk IEND at offset 0x13307, length
0
additional data after IEND chunk
ERRORS DETECTED
in
ppt/media/image2.png
Ключевой момент – после чанка IEND лежат какие-то лишние данные. В нормальной PNG такого быть не должно. Открываем картинку в hex-редакторе и смотрим, что там.
Это whitespace language. Становится понятна логика автора: белая (визуально пустая) картинка – это прямой намек на кодирование через пробелы.
Аккуратно вырезаем whitespace-хвост и скармливаем его любому удобному декодеру whitespace language, например, этому.