2016-03-15 47 views

risposta

6

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.

+0

Questo ha funzionato perfettamente! @florentbr grazie mille! – denfromufa

+0

in realtà uno dei moduli non ha estratto, sebbene notepad.exe mostri del codice tra caratteri casuali. – denfromufa

+1

Probabilmente il modulo è troppo corrotto per essere decompresso e ripristinato. Per maggiori informazioni: http://www.wordarticles.com/Articles/Formats/StreamCompression.php –