如何从 vbaProject.bin 中提取的十六进制流中读取 vba 代码?
how to read vba code from hex stream extracted from vbaProject.bin?
我从 .xlam
加载项中提取了一个损坏的 Excel vbaproject.bin
。如何读取从这个 bin 文件中提取的带有 vba 代码的模块作为 HEX 流?我正在使用 oletools
,此线程中有更多详细信息:
https://bitbucket.org/decalage/oletools/issues/38/extracted-vba-hex-files-from-vbaprojectbin
我从未成功地使用 oletools 恢复 VBA 代码。但是我在 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.bin"。
如果 oledump 无法读取 vbaProject.bin.
,您还可以提取 "xl\vbaProject.bin\VBA\" 中存在的每个模块
然后执行这条命令显示vbaProject.bin中的所有模块:
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,那么代码很可能无法恢复。
我从 .xlam
加载项中提取了一个损坏的 Excel vbaproject.bin
。如何读取从这个 bin 文件中提取的带有 vba 代码的模块作为 HEX 流?我正在使用 oletools
,此线程中有更多详细信息:
https://bitbucket.org/decalage/oletools/issues/38/extracted-vba-hex-files-from-vbaprojectbin
我从未成功地使用 oletools 恢复 VBA 代码。但是我在 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.bin"。 如果 oledump 无法读取 vbaProject.bin.
,您还可以提取 "xl\vbaProject.bin\VBA\" 中存在的每个模块然后执行这条命令显示vbaProject.bin中的所有模块:
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,那么代码很可能无法恢复。