在远古的过去(Win7之前),Adobe Flash Player 的 ActiveX插件还可以在PowerPoint中使用。当年有不少PPT中内嵌了Flash 的教案。
在2020的现在,当年的那些PowerPoint里面的Flash已经无法在Office 2016以及更高的版本播放了。更糟糕的是,你想直接导出文件也变得极度困难。
目前网上常见的招数是使用WinHex之类的软件直接硬导出 .ppt
内的文件。该方法虽然在一定程度上可行,但是过于硬核,实际操作难度非常大。
为了解决这个问题,我从另一个角度提取PPT中的Flash文件。
这种方法必须将PowerPoint文件转成 .pptx
格式。原因是 .pptx
格式的本质是一个 .zip
的压缩包,我们可以使用压缩工具解压里面的资源文件。
使用压缩工具打开 .pptx
文件后,可以在 ppt/activeX
文件夹找到PowerPoint中所有的 ActiveX 插件对应的原始的原始文件。其名称类似于 activeX{数字}.bin
。
那如何识别这个 .bin
文件原本是什么文件呢?很简单,该文件后缀为 .xml
的资源配置文件里面就有答案。
1 2
| <?xml version="1.0" encoding="UTF-8" standalone="no"?> <ax:ocx ax:classid="{D27CDB6E-AE6D-11CF-96B8-444553540000}" ax:persistence="persistStorage" r:id="rId1" xmlns:ax="http://schemas.microsoft.com/office/2006/activeX" xmlns:r="http://schemas.openxmlformats.org/officeDocument/2006/relationships"/>
|
上面是一个Flash文件的资源配置文件内容,其中 classid
的值是代表该文件被什么 ActiveX 插件使用。
然后,classid
为 D27CDB6E-AE6D-11CF-96B8-444553540000
时,代表该 .bin
文件内存有的是 Flash 文件(.swf
)。