mercoledì 22 luglio 2015

[RISOLTO] Come rimuovere la protezione del foglio di Excel

Oggi vediamo come rimuovere la protezione del foglio in Excel se non si conosce la password.

Il metodo funziona nella versione Excel 2010 e precedenti del programma, ma non in Excel 2013.
Per ulteriori riferimenti rimando alla sorgente di queste informazioni:
https://uknowit.uwgb.edu/page.php?id=28850


Premere ALT+F11 per andare in Visual Basic. Nella finestra di progetto a sinistra, selezionare la voce VBAProject corrispondente al vostro file. A questo punto premere sul menu Inserisci\Modulo.

Si aprirà uno spazio bianco a destra nel quale immetere il codice per sbloccare il foglio. Senza effettuare modifiche, copiare il codice seguente


Sub PasswordBreaker()
    'Breaks worksheet password protection.
    Dim i As Integer, j As Integer, k As Integer
    Dim l As Integer, m As Integer, n As Integer
    Dim i1 As Integer, i2 As Integer, i3 As Integer
    Dim i4 As Integer, i5 As Integer, i6 As Integer
    On Error Resume Next
    For i = 65 To 66: For j = 65 To 66: For k = 65 To 66
    For l = 65 To 66: For m = 65 To 66: For i1 = 65 To 66
    For i2 = 65 To 66: For i3 = 65 To 66: For i4 = 65 To 66
    For i5 = 65 To 66: For i6 = 65 To 66: For n = 32 To 126
    ActiveSheet.Unprotect Chr(i) & Chr(j) & Chr(k) & Chr(l) & Chr(m) & Chr(i1) & Chr(i2) & Chr(i3) & Chr(i4) & Chr(i5) & Chr(i6) & Chr(n)
    If ActiveSheet.ProtectContents = False Then
        MsgBox "One usable password is " & Chr(i) & Chr(j) & Chr(k) & Chr(l) & Chr(m) & Chr(i1) & Chr(i2) & Chr(i3) & Chr(i4) & Chr(i5) & Chr(i6) & Chr(n)
         Exit Sub
    End If
    Next: Next: Next: Next: Next: Next
    Next: Next: Next: Next: Next: Next
End Sub

A questo punto premere Esegui, oppure il tasto F5 della tastiera. Una finestra di dialogo ci avviserà della password che possiamo usare per sbloccare il foglio. La password andrà inserita ogni per ogni foglio eventualmente bloccato del file.

4 commenti:

  1. ciao, dopo aver aperto visual basic, quando seleziono vbaproject mi richiede nuovamente la password, inoltre non posso inserire un nuovo modulo perchè non è selezionabile, come tutto il resto. come fare? grazie saluti

    RispondiElimina
  2. Ciao, il problema nel tuo caso è che è protetto (anche) il progetto di VBA sottostante.

    Da una rapida occhiata su google, vedo che la soluzione più gettonata è quella di modificare il file con un editor esadecimale, un programma grazie al quale si vanno a riscrivere i singoli byte in corrispondenza della posizione che memorizza la password del progetto di VBA.

    Non ho avuto ancora modo di provare se funziona e su quali versioni di Office lo si può fare, comunque puoi provare a seguire le guide di questi articoli:
    http://www.dragmar.com/public/?p=140
    http://www.iwolm.com/blog/come-craccare-la-password-vba-di-un-progetto-excel/
    http://cicciotuenno.blogspot.it/2011/04/rimuovere-la-password-dai-progetti-vba.html

    Come editor esadecimale ti consiglio XVI32.

    RispondiElimina
  3. Ciao, mi sono accorto che il codice non funziona per sbloccare una password contenente un carattere speciale (nel caso specifico _ ) mentre funziona perfettamente con numeri e maiuscole/minuscole. Avete suggerimenti?
    Grazie

    RispondiElimina
    Risposte
    1. Ciao, purtroppo non ho modo di testare un codice modificato, ma suppongo che la soluzione sia raggiungibile cambiando in qualche modo i numeri di partenza e fine dei vari cicli For...To...Next, giacché il tentativo di rimozione password avviene sulla riga che reca "ActiveSheet.Unprotect Chr(i) & ... & Chr(n)". Quei vari Chr() che ci sono trasformano il valore della variabile ciclata in un carattere alfanumerico specifico, mentre l'operatore "&" unisce i vari caratteri in una stringa unica. In buona sostanza il ciclo testa in modalità brute force tutte le combinazioni possibili finché non trova la password. Va da sé che se i limiti imposti per i cicli escludono i codici che rappresentano (in ASCII immagino) i caratteri speciali, questi non verranno testati e dunque i files protetti da password che li usano non sono sbloccati.

      Elimina

Ciao, se hai domande o semplicemente vuoi farmi sapere che ti è stato utile quest'articolo lascia un commento ;-)

A causa dello spam sono stato costretto ad abilitare la risposta solo per gli utenti loggati con account Google. So che può essere un fastidio per alcuni, ma è l'unica soluzione. Il vantaggio è che riceverai una notifica quando risponderò.