CN106203173B - 一种swf文件的破解防护方法及系统 - Google Patents
一种swf文件的破解防护方法及系统 Download PDFInfo
- Publication number
- CN106203173B CN106203173B CN201610591249.3A CN201610591249A CN106203173B CN 106203173 B CN106203173 B CN 106203173B CN 201610591249 A CN201610591249 A CN 201610591249A CN 106203173 B CN106203173 B CN 106203173B
- Authority
- CN
- China
- Prior art keywords
- swf file
- core
- file
- swf
- communication information
- 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.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6209—Protecting 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/21—Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/2107—File encryption
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Storage Device Security (AREA)
Abstract
本发明公开了一种SWF文件的破解防护方法及系统,涉及SWF文件的防护领域。该方法的步骤为:对SWF文件的文件数据通过加密算法进行加密,作为核心SWF文件;编写包含解密代码的防护SWF文件;防护SWF文件获取、解密和加载核心SWF文件;核心SWF文件定期向防护SWF文件发送通信消息,通信消息采用加密算法加密,防护SWF文件收到通信消息后,采用解密代码对通信消息进行解密;判断核心SWF文件是否成功发送通信消息、且发送时间与接收时间的时间差在指定时长以下,若是,确定工作正常;否则确定工作异常。本发明能够显著增大SWF文件的破解难度,保证SWF文件的安全。
Description
技术领域
本发明涉及SWF文件(shock wave flash,基于矢量的Flash动画文件,也被称为flash文件,主要用于浏览器的动画、播放视频等)的防护领域,具体涉及一种SWF文件的破解防护方法及系统。
背景技术
目前,现有的视频网站(例如网络视频直播网站)一般采用SWF文件来播放视频文件,SWF文件集成了对视频的解码工作,包括直播网站的弹幕的解码及显示功能。为了防止视频解码算法的核心逻辑及弹幕解码的逻辑被利用,需要对SWF文件进行有效的保护。
对于采用Action Script(动作脚本语言)脚本编写的SWF文件而言,通过反编译工具(例如AS3Sorcerer)即可反编译出SWF文件对应的脚本代码(相当于是伪代码),通过对伪代码的读取即可知道SWF文件的具体实现逻辑。
因此,现有采用Action Script(动作脚本语言)脚本编写的SWF文件易于被破解,SWF文件使用时不够安全。
发明内容
针对现有技术中存在的缺陷,本发明解决的技术问题为:显著增大SWF文件的破解难度,保证SWF文件的安全。
为达到以上目的,本发明提供的SWF文件的破解防护方法,包括以下步骤:
步骤A、对SWF文件的文件数据通过加密算法进行加密,作为核心SWF文件;编写防护SWF文件,防护SWF文件中包括与所述加密算法对称的解密算法的解密代码,转到步骤B;
步骤B、防护SWF文件获取核心SWF文件、并通过解密代码对核心SWF文件的文件数据进行解密后,加载解密后的核心SWF文件,转到步骤C;
步骤C、核心SWF文件定期向防护SWF文件发送通信消息,通信消息采用所述加密算法加密,防护SWF文件收到通信消息后,采用所述解密代码对通信消息进行解密,转到步骤D;
步骤D、将核心SWF文件发送通信消息的时间定义为发送时间,将防护SWF文件收到通信消息的时间定义为接收时间;判断核心SWF文件是否成功发送通信消息、且发送时间与接收时间的时间差在指定时长以下,若是,确定使用当前核心SWF文件和防护SWF文件的工作正常;否则确定使用当前核心SWF文件和防护SWF文件的工作异常。
本发明提供的实现上述方法的SWF文件的破解防护系统,包括SWF文件编写模块、核心SWF文件获取模块、通信消息加密模块、通信消息解密模块和工作状态判定模块;
SWF文件编写模块用于:对SWF文件的文件数据通过加密算法进行加密,作为核心SWF文件;编写防护SWF文件,防护SWF文件中包括与所述加密算法对称的解密算法的解密代码;
核心SWF文件获取模块用于:在防护SWF文件中获取核心SWF文件、并通过解密代码对核心SWF文件的文件数据进行解密后,加载解密后的核心SWF文件;
通信消息加密模块用于:控制核心SWF文件定期向防护SWF文件发送通信消息,通信消息采用核心SWF文件中的加密算法加密;
通信消息解密模块用于:接收核心SWF文件发送的通信消息、并采用防护SWF文件中的解密代码对通信消息进行解密;
工作状态判定模块用于:判断核心SWF文件是否成功发送通信消息、且通信消息的发送时间与接收时间的时间差在指定时长以下,若是,确定使用当前核心SWF文件和防护SWF文件的工作正常;否则确定使用当前核心SWF文件和防护SWF文件的工作异常。
与现有技术相比,本发明的优点在于:
本发明的SWF文件包括加密的核心SWF文件、以及用于解密的防护SWF文件,防护SWF文件将核心SWF文件下载解密后,核心SWF文件会定期与防护SWF文件通信,若通信失败,则无法正常工作。因此,只有同时获取和正确使用核心SWF文件和防护SWF文件2份文件,才能获得本发明的SWF文件的使用权限(一般骇客寻找核心文件进行破解)。
有鉴于此,与现有技术中仅采用1份SWF文件相比,本发明的核心SWF文件和防护SWF文件共同配合,使得SWF文件的破解难度显著提高,而且本发明核心SWF文件和防护SWF文件均采用C语言编写,SWF文件的核心逻辑不容易被逆向反编译出来,进一步增大了破解难度,最大化保证SWF文件的安全。
附图说明
图1为本发明实施例中的SWF文件的破解防护方法的流程图。
具体实施方式
以下结合附图及实施例对本发明作进一步详细说明。
参见图1所示,本发明实施例中SWF文件的破解防护方法,包括以下步骤:
S1:在磁盘中通过Action Script调用C语言编写核心SWF文件,以使得SWF文件的核心逻辑不容易被逆向反编译出来。对核心SWF文件的文件数据通过加密算法进行加密(将需要加密的文件数据从磁盘读取至计算机内存,将文件数据进行加密后重新写入磁盘);本实施例中加密算法为AES(Advanced Encryption Standard,高级加密标准)加密算法,实际应用中还可以采用其他加密算法。
为了增加核心SWF文件的破解难度,还可以采用自行编写的加密算法对核心SWF文件的文件数据进行多次加密(本实施例中为2次);为了提高SWF文件的保密性,可以定期(例如一周一次)更换加密算法。
为了更好的隐藏SWF文件,防止骇客知晓当前文件是SWF文件,还可以将核心SWF文件的扩展名修改为指定扩展名(本实施例中为.data)。
最后,将扩展名为.data的核心SWF文件上传至服务器,转到S2。
S2:在磁盘中通过Action Script调用C语言编写防护SWF文件,防护SWF文件中包括与S1中加密算法对称的解密算法(AES解密算法和自行编写的加密算法对应的解密算法)的解密代码。
需要使用SWF文件时,防护SWF文件在服务器中下载核心SWF文件后,通过解密代码对核心SWF文件的文件数据进行解密、并使用Action Script中提供的类Loader加载解密后的核心SWF文件,转到S3。
S3:将防护SWF文件作为通信的服务端,将核心SWF文件作为通信的客户端,核心SWF文件定期向防护SWF文件发送通信消息,通信消息采用核心SWF文件的加密算法加密,防护SWF文件收到通信消息后,采用防护SWF文件的解密代码对通信消息进行解密,转到S4。
S4:将核心SWF文件发送通信消息的时间定义为发送时间,将防护SWF文件收到通信消息的时间定义为接收时间,判断核心SWF文件是否成功发送通信消息(此时认为防护SWF文件不存在)、且发送时间与接收时间的时间差在t(指定时长,本实施例中为1分钟)以下(即≤t),若是,确定使用当前核心SWF文件和防护SWF文件的用户为正常用户(即工作正常);否则(未成功发送通信消息或者时间差>t)确定使用当前核心SWF文件和防护SWF文件的用户为异常用户(即工作异常)。
S2中防护SWF文件在服务器中下载核心SWF文件的具体流程举例为:防护SWF文件中通过Action Script的一个类URLStream下载核心SWF文件。URLStream的功能是从网络中获取到所需要的数据,其接口是load(request:URLRequest):void,URLRequest就是从服务器下载的数据路径(即核心SWF文件)。同时URLStream类的接口可以注册事件,可以注册一个文件下载完成的事件,可以通过调用URLStream的addEventListener接口并传入参数Event.COMPLET、以及回调的接口completeHandler(event:Event):void。从接口completeHandler的参数event.target.data中可以获取到整个.data文件的数据。
S2中通过解密代码对核心SWF文件的文件数据进行解密的具体流程举例为:通过防护SWF文件的解密代码提供解密接口给Action Script来调用,接口名为DecodeData(void*pData,int nLen),其中pData是输入加密后的数据,解密后的数据也存在于pData中,nLen是标识数据长度。Action Script通过解密接口即可pData中获取核心SWF文件的明文数据。
S3的具体流程为:
S301:在核心SWF文件和防护SWF文件中,各通过FLASH的flash.net.LocalConnection库文件,创建1个LocalConnection的通信对象conn。coon的名称为myconn,该名称用于防护SWF文件和核心SWF文件间通信的标识,myconn在运行有防护SWF文件和核心SWF文件的终端设备中必须唯一。
S302:核心SWF文件的conn,将需要与防护SWF文件通信的通信消息(消息内容可以为请求获取当前系统时间)采用加密算法进行加密后,通过发送消息函数function Send():void发送至防护SWF文件的通信对象,发送格式为:conn.send("myconn","receiveMsg",timeencode),其中receiveMsg为防护SWF文件的接收函数的函数名称,timeencode为加密后包含发送时间的通信消息的字符串。
S303:防护SWF文件的conn,通过接收函数function receiveMsg(msg:String):void的参数msg获取通信消息,通过S2中的解密算法代码对通信消息进行解密,得到当前通信消息的发送时间。
S4中核心SWF文件是否成功发送通信消息的具体流程举例为:
核心SWF文件注册帧听事件:
conn.addEventListener(StatusEvent.STATUS,onStatus),其中:
StatusEvent.STATUS是指对通信的状态进行帧听;
onStatus是帧听函数名称,帧听函数为function onStatus(event:StatusEvent):void,若参数event.level是“status”则代表通信消息成功发送,是“error”则代表通信消息未成功发送。
本发明实施例提供的实现上述方法的SWF文件的破解防护系统,包括SWF文件编写模块、核心SWF文件获取模块、通信消息加密模块、通信消息解密模块和工作状态判定模块。
SWF文件编写模块用于:对采用C语言编写的SWF文件的文件数据通过加密算法进行至少2次加密(加密算法包括AES加密算法),作为核心SWF文件,将核心SWF文件的扩展名修改为指定扩展名;采用C语言编写防护SWF文件,防护SWF文件中包括与所述加密算法对称的解密算法的解密代码。
核心SWF文件获取模块用于:在防护SWF文件中获取核心SWF文件、并通过解密代码对核心SWF文件的文件数据进行解密后,加载解密后的核心SWF文件。
通信消息加密模块用于:控制核心SWF文件定期向防护SWF文件发送通信消息,通信消息采用核心SWF文件中的加密算法加密。
通信消息解密模块用于:接收核心SWF文件发送的通信消息、并采用防护SWF文件中的解密代码对通信消息进行解密。
工作状态判定模块用于:判断核心SWF文件是否成功发送通信消息、且通信消息的发送时间与接收时间的时间差在指定时长以下,若是,确定使用当前核心SWF文件和防护SWF文件的工作正常;否则确定使用当前核心SWF文件和防护SWF文件的工作异常。
本发明不局限于上述实施方式,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也视为本发明的保护范围之内。本说明书中未作详细描述的内容属于本领域专业技术人员公知的现有技术。
Claims (10)
1.一种SWF文件的破解防护方法,其特征在于,该方法包括以下步骤:
步骤A、对SWF文件的文件数据通过加密算法进行加密,作为核心SWF文件;编写防护SWF文件,防护SWF文件中包括与所述加密算法对称的解密算法的解密代码,转到步骤B;
步骤B、防护SWF文件获取核心SWF文件、并通过解密代码对核心SWF文件的文件数据进行解密后,加载解密后的核心SWF文件,转到步骤C;
步骤C、核心SWF文件定期向防护SWF文件发送通信消息,通信消息采用所述加密算法加密,防护SWF文件收到通信消息后,采用所述解密代码对通信消息进行解密,转到步骤D;
步骤D、将核心SWF文件发送通信消息的时间定义为发送时间,将防护SWF文件收到通信消息的时间定义为接收时间;判断核心SWF文件是否成功发送通信消息、且发送时间与接收时间的时间差在指定时长以下,若是,确定使用当前核心SWF文件和防护SWF文件的工作正常;否则确定使用当前核心SWF文件和防护SWF文件的工作异常。
2.如权利要求1所述的SWF文件的破解防护方法,其特征在于:步骤A还包括以下步骤:将核心SWF文件的扩展名修改为指定扩展名。
3.如权利要求1所述的SWF文件的破解防护方法,其特征在于:步骤A中所述核心SWF文件和防护SWF文件均采用C语言编写。
4.如权利要求1所述的SWF文件的破解防护方法,其特征在于:步骤A中所述对SWF文件的文件数据通过加密算法进行加密的次数为至少2次。
5.如权利要求1至4任一项所述的SWF文件的破解防护方法,其特征在于:步骤A中所述加密算法采用AES加密算法。
6.一种实现权利要求1至5任一项所述方法的SWF文件的破解防护系统,其特征在于,该系统包括:SWF文件编写模块、核心SWF文件获取模块、通信消息加密模块、通信消息解密模块和工作状态判定模块;
SWF文件编写模块用于:对SWF文件的文件数据通过加密算法进行加密,作为核心SWF文件;编写防护SWF文件,防护SWF文件中包括与所述加密算法对称的解密算法的解密代码;
核心SWF文件获取模块用于:在防护SWF文件中获取核心SWF文件、并通过解密代码对核心SWF文件的文件数据进行解密后,加载解密后的核心SWF文件;
通信消息加密模块用于:控制核心SWF文件定期向防护SWF文件发送通信消息,通信消息采用核心SWF文件中的加密算法加密;
通信消息解密模块用于:接收核心SWF文件发送的通信消息、并采用防护SWF文件中的解密代码对通信消息进行解密;
工作状态判定模块用于:判断核心SWF文件是否成功发送通信消息、且通信消息的发送时间与接收时间的时间差在指定时长以下,若是,确定使用当前核心SWF文件和防护SWF文件的工作正常;否则确定使用当前核心SWF文件和防护SWF文件的工作异常。
7.如权利要求6所述的SWF文件的破解防护系统,其特征在于:所述SWF文件编写模块还包括以下工作流程:将核心SWF文件的扩展名修改为指定扩展名。
8.如权利要求6所述的SWF文件的破解防护系统,其特征在于:所述SWF文件编写模块中的核心SWF文件和防护SWF文件均采用C语言编写。
9.如权利要求6所述的SWF文件的破解防护系统,其特征在于:所述SWF文件编写模块对SWF文件的文件数据通过加密算法进行加密的次数为至少2次。
10.如权利要求6至9任一项所述的SWF文件的破解防护系统,其特征在于:所述SWF文件编写模块采用的加密算法为AES加密算法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610591249.3A CN106203173B (zh) | 2016-07-25 | 2016-07-25 | 一种swf文件的破解防护方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610591249.3A CN106203173B (zh) | 2016-07-25 | 2016-07-25 | 一种swf文件的破解防护方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106203173A CN106203173A (zh) | 2016-12-07 |
CN106203173B true CN106203173B (zh) | 2019-04-05 |
Family
ID=57495978
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610591249.3A Active CN106203173B (zh) | 2016-07-25 | 2016-07-25 | 一种swf文件的破解防护方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106203173B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106933695B (zh) * | 2017-02-28 | 2020-06-16 | 武汉斗鱼网络科技有限公司 | 一种swf文件的校验方法及系统 |
CN108566331B (zh) * | 2018-04-03 | 2021-08-10 | 北京五八信息技术有限公司 | 消息传输的校验方法、装置、服务器、终端及存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2007001237A2 (en) * | 2005-06-25 | 2007-01-04 | Krypt Technologies | Encryption system for confidential data transmission |
CN102546824A (zh) * | 2012-02-20 | 2012-07-04 | 沈文策 | Flash数据传输方法及系统、服务器和客户端 |
CN102685129A (zh) * | 2012-05-10 | 2012-09-19 | 苏州阔地网络科技有限公司 | 一种实现信息安全的方法及系统 |
CN103218548A (zh) * | 2013-04-22 | 2013-07-24 | 四三九九网络股份有限公司 | 一种swf文件加密保护的方法和装置 |
CN104580167A (zh) * | 2014-12-22 | 2015-04-29 | 腾讯科技(深圳)有限公司 | 一种传输数据的方法、装置和系统 |
CN104660589A (zh) * | 2015-01-20 | 2015-05-27 | 中兴通讯股份有限公司 | 一种对信息进行加密控制、解析信息的方法、系统和终端 |
-
2016
- 2016-07-25 CN CN201610591249.3A patent/CN106203173B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2007001237A2 (en) * | 2005-06-25 | 2007-01-04 | Krypt Technologies | Encryption system for confidential data transmission |
CN102546824A (zh) * | 2012-02-20 | 2012-07-04 | 沈文策 | Flash数据传输方法及系统、服务器和客户端 |
CN102685129A (zh) * | 2012-05-10 | 2012-09-19 | 苏州阔地网络科技有限公司 | 一种实现信息安全的方法及系统 |
CN103218548A (zh) * | 2013-04-22 | 2013-07-24 | 四三九九网络股份有限公司 | 一种swf文件加密保护的方法和装置 |
CN104580167A (zh) * | 2014-12-22 | 2015-04-29 | 腾讯科技(深圳)有限公司 | 一种传输数据的方法、装置和系统 |
CN104660589A (zh) * | 2015-01-20 | 2015-05-27 | 中兴通讯股份有限公司 | 一种对信息进行加密控制、解析信息的方法、系统和终端 |
Also Published As
Publication number | Publication date |
---|---|
CN106203173A (zh) | 2016-12-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106788995B (zh) | 文件加密方法及装置 | |
CN106331751B (zh) | 一种基于iOS操作系统的在线加密切片视频播放方法 | |
CN105704149A (zh) | 一种电力移动应用安全防护方法 | |
CN110868287B (zh) | 一种认证加密密文编码方法、系统、装置及存储介质 | |
CN102006186B (zh) | 一种内网设备非法外联监控系统及其方法 | |
CN103685735B (zh) | 防止移动终端非法截屏的方法 | |
CN103237010B (zh) | 以加密方式提供数字内容的服务器端 | |
CN107579903B (zh) | 一种基于移动设备的图片消息安全传输方法及系统 | |
CN104660590A (zh) | 一种文件加密安全云存储方案 | |
CN109510702A (zh) | 一种基于计算机特征码的密钥存储及使用的方法 | |
CN108848413B (zh) | 视频的防重放攻击系统、方法、装置及存储介质 | |
CN106203173B (zh) | 一种swf文件的破解防护方法及系统 | |
CN106375080B (zh) | 一种flash文件的加密及解密方法及其装置 | |
CN107743120B (zh) | 一种可拆分式加密试题数据传输系统及方法 | |
CN113517982A (zh) | 口令的生成方法、口令的执行方法及终端 | |
CN107154920B (zh) | 安全信息的加密方法、解密方法及用以接收安全信息的接收装置 | |
KR101267875B1 (ko) | 가상 키보드를 이용한 메시지 암·복호화 장치 및 그 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 기록매체 | |
CN108173906A (zh) | 安装包下载方法、装置、存储介质及电子设备 | |
CN103605927A (zh) | 一种基于嵌入式Linux系统实现加密和解密方法 | |
JP2013045277A (ja) | プログラム難読化方法およびリモートデバッグシステム | |
CN115529192A (zh) | 一种网络数据的安全传输方法、装置、设备及存储介质 | |
KR101329789B1 (ko) | 모바일 디바이스의 데이터베이스 암호화 방법 | |
US20220284112A1 (en) | System and method for securely transferring data | |
CN104486441A (zh) | 基于ftp的远程控制方法 | |
US20070258582A1 (en) | Hardware key encryption for data scrambling |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |