Si spera che abbiate sentito parlare dello neat hack che consente di combinare un file JPG e un file Zip in un singolo file ed è un file valido (o almeno leggibile) per entrambi i formati. Bene, mi sono reso conto che dal momento che JPG lascia materiale arbitrario alla fine, e ZIP all'inizio, puoi inserire un altro formato in là - nel mezzo. Ai fini di questa domanda, supponiamo che i dati medi siano dati binari arbitrari garantiti per non entrare in conflitto con i formati JPG o ZIP (il che significa che non contiene l'header magico 0x04034b50). Illustrazione:Combinazione di file zip JPG + Zip con formato Zip
0xFFD8 <- start jpg data end -> 0xFFD9 ... ARBITRARY BINARY DATA ... 0x04034b50 <- start zip file ... EOF
sto catting come questo:
gatto "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
Questo produce un file di 6.318 KB. È non aperto a aperto in 7-Zip. Tuttavia, quando ho gatto uno meno 'doppie' (così invece di 13 fileA e B, 12):
gatto "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 file di 5996 KB che fa aperto in 7-Zip.
Quindi so che i miei dati binari arbitrari non hanno la magica intestazione del file zip per rovinarla. Ho i file di riferimento di working jpg+data+zip e non-working jpg+data+zip (salva-perché il browser pensa che siano immagini e aggiungi tu stesso le estensioni zip).
Voglio sapere perché non riesce con 13 combinazioni e non con 12. Per i punti bonus, ho bisogno di aggirare questo in qualche modo.
Volevo solo sottolineare che questo è probabilmente un problema con l'algoritmo di 7Zip, dal momento che File Roller è riuscito ad aprire anche l'esempio non funzionante. – laginimaineb
Trucchetto Niente - D'ora in poi userò questa tecnica per inserire un'immagine di me stesso in tutti i miei java .jar's (pegs-jar eseguibili :) – Seth