In ogni azienda c’è qualcuno che crea file Excel con macro VBA e che vuole proteggere il suo lavoro. Non c’è alcuna documentazione e nessuno conosce la password. Cosa possiamo fare? Possiamo craccare la password!
Excel 2003 gestisce la password VBA semplicemente comparando delle stringhe, così un metodo è semplicemente sostituire la password esistente usando un editor esadecimale (nell’esempio che segue ho usato HxD – Freeware Hex Editor and Disk Editor).
- Fare un backup del file originale
- Creare un nuovo file Excel
- Nell’editor VBA (ALT + F11) impostare una password semplice (per esempio 123)
- Salvare un file ed uscire
- Aprire il file con un editor esadecimale
- Copiare le righe che iniziano con le seguenti stringhe:
CMG=…
DPB=…
GC=…
- Aprire il file da craccare con l’editor esadecimale ed incollare le stringhe precedentemente copiate dal file
- Salvare il file ed uscire
- Adesso, aprire il file Excel del quale si vuole leggere il codice VBA. La password del codice VBA sarà semplicemente 123.
Il metodo descritto ha funzionato molte volte, tuttavia, se si prova ad incollare il numero errato di byte nel file, si perderà il progetto VBA tentando di riaprire il file Excel. Sfortunatamente ci sono casi nei quali (ancora non mi è chiara la causa) la lunghezza totale della stringa “CMG=……..GC=….” nel file è differente da quella originale. In alcuni casi, questa stringa sarà 137 byte, ed in altri sarà 143 byte. La lunghezza di 137 è quella errata e se questo è quanto accade quando create il file con la password ‘123’, semplicemente createne un nuovo, questo dovrebbe arrivare alla lunghezza di 143 byte.