как читать код vba из шестнадцатеричного потока, извлеченного из vbaProject.бин?
у меня поврежден Excel vbaproject.bin
извлеченные из .xlam
надстройки. Как я могу читать модули с кодом vba, извлеченным из этого файла bin в виде шестнадцатеричных потоков? Я использую oletools
, подробнее в этой теме:
https://bitbucket.org/decalage/oletools/issues/38/extracted-vba-hex-files-from-vbaprojectbin
1 ответов
мне так и не удалось восстановить код VBA с помощью oletools. Однако у меня был некоторый успех с oledump:
http://blog.didierstevens.com/programs/oledump-py/
Я нашел, что он лучше подходит для работы с поврежденной книгой. Поэтому, если вы хотите попробовать, скачайте oledump.py:
https://github.com/DidierStevens/DidierStevensSuite/raw/master/oledump.py
вам также необходимо установить зависимость модуля "olefile":
C:\temp>pip install olefile
затем откройте книгу с помощью 7zip и извлеките "xl\vbaProject.закром." Вы также можете извлечь каждый модуль, присутствующий в " xl\vbaProject.bin\VBA\", если oledump не может прочитать vbaProject.бункер.
затем выполните эту команду, чтобы отобразить все модули в vbaProject.бин:
C:\temp>python oledump.py --vbadecompresscorrupt C:\temp\vbaProject.bin
и для отображения кода из модуля добавьте-s, а затем номер модуля:
C:\temp>python oledump.py --vbadecompresscorrupt -s 3 C:\temp\vbaProject.bin
при чтении vbaProject.ошибка bin, извлечение целевой модуль с 7zip и попробуйте прочитать его напрямую:
C:\temp>python oledump.py -r -v --vbadecompresscorrupt C:\temp\Module1
C:\temp>python oledump.py -r -v --vbadecompresscorrupt C:\temp\ThisWorkbook
теперь, если на данный момент Вы не видели строку VBA, то код, скорее всего, не подлежит восстановлению.