CN103927164A - 一种脚本混淆方法及系统 - Google Patents

一种脚本混淆方法及系统 Download PDF

Info

Publication number
CN103927164A
CN103927164A CN201410086817.5A CN201410086817A CN103927164A CN 103927164 A CN103927164 A CN 103927164A CN 201410086817 A CN201410086817 A CN 201410086817A CN 103927164 A CN103927164 A CN 103927164A
Authority
CN
China
Prior art keywords
code
script
engine
specific information
feature
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.)
Granted
Application number
CN201410086817.5A
Other languages
English (en)
Other versions
CN103927164B (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.)
Zhuhai Seal Interest Technology Co Ltd
Original Assignee
Zhuhai Juntian Electronic 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 Zhuhai Juntian Electronic Technology Co Ltd filed Critical Zhuhai Juntian Electronic Technology Co Ltd
Priority to CN201410086817.5A priority Critical patent/CN103927164B/zh
Publication of CN103927164A publication Critical patent/CN103927164A/zh
Application granted granted Critical
Publication of CN103927164B publication Critical patent/CN103927164B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Stored Programmes (AREA)

Abstract

本发明公开了一种脚本混淆方法及系统。一种脚本混淆方法包括:根据预设的对应关系库,对脚本引擎源码中的特定信息进行混淆,得到特征引擎源码,编译所述特征引擎源码,得到特征引擎;根据所述预设的对应关系库,对目标脚本代码中的特定信息进行混淆,得到第一脚本代码;将所述特征引擎和所述第一脚本代码嵌入到应用程序中。一种脚本混淆系统包括:引擎混淆单元、代码混淆单元和嵌入单元。本发明提供的脚本混淆方法对脚本引擎中的和目标脚本代码中的关键字、语法和运算符都进行了混淆,使得编译之后的脚本代码的可读性极差,很难从中分辨出脚本的执行逻辑,能较好的保护脚本代码。

Description

一种脚本混淆方法及系统
技术领域
本发明涉及计算机技术,特别涉及一种脚本混淆方法及系统。 
背景技术
随着科学技术的发展,计算机技术被广泛地应用于各个领域,为人们的工作、学习和日常生活提供了极大的便利。应用范围的扩大和应用深度的扩展,促使计算机的性能不断提高,进而对计算机软件提出了更高的要求。 
在这种情况下,脚本语言作为一般程序设计语言的补充,得到了极为迅速的发展。脚本语言又被称为扩建的语言,或者动态语言,是一种用来控制应用程序的编程语言。由于脚本语言不需要编译,可以直接使用,而且具有小巧和高效的优点,因此越来越多的软件将脚本语言嵌入到软件中,来为应用程序提供灵活的扩展和定制功能。尤其在游戏软件和杀毒软件中,因为程序较为复杂,脚本语言被广泛的使用。相应的,如果脚本代码被泄露,会给用户带来不小的损失,因此需要增强脚本代码的安全性。 
通过对脚本代码进行混淆,可以增强脚本安全性,目前存在两种脚本代码混淆方法:第一种方法是对脚本代码中的变量名、函数名和类名等内容进行混淆,产生可读性较差的代码;但是,这种方法最多只是对代码中的一些敏感名称进行混淆,脚本的执行逻辑依然很容易被看清楚,安全性较低; 
第二种方法是将脚本编译成二进制码,嵌入到程序中;程序在执行的过程中,直接执行二进制码即可。但是,市面上存在很多成熟的反编译引擎,可以根据二进制中间码还原出脚本源代码,因此安全性也不高。 
发明内容
为了解决上述问题,本发明提供了一种脚本混淆方法及系统,以提高脚本安全性,技术方案如下: 
一种脚本混淆方法,包括: 
根据预设的对应关系库,对脚本引擎源码中的特定信息进行混淆,得到特征引擎源码,编译所述特征引擎源码,得到特征引擎; 
根据所述预设的对应关系库,对目标脚本代码中的特定信息进行混淆,得到第一脚本代码;其中,所述目标脚本代码符合所述脚本引擎的代码编写规则; 
将所述特征引擎和所述第一脚本代码嵌入到应用程序中; 
其中,所述特定信息包括:关键字、语法表义符和运算符中的至少一种,且所述脚本引擎源码中的特定信息与所述目标脚本代码中的特定信息相同。 
所述对脚本引擎源码中的特定信息进行混淆,具体包括:对脚本引擎源码中的特定信息进行替换处理。 
所述对目标脚本代码中的特定信息进行混淆,具体包括:对脚本代码中的特定信息进行替换处理。 
不同的脚本引擎对应不同内容的对应关系库。 
较佳的,该方法进一步包括:得到第一脚本代码之后,对所述第一脚本代码中的代码特征信息进行混淆,得到第二脚本代码,并将所述第二脚本代码代替所述第一脚本嵌入应用程序中; 
其中,所述代码特征信息包括:变量名、函数名和类名中的至少一种。 
本发明还提供了一种脚本混淆系统,包括:引擎混淆单元、代码混淆单元和嵌入单元; 
所述引擎混淆单元,用于根据预设的对应关系库,对脚本引擎源码中的特定信息进行混淆,得到特征引擎源码,编译所述特征引擎源码,得到特征引擎; 
所述代码混淆单元,用于根据所述预设的对应关系库,对目标脚本代码中的特定信息进行混淆,得到第一脚本代码;其中,所述目标脚本代码符合所述脚本引擎的代码编写规则; 
所述嵌入单元,用于将所述特征引擎和所述第一脚本代码嵌入到应用程序中; 
其中,所述特定信息包括:关键字、语法表义符和运算符中的至少一种,且所述脚本引擎源码中的特定信息与所述目标脚本代码中的特定信息相同。 
所述引擎混淆单元具体用于:根据预设的对应关系库,对脚本引擎源码中的特定信息进行替换处理,得到特征引擎源码,编译所述特征引擎源码,得到特征引擎。 
所述代码混淆单元具体用于:根据预设的对应关系库,对脚本代码中的特定信息进行替换处理,得到第一脚本代码;其中,所述目标脚本代码符合所述脚本引擎的代码编写规则。 
不同的脚本引擎对应不同内容的对应关系库。 
较佳的,所述代码混淆单元进一步用于:对所述第一脚本代码中的代码特征信息进行混淆,得到第二脚本代码; 
所述嵌入单元具体用于:将所述第二脚本代码代替第一脚本代码,并将所述第二脚本代码和所述特征引擎嵌入应用程序中; 
其中,所述代码特征信息包括:变量名、函数名和类名中的至少一种。 
本发明实施例中,根据预设的对应关系库,对脚本引擎源码中的关键字、语法和运算符进行混淆,得到特征引擎源码,编译所述特征引擎源码,得到特征引擎;并根据所述预设的对应关系库,对目标脚本代码中的关键字、语法和运算符进行混淆,得到第一脚本代码;将所述特征引擎和第一脚本代码嵌入到应用程序中。 
相对于第一种脚本代码混淆方法,本发明对脚本引擎中的和目标脚本代码中的关键字、语法和运算符都进行了混淆,使得编译之后的脚本代码的可读性极差,很难从中分辨出脚本的执行逻辑,能较好的保护脚本代码; 
另外,相对于第二种脚本混淆保护方法,本发明实施例中,需要保护的代码只能在混淆后的脚本引擎下执行,在不清楚预设关键字对应库中对应关系的情况下,破解和逆向就会变得较为困难,更进一步增强了安全性。 
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。 
图1为本发明实施例提供的脚本混淆方法的第一种流程图; 
图2为本发明实施例提供的脚本混淆方法的第二种流程图; 
图3为经过代码信息混淆之后得到的脚本代码片段示意图; 
图4为本发明实施例提供的脚本混淆系统的结构示意图。 
具体实施方式
首先对本发明提供的一种脚本混淆方法进行说明,包括: 
根据预设的对应关系库,对脚本引擎源码中的特定信息进行混淆,得到特征引擎源码,编译所述特征引擎源码,得到特征引擎; 
根据所述预设的对应关系库,对目标脚本代码中的特定信息进行混淆,得到第一脚本代码;其中,所述目标脚本代码符合所述脚本引擎的代码编写规则; 
将所述特征引擎和所述第一脚本代码嵌入到应用程序中; 
其中,所述特定信息包括:关键字、语法表义符和运算符中的至少一种,且所述脚本引擎源码中的特定信息与所述目标脚本代码中的特定信息相同。 
本发明对脚本引擎中的和目标脚本代码中的关键字、语法和运算符都进行了混淆,使得编译之后的脚本代码的可读性极差,很难从中分辨出脚本的执行逻辑,能较好的保护脚本代码; 
另外,本发明实施例中,需要保护的代码只能在混淆后的脚本引擎下执行,在不清楚预设关键字对应库中对应关系的情况下,破解和逆向就会变得较为困难,更进一步增强了安全性。 
在实际应用中,可以编写混淆处理器,根据预设的对应关系库,分别对脚 本引擎和脚本代码进行混淆。预设的对应关系库可以制作成一个可更改内容的文本文档,以便随时更改混淆策略,更好的保护脚本安全。 
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。 
本发明提供的一种脚本混淆方法的第一种流程图如图1所示,以lua脚本引擎为例,对该方法进行详细说明,可以包括以下步骤: 
S101,根据预设的对应关系库,对脚本引擎源码中的特定信息进行混淆,得到特征引擎源码,编译所述特征引擎源码,得到特征引擎; 
脚本引擎是计算机编程语言的解释器,功能是解释执行用户的程序文本,将程序文本译成计算机能执行的机器代码,完成一系列的功能。 
上述程序文本即为按照该脚本引擎的编码规则编写的脚本代码。 
脚本引擎源码中的特定信息包括:运算符、语法表义符和关键字的至少一种。 
以lua脚本语言为例,对该脚本引擎中的特定信息做详细的说明。 
运算符:运算符用于执行程序代码运算,会针对一个以上操作数项目来进行运算。lua中的运算符与通用的运算符相似,在程序语言中,运算符一般包括五种类型:算术运算符、连接运算符、关系运算符、赋值运算符和逻辑运算符;其中, 
算术运算符是用来处理四则运算的符号,常用的有+、-、*、/等符号; 
连接运算符是用来将一个或多个字符连接成一个的符号,常用的是&和+; 
关系运算符是用来表示两个数值关系的符号,常用的有<、>、>=等符号; 
赋值运算符是用来为变量赋值的符号,最常用的是=; 
逻辑运算符是用来表示两个变量之间逻辑关系的符号,常见的有!、&&、|| 等。 
语法表义符:lua有多种语法规则,每条语法规则对应的有至少一个语法表义符,举例如下: 
lua中表示注释的时候,单行注释中,连续两个减号“--”表示注释的开始,一直延续到行末为止,相当于C++语言中的“//”,因此“--”为对应注释这一语法规则的语法表义符; 
在lua中,语句之间可以用分号“;”隔开,也可以用空白隔开。一般来说,如果多个语句写在同一行的话,建议总是用分号隔开。相应的,分号和空白即为隔开语句这一语法规则的语法表义符; 
关键字:lua中的关键字并不多,常见的有:and、break、do、else等。 
对脚本引擎源码进行混淆,一般是对脚本引擎源码中,特定信息中的至少一种进行混淆。需要说明的是,对于不同的脚本语言,运算符一般都是相似的,但语法表义符和关键字可能有所不同,因此在对脚本引擎进行混淆的时候,所需要的预设的对应关系可以不同。 
例如,lua脚本语言的语法规则并不严格,因此可以对语法表义符进行格式上的混淆。举例来说,将回车符去掉,或者将空格去掉,都无碍于脚本代码的运行。而对于某些脚本语言,比如python,其语法规则比较严格,在对python脚本引擎源码进行混淆的时候,不能轻易打乱格式。因此,相对而言,python的混淆程度比不上lua。但是,本发明是同时对脚本引擎和脚本代码进行混淆,并不是只针对语法表义符,因此就算对语法表义符进行程度不深的混淆,最后得到的代码可读性依然很差,对混淆结果产生的影响并不大。 
可以理解的是,如果对运算符,或者一些程序语言中通用的关键字进行混淆,那么对于不同的脚本引擎,对应关系库可以相同。但是为了能更好的保护脚本安全,本发明的优选实施例中,对不同的脚本引擎,选取不同的对应关系库。 
预设的对应关系库可以由用户自行设置,并可根据实际情况随时更改。对于不同的脚本,可以使用不同的对应关系库对脚本进行混淆,让外人无法逆向 得出对应关系库的具体内容,能够更进一步地增强了脚本的安全性。 
可以理解的是,预设的对应关系库中,并不一定要对所有的运算符、语法表义符和关键字进行混淆,可以在每一种特定信息中选择一部分进行混淆,具体选取方法本发明不做限制。 
对脚本引擎源码进行混淆可以采用多种方法,本发明实施例对脚本引擎中的特定信息进行替换处理,换成对应关系库中的相应内容。具体的替换方法可以利用任意一种现有技术实现,本发明对此不做限制。 
S102,根据所述预设的对应关系库,对目标脚本代码中的特定信息进行混淆,得到第一脚本代码; 
与步骤S101相似,本发明实施例对目标脚本代码进行混淆,即是对目标脚本代码中的特定信息进行替换处理。 
需要说明的是,步骤S101和步骤S102中需要进行混淆的特定信息必须相同,否则脚本引擎无法对混淆后的脚本代码进行解释。例如,如果对脚本引擎源码进行混淆的时候,需要进行混淆的特定信息是运算符中的全部算术运算符和全部赋值运算符,那么,对脚本代码进行混淆的时候,需要混淆的特定信息也必须是全部算术运算符和全部赋值运算符。 
另外,目标脚本代码应该符合脚本引擎的编码规则。以lua为例,如果S101中是对lua脚本引擎源码进行混淆,那么,在步骤S102中进行混淆的必须是lua引擎能解释的lua脚本代码。 
需要说明的是,步骤S101和步骤S102的顺序并没有严格的限制,两者可以同时进行,也可以先后进行,先后的次序也没有限制。 
S103,将所述特征引擎和所述第一脚本代码嵌入到应用程序中; 
本发明实施例中,经过混淆、并且重新编译之后,针对脚本引擎,会生成新的lua_eng.lib文件;针对目标脚本代码,会生成新的x1.lua文件,其中x1并非具体的文件名,仅用作示意性说明。 
将lua_eng.lib和x1.lua重新嵌入到应用程序中。当程序运行到lua代码时, 会由混淆后的脚本引擎解释该代码,并不影响程序运行。具体嵌入方法可以是任何一种现有技术,本发明不做限制。 
为了进一步保护脚本安全,在对目标脚本代码进行混淆,得到第一脚本代码之后,还可以对第一脚本代码进行进一步的处理。针对这种情况,本发明提供的脚本代码保护方法的第二种流程图如图2所示,仍然以lua为例,可以包括以下步骤: 
S201,根据预设的对应关系库,对脚本引擎源码中的特定信息进行混淆,得到特征引擎源码,编译所述特征引擎源码,得到特征引擎; 
该步骤的内容与步骤S101基本相同,在此不做赘述。 
S202,根据所述预设的对应关系库,对目标脚本代码中的特定信息进行混淆,得到第一脚本代码; 
该步骤的内容与步骤S102基本相同,在此不做赘述。 
S203,对所述第一脚本代码中的代码特征信息进行混淆,得到第二脚本代码; 
这里的代码特征信息指的是,代码中的变量名、函数名和类名中的至少一种。 
代码特征信息是在代码编写的过程中,由程序员自行设定的。但是,很多时候,程序员为了使代码易读,在为变量名等特征信息命名的时候,会联系实际情况进行命名。这样的话,容易从这些特征信息中读出脚本的一些相关信息,不利于脚本安全。例如,对于一个名为studentParentName的变量,从变量名上便可以看出该变量表示的是学生的父母名字。 
因此,在对目标脚本代码进行特定信息的混淆之后,还可以对目标脚本代码的特征信息进行混淆,这样能更好的保护脚本安全。 
可以理解的是,由于第二脚本代码只是对程序员自主创建的一些特征信息做混淆,对脚本引擎并没有任何改动,因此步骤S201中得到的特征引擎仍然可以解释经过二次混淆的第二脚本代码。 
S204,将所述特征引擎和所述第二脚本代码嵌入到应用程序中; 
经过步骤S203,针对目标脚本代码,会生成一个x2.lua文件,可以将该文件和之前得到的lua_eng.lib文件嵌入到应用程序中。 
图3为经过两次混淆之后的lua代码片段。从图中可以看出,该片段没有任何lua的语法迹象,但是可以使用特征引擎解释,不影响应用程序的运行。 
通过上述方法,对脚本引擎和目标脚本代码中的特定信息进行了全面混淆,并且还对目标脚本代码中的代码特征信息也做了混淆,增强了脚本的安全。 
本发明还提供了一种脚本混淆系统,该系统的结构示意图如图4所示,仍然以lua语言为例,该系统可以包括:引擎混淆单元001、代码混淆单元002和嵌入单元003; 
引擎混淆单元001,用于根据预设的对应关系库,对脚本引擎源码中的特定信息进行混淆,得到特征引擎源码,编译所述特征引擎源码,得到特征引擎; 
本发明实施例中对脚本引擎进行混淆,是指根据预设的对应关系,对脚本引擎源码中的特定信息进行替换处理。其中,所述特定信息指的是,运算符、语法表义符和关键字中的至少一种。 
可以理解的是,由于脚本引擎的不同,可以有不同的对应关系库,而且对应关系库中的内容可以由用户随时进行更改,以更好的对脚本进行保护。如果只是对运算符,或是一些通用的关键字进行混淆,对于不同的脚本引擎,对应关系库也可以相同。 
代码混淆单元002,用于根据所述预设的对应关系库,对目标脚本代码中的特定信息进行混淆,得到第一脚本代码; 
本发明实施例中对目标脚本代码进行混淆,是指根据预设的对应关系,对脚本引擎源码中的特定信息进行替换处理。其中,所述特定信息指的是,运算符、语法表义符和关键字中的至少一种。 
其中,目标脚本代码必须符合所述脚本引擎的代码编写规则。也就是说,如果引擎混淆单元中是对lua脚本引擎进行混淆,那么代码混淆单元中进行混淆 的必须是lua脚本代码。 
需要说明的是,代码混淆单元中需要进行混淆的特定信息,与引擎混淆单元中需要进行混淆的特征信息必须是相同的。否则,特征引擎无法对第一脚本代码进行解释。 
嵌入单元003,用于将所述特征引擎和所述第一脚本代码嵌入到应用程序中; 
经过混淆、并且重新编译之后,针对lua引擎,会生成新的lua_eng.lib文件,针对目标脚本代码,会生成新的x1.lua文件,其中x1并非具体的文件名,仅仅用作示意性说明。 
将lua_eng.lib和x1.lua重新嵌入到应用程序中。当程序运行到lua代码时,会由引擎混淆单元中得到的特征引擎解释该代码,并不影响应用程序的运行。 
为了对脚本进行更进一步的保护,所述脚本混淆单元002可以进一步用于,对所述第一脚本代码中的代码特征信息进行混淆,得到第二脚本代码;其中,所述代码特征信息包括:变量名、函数名和类名中的至少一种。 
相应地,嵌入单元003具体用于:将所述第二脚本代码代替第一脚本代码,并将第二脚本代码和所述特征引擎嵌入应用程序中。 
经过进一步的混淆,目标脚本代码生成一个新的x2.lua文件,将lua_eng.lib和x2.lua重新嵌入到应用程序中。由于代码特征信息是由程序员定义的,与脚本引擎无关,因此特征引擎仍然可以解释第二脚本代码,并不影响程序运行。 
对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。 
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在 没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。 
本领域普通技术人员可以理解实现上述方法实施方式中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,所述的程序可以存储于计算机可读取存储介质中,这里所称得的存储介质,如:ROM/RAM、磁碟、光盘等。 
以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。 

Claims (10)

1.一种脚本混淆方法,其特征在于,包括:
根据预设的对应关系库,对脚本引擎源码中的特定信息进行混淆,得到特征引擎源码,编译所述特征引擎源码,得到特征引擎;
根据所述预设的对应关系库,对目标脚本代码中的特定信息进行混淆,得到第一脚本代码;其中,所述目标脚本代码符合所述脚本引擎的代码编写规则;
将所述特征引擎和所述第一脚本代码嵌入到应用程序中;
其中,所述特定信息包括:关键字、语法表义符和运算符中的至少一种,且所述脚本引擎源码中的特定信息与所述目标脚本代码中的特定信息相同。
2.如权利要求1所述的方法,其特征在于,所述对脚本引擎源码中的特定信息进行混淆,具体包括:对脚本引擎源码中的特定信息进行替换处理。
3.如权利要求1所述的方法,其特征在于,所述对目标脚本代码中的特定信息进行混淆,具体包括:对脚本代码中的特定信息进行替换处理。
4.如权利要求1所述的方法,其特征在于,不同的脚本引擎对应不同内容的对应关系库。
5.如权利要求1所述的方法,其特征在于,该方法进一步包括:得到第一脚本代码之后,对所述第一脚本代码中的代码特征信息进行混淆,得到第二脚本代码,并将所述第二脚本代码代替所述第一脚本嵌入应用程序中;
其中,所述代码特征信息包括:变量名、函数名和类名中的至少一种。
6.一种脚本混淆系统,其特征在于,包括:引擎混淆单元、代码混淆单元和嵌入单元;
所述引擎混淆单元,用于根据预设的对应关系库,对脚本引擎源码中的特定信息进行混淆,得到特征引擎源码,编译所述特征引擎源码,得到特征引擎;
所述代码混淆单元,用于根据所述预设的对应关系库,对目标脚本代码中的特定信息进行混淆,得到第一脚本代码;其中,所述目标脚本代码符合所述脚本引擎的代码编写规则;
所述嵌入单元,用于将所述特征引擎和所述第一脚本代码嵌入到应用程序中;
其中,所述特定信息包括:关键字、语法表义符和运算符中的至少一种,且所述脚本引擎源码中的特定信息与所述目标脚本代码中的特定信息相同。
7.如权利要求6所述的系统,其特征在于,所述引擎混淆单元具体用于:根据预设的对应关系库,对脚本引擎源码中的特定信息进行替换处理,得到特征引擎源码,编译所述特征引擎源码,得到特征引擎。
8.如权利要求6所述的系统,其特征在于,所述代码混淆单元具体用于:根据预设的对应关系库,对脚本代码中的特定信息进行替换处理,得到第一脚本代码;其中,所述目标脚本代码符合所述脚本引擎的代码编写规则。
9.如权利要求6所述的系统,其特征在于,不同的脚本引擎对应不同内容的对应关系库。
10.如权利要求6所述的系统,其特征在于,所述代码混淆单元进一步用于:对所述第一脚本代码中的代码特征信息进行混淆,得到第二脚本代码;
所述嵌入单元具体用于:将所述第二脚本代码代替第一脚本代码,并将所述第二脚本代码和所述特征引擎嵌入应用程序中;
其中,所述代码特征信息包括:变量名、函数名和类名中的至少一种。
CN201410086817.5A 2014-03-10 2014-03-10 一种脚本混淆方法及系统 Active CN103927164B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410086817.5A CN103927164B (zh) 2014-03-10 2014-03-10 一种脚本混淆方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410086817.5A CN103927164B (zh) 2014-03-10 2014-03-10 一种脚本混淆方法及系统

Publications (2)

Publication Number Publication Date
CN103927164A true CN103927164A (zh) 2014-07-16
CN103927164B CN103927164B (zh) 2017-06-06

Family

ID=51145396

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410086817.5A Active CN103927164B (zh) 2014-03-10 2014-03-10 一种脚本混淆方法及系统

Country Status (1)

Country Link
CN (1) CN103927164B (zh)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104992083A (zh) * 2015-07-09 2015-10-21 广州视源电子科技股份有限公司 应用程序的代码混淆方法和系统
CN105354449A (zh) * 2015-11-04 2016-02-24 北京鼎源科技有限公司 一种面向Lua语言的加扰混淆方法和解密方法
CN105630526A (zh) * 2014-11-03 2016-06-01 阿里巴巴集团控股有限公司 脚本的加载控制方法及装置
CN106650428A (zh) * 2015-11-03 2017-05-10 阿里巴巴集团控股有限公司 用于优化应用代码的方法与设备
CN106897211A (zh) * 2015-12-21 2017-06-27 阿里巴巴集团控股有限公司 针对混淆脚本语言的定位方法和系统
CN109344575A (zh) * 2018-08-17 2019-02-15 北京奇虎科技有限公司 Lua脚本文件处理方法、装置及计算设备
CN111310133A (zh) * 2020-02-28 2020-06-19 西安四叶草信息技术有限公司 脚本混淆方法及装置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1610219A1 (de) * 2004-06-23 2005-12-28 Renner, Peter Programmiersystem
CN102169535A (zh) * 2011-04-11 2011-08-31 桂林电子科技大学 一种基于关键词替换的文本密写方法
CN103150493A (zh) * 2013-02-28 2013-06-12 浙江中控技术股份有限公司 一种JavaScript代码的混淆方法和装置
CN103324872A (zh) * 2013-07-12 2013-09-25 上海交通大学 基于指令混淆的Android应用程序保护方法及系统

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1610219A1 (de) * 2004-06-23 2005-12-28 Renner, Peter Programmiersystem
CN102169535A (zh) * 2011-04-11 2011-08-31 桂林电子科技大学 一种基于关键词替换的文本密写方法
CN103150493A (zh) * 2013-02-28 2013-06-12 浙江中控技术股份有限公司 一种JavaScript代码的混淆方法和装置
CN103324872A (zh) * 2013-07-12 2013-09-25 上海交通大学 基于指令混淆的Android应用程序保护方法及系统

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105630526A (zh) * 2014-11-03 2016-06-01 阿里巴巴集团控股有限公司 脚本的加载控制方法及装置
CN105630526B (zh) * 2014-11-03 2019-04-19 阿里巴巴集团控股有限公司 脚本的加载控制方法及装置
CN104992083A (zh) * 2015-07-09 2015-10-21 广州视源电子科技股份有限公司 应用程序的代码混淆方法和系统
CN104992083B (zh) * 2015-07-09 2018-02-16 广州视源电子科技股份有限公司 应用程序的代码混淆方法和系统
CN106650428A (zh) * 2015-11-03 2017-05-10 阿里巴巴集团控股有限公司 用于优化应用代码的方法与设备
CN105354449A (zh) * 2015-11-04 2016-02-24 北京鼎源科技有限公司 一种面向Lua语言的加扰混淆方法和解密方法
CN105354449B (zh) * 2015-11-04 2018-08-21 北京鼎源科技有限公司 一种面向Lua语言的加扰混淆方法和解密方法
CN106897211A (zh) * 2015-12-21 2017-06-27 阿里巴巴集团控股有限公司 针对混淆脚本语言的定位方法和系统
CN109344575A (zh) * 2018-08-17 2019-02-15 北京奇虎科技有限公司 Lua脚本文件处理方法、装置及计算设备
CN111310133A (zh) * 2020-02-28 2020-06-19 西安四叶草信息技术有限公司 脚本混淆方法及装置

Also Published As

Publication number Publication date
CN103927164B (zh) 2017-06-06

Similar Documents

Publication Publication Date Title
CN103927164B (zh) 一种脚本混淆方法及系统
CN108363911B (zh) 一种Python脚本混淆、水印的方法及装置
CN103544414B (zh) 一种Android系统应用的深度代码混淆方法
CN103413075B (zh) 一种通过虚拟机保护java可执行程序的方法及设备
KR101545272B1 (ko) 안드로이드에서의 dex파일 바이너리 난독화 방법
CN108733988A (zh) 安卓平台上可执行程序的保护方法
KR101521765B1 (ko) 분간이 난해한 식별자 변환을 이용한 코드 난독화 장치 및 방법
US8589897B2 (en) System and method for branch extraction obfuscation
US8429637B2 (en) System and method for conditional expansion obfuscation
KR101861341B1 (ko) 애플리케이션 코드의 역난독화 장치 및 이를 이용한 애플리케이션 코드의 역난독화 방법
CN108537012B (zh) 基于变量和代码执行顺序的源代码混淆方法及装置
CN106599628A (zh) 一种基于模块钩子的Python字节码文件保护方法
Shynkarenko et al. Constructive-synthesizing structures and their grammatical interpretations. I. Generalized formal constructive-synthesizing structure
CN109948308A (zh) 代码安全保护方法、装置、电子设备和计算机可读存储介质
CN104463002A (zh) 一种加固apk的方法和装置以及apk加固客户端和服务器
CN103413073A (zh) 一种保护java可执行程序的方法及设备
CN103177199A (zh) 网页应用代码保护方法及系统和执行的提速方法及系统
CN105718765A (zh) 一种利用有限自动机实现代码混淆的方法
CN112115427A (zh) 代码混淆方法、装置、电子设备及存储介质
CN105930694A (zh) 用于模糊虚拟机的灵活指令集
CN109543368B (zh) 一种基于中间语言解释器的跨平台源码虚拟化保护方法
US8677149B2 (en) Method and system for protecting intellectual property in software
CN112052433A (zh) 一种Jar文件的虚拟化保护方法、终端及存储介质
CN111512307A (zh) 编译设备和方法
Kang et al. Obfus: An obfuscation tool for software copyright and vulnerability protection

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
TR01 Transfer of patent right

Effective date of registration: 20181212

Address after: Room 105-53811, No. 6 Baohua Road, Hengqin New District, Zhuhai City, Guangdong Province

Patentee after: Zhuhai Seal Interest Technology Co., Ltd.

Address before: 519070, six level 601F, 10 main building, science and technology road, Tangjia Bay Town, Zhuhai, Guangdong.

Patentee before: Zhuhai Juntian Electronic Technology Co.,Ltd.

TR01 Transfer of patent right