首页
社区
课程
招聘
[原创]swf文件的反编译入门
发表于: 2004-8-3 17:26 40485

[原创]swf文件的反编译入门

2004-8-3 17:26
40485

/*------------------------------------------------------
作者:WiNrOOt[FCG]
使用工具:flasm  368K9s2c8@1M7q4)9K6b7g2)9J5c8W2)9J5c8Y4N6%4N6#2)9J5k6h3&6G2N6%4u0S2M7q4)9J5k6h3c8W2i4K6u0r3k6X3I4S2M7$3#2Q4x3X3g2Z5N6r3#2D9
          UltraEdit
          Sothink SWF Decompiler
目的:让带有服务器校验的swf能在本地播放(主要目的还是希望各位高手有所指点)
目标:**工硕数学辅导swf文件
--------------------------------------------------------*/
     大家好!我是WiNrOOt,菜鸟一个。
     各位大虾见笑了,小弟在这里说一下关于如何使带有服务器校验的swf能在本地播放的问题。
对于各位高手来说很简单,但是对于我这个外行人来说还是花了一点时间的。
==========================================================================
最近我需要一些教学资料,就上网找发现xdf的flash不错,非常喜欢!呵呵就在bt上下了一些
发现资料不全,就萌生了破解之意!于是就对flash破解产生了兴趣,但是对flash一窍不通就从头学起。
正好一位朋友的**工硕数学辅导swf文件(不是xdf)在本地不能播放,于是我们就开始了.......

1.swf文件结构(转贴一点)
先看一下官方的swf文件格式说明在看就明白了
ee2K9s2c8@1M7q4)9K6b7g2)9J5c8W2)9J5c8Y4N6%4N6#2)9J5k6h3S2S2L8r3k6Q4x3X3c8K6k6i4u0A6L8%4g2K6i4K6u0W2j5$3!0E0i4K6u0r3M7%4N6X3i4K6u0r3k6X3!0J5L8h3q4@1i4K6u0r3
******************************转贴部分*************************************************
swf文件的整体结构是 header + body的组成。
文件的开始是一个[文件头]
它的结构如下:
字节       名称                     说明
1      Signature     “F”表示非加密格式,“C”表示加密格式
1      Signature     “W”无特殊意义
1      Signature     “S”无特殊意义
1      Version        版本号,它表示对应播放器版本
4      FileLength     整个文件长度,低位在前
N      FrameSize      RECT结构体,表示屏幕大小,具体结构和长度根据数据变化,分析方法另外讨论。
2      FrameRate      帧频,默认为12,高位在前
2      FrameCount     帧数,表明文件根下的帧数,低位在前

每一个tag都包括一个头和一个数据体,头有2种类型,短tag型和长tag型。
短tag型由2byte构成,前10个bit表示tag类型,后6个bit表示tag长度。
长tag型由6byte构成,前10个bit表示tag类型,后6个bit固定为全1,后4个byte代表tag长度。
tag的长度不同于文件头的长度FileLength,它是除去tag头后的长度。

swf文件是由1个head和1个body构成的。
下面余下的就是swf文件的body了。
整个文件body是由大量的tag组成的,通过分析tag的head部分,可以立刻知道这个tag的类型代码和长度。
如果你无法识别这个tag的类型,也可以利用tag的长度,直接跳过这个tag。
这种方式保证了版本的兼容性,即使出现了新的tag,老版本的播放器还是能够解析完整个swf文件而不出现错误,大不了就是不能提供新的功能而已。
以下就是swf文件结构的一个形象概念。

(文件header)(文件body)
              | (tag 1)(tag 2)(tag 3)(……)
                  | (tag header)(tag body)
                       | (tag 类型代码)(tag 长度)
******************************转贴部分*************************************************
补充一点
tag分为两种Definition Tags 和Control Tags
Control tag又被分为: Display List tags Control tags 和Action tags
个人理解:Definition Tags就是存放所有的资源
          Control tag就是存放控制代码
通过以上了解我们知道,关于校验的信息一定存放在Action中
开始干活...........
用Sothink SWF Decompiler反编译
看看Action--------〉MainMovie
哇哈哈哈哈你才我们看见什么了(菜鸟的表现)

// Action script...

// [onClipEvent of sprite 1 in frame 1]
//Component construct()
{
    FV_AcceptedURLs_array = [];
    FV_AcceptedURLs_array[0] = "f7eK9s2c8@1M7q4)9K6b7g2)9J5c8W2)9J5c8Y4N6%4N6#2)9J5k6g2)9J5b7g2)9J5b7g2)9J5b7g2)9J5b7g2)9J5k6h3y4F1";
    FV_AcceptedURLs_array[1] = "36aK9s2c8@1M7q4)9K6b7g2)9J5c8W2)9J5c8Y4N6%4N6#2)9J5k6g2)9J5b7g2)9J5b7g2)9J5b7g2)9J5b7g2)9J5k6h3&6W2N6l9`.`.";
    FV_AcceptedURLs_array[2] = "360K9s2c8@1M7q4)9K6b7g2)9J5c8W2)9J5c8Y4N6%4N6#2)9J5k6g2)9J5b7g2)9J5b7g2)9J5b7g2)9J5b7g2)9J5b7g2)9J5b7g2)9J5k6h3y4G2L8g2)9J5k6h3y4F1";
    FV_AcceptedURLs_array[3] = "ddfK9s2c8@1M7q4)9K6b7g2)9J5c8W2)9J5c8Y4N6%4N6#2)9J5k6g2)9J5b7g2)9J5b7g2)9J5b7g2)9J5b7g2)9J5b7g2)9J5b7g2)9J5k6h3&6W2N6q4)9J5k6h3y4F1";
    FV_AcceptedURLs_array[4] = "9e0K9s2c8@1M7q4)9K6b7g2)9J5c8W2)9J5c8Y4N6%4N6#2)9J5k6g2)9J5b7g2)9J5b7g2)9J5b7g2)9J5b7g2)9J5b7g2)9J5b7g2)9J5k6h3y4F1";
    FV_AcceptedURLs_array[5] = "377K9s2c8@1M7q4)9K6b7g2)9J5c8W2)9J5c8Y4N6%4N6#2)9J5k6g2)9J5b7g2)9J5b7g2)9J5b7g2)9J5b7g2)9J5b7g2)9J5b7g2)9J5k6h3&6W2N6l9`.`.";
    FV_AcceptedURLs_array[6] = "c53K9s2c8@1M7q4)9K6b7g2)9J5c8W2)9J5c8Y4N6%4N6#2)9J5k6g2)9J5b7g2)9J5b7g2)9J5b7g2)9J5b7g2)9J5b7g2)9J5b7g2)9J5k6h3y4G2L8b7`.`.";
    FV_AcceptedURLs_array[7] = "2e7K9s2c8@1M7q4)9K6b7g2)9J5c8W2)9J5c8Y4N6%4N6#2)9J5k6g2)9J5b7g2)9J5b7g2)9J5b7g2)9J5b7g2)9J5b7g2)9J5b7g2)9J5k6h3y4G2L8b7`.`.";
    FV_AcceptedURLs_array[8] = "dffK9s2c8@1M7q4)9K6b7g2)9J5c8W2)9J5c8Y4N6%4N6#2)9J5k6g2)9J5b7g2)9J5b7g2)9J5b7g2)9J5b7g2)9J5b7g2)9J5b7g2)9J5k6h3&6W2N6q4)9J5k6h3y4F1";
    FV_ExactURL_bool = false;
    FV_AllowFromHDD_bool = false;
    FV_ShowWarning_bool = false;
}

// [onClipEvent of sprite 1 in frame 1044]
//Component construct()
{
    FV_AcceptedURLs_array = [];
    FV_AcceptedURLs_array[0] = "1f0K9s2c8@1M7q4)9K6b7g2)9J5c8W2)9J5c8Y4N6%4N6#2)9J5k6g2)9J5b7g2)9J5b7g2)9J5b7g2)9J5b7g2)9J5k6h3y4F1";
    FV_AcceptedURLs_array[1] = "f98K9s2c8@1M7q4)9K6b7g2)9J5c8W2)9J5c8Y4N6%4N6#2)9J5k6g2)9J5b7g2)9J5b7g2)9J5b7g2)9J5b7g2)9J5k6h3&6W2N6l9`.`.";
    FV_AcceptedURLs_array[2] = "dbcK9s2c8@1M7q4)9K6b7g2)9J5c8W2)9J5c8Y4N6%4N6#2)9J5k6g2)9J5b7g2)9J5b7g2)9J5b7g2)9J5b7g2)9J5b7g2)9J5b7g2)9J5k6h3y4G2L8g2)9J5k6h3y4F1";
    FV_AcceptedURLs_array[3] = "6c7K9s2c8@1M7q4)9K6b7g2)9J5c8W2)9J5c8Y4N6%4N6#2)9J5k6g2)9J5b7g2)9J5b7g2)9J5b7g2)9J5b7g2)9J5b7g2)9J5b7g2)9J5k6h3&6W2N6q4)9J5k6h3y4F1";
    FV_AcceptedURLs_array[4] = "dc2K9s2c8@1M7q4)9K6b7g2)9J5c8W2)9J5c8Y4N6%4N6#2)9J5k6g2)9J5b7g2)9J5b7g2)9J5b7g2)9J5b7g2)9J5b7g2)9J5b7g2)9J5k6h3y4F1";
    FV_AcceptedURLs_array[5] = "47fK9s2c8@1M7q4)9K6b7g2)9J5c8W2)9J5c8Y4N6%4N6#2)9J5k6g2)9J5b7g2)9J5b7g2)9J5b7g2)9J5b7g2)9J5b7g2)9J5b7g2)9J5k6h3&6W2N6l9`.`.";
    FV_AcceptedURLs_array[6] = "5abK9s2c8@1M7q4)9K6b7g2)9J5c8W2)9J5c8Y4N6%4N6#2)9J5k6g2)9J5b7g2)9J5b7g2)9J5b7g2)9J5b7g2)9J5b7g2)9J5b7g2)9J5k6h3y4G2L8b7`.`.";
    FV_AcceptedURLs_array[7] = "26eK9s2c8@1M7q4)9K6b7g2)9J5c8W2)9J5c8Y4N6%4N6#2)9J5k6g2)9J5b7g2)9J5b7g2)9J5b7g2)9J5b7g2)9J5b7g2)9J5b7g2)9J5k6h3y4G2L8b7`.`.";
    FV_AcceptedURLs_array[8] = "c81K9s2c8@1M7q4)9K6b7g2)9J5c8W2)9J5c8Y4N6%4N6#2)9J5k6g2)9J5b7g2)9J5b7g2)9J5b7g2)9J5b7g2)9J5b7g2)9J5b7g2)9J5k6h3&6W2N6q4)9J5k6h3y4F1";
    FV_ExactURL_bool = false;
    FV_AllowFromHDD_bool = false;
    FV_ShowWarning_bool = false;
}

[培训]科锐逆向工程师培训第53期2025年7月8日开班!

收藏
免费 7
支持
分享
最新回复 (43)
雪    币: 279
活跃值: (375)
能力值: ( LV9,RANK:250 )
在线值:
发帖
回帖
粉丝
2
Good!

有空也连接一下我的那个blog
9bbK9s2c8@1M7q4)9K6b7g2)9J5c8W2)9J5c8X3u0D9L8$3N6Q4x3X3g2U0M7$3c8F1i4K6u0W2L8X3g2@1i4K6u0r3L8r3!0J5k6r3!0J5
现在有空可以更新一下内容了
2004-8-3 17:45
0
雪    币: 3126
活跃值: (2600)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
学习!谢!
2004-8-3 19:15
0
雪    币: 3126
活跃值: (2600)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
有swf格式详细的讲解?
想破swf很容易,用闪客之锤直接可以修改swf的!
2004-8-3 19:22
0
雪    币: 255
活跃值: (266)
能力值: ( LV12,RANK:220 )
在线值:
发帖
回帖
粉丝
5
最初由 学习 发布
有swf格式详细的讲解?
想破swf很容易,用闪客之锤直接可以修改swf的!

不会把闪客之锤能修改?
是Sothink SWF Quicker吧
你有最新版吗?
2004-8-3 19:46
0
雪    币: 898
活跃值: (4054)
能力值: ( LV9,RANK:3410 )
在线值:
发帖
回帖
粉丝
6
学习  :D
2004-8-3 19:53
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
学习,还没见过这个呢,呵呵
2004-8-3 20:19
0
雪    币: 339
活跃值: (1510)
能力值: ( LV13,RANK:970 )
在线值:
发帖
回帖
粉丝
8
没太看明白
高手.以后多指点
2004-8-3 23:11
0
雪    币: 566
活跃值: (2471)
能力值: ( LV7,RANK:100 )
在线值:
发帖
回帖
粉丝
9
要用到的先看看在眼里
2004-8-3 23:34
0
雪    币: 3126
活跃值: (2600)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
最初由 WiNrOOt 发布

不会把闪客之锤能修改?
是Sothink SWF Quicker吧
你有最新版吗?


“闪客之锤”就是“Sothink SWF Quicker”只不过前者是中文版,后者是英文版。网上最新版是1.5
2004-8-4 08:39
0
雪    币: 427
活跃值: (412)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
交给我,我直接把它做成FLA格式。随便改。
2004-8-4 09:28
0
雪    币: 255
活跃值: (266)
能力值: ( LV12,RANK:220 )
在线值:
发帖
回帖
粉丝
12
最初由 鸡蛋壳 发布
交给我,我直接把它做成FLA格式。随便改。

:D 你能教教我吗?
或指点一下
2004-8-4 09:30
0
雪    币: 255
活跃值: (266)
能力值: ( LV12,RANK:220 )
在线值:
发帖
回帖
粉丝
13
最初由 学习 发布


“闪客之锤”就是“Sothink SWF Quicker”只不过前者是中文版,后者是英文版。网上最新版是1.5

:D 你有注册版吗?
2004-8-4 09:30
0
雪    币: 3126
活跃值: (2600)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
14
最初由 WiNrOOt 发布

:D 你有注册版吗?


只有英文破解注册版,网上多的是。
低版本的swf可以用imperator软件直接转换成fla就可以任意修改了。

你有swf格式的全中文说明???
2004-8-4 10:25
0
雪    币: 255
活跃值: (266)
能力值: ( LV12,RANK:220 )
在线值:
发帖
回帖
粉丝
15
最初由 学习 发布


只有英文破解注册版,网上多的是。
低版本的swf可以用imperator软件直接转换成fla就可以任意修改了。


你有swf格式的全中文说明???

1.5的注册版你有吗?
swf我只有英文版的
中文的就是你发的
2004-8-4 12:03
0
雪    币: 3126
活跃值: (2600)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
16
最初由 WiNrOOt 发布

1.5的注册版你有吗?
swf我只有英文版的
中文的就是你发的


网上的1.5英文破解注册版多的是。f25K9s2c8@1M7q4)9K6b7g2)9J5c8W2)9J5c8Y4N6%4N6#2)9J5k6h3u0D9N6h3g2J5k6h3&6Q4x3X3g2F1k6i4c8Q4x3V1k6e0L8$3k6@1g2X3W2W2N6#2)9J5c8W2y4G2k6Y4c8h3K9h3g2%4i4K6g2X3z5o6R3#2z5g2)9J5k6h3S2@1L8h3H3`.
我发的swf格式中文不够详细。
2004-8-4 12:28
0
雪    币: 115
活跃值: (61)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
17
高,认真学习。
2004-8-7 14:59
0
雪    币: 205
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
18
闪客之锤最新版(中文)哪有下?
最好是注册版
2004-11-27 18:49
0
雪    币: 2319
活跃值: (565)
能力值: (RANK:300 )
在线值:
发帖
回帖
粉丝
19
学习 !
2004-11-27 19:16
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
20
如果只是玩FLASH游戏不爽的话
Decompile看一下
然后UE自己改一下就OK了
前两天就改了两个玩
要是改的多就要用工具了
2004-11-27 20:49
0
雪    币: 210
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
21
1.5的汉化版
315K9s2c8@1M7q4)9K6b7g2)9J5c8W2)9J5c8Y4N6%4N6#2)9J5k6e0R3$3k6r3I4Q4x3X3g2U0L8$3#2Q4x3V1k6K6L8$3k6@1i4K6u0r3k6r3q4@1j5g2)9J5c8U0t1#2z5e0b7#2i4K6u0W2K9s2c8E0L8l9`.`.
2005-1-6 13:37
0
雪    币: 328
活跃值: (925)
能力值: ( LV9,RANK:1010 )
在线值:
发帖
回帖
粉丝
22
学习
2005-1-7 08:49
0
雪    币: 210
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
23
b04K9s2c8@1M7q4)9K6b7g2)9J5c8W2)9J5c8Y4N6%4N6#2)9J5k6h3y4Z5K9h3&6S2k6r3k6G2M7X3y4W2i4K6u0W2j5$3!0E0i4K6u0r3N6X3W2W2N6%4c8Z5M7X3g2S2k6q4)9J5k6i4m8Z5M7q4)9K6c8Y4c8A6k6q4)9K6c8o6p5H3x3e0b7^5x3q4)9J5y4X3k6H3j5h3N6W2i4K6y4p5x3g2)9J5y4X3S2A6k6$3S2D9K9h3N6Z5N6q4)9K6c8s2y4%4k6R3`.`.
这里有一个更猛的软件,直接生成.fla

SWF Decompiler MX 2005 是一款用于浏览和解析Flash动画(.swf文件和.exe文件)的工具。最新版本有着强大的功能,可以将swf文件导出成FLA文件。它还能够将flash动画中的图片、矢量图、声音、视频(*.flv)、文字、按钮、影片片段、帧等基本元素完全分解,最重要的是可以对动作的脚本(Action Script)进行解析,清楚的显示其动作的代码,让对Flash动画的构造一目了然。最新版本能更好的支持Flash MX和动作脚本2.0。
2005-1-10 09:19
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
24


   请问各位,我用闪客之锤转了一个SWF到FLA,但是出来的FLA在FLASH里面看不到祯动作,上面显示都是灰色的,图库里面可以看到有提取的素材,我转了几个只要2个有这样的问题,被的都是好的!!

                   帮忙!!
  
2005-8-11 13:47
0
雪    币: 398
活跃值: (343)
能力值: (RANK:650 )
在线值:
发帖
回帖
粉丝
25
既然被楼上顶上来了,那偶就再学习一下
2005-8-11 13:53
0
游客
登录 | 注册 方可回帖
返回