CN106228082B - Swf文件的保护方法及系统 - Google Patents

Swf文件的保护方法及系统 Download PDF

Info

Publication number
CN106228082B
CN106228082B CN201610564418.4A CN201610564418A CN106228082B CN 106228082 B CN106228082 B CN 106228082B CN 201610564418 A CN201610564418 A CN 201610564418A CN 106228082 B CN106228082 B CN 106228082B
Authority
CN
China
Prior art keywords
event
swf file
load
file
swf
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
CN201610564418.4A
Other languages
English (en)
Other versions
CN106228082A (zh
Inventor
周志刚
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Wuhan Douyu Network Technology Co Ltd
Original Assignee
Wuhan Douyu Network Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Wuhan Douyu Network Technology Co Ltd filed Critical Wuhan Douyu Network Technology Co Ltd
Priority to CN201610564418.4A priority Critical patent/CN106228082B/zh
Publication of CN106228082A publication Critical patent/CN106228082A/zh
Application granted granted Critical
Publication of CN106228082B publication Critical patent/CN106228082B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6209Protecting access to data via a platform, e.g. using keys or access control rules to a single file or object, e.g. in a secure envelope, encrypted and accessed using a key, or with access control rules appended to the object itself

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Health & Medical Sciences (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Bioethics (AREA)
  • Information Transfer Between Computers (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种SWF文件的保护方法及系统,涉及SWF文件保护技术领域。该方法包括以下步骤:创建请求组件,采用请求组件向服务器请求SWF文件;创建加载组件,用于加载SWF文件;调用加载组件中的加载接口,对请求的SWF文件进行加载;在加载组件中创建加载开始事件的回调接口;在加载组件的加载接口中对加载开始事件进行注册;在加载组件中创建加载完成事件的回调接口,并在加载开始事件的回调接口中对加载完成事件进行注册;SWF文件加载完成后,在加载完成事件的回调接口中获取SWF文件,删除SWF文件的文件头。本发明能够防止内存提取工具从进程内存中找到SWF文件,保护SWF文件的安全。

Description

SWF文件的保护方法及系统
技术领域
本发明涉及SWF文件保护技术领域,具体涉及一种SWF文件的保护方法及系统。
背景技术
目前,包括直播网站在内的大型视频网站大多都采用SWF(shock wave flash,也称为flash,主要用于浏览器的动画、播放视频等)文件来播放视频文件。SWF文件集成了对视频的解码工作,包括直播网站弹幕的解码及显示功能,因此,对SWF文件的保护能够很好的保护视频解码算法的核心逻辑及弹幕解码的逻辑。
目前SWF文件是用ActionScript脚本来编写的,通过第三方工具如(AS3Sorcerer)可以反编译出对应的脚本代码(相当于是伪代码),通过读伪代码能够确定脚本的具体实现逻辑。因此,一般的SWF文件在网络传输的是加过密的。现有的对SWF文件进行加密保护的方案能够在网络中对SWF文件进行保护,极大的提高了逆向破解的难道,但是此方案的不足点在于,都是对SWF文件在使用前进行加密保护,而SWF文件的解析是由Adobe Flash Player来进行解析的,SWF文件在被Adobe Flash Player解析前必须解密出明文的SWF文件,所以在内存中存在的则是解密后的明文SWF文件。
市面上存在一些内存提取工具,例如SWF Memory Dumper,能够从进程内存中找到SWF文件,并读取内存中SWF的数据保存到磁盘中。因此,采用现有的加密保护技术的SWF文件在加载完成后仍然会被内存提取工具提取。
发明内容
本发明的目的是为了克服上述背景技术的不足,提供一种SWF文件的保护方法及系统,本发明能够防止内存提取工具从进程内存中找到SWF文件,保护SWF文件的安全。
本发明提供一种SWF文件的保护方法,包括以下步骤:
A、创建请求组件,采用所述请求组件向服务器请求SWF文件;
B、创建加载组件,用于加载SWF文件;调用所述加载组件中的加载接口,对请求的SWF文件进行加载;
C、在所述加载组件中创建加载开始事件的回调接口;在所述加载组件的加载接口中对所述加载开始事件进行注册;在所述加载组件中创建加载完成事件的回调接口,并在所述加载开始事件的回调接口中对所述加载完成事件进行注册;
D、所述SWF文件加载完成后,在所述加载完成事件的回调接口中获取到所述SWF文件,删除所述SWF文件的文件头。
在上述技术方案的基础上,步骤D中,删除所述SWF文件的文件头的具体过程为:将SWF文件中文件头的前8个字节填充为0。
在上述技术方案的基础上,步骤C中,对所述加载开始事件进行注册的具体过程为:调用监听函数,所述监听函数中包括两个参数,分别为监听事件的类型和监听事件的回调函数,监听事件的类型填写加载开始事件,监听事件的回调函数填写加载开始事件的回调接口;
对所述加载完成事件进行注册的具体过程为:再次调用所述监听函数,监听事件的类型填写加载完成事件,监听事件的回调函数填写加载完成事件的回调接口。
在上述技术方案的基础上,步骤A中,采用所述请求组件向服务器请求SWF文件的具体过程为:在所述请求组件的地址参数中填写所请求的SWF文件在服务器中的地址信息。
本发明还提供一种SWF文件的保护系统,该系统包括请求单元、加载单元、注册单元、删除单元,其中,
所述请求单元用于:创建请求组件,采用所述请求组件向服务器请求SWF文件,并指示加载单元进行工作;
所述加载单元用于:创建加载组件,用于加载SWF文件;调用所述加载组件中的加载接口,对请求的SWF文件进行加载;SWF文件开始加载后,指示注册单元进行工作;
所述注册单元用于:在所述加载组件中创建加载开始事件的回调接口;在所述加载组件的加载接口中对所述加载开始事件进行注册;在所述加载组件中创建加载完成事件的回调接口,并在所述加载开始事件的回调接口中对所述加载完成事件进行注册;
所述删除单元用于:所述SWF文件加载完成后,在所述加载完成事件的回调接口中获取到所述SWF文件,删除所述SWF文件的文件头。
在上述技术方案的基础上,删除单元在删除所述SWF文件的文件头时的具体过程为:将SWF文件中文件头的前8个字节填充为0。
在上述技术方案的基础上,所述注册单元在对加载开始事件进行注册时的具体过程为:调用监听函数,所述监听函数中包括两个参数,分别为监听事件的类型和监听事件的回调函数,监听事件的类型填写加载开始事件,监听事件的回调函数填写加载开始事件的回调接口;
对所述加载完成事件进行注册的具体过程为:再次调用所述监听函数,监听事件的类型填写加载完成事件,监听事件的回调函数填写加载完成事件的回调接口。
在上述技术方案的基础上,所述请求单元在采用所述请求组件向服务器请求SWF文件时的具体过程为:在所述请求组件的地址参数中填写所请求的SWF文件在服务器中的地址信息。
与现有技术相比,本发明的优点如下:
标准的SWF文件是按照Adobe Flash定义好的格式在内存中存放,该文件格式具有独立的编码格式方式,由文件头Header和后面的多个标签TAG组成。Adobe Flash Player通过读取SWF文件的文件头来判断一个文件是不是SWF文件。文件头的第一个字节是“C”或者是“F”,第二个字节和第三个字节是固定的“WS”,第四个字节是版本号,第五至八个字节是文件长度,后面对应的是帧大小和帧速度及帧数。文件头是SWF文件的标识。现有的内存提取工具的工作原理就是直接在进程的内存空间中全量搜索,凡是能够匹配CWS或者FWS的,可以大致的认为是一个SWF文件,然后进一步读取其版本号和文件大小,将SWF文件找出。
本发明在Adobe Flash Player中的加载组件加载完SWF文件后,将内存中的SWF文件头信息删除掉(填充为0),这样内存提取工具在搜索时无法匹配CWS或者FWS以及版本号和文件大小。文件头信息只有在加载的时候会用到,一旦加载完后,此信息就没用了。因此,通过删除掉头信息,能够有效防止内存提取工具从进程内存中找到SWF文件,保护SWF文件的安全。
附图说明
图1是本发明实施例中SWF文件的保护方法的流程图。
具体实施方式
下面结合附图及具体实施例对本发明作进一步的详细描述。
参见图1所示,本发明实施例提供一种SWF文件的保护方法,包括以下步骤:
S1、向服务器请求SWF文件:在ActionScript脚本中创建一个请求组件URLRequest,该请求组件用于请求服务器中的SWF文件;在该请求组件的地址参数中填写SWF文件在服务器中的地址信息;
S2、对SWF文件进行加载:在ActionScript脚本中创建一个加载组件Loader,并调用该加载组件中的加载接口,在该加载接口的请求参数中填写步骤S1中请求的SWF文件,开始对SWF文件进行加载;
S3、注册加载开始事件:在加载组件中创建一个加载开始事件Event.INIT的回调接口OnContentInit,并在加载组件的加载接口中调用监听函数addEventListener对加载开始事件进行注册;
调用监听函数对加载开始事件进行注册的具体过程为:监听函数包括第一参数和第二参数,在第一参数中填写加载开始事件Event.INIT,表明监听事件的类型,在第二参数中填写加载开始事件Event.INIT的回调接口OnContentInit,表明监听事件的回调函数;
S4、注册加载完成事件:在加载组件中创建一个加载完成事件Event.COMPLETE的回调接口OnLoadCompleted,并在回调接口OnContentInit中调用监听函数addEventListener对加载完成事件进行注册;
调用监听函数对加载完成事件进行注册的具体过程为:监听函数包括第一参数和第二参数,在第一参数中填写Event.COMPLETE,表明监听事件的类型,在第二参数中填写加载完成事件Event.COMPLETE的回调接口OnLoadCompleted,表明监听事件的回调函数;
S5、删除文件头:SWF文件加载完成后,在回调接口OnLoadCompleted中,获取到SWF文件,删除SWF文件的文件头;删除SWF文件的文件头的具体过程为:将SWF文件的前8个字节填充为0。
前8个字节由SWF文件的文件头中CWS或者FWS标志及版本号和文件大小这3个字段组成。这样内存中进行搜索时,内存提取工具就匹配不到文件头中CWS或者FWS标志及版本号和文件大小信息,从而能够有效防止内存提取工具从进程内存中找到并提取SWF文件。
本发明实施例还提供一种SWF文件的保护系统,该系统包括请求单元、加载单元、注册单元、删除单元,其中,
请求单元用于:在ActionScript脚本中创建一个请求组件URLRequest,该请求组件用于请求服务器中的SWF文件;在该请求组件的地址参数中填写SWF文件在服务器中的地址信息;向服务器请求SWF文件后,指示加载单元进行工作;
加载单元用于:对SWF文件进行加载的具体过程为:在ActionScript脚本中创建一个加载组件Loader,并调用该加载组件中的加载接口,在该加载接口的请求参数中填写请求的SWF文件,开始对该SWF文件进行加载;SWF文件开始加载后,指示注册单元进行工作;
注册单元用于:在加载组件中创建一个加载开始事件Event.INIT的回调接口OnContentInit,并在加载组件的加载接口中调用监听函数addEventListener对加载开始事件进行注册;在加载组件中创建一个加载完成事件Event.COMPLETE的回调接口OnLoadCompleted,并在回调接口OnContentInit中调用监听函数addEventListener对加载完成事件进行注册;
调用监听函数对加载开始事件进行注册的具体过程为:监听函数包括第一参数和第二参数,在第一参数中填写加载开始事件Event.INIT,表明监听事件的类型,在第二参数中填写加载开始事件Event.INIT的回调接口OnContentInit,表明监听事件的回调函数;
调用监听函数对加载完成事件进行注册的具体过程为:在监听函数的第一参数中填写Event.COMPLETE,表明监听事件的类型,在第二参数中填写加载完成事件Event.COMPLETE的回调接口OnLoadCompleted,表明监听事件的回调函数;
删除单元用于:SWF文件加载完成后,在加载完成事件的回调接口中获取到SWF文件,删除SWF文件的文件头;删除SWF文件的文件头的具体过程为:将SWF文件的前8个字节填充为0。
本领域的技术人员可以对本发明实施例进行各种修改和变型,倘若这些修改和变型在本发明权利要求及其等同技术的范围之内,则这些修改和变型也在本发明的保护范围之内。
说明书中未详细描述的内容为本领域技术人员公知的现有技术。

Claims (8)

1.一种SWF文件的保护方法,其特征在于,包括以下步骤:
A、创建请求组件,采用所述请求组件向服务器请求SWF文件;
B、创建加载组件,用于加载SWF文件;调用所述加载组件中的加载接口,对请求的SWF文件进行加载;
C、在所述加载组件的加载接口中对加载开始事件进行注册;在所述加载组件中创建所述加载开始事件的回调接口;在所述加载开始事件的回调接口中对加载完成事件进行注册;在所述加载组件中创建所述加载完成事件的回调接口;
D、所述SWF文件加载完成后,在所述加载完成事件的回调接口中获取到所述SWF文件,删除所述SWF文件的文件头。
2.如权利要求1所述的SWF文件的保护方法,其特征在于,步骤D中,删除所述SWF文件的文件头的具体过程为:将SWF文件中文件头的前8个字节填充为0。
3.如权利要求1所述的SWF文件的保护方法,其特征在于,步骤C中,对所述加载开始事件进行注册的具体过程为:调用监听函数,所述监听函数中包括两个参数,分别为监听事件的类型和监听事件的回调函数,监听事件的类型填写加载开始事件,监听事件的回调函数填写加载开始事件的回调接口;
对所述加载完成事件进行注册的具体过程为:再次调用所述监听函数,监听事件的类型填写加载完成事件,监听事件的回调函数填写加载完成事件的回调接口。
4.如权利要求1所述的SWF文件的保护方法,其特征在于,步骤A中,采用所述请求组件向服务器请求SWF文件的具体过程为:在所述请求组件的地址参数中填写所请求的SWF文件在服务器中的地址信息。
5.一种SWF文件的保护系统,其特征在于,该系统包括请求单元、加载单元、注册单元、删除单元,其中,
所述请求单元用于:创建请求组件,采用所述请求组件向服务器请求SWF文件,并指示加载单元进行工作;
所述加载单元用于:创建加载组件,用于加载SWF文件;调用所述加载组件中的加载接口,对请求的SWF文件进行加载;SWF文件开始加载后,指示注册单元进行工作;
所述注册单元用于:在所述加载组件的加载接口中对加载开始事件进行注册;在所述加载组件中创建所述加载开始事件的回调接口;在所述加载开始事件的回调接口中对加载完成事件进行注册;在所述加载组件中创建所述加载完成事件的回调接口;
所述删除单元用于:所述SWF文件加载完成后,在所述加载完成事件的回调接口中获取到所述SWF文件,删除所述SWF文件的文件头。
6.如权利要求5所述的SWF文件的保护系统,其特征在于,删除单元在删除所述SWF文件的文件头时的具体过程为:将SWF文件中文件头的前8个字节填充为0。
7.如权利要求5所述的SWF文件的保护系统,其特征在于,所述注册单元在对加载开始事件进行注册时的具体过程为:调用监听函数,所述监听函数中包括两个参数,分别为监听事件的类型和监听事件的回调函数,监听事件的类型填写加载开始事件,监听事件的回调函数填写加载开始事件的回调接口;
对所述加载完成事件进行注册的具体过程为:再次调用所述监听函数,监听事件的类型填写加载完成事件,监听事件的回调函数填写加载完成事件的回调接口。
8.如权利要求5所述的SWF文件的保护系统,其特征在于,所述请求单元在采用所述请求组件向服务器请求SWF文件时的具体过程为:在所述请求组件的地址参数中填写所请求的SWF文件在服务器中的地址信息。
CN201610564418.4A 2016-07-18 2016-07-18 Swf文件的保护方法及系统 Expired - Fee Related CN106228082B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610564418.4A CN106228082B (zh) 2016-07-18 2016-07-18 Swf文件的保护方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610564418.4A CN106228082B (zh) 2016-07-18 2016-07-18 Swf文件的保护方法及系统

Publications (2)

Publication Number Publication Date
CN106228082A CN106228082A (zh) 2016-12-14
CN106228082B true CN106228082B (zh) 2019-01-29

Family

ID=57519760

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610564418.4A Expired - Fee Related CN106228082B (zh) 2016-07-18 2016-07-18 Swf文件的保护方法及系统

Country Status (1)

Country Link
CN (1) CN106228082B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108519885B (zh) * 2017-02-28 2021-07-23 武汉斗鱼网络科技有限公司 一种基于Flash的公共资源加载方法及装置
CN113688419B (zh) * 2021-07-22 2023-05-19 成都鲁易科技有限公司 数据保护方法及装置、存储介质、计算机设备

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103218548A (zh) * 2013-04-22 2013-07-24 四三九九网络股份有限公司 一种swf文件加密保护的方法和装置
CN105357206A (zh) * 2015-11-19 2016-02-24 杭州铭师堂教育科技发展有限公司 一种视频安全传输方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9075798B2 (en) * 2010-07-30 2015-07-07 Adobe Systems Incorporated Verifying authenticity of input using a hashing algorithm

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103218548A (zh) * 2013-04-22 2013-07-24 四三九九网络股份有限公司 一种swf文件加密保护的方法和装置
CN105357206A (zh) * 2015-11-19 2016-02-24 杭州铭师堂教育科技发展有限公司 一种视频安全传输方法

Also Published As

Publication number Publication date
CN106228082A (zh) 2016-12-14

Similar Documents

Publication Publication Date Title
US9817954B2 (en) Multi-mode protected content wrapper
CA2881926C (en) Email sending and receiving method and terminal
US10922435B2 (en) Image encryption method, image viewing method, system, and terminal
JP5735539B2 (ja) ネットワークを介して送信されるデータの暗号化および復号化システム、装置、および方法
JP5974024B2 (ja) フォント配信システム、及びフォント配信方法
CN101763397B (zh) 处理图像文件中扩展信息的装置及方法
CN106650327A (zh) 基于动态恢复so文件的Android应用加固方法
CN111191257A (zh) 一种文件的预览处理方法和装置
KR20030079935A (ko) 콘텐츠·데이터를 기억한, 컴퓨터 판독가능한정보기억매체, 및, 콘텐츠 과금시스템
CN104021349B (zh) 网络证据事前保全方法及保全装置
CN106228082B (zh) Swf文件的保护方法及系统
CN107516045A (zh) 文件保护方法及装置
CN112118564A (zh) 生成个性化简档包的方法、系统和计算机程序产品
WO2020238092A1 (zh) 链接加壳跳转方法、装置、电子设备和存储介质
US9275209B2 (en) Information processing device, control method therefor, program, and information storage medium
CN106612283B (zh) 一种识别下载文件来源的方法及装置
CN104737121B (zh) 在浏览器中对视频播放进行复用和解复用
US20130024765A1 (en) Processing rich text data for storing as legacy data records in a data storage system
WO2020103060A1 (zh) 数据处理方法、装置、系统、服务器以及电子设备
US20160255358A1 (en) Method of Combining Image Files and Other Files
CN104363348A (zh) 信息数据处理方法及装置
CN105893862A (zh) 一种浏览器缓存数据的保护方法及装置
CN108848165A (zh) 业务请求处理方法、装置、计算机设备和存储介质
CN111198692A (zh) 一种安装包的生成方法和装置
KR101636708B1 (ko) 2채널 인증을 이용한 웹 사이트 검증 장치 및 그 방법

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20190129

CF01 Termination of patent right due to non-payment of annual fee