Quella e vi raccontiamo oggi è la storia di quello che sarebbe potuto essere il leak della Consumer Preview di Windows 8, ma che per via di una sfortunata casualità non è invece successo.
Entrati in possesso del web installer della build 8225, ci siamo da subito resi conto (con amarezza) che la build scaricata era in realtà la vecchia Developer Preview.
Lunedì le cose sono invece cambiate. Il web installer riportava un errore in fase di download.
Armati di Fiddler, un debugger HTTP, ci siamo resi conto che il server stava restituendo un errore 500 riportante il seguente testo:

Client version 6.2.8225.0 is not allowed for this scenario.

Il web service si stava rifiutando di collaborare, perché il nostro web installer era targato 8225.
Abbiamo quindi utilizzato una funzionalità di Fiddler che consente di modificare il contenuto delle richieste HTTP prima che vengano effettivamente spedite, sostituendo tutti i riferimenti al numero 8225 con il numero 8250.

L’operazione era riuscita, e il download era partito. Completato il download, il web installer ci ha riservato una brutta sorpresa: il file non poteva essere estratto. Consultando i file di log, ci siamo resi conto che il problema si era verificato in fase di decifratura del file scaricato.
Il web service, quando ci aveva fornito i parametri di download, ci aveva dato una vuota, e la decifratura falliva.
Aprendo il file scaricato con un editor esadecimale, abbiamo avuto il sospetto che il file non fosse in realtà crittografato. In cima al file è infatti visibile il magic number “MSWIM“, che indica appunto i file in formato .WIM, ed il testo era in chiaro.

Purtroppo né 7zip né ImageX sono riusciti ad estrarre il contenuto effettivo del file. Non ci rimaneva che provare a far eseguire l’estrazione al web setup.
Abbiamo terminato il websetup durante la fase di download, modificato il file XML di configurazione rimuovendo le istruzioni di decifratura, e riaperto il websetup in modo che il download riprendesse da dove era stato interrotto.

Alla fine del download, si è verificato un altro errore, stavolta dovuto alla fallita estrazione del file .WIM.
Eravamo in possesso dell’immagine di Windows 8, non crittografata, ma per qualche motivo non riuscivamo ad estrarla.
Decisi ad andare fino in fondo, abbiamo scaricato la documentazione del formato .WIM dal sito web di Microsoft.

Questo file utilizzava la versione 14 (0x0E) del formato .WIM, invece che la versione 13 (0x0D) usata da Windows 7.
Abbiamo quindi provato a sostituire il numero di versione, sperando che venisse accettato dallo strumento ImageX di Windows 7, ma niente da fare.
Continuando la lettura delle specifiche, abbiamo infine capito la fonte del problema
Il nostro file aveva flag 0x00080000, ovvero un nuovo formato di compressione che Windows 7 e Windows 8 ≤ 8225 non riescono a gestire.

Niente da fare, ci troviamo di fronte un nuovo formato di compressione. Avremmo potuto tirare a indovinare di quale algoritmo si potesse trattare, ed aggiungerne il supporto a 7zip (già in grado di aprire i file .WIM), ma non saremmo arrivati entro la data di rilascio ufficiale.
Si è trattata comunque di una interessante sfida che ci ha posto davanti a molti ostacoli che siamo riusciti (almeno in parte) a superare.