http://www.titilima.cn/readblog.php?id=141
校友juhong发过来一个很有意思的Flash游戏,美中不足的是这个Flash是内嵌于一个Excel文档中的。于是便加以分析并将其提取出来,以下为简要过程记录。
首先,用Visual Studio自带的工具DocFile Viewer将这个xls文档打开,查看其复合文档结构。
其中流Ctls就是我们要找的swf文件流,那么查看其二进制数据。
在偏移量0x18处发现SWF标志,并根据网上查得的SWF文件头定义以下结构:
typedef struct _tagSwfHdr { |
偏移量、流大小的信息至此都已获得,可以做最后的编码工作了,如下。
IStorage *pStgRoot = NULL; |
----------传说中的分隔线----------
以下给出本篇Blog中的1.xls和1.swf供大家实验或娱乐,有效期一周。
点这里下载XLS文件(提取码178c19e8)
点这里下载SWF文件(提取码a71bbcde)
PS:本来想就此编写一个通用的提取工具,但貌似网上已经有了,所以作罢。