Pregunta

Entonces, para simplificar mi vida, quiero poder agregar de 1 a 7 caracteres adicionales al final de algunas imágenes jpg que mi programa está procesando*.Estos son rellenos ficticios (rellenos, etc., probablemente todos 0x00) solo para que el tamaño del archivo sea múltiplo de 8 bytes para el cifrado de bloques.

Después de haber probado esto con algunos programas, parece que están bien con los caracteres adicionales, que aparecen después del FF D9 que especifica el final de la imagen. - Entonces parece que el formato del archivo está lo suficientemente bien definido como para que la "corrupción" que estoy agregando al final no debería importar.

Siempre puedo publicar el proceso de los archivos más tarde si es necesario, pero prefiero hacer lo más simple posible, que es dejarlos permanecer (estoy descifrando otros tipos de archivos y no les importará, por lo que tener un caso especial es molesto). ).

Supongo que con toda la charla de esteganografía Hullaballo hace años, alguien tiene alguna aportación aquí...

(procesamiento de cifrado mediante bloques de 8 bytes, no quiero guardar el tamaño del archivo previamente cifrado, así que agregue 0x00 a los datos de entrada y déjelos allí después de decodificarlos)

¿Fue útil?

Solución

No, puedes agregar bits al final de un archivo jpg, sin que quede inservible.El encabezado del archivo jpg indica cómo leerlo, por lo que el programa que lo lee se detendrá al final de los datos jpg.

De hecho, las personas han ocultado archivos zip dentro de archivos jpg agregando los datos zip al final de los datos jpg.Debido a la forma en que están estructurados estos formatos, el archivo resultante es válido en cualquiera de los formatos.

Otros consejos

Puede ..pero los resultados puede ser impredecible.

Aunque hay suficiente información en el formato para indicarle al cliente que ignore los datos adicionales, es probable que no sea un caso que el programador haya probado.

Un programa paranoico podría observar el tamaño, notar la discrepancia y decidir que no procesará su archivo porque claramente no lo comprende completamente.Esto es particularmente probable al leer datos de la web, cuando los bytes aleatorios en un archivo podrían considerarse un riesgo para la seguridad.

Puede incrustar sus datos en la etiqueta XMP dentro de un JPEG (o campos EXIF ​​o IPTC).XMP es XML, por lo que tienes bastante flexibilidad para hacer tus propias cosas personalizadas.

Probablemente no lo sea lo mas simple posible pero poner sus datos aquí mantendrá la integridad del JPEG y no requerirá "postprocesamiento".

Luego, sus datos aparecerán en otro software de imágenes como PhotoShop, lo que puede no ser lo ideal.

Como han dicho otros, usted no tiene control sobre cómo los programas procesan los archivos de imagen y, por lo tanto, algunos programas pueden encontrar las imágenes válidas y otros no.

Sin embargo, aquí hay un problema mayor.A juzgar por su pregunta, estoy deduciendo que está practicando "seguridad a través de la oscuridad". Se considera ampliamente una práctica muy mala.Utilice Google para encontrar una gran cantidad de artículos sobre el tema.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top