Installazioni su Windows

Una delle cose che spesso ci capita di fare su Windows è fare un programma di setup, dovendo crearne uno per la mia applicazione ho iniziato a guardare in giro per vedere se far spendere dei soldi all'azienda in un tool per creare setup e devo dire che i risultati sono stati abbastanza soprendenti.

Perchè ho avuto una bella sorpresa: ci sono tool open source veramente notevoli e la necessità, come c'era un tempo, di usare per forza programmi commerciali come InstallShield si è ridotta di molto (o anche annullata del tutto visto che Microsoft stessa usa un componente Open Source per fare i setup dei suoi programmi di punta).

I tool che ho provato quindi sono due, entrambi Open Source, NullSoft Install, nato dai creatori ri WinAmp e che attualmente vive di vita propria (ed usato, ad esempio, per il setup di Firefox e Wix, il compilatore di file msi rilasciato in Open Source da Microsoft  e con cui sono fatti anche i setup di SQL Server 2005 ed Office 2007 (cfr. per info le pagine relative su Wikipedia: http://en.wikipedia.org/wiki/NSIS e http://en.wikipedia.org/wiki/WiX)

NullSoft Installer: http://nsis.sourceforge.net/Main_Page
E' un tool relativamente semplice che ha dalla sua un pregio enorme: in accoppiata con NIS Edit (http://hmne.sourceforge.net/) ed il suo wizard ha la capacità di generare un setup "semplice" (ovvero di quelli che copiano solo i file) in veramente 3 minuti. Questo suo grande pregio è però anche il suo difetto perchè tante cose non si riescono a fare o comunque comportano la scrittura di DLL. L'altro grande difetto è che genera dei file eseguibili e non dei file Msi per MS Installer. Non mi è piaciuta neppure la complessità necessaria per modificare l'interfaccia grafica del setup anche solo per aggiungere qualche logo personalizzato.

Wix: http://wix.sourceforge.net/
Questo è il tool che ho deciso di utilizzare, sostanzialmente per due motivi, il primo è che genera file Msi (che è un requisito da parte dei nostri clienti), il secondo è che essendo fatto da Microsoft è di una potenza inaudita (ha tutto il necessario per interagire con tutte le feature di un server 2003 come ad esempio creare siti web, application pool e così via). La difficoltà (chiaramente spiegata anche nell'ottimo tutorial che si trova a http://www.tramontana.co.hu/wix/) è che non è assolutamente un tool semplice.

Dopo aver perso circa 3 o 4 ore a lavorare cercando di utilizzare il tool di editing WixEdit (http://wixedit.sourceforge.net/) ed avendo combattuto con il setup ed i template ed avendo ottenuto finalmente un buon risultato solo mettendomi lì a fare il file di configurazione manualmente mi sento di darvi alcuni suggerimenti se deciderete di seguire la strada di Wix:

1) Wix e l'MSI installer in generale non sono un oggetto per i deboli, per coloro che sono abituati ai wizard o per quelli che vogliono fare i setup a colpi di Drag&Drop
2) Fate il tutorial indicato poco sopra come primissima cosa. E' infatti fondamentale, per riuscire a lavorare con Wix, capire la logica ed i concetti che ci stanno dietro. Fatto questo poi diventa possibile utilizzare anche tool di design come WixEdit per creare in modo facile le form del vostro setup, ma se prima non capite la struttura del file Xml e come sono incastrati i vari pezzi diventerete matti
3) Dalla build scaricate ed installate Votive, è il pezzo che contiene tutto, sia i tool di compilazione dei setup sia gli addin per Visual Studio (2003 e 2005) che vi permetteranno di creare e compilare i vostri progetti di setup dentro Visual Studio
4) Vi consiglio di fare tutto il tutorial ed il vostro primo setup utilizzando la versione 2.0 di Wix e di Votive, in primo luogo perchè il tutorial è fatto per la versione 2.0 ed in secondo luogo perchè la documentazione della release 3.0 è abbastanza indietro. Una volta fatta esperienza con la 2.0 passare alla 3.0 sarà molto più facile e le lacune della documentazione diventano meno importanti

Last but not least il consiglio più importante: non tenetevi il setup alla fine del tutto. Se volete un risultato professionale che vada oltre quello che si fa con un Wizard (e nel caso basta ed avanza NSIS) dovete iniziare a pensare al setup molto ma molto prima.

Joost

Vi segnalo questo interessante articolo di Wired su Joost: http://www.wired.com/news/wiredmag/0,72506-0.html?tw=wn_index_1

E' interessante sia per la descrizione di quello che vuole essere Joost sia dal punto di vista tecnico sulla distribuzione dei server.

E ora... chi è che ha un invito per Joost???

 

Sicurezza ed evoluzione dei PC

Quando parliamo di sicurezza e decrittazione delle password spesso e volentieri ci raccontiamo come avendo processori sempre più potenti o tanti PC in rete sia più facile (o diventi più veloce) un attacco brute force e di come, per fortuna, non sia possibile fare attacchi brute force con i processori attuali all'aumentare della dimensione della chiave di cifratura.

Un altro aspetto, parallelo ed interessante, è invece l'evoluzione dello storage, con dimensione nell'ordine del tera oramai disponibili anche su disco singolo a costi tutto sommato limitato e di come questo impatti sugli aspetti di decodifica di una password.

Cosa c'entra? Bhe, c'entra perchè recentemente è stato reso disponibile su Torrent un bel file da 120 Gb che contiene tutti gli hash delle password in formato Lan Manager per un set di caratteri completo da 1 a 7 caratteri di lunghezza. Si trova a http://rtables.blogspot.com/2006/12/hak5-rainbow-table-lm-all-1-7-120gb.html, e con BitTorrent 120 Gb si scaricano anche abbastanza rapidamente (un paio di settimane con un ADSL casalinga?). Tra l'altro (non avendo BT in ufficio, non so se i 120 Gb si possano poi comprimere con una certa efficacia e quindi il file risultante sia più piccolo). Nota anche che questi dizionari di hash erano disponibili (a pagamento) anche prima, ma questo è il primo che è gratis e completo!

Non è interessante tanto per gli aspetti di sicurezza ma per questo aspetto di evoluzione "parallela", se il processore non basta più per un attacco bruteforce spostiamoci sul rendere bruteforce il resto! Non so per voi, ma per me è affascinante.

Se poi vi leggete anche questo articolo http://www.schneier.com/blog/archives/2007/01/choosing_secure.html su come la gente sceglie le password e su come strumenti intelligenti possano aprire parecchie protezione potete anche immaginare come le due cose si possano combinare...

 

Notevole

http://thedailywtf.com/Articles/The_Complicator's_Gloves.aspx

E ricordatevi: "GUANTI".