S.l.e!ep.¢%

像打了激速一样,以四倍的速度运转,开心的工作
简单、开放、平等的公司文化;尊重个性、自由与个人价值;
posts - 1098, comments - 335, trackbacks - 0, articles - 1
  C++博客 :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理

写点swf二进制的东西

Posted on 2008-12-17 16:38 S.l.e!ep.¢% 阅读(1340) 评论(0)  编辑 收藏 引用 所属分类: VC

写点swf二进制的东西

最近项目需要研究swf的二进制,小有成果,把一些基础的东西贴出来,帮助大家入门。

首先得到swf的file_format_specification_v9.pdf,这个需要接受adobe公司的协议才可以看具体的google一下吧。
基础工具二进制查看工具,自己随便找个方便的吧,呵呵。

下面进入正题
未压缩swf十六进制原文如下:
46 57 53 09 4F 00 00 00 78 00 05 5F 00 00 0F A0
00 00 0C 01 00 44 11 08 00 00 00 43 02 FF FF FF
BF 00 23 00 00 00 01 00 70 FB 49 97 0D 0C 7D 50
00 01 14 00 00 00 00 01 25 C9 92 0D 21 ED 48 87
65 30 3B 6D E1 D8 B4 00 00 86 06 06 01 00 01 00
00 40 00 00 00

现在一点点的看
46 57 53 09 //FWS未压缩的swf9版本
4F 00 00 00 //文件未压缩时的大小79字节,压缩后的swf,此值不变
78 00 05 5F 00 00 0F A0 00
//9位定义Rectangle长宽,也就是舞台宽高
//0111 1000 0000 0000 0000 0101 0101 1111 0000 0000
//0000 0000 0000 1111 1010 0000 0000 0000
//前5位 01111 ==>15 Nbits表示以后每次读15位
//000 0000 0000 0000 ==> 0 = Xmin
//0101 0101 1111 000 ==> 11000 = Xmax
//0 0000 0000 0000 00==> 0 = Ymin
//00 1111 1010 0000 0==> 8000 = Ymax
00 0C //0x000C ==> 0x0C00 ==> 0x0C (忽略后面) = 12 FrameRate
01 00 //0x0001 ==> 0000 0000 01 = 1 FrameCount
44 11 08 00 00 00 //flash8 or later FileAttributes
//metaInfo
43 02 FF FF FF //0x0243 ==> 0000 0010 01 = 9 SetBackgroundColor && 000011 = 3 背景颜色RGB

舞台中的元件暂不分析,大家自己研究吧,说来话长阿.... file_format_specification_v9.pdf这个有298页,呵呵

最后
40 00 //0x4000 ==>> 0x0040 ==>> 0000 0000 0100 0000 //Tag type = 1 = ShowFrame //length = 0
00 00 //0x0000 0x0000 0000 0000 0000 0000
//Tag type = 0 = end
//length = 0

[日期:2008-01-10 ] | 评论:0 | 作者:chris | 查看:357


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   博问   Chat2DB   管理