从复合文档中提取Flash游戏
来源:互联网 发布:新浪博客加js代码 编辑:程序博客网 时间:2024/05/01 12:17
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 {
CHAR chTag[3]; // "FWS"
BYTE byVer[1];
DWORD dwFileSize;
} SWFHDR;
偏移量、流大小的信息至此都已获得,可以做最后的编码工作了,如下。
IStorage *pStgRoot = NULL;
HRESULT hr = StgOpenStorage(L"C://1.xls", NULL,
STGM_READ | STGM_SHARE_DENY_WRITE, 0, 0, &pStgRoot);
IStream *pSwf = NULL;
hr = pStgRoot->OpenStream(L"Ctls", NULL, STGM_READ | STGM_SHARE_EXCLUSIVE,
0, &pSwf);
LARGE_INTEGER pos;
pos.HighPart = 0;
pos.LowPart = 0x18;
pSwf->Seek(pos, STREAM_SEEK_SET, NULL);
SWFHDR hdr;
pSwf->Read(&hdr, sizeof(hdr), NULL);
LPBYTE buf = new BYTE[hdr.dwFileSize];
RtlCopyMemory(buf, &hdr, sizeof(SWFHDR));
pSwf->Read(buf + sizeof(SWFHDR), hdr.dwFileSize - sizeof(SWFHDR), NULL);
HANDLE hFile = CreateFile(_T("C://1.swf"), GENERIC_WRITE, 0, NULL,
CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL);
DWORD dwWritten;
WriteFile(hFile, buf, hdr.dwFileSize, &dwWritten, NULL);
CloseHandle(hFile);
delete [] buf;
----------传说中的分隔线----------
以下给出本篇Blog中的1.xls和1.swf供大家实验或娱乐,有效期一周。
点这里下载XLS文件(提取码178c19e8)
点这里下载SWF文件(提取码a71bbcde)
PS:本来想就此编写一个通用的提取工具,但貌似网上已经有了,所以作罢。
- 从复合文档中提取Flash游戏
- 从Word,Excel中提取Flash
- 从Word、Excel中提取Flash
- 在Word中插入Flash,从Word中提取Flash
- 从Office文档中提取图片
- 从HTML文档中提取链接
- 从Word文档中提取嵌入对象
- Unity3D 从 ipa 中提取游戏资源
- 从Excel中提取Flash文件的方法
- 用Aspose.Words 从Word文档中提取表格数据
- 用Aspose.Words 从Word文档中提取表格数据
- 使用Pytohn从MongoDB中提取文档相关链接学习
- 如何快速地从Word 2010文档中提取图片
- 从WORD和EXCEL提取FLASH
- 从WORD和EXCEL提取FLASH
- Word插件----从数据库中提取表结构,生成字典文档
- 002_026 Python 从OpenOffice.org的文档中提取文本
- 使用 Open XML SDK 2.0 从 Word 2010 文档中提取样式
- ISBN 13位与10位互转函数
- GDB调试精粹及使用实例
- SAP人的好去处.
- Oracle SQL精妙SQL语句讲解
- Tcpdump命令的使用与示例——linux下的网络分析
- 从复合文档中提取Flash游戏
- 页面回传与js调用服务器端事件
- 远程连接SQL Server
- Family Album CD7 对白
- ROLLUP和CUBE
- GPS NEMA 0183协议
- javascript小技巧-500例
- oracle数据库插入单引号
- 满江红