Espero que hayas oído hablar del neat hack que te permite combinar un archivo JPG y un archivo Zip en un solo archivo y es un archivo válido (o al menos legible) para ambos formatos. Bueno, me di cuenta de que, dado que JPG deja cosas arbitrarias al final, y ZIP al principio, puedes pegar un formato más allí: en el medio. A los efectos de esta pregunta, suponga que los datos intermedios son datos binarios arbitrarios garantizados para no entrar en conflicto con los formatos JPG o ZIP (lo que significa que no contiene el encabezado mágico de zip 0x04034b50). Ilustración:JPG + Archivo Zip Problema de combinación con formato Zip
0xFFD8 <- start jpg data end -> 0xFFD9 ... ARBITRARY BINARY DATA ... 0x04034b50 <- start zip file ... EOF
estoy Catting así:
gato "mss_1600.jpg" filea FILEB filea FILEB filea FILEB filea FILEB filea FILEB filea FILEB filea FILEB filea FILEB filea FILEB filea FILEB filea FILEB filea FILEB filea FILEB "null.bytes" "randomzipfile.zip"> temp.zip
Esto produce un archivo de 6,318 KB. Es no abierto en 7-Zip. Sin embargo, cuando gato uno menos 'doble' (lo que en lugar de 13 FILEA y B, 12):
cat "mss_1600.jpg" filea FILEB filea FILEB filea FILEB filea FILEB filea FILEB filea FILEB filea FILEB filea FILEB filea FILEB filea FILEB filea FILEB filea FILEB "null.bytes" "randomzipfile.zip"> temp.zip
produce un archivo 5996 KB que hace abierta en 7-Zip.
Así que sé que mis datos binarios arbitrarios no tienen el Encabezado del Archivo Zip mágico para arruinarlo. Tengo archivos de referencia del working jpg+data+zip y el non-working jpg+data+zip (salvo porque el navegador cree que son imágenes y añada las extensiones zip por su cuenta).
Quiero saber por qué falla con 13 combinaciones y no con 12. Para obtener puntos de bonificación, tengo que solucionar esto de alguna manera.
Solo quería señalar que esto probablemente sea un problema con el algoritmo de 7Zip, ya que File Roller también logró abrir el ejemplo que no funcionaba. – laginimaineb
Buen truco - A partir de ahora voy a utilizar esta técnica para insertar una imagen de mí mismo en todos mis java .jar's (ejecutable jar-pegs :) – Seth