希望大家先帮帮我吧。
最近我在研究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 ++
下面以一个结构为例,我们来解析一下。
注:加个密的以++来表示
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就是影片高度数值。
我对每一种控制码都给出一个具体例子,请对比文件中相应的字节和实际的宽度和高度值。
相同的算法,也有可能是不相同的算法。
首先,我们最主要是要了解到文件长度是怎么样加密的。这点很重要。
还有就是影片数据区是怎么加密的。
这样做的目的就是为了,在第一帧中插入我们的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
======================================================
控制码 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 ++
下面以一个结构为例,我们来解析一下。
注:加个密的以++来表示
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就是影片高度数值。
我对每一种控制码都给出一个具体例子,请对比文件中相应的字节和实际的宽度和高度值。
相同的算法,也有可能是不相同的算法。
首先,我们最主要是要了解到文件长度是怎么样加密的。这点很重要。
还有就是影片数据区是怎么加密的。
这样做的目的就是为了,在第一帧中插入我们的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
======================================================
控制码 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
好东西要顶