Estoy tratando de superar un desafío de esteganografía CTF. He intentado diferentes métodos para mostrar los datos ocultos en el archivo sin suerte. Utilicé JPEGsnoop en la imagen y obtuve esta salida:
*** Decoding SCAN Data ***
OFFSET: 0x0000026F
Scan Decode Mode: Full IDCT (AC + DC)
Scan Data encountered marker 0xFFD9 @ 0x0001DF10.0
*** NOTE: YCC Clipped. MCU=( 15, 10) YCC=( 256, 132, 130) Y Overflow @ Offset 0x0001DF0F.3
*** NOTE: YCC Clipped. MCU=( 15, 10) YCC=( 256, 123, 121) Y Overflow @ Offset 0x0001DF0F.3
*** NOTE: YCC Clipped. MCU=( 16, 10) YCC=( 256, 131, 126) Y Overflow @ Offset 0x0001DF0F.3
*** NOTE: YCC Clipped. MCU=( 16, 10) YCC=( 258, 127, 127) Y Overflow @ Offset 0x0001DF0F.3
*** NOTE: YCC Clipped. MCU=( 16, 10) YCC=( 256, 126, 126) Y Overflow @ Offset 0x0001DF0F.3
*** NOTE: YCC Clipped. MCU=( 16, 10) YCC=( 256, 129, 122) Y Overflow @ Offset 0x0001DF0F.3
*** NOTE: YCC Clipped. MCU=( 16, 10) YCC=( 258, 129, 124) Y Overflow @ Offset 0x0001DF0F.3
*** NOTE: YCC Clipped. MCU=( 16, 10) YCC=( 258, 126, 129) Y Overflow @ Offset 0x0001DF0F.3
*** NOTE: YCC Clipped. MCU=( 17, 10) YCC=( 256, 120, 137) Y Overflow @ Offset 0x0001DF0F.3
*** NOTE: YCC Clipped. MCU=( 17, 10) YCC=( 258, 124, 126) Y Overflow @ Offset 0x0001DF0F.3
Only reported first 10 instances of this message...
Compression stats:
Compression Ratio: 31.12:1
Bits per pixel: 0.77:1
¿Pueden indicar estas notas en un segmento de datos ocultos?
Actualización
La imagen está bien formada. No hay doble FFD9. el archivo termina con FFD9 sin espacio entre el final de los datos y el FFD9. Traté de encontrar los valores de luma (Y) "excedentes" utilizando python:
#!/usr/bin/python
from PIL import Image
def main():
im = Image.open("l0v3m3.jpg")
im = im.convert("YCbCr")
y, cb, cr = im.split()
seq = y.getdata()
for x in seq:
if x > 255:
print x
if __name__ == '__main__':
main()
Pero, como parece, los valores de Y están recortados. Si alguien sabe una forma de obtener el valor Y sin recortar, estaría muy agradecido. btw: aquí está el archivo