martedì 4 ottobre 2011

Come rimuovere la password per le Macro VBA da Excel
Pubblicato da Alberto Armida | sabato 28 agosto 2010 | | Etichette: software, sviluppo
Un mio cliente mi contatta, chiedendomi di modificare un Excel utilizzato in azienda composto da alcune paginette più alcune Macro di VBA. Cerco di accedere alle Macro e... sorpresa! Richiesta di password di protezione VBA di Excel!!!

"Poco male" - penso. Contatto il cliente e mi sento rispondere: "Eh no... la password non gliela so dire. Questo foglio è stato fatto da una persona che ora non lavora più per noi. Ma tanto voi informatici ci mettete 10 minuti..." (chissà come mai la gente pensa che noi programmatori abbiamo la bacchetta magica o il dono dell'onniscienza... mah!)

Mi metto quindi alla ricerca di un modo per sproteggere questo dannato file: rivolgo una preghiera a San Google, che mi ritorna una serie di link che rimandano tutti a software a pagamento... no, grazie! Non intendo sborsare un minimo di 39$ per togliere una password!
Analizzando il file ed utilizzando quel poco di documentazione circa il formato XLS che Microsoft ha rilasciato... mi si accende una lampadina!!!

Aprite con il vostro editor esadecimale preferito il documento "vittima" (io utilizzo Notepad++ con il plugin Hex Editor)
Dal menù "Plugins", selezionate "Hex Editor", quindi "View in HEX" (CTRL+ALT+SHIFT+H, se preferite le scorciatoie da tastiera)
Dal menù "Cerca", selezionate "Cerca" e compilate la maschera come indicato in figura (cercate quindi "DPB" in formato Unicode)
Una volta localizzata la stringa, cambiatela in "DPx" (attenzione alle maiuscole e minuscole, è importante)
Salvate e chiudete l'editor
Aprite ora il vostor file Excel e rispondete "Sì" a questo messaggio di errore

Ora premete ALT+F11 per accedere al codice VBA del progetto. Vi verrà mostrato un "Errore imprevisto (40230)", non ve ne preoccupate e cliccate "OK" sino a che non si aprirà la maschera dell'editor VB di Excel
Ora dovreste già vedere gli oggetti VBA che compongono il progetto, ma non abbiamo ancora finito. Dal menù "Strumenti" selezionate "Proprietà di VBA Project", scheda "Protezione" e, se selezionato, deselezionate "Proteggi progetto dalla visualizzazione" ed inserite una nuova password per proteggere il foglio. (di fatto, state forzando Excel a riscrivere correttamente la sezione del file relativa alla protezione).
Confermate premendo "OK", salvate e chiudete il foglio di lavoro.
Ora potete riaprire il foglio e, se lo reputate neccessario, eliminate la password (tornando nella maschera sopra riportata), in modo da non avere più la richiesta quando cercate di visualizzare le proprietà del progetto.

Semplice, efficace... e soprattutto economico! Almeno 39$ risparmiati. :)

PS: ovviamente quando sopra riportato è puramente a fini didattici o per accedere a vostri Excel dei quali avete dimenticato la password o per i quali siete stati esplicitamente autorizzati dal legittimo proprietario.

Nessun commento:

Posta un commento