有一个关于SWF的问题。这里我一直想得到解决。希望高手进来指点一下。谢谢!

时间:2021-06-18 16:13:22
目前只能给100分,级别不够。

希望大家先帮帮我吧。

最近我在研究SWF文件结构。当文件头为CWS即:43 57 53 
在文件内容中很多地方都加过密了。
没有加密的文件结构,网上都有介绍。
想学习的朋友看这里:http://www.qqread.com/html/m21629102172_1.htm

通过这篇文章我学到了基本的SWF文件结构。
不过现在加密了,我想从内容中得到SWF文件的大小,却是加个密的。
本人对加密知识了解有限,请问有没有相关的SWF文件加密的相关资料。

我在本地建了一个SWF文件。用16进制编写器,分析了。看下面我的分析
我的swf文件的16进制编码如下:
43 57 53 07 76 00 00 00 78 9C AB 60 60 8D 67 60
E0 5F C0 C0 C0 C3 C8 E0 CC F4 FF .. .. .. .. ..
.....
.....(从FF开始到01为数据区,包括FF和01)
.....
.....
................................ 01 B7 D1 12 8A




6 个解决方案

#1


swf文件结构分析

下面以一个结构为例,我们来解析一下。
注:加个密的以++来表示

43 57 53    // swf头文件信息 3字节 CWS加密格式. //求解密资料?
07          // swf版本号     1字节
38 01 00 00 // 文件长度      4字节  // ++ 计算是反过来算低位在前
78          // 影片宽高数据控制码. -> 控制码对应值看下表.
            // 这里的78对应下面550*400
9C AB 60 60 8D 67 60 E0 //影片的宽度与高度数据存放区 ++
                        // 所占字节数由控制码决定
                        // 通过78查到的应该是:
                        //0 0 0 5 5 F 0 0 0 0 0 F A 0 0 0 被加密了。
5F          // 一个字节,作用不详.被加密了,没加应该是 00 ++
C0          // 影片的放影速度 被加密了 没加应该是 0C =12帧/秒。++
C0 C0          // 被加密了,影片只有一帧. 计算是反过来算低位在前 ++

C3          // 作用不详. ++
C8          // 作用不详. ++

E0          // 背景色中红色值 ++
CC          // 背景色中绿色值 ++
F4          // 背景色中蓝色值 ++

FF...01     // 影片数据区 ++ 

B7 D1 12 8A // 文件结束符。正常是文件的最后四个字节为40 00 00 00 ++

#2


在这里,我们应该知道他的加密算法,把他反推过来。所有的加密单元,有可能是
相同的算法,也有可能是不相同的算法。
 

首先,我们最主要是要了解到文件长度是怎么样加密的。这点很重要。
还有就是影片数据区是怎么加密的。

这样做的目的就是为了,在第一帧中插入我们的AS脚本内容进去。
当插入内容的时候,文件大小就改变了。所以要得到他的加密算法。反推过来.

-----------------------------------------------------------------
下表中将控制码所在的字节分为两部分(高四位和低四位)。高低位不同的组合决定了数据区占用字节数以及不同的高度算法。

  相应的控制码后的蓝色条表示数据区所占用的字节。5星代表有效数据(注意每个5星只占半个字节),其中前面几个连续的5星对应的数据记录了高度值,后面几个连续的5星 对应的数据记录了宽度值。

  将连续的5 星所在位置的数(十六进制)组合起来,得到四位或六位的十六进制数,将此数转换成十进制数,白色 5星得到的数除以10就是影片宽度数值,红色5 星得到的数除以40就是影片高度数值。

  我对每一种控制码都给出一个具体例子,请对比文件中相应的字节和实际的宽度和高度值。

#3


控制码对应表 ( 一般就是这几种)
======================================================
控制码 0 1 2 3 4 5 6 7 8 宽×高 
50 ****   ****                   18×18 
0 0 B 4 0 0 0 B 4 0                 
58   ****   ****                 36×18 
0 0 5 A 0 0 0 0 B 4 0 0             
60   ****     ****               100×48 
0 0 3 E 8 0 0 0 1 E 0 0             
68     ****     ****             160×100 
0 0 1 9 0 0 0 0 0 3 E 8 0 0         
70     ****       ****           400×320 
0 0 0 F A 0 0 0 0 0 C 8 0 0         
78       ****       ****         550×400 
0 0 0 5 5 F 0 0 0 0 0 F A 0 0 0     
80       ****         ****       1600×1200 
0 0 0 3 E 8 0 0 0 0 0 2 E E 0 0     
88     ******        ****     2880×2880 
0 0 0 1 C 2 0 0 0 0 0 0 7 0 8 0 0 0 

#4


太尖端了...帮你up

#5


:0

#6


好东西要顶

#1


swf文件结构分析

下面以一个结构为例,我们来解析一下。
注:加个密的以++来表示

43 57 53    // swf头文件信息 3字节 CWS加密格式. //求解密资料?
07          // swf版本号     1字节
38 01 00 00 // 文件长度      4字节  // ++ 计算是反过来算低位在前
78          // 影片宽高数据控制码. -> 控制码对应值看下表.
            // 这里的78对应下面550*400
9C AB 60 60 8D 67 60 E0 //影片的宽度与高度数据存放区 ++
                        // 所占字节数由控制码决定
                        // 通过78查到的应该是:
                        //0 0 0 5 5 F 0 0 0 0 0 F A 0 0 0 被加密了。
5F          // 一个字节,作用不详.被加密了,没加应该是 00 ++
C0          // 影片的放影速度 被加密了 没加应该是 0C =12帧/秒。++
C0 C0          // 被加密了,影片只有一帧. 计算是反过来算低位在前 ++

C3          // 作用不详. ++
C8          // 作用不详. ++

E0          // 背景色中红色值 ++
CC          // 背景色中绿色值 ++
F4          // 背景色中蓝色值 ++

FF...01     // 影片数据区 ++ 

B7 D1 12 8A // 文件结束符。正常是文件的最后四个字节为40 00 00 00 ++

#2


在这里,我们应该知道他的加密算法,把他反推过来。所有的加密单元,有可能是
相同的算法,也有可能是不相同的算法。
 

首先,我们最主要是要了解到文件长度是怎么样加密的。这点很重要。
还有就是影片数据区是怎么加密的。

这样做的目的就是为了,在第一帧中插入我们的AS脚本内容进去。
当插入内容的时候,文件大小就改变了。所以要得到他的加密算法。反推过来.

-----------------------------------------------------------------
下表中将控制码所在的字节分为两部分(高四位和低四位)。高低位不同的组合决定了数据区占用字节数以及不同的高度算法。

  相应的控制码后的蓝色条表示数据区所占用的字节。5星代表有效数据(注意每个5星只占半个字节),其中前面几个连续的5星对应的数据记录了高度值,后面几个连续的5星 对应的数据记录了宽度值。

  将连续的5 星所在位置的数(十六进制)组合起来,得到四位或六位的十六进制数,将此数转换成十进制数,白色 5星得到的数除以10就是影片宽度数值,红色5 星得到的数除以40就是影片高度数值。

  我对每一种控制码都给出一个具体例子,请对比文件中相应的字节和实际的宽度和高度值。

#3


控制码对应表 ( 一般就是这几种)
======================================================
控制码 0 1 2 3 4 5 6 7 8 宽×高 
50 ****   ****                   18×18 
0 0 B 4 0 0 0 B 4 0                 
58   ****   ****                 36×18 
0 0 5 A 0 0 0 0 B 4 0 0             
60   ****     ****               100×48 
0 0 3 E 8 0 0 0 1 E 0 0             
68     ****     ****             160×100 
0 0 1 9 0 0 0 0 0 3 E 8 0 0         
70     ****       ****           400×320 
0 0 0 F A 0 0 0 0 0 C 8 0 0         
78       ****       ****         550×400 
0 0 0 5 5 F 0 0 0 0 0 F A 0 0 0     
80       ****         ****       1600×1200 
0 0 0 3 E 8 0 0 0 0 0 2 E E 0 0     
88     ******        ****     2880×2880 
0 0 0 1 C 2 0 0 0 0 0 0 7 0 8 0 0 0 

#4


太尖端了...帮你up

#5


:0

#6


好东西要顶