ho mai riusciti a recuperare il codice VBA con oletools. Tuttavia ho avuto un certo successo con oledump:
http://blog.didierstevens.com/programs/oledump-py/
ho trovato più adatto a lavorare con una cartella di lavoro danneggiata. Quindi, se si vuole fare un tentativo, scarica oledump.py:
https://github.com/DidierStevens/DidierStevensSuite/raw/master/oledump.py
È inoltre necessario installare il modulo di dipendenza "olefile":
C:\temp>pip install olefile
Avanti, aprire la cartella di lavoro con 7zip ed estrai "xl \ vbaProject.bin". È anche possibile estrarre ciascun modulo presente in "xl \ vbaProject.bin \ VBA \" se oledump non è in grado di leggere vbaProject.bin.
quindi eseguire questo comando per visualizzare tutti i moduli del vbaProject.bin:
C:\temp>python oledump.py --vbadecompresscorrupt C:\temp\vbaProject.bin
e visualizzare il codice da un modulo, aggiungere -s seguite dal numero del modulo:
C:\temp>python oledump.py --vbadecompresscorrupt -s 3 C:\temp\vbaProject.bin
Se la lettura del vbaProject.bin fallito, estrarre il modulo mirata con 7zip e provare a leggere direttamente:
C:\temp>python oledump.py -r -v --vbadecompresscorrupt C:\temp\Module1
C:\temp>python oledump.py -r -v --vbadecompresscorrupt C:\temp\ThisWorkbook
Ora, se a questo punto non hai visto una riga di VBA, allora il codice è probabilmente irrecuperabile.
fonte
2016-03-18 08:14:59
Questo ha funzionato perfettamente! @florentbr grazie mille! – denfromufa
in realtà uno dei moduli non ha estratto, sebbene notepad.exe mostri del codice tra caratteri casuali. – denfromufa
Probabilmente il modulo è troppo corrotto per essere decompresso e ripristinato. Per maggiori informazioni: http://www.wordarticles.com/Articles/Formats/StreamCompression.php –