`
ijavagos
  • 浏览: 1229287 次
  • 性别: Icon_minigender_2
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

从复合文档中提取Flash游戏

阅读更多
http://www.titilima.cn/readblog.php?id=141

校友juhong发过来一个很有意思的Flash游戏,美中不足的是这个Flash是内嵌于一个Excel文档中的。于是便加以分析并将其提取出来,以下为简要过程记录。

首先,用Visual Studio自带的工具DocFile Viewer将这个xls文档打开,查看其复合文档结构。

其中流Ctls就是我们要找的swf文件流,那么查看其二进制数据。

在偏移量0x18处发现SWF标志,并根据网上查得的SWF文件头定义以下结构:

typedefstruct_tagSwfHdr{
CHARchTag[3];//"FWS"
BYTEbyVer[1];
DWORDdwFileSize;
}SWFHDR;

偏移量、流大小的信息至此都已获得,可以做最后的编码工作了,如下。

IStorage*pStgRoot=NULL;
HRESULThr=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_INTEGERpos;
pos.HighPart=0;
pos.LowPart=0x18;
pSwf->Seek(pos,STREAM_SEEK_SET,NULL);

SWFHDRhdr;
pSwf->Read(&hdr,sizeof(hdr),NULL);

LPBYTEbuf=newBYTE[hdr.dwFileSize];
RtlCopyMemory(buf,&hdr,sizeof(SWFHDR));
pSwf->Read(buf+sizeof(SWFHDR),hdr.dwFileSize-sizeof(SWFHDR),NULL);

HANDLEhFile=CreateFile(_T("C:\\1.swf"),GENERIC_WRITE,0,NULL,
CREATE_ALWAYS,FILE_ATTRIBUTE_NORMAL,NULL);
DWORDdwWritten;
WriteFile(hFile,buf,hdr.dwFileSize,&dwWritten,NULL);
CloseHandle(hFile);

delete[]buf;

----------传说中的分隔线----------

以下给出本篇Blog中的1.xls和1.swf供大家实验或娱乐,有效期一周。

点这里下载XLS文件(提取码178c19e8)

点这里下载SWF文件(提取码a71bbcde)

PS:本来想就此编写一个通用的提取工具,但貌似网上已经有了,所以作罢。

分享到:
评论

相关推荐

    PPT文件Flash提取器

    2. 在程序界面中,通过“浏览”按钮选择需要提取Flash的PPT文件。 3. 确认选择无误后,点击“开始提取”按钮,软件将开始处理文件。 4. 提取完成后,SWF文件会保存在指定的目录下,通常与原PPT文件在同一目录。 5. ...

    Ueditor集成Word导入(富文本编辑器).zip

    1. **安装Ueditor**:首先,你需要从Ueditor官方网站下载最新版本的编辑器源码,并按照官方文档中的指引进行安装配置,确保编辑器能在你的项目中正常运行。 2. **解析Word文档**:Word文档通常以.doc或.docx格式...

    Adobe IndesignCS5.5 教程-中文

    - **使用导入图形中的颜色**:提取导入图形中的颜色并应用到文档中。 #### 十六、陷印颜色 - **陷印文档和书籍**:为文档或书籍添加陷印效果,以确保印刷时颜色边缘平滑过渡。 - **陷印预设**:使用预设的陷印设置...

    基于情报内生的高级威胁检测实践.pdf

    为了有效应对这些攻击,需要依靠深度文件解析检测引擎和自主静态威胁识别技术,这些技术能够对文件病毒、漏洞特征进行精准识别,并且能够处理复合文档类样本中的有价值数据。 4. 现实的APT检测案例: 现实中的APT...

    amlogic8613开发指南

    尽管文档片段看起来较为杂乱无章且包含大量重复内容,但通过仔细分析,我们可以从中提取出一些关键知识点。 ### Amlogic 8613 芯片概述 Amlogic 8613是一款用于多媒体应用的高性能处理器,适用于诸如电视盒、...

    Davinci-DM6446实验指导书

    - **复合视频端子**:用于输出复合视频信号。 **5. 光盘文档结构说明** - 包含了虚拟机镜像及以下文件夹: - **DM6446 U-boot及内核烧写文件**:用于烧写U-boot和内核的文件。 - **u-boot-1.1.4.tar.gz**:U-...

    基于STM32的农业大棚环境数据采集系统.pdf

    文档中提及的DHT11是一款已校准的温湿度复合传感器,适用于农业大棚环境监测。它具有抗干扰能力强、工作时间持久和体积小等特点,能够与单片机进行数据传输,并通过100nF的去耦电容连接到电源引脚。光照强度传感器GY...

    奥鹏作业多媒体计算机技术在线作业2-0003.docx

    【知识点1】多媒体计算机关键技术 多媒体计算机技术的关键技术包括视频音频信号的获取、多媒体数据压缩...在Flash中制作小球沿弧线运动的动画,需要先创建图形元件,然后使用关键帧和补间动画来定义小球的运动路径。

    s-gk100-v1.1(7821l)7821原理图

    - **MSB1220 OFDM demodulator**:OFDM解调器,用于从接收到的信号中提取数据。 - **IF AGC**:中间频率自动增益控制,确保信号质量稳定。 - **I2C**:用于芯片间通信的双向二线制串行总线系统。 - **TV RCA VCR ...

    桃源网络硬盘 5.8.zip

    3、超强易用性、可用性:支持B/S(计算机或手机浏览器/服务器)加C/S(服务器/客户端)复合模式提供类windows资源管理器操作,会用鼠标即可应用无需培训。支持微软系统平台,易于部署、安装和运维,保证系统可用性。...

    CAM350教程培训.pdf

    包含了一系列高级工具,如CAP Editor、Draw-to-Flash、Netlist Extract、Clear Silkscreen、Pad Removal等,用于处理电路板的各个方面,如网络列表提取、丝印清除、焊盘移除等。DRC(Design Rule Check)和DRC ...

Global site tag (gtag.js) - Google Analytics