从“\x01Ole10Native”或“\x01CompObj”的数据流中提取文件名
时间: 2023-09-17 08:09:53 浏览: 44
在Microsoft Office文档中,嵌入对象的名称信息通常存储在名为“\x01Ole10Native”或“\x01CompObj”的数据流中。下面是使用Python的olefile库提取嵌入对象文件名的示例代码:
```python
import olefile
# 打开OLE类型文件
ole = olefile.OleFileIO('example.docx')
# 获取所有嵌入对象的名称
embeddings = ole.listdir(streams=True, storages=False)
for emb in embeddings:
name = emb[0]
# 判断是否为Embedding类型的嵌入对象
if name.startswith('MBD') or name.startswith('\x01Ole'):
# 读取嵌入对象的数据
data = ole.openstream(name).read()
# 从数据中提取文件名
if name.startswith('\x01Ole'):
# 从"\x01Ole10Native"数据流中提取文件名
filename = olefile.OleNativeStream(data).get_file_name()
elif name.startswith('\x01CompObj'):
# 从"\x01CompObj"数据流中提取文件名
filename = olefile.get_compobj_stream_filename(data)
# 输出文件名
print(filename)
# 关闭OLE文件
ole.close()
```
上述代码使用了Python的olefile库,通过打开OLE类型文件,获取其中所有嵌入对象的名称,并判断是否为Embedding类型的嵌入对象,如果是,则从数据流中提取文件名信息。具体来说,如果嵌入对象的名称以“\x01Ole”开头,则从“\x01Ole10Native”数据流中提取文件名;如果嵌入对象的名称以“\x01CompObj”开头,则从“\x01CompObj”数据流中提取文件名。最后,将提取到的文件名输出到控制台。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)