一种SWF混淆加密的方法技术

技术编号:21090414 阅读:91 留言:0更新日期:2019-05-11 10:16
本发明专利技术公开了一种SWF混淆加密的方法。它具体包括如下步骤:(1)确定要保护的核心AS3.0工程文件源代码;(2)编写通用的混淆类,将源包内文件的内容混淆;(3)通过Felx SDK,将混淆后的源码编译成源SWF文件;(4)编写加密工具,此加密工具引用C语言编写的加密方法,将SWF文件按字节流读取后,将其进行AES加密;(5)编写加载SWF的应用,用来加载上一步生成的SWF文件;(6)将步骤(5)的应用,编译并发布成正式的SWF文件后,对外提供给客户使用。本发明专利技术的有益效果是:保护个人技术不被黑客窃取再利用,对编译生成的SWF文件进行字节流加密,达到双重加密,保护技术隐私的效果。

A Method of Confusing Encryption with SWF

【技术实现步骤摘要】
一种SWF混淆加密的方法
本专利技术涉及技术安全相关
,尤其是指一种SWF混淆加密的方法。
技术介绍
SWF(shockwaveflash)文件是当下最常见的Flash专用格式,由ActionScript3.0(以下简称AS3.0)编程语言打包编译完成。在其编译完成后,SWF内部会形成一个字符串映射表,包含源码里出现的所有字符串(类名,包名,成员变量名,常量等)。一个地址指针对应一个全局唯一的字符串,而原本的代码片段包含的字符串都会被替换为对应的地址指针。代码实际执行过程用的都是这些数字指针。所以即使你修改了映射表内的字符串内容,通常对代码执行过程也不会产生影响。而反编译就是根据地址指针从这个映射表取出对应字符串填回代码,最后生成可读的源代码。当下的反编译工具十分之多,使得企业的核心技术及业务逻辑被窃取。
技术实现思路
本专利技术是为了克服现有技术中存在上述的不足,提供了一种能够保护技术隐私的SWF混淆加密的方法。为了实现上述目的,本专利技术采用以下技术方案:一种SWF混淆加密的方法,具体包括如下步骤:(1)确定要保护的核心AS3.0工程文件源代码;(2)编写通用的混淆类,将源包内文件的内容混淆;(3)通过FelxSDK,将混淆后的源码编译成源SWF文件;(4)编写加密工具,此加密工具引用C语言编写的加密方法,将SWF文件按字节流读取后,将其进行AES加密;(5)编写加载SWF的应用,用来加载上一步生成的SWF文件;(6)将步骤(5)的应用,编译并发布成正式的SWF文件后,对外提供给客户使用。为了保护个人技术不被黑客窃取再利用,本专利技术阐述一种AS3.0代码混淆并加密的方法,即选择性的替换此映射表的内容为毫无意义的其他字符串,使其向普通二进制一样不具备明文可读性。同时对编译生成的SWF文件进行字节流加密,在外部人员不清楚加密算法的情况下,很难解密出原始SWF文件及代码,达到双重加密,保护技术隐私的效果。作为优选,在步骤(2)中,混淆规则如下:首先扫描要混淆的源代码所在包,源代码中包名、包路径、变量名、方法名、回调函数方法换成无意义的其他符号,用以使代码可读性变低,增加技术被盗用难度。作为优选,源代码中的关键字、原生类、外部依赖包不能替换,混淆类内有原生AS3.0的关键字过滤功能。作为优选,在步骤(3)中,编译的过程在官方的IDE工具内进行;或者在NodeJS环境,通过FelxSDK自带的mxmlc编写build.xml,对指定路径下的.as源码编译,生成通用的SWF文件。作为优选,在步骤(4)中,加密方法是将SWF文件从磁盘读取到内存中,将文件内容作为数据输入源,将加密后的数据写入到磁盘文件,重新命名为加密后SWF文件。作为有选,在步骤(5)中,本应用的核心代码引用C语言编写的解密方法,其解密方法与步骤(4)中的加密方法相对应,此应用首先在主程序内通过Embed方法引用外部资源,即为加密的SWF文件,然后通过Loader类,创建一个可用于加载文件的Loader对象,调用load()方法可将资源加载为Loader实例的子级,之后将Loader对象添加到显示列表,而loadByte()方法则支持从内存对象中所存储的二进制数据中加载,恰好接收C语言解密返回的字节流数据,资源在加载时会出现在舞台上,此时舞台的内容,实际为加密的SWF内容本专利技术的有益效果是:保护个人技术不被黑客窃取再利用,对编译生成的SWF文件进行字节流加密,达到双重加密,保护技术隐私的效果。附图说明图1是本专利技术的流程图。具体实施方式下面结合附图和具体实施方式对本专利技术做进一步的描述。一种SWF混淆加密的方法,具体包括如下步骤:(1)确定要保护的核心AS3.0工程文件源代码;此工程文件一般是技术人员编写的业务逻辑代码。(2)编写通用的混淆类,将源包内文件的内容混淆;混淆规则如下:首先扫描要混淆的源代码所在包,源代码中包名、包路径、变量名、方法名、回调函数方法换成无意义的其他符号,用以使代码可读性变低,增加技术被盗用难度;源代码中的关键字、原生类、外部依赖包不能替换,如果原生类被替换,会导致编译失败,故混淆类内有原生AS3.0的关键字过滤功能;(3)通过FelxSDK,将混淆后的源码编译成源SWF文件;编译的过程在官方的IDE工具内进行,如FlashBuild开发工具;或者在NodeJS环境,通过FelxSDK自带的mxmlc编写build.xml,对指定路径下的.as源码编译,生成通用的SWF文件;(4)编写加密工具,此加密工具引用C语言编写的加密方法,将SWF文件按字节流读取后,将其进行AES加密;加密方法是将SWF文件从磁盘读取到内存中,将文件内容作为数据输入源,将加密后的数据写入到磁盘文件,重新命名为加密后SWF文件;(5)编写加载SWF的应用,用来加载上一步生成的SWF文件;本应用的核心代码引用C语言编写的解密方法,其解密方法与步骤(4)中的加密方法相对应,此应用首先在主程序内通过Embed方法引用外部资源,即为加密的SWF文件,然后通过Loader类,创建一个可用于加载文件的Loader对象,调用load()方法可将资源加载为Loader实例的子级,之后将Loader对象添加到显示列表,而loadByte()方法则支持从内存对象中所存储的二进制数据中加载,恰好接收C语言解密返回的字节流数据,资源在加载时会出现在舞台上,此时舞台的内容,实际为加密的SWF内容;(6)将步骤(5)的应用,编译并发布成正式的SWF文件后,对外提供给客户使用。如图1所示,实例1:当虹云Flash播放器定制化ArcMeidaplayback.swf安全策略实践。当虹云Flash播放器内置弹幕、VR、打点信息、广告、加密视频播放登功能,这些增值功能的实现是企业人员的技术积累,其中加密算法等逻辑更是公司的技术核心。为了达到保护逻辑代码的目的。根据以上专利技术,对flash文件进行混淆加密。步骤1:编写通用混淆工具,混淆工具SwfMixTool,本混淆工具会扫描指定的路径,读取路径下所有的as为后缀名的文件,收集所有的变量名、包名、方法名。将其按照索引值替换成不可读变量。步骤2:运行SwfMixTool工具,指定当虹云Flash源工程路径ArcMeidaplayback/src,生成新的工程路径ArcMeidaplaybackMix/src。步骤3:使用FlexSDK内的mxmlc程序,执行mxmlc命令行,将ArcMeidaplaybackMix/src下的文件编译成ArcMeidaplaybackMix.swf文件。步骤4:运行加密工具SwfEncryptorTool,该工具也是AS3.0工程,引入了C语言的加密库。运行时,选择要加密的ArcMeidaplaybackMix.swf文件,将其另存为ArcMeidaplaybackMixs.swf文件。步骤5:编写ArcMeidaplayback-mst工程。此工程只包含一个Main主程序。主程序内通过Embed标签引入资源ArcMeidaplaybackMixs.swf,同时引入C语言的解密库,调用C语言的解密方法,将返回的字节数据传递给Loader类的loadBytes()方法。将其渲染到主程序上。编译该ArcMei本文档来自技高网...

【技术保护点】
1.一种SWF混淆加密的方法,其特征是,具体包括如下步骤:(1)确定要保护的核心AS3.0工程文件源代码;(2)编写通用的混淆类,将源包内文件的内容混淆;(3)通过Felx SDK,将混淆后的源码编译成源SWF 文件;(4)编写加密工具,此加密工具引用C语言编写的加密方法,将SWF文件按字节流读取后,将其进行AES 加密;(5)编写加载SWF的应用,用来加载上一步生成的SWF文件;(6)将步骤(5)的应用,编译并发布成正式的SWF文件后,对外提供给客户使用。

【技术特征摘要】
1.一种SWF混淆加密的方法,其特征是,具体包括如下步骤:(1)确定要保护的核心AS3.0工程文件源代码;(2)编写通用的混淆类,将源包内文件的内容混淆;(3)通过FelxSDK,将混淆后的源码编译成源SWF文件;(4)编写加密工具,此加密工具引用C语言编写的加密方法,将SWF文件按字节流读取后,将其进行AES加密;(5)编写加载SWF的应用,用来加载上一步生成的SWF文件;(6)将步骤(5)的应用,编译并发布成正式的SWF文件后,对外提供给客户使用。2.根据权利要求1所述的一种SWF混淆加密的方法,其特征是,在步骤(2)中,混淆规则如下:首先扫描要混淆的源代码所在包,源代码中包名、包路径、变量名、方法名、回调函数方法换成无意义的其他符号,用以使代码可读性变低,增加技术被盗用难度。3.根据权利要求2所述的一种SWF混淆加密的方法,其特征是,源代码中的关键字、原生类、外部依赖包不能替换,混淆类内有原生AS3.0的关键字过滤功能。4.根据权利要求1所述的一种SWF混淆加密的方法,其特征是,在步骤(3)中,编译的过程在官...

【专利技术属性】
技术研发人员:刘国强李妃军
申请(专利权)人:杭州当虹科技股份有限公司
类型:发明
国别省市:浙江,33

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1