CN109885990A - 脚本管理方法 - Google Patents
脚本管理方法 Download PDFInfo
- Publication number
- CN109885990A CN109885990A CN201910179841.6A CN201910179841A CN109885990A CN 109885990 A CN109885990 A CN 109885990A CN 201910179841 A CN201910179841 A CN 201910179841A CN 109885990 A CN109885990 A CN 109885990A
- Authority
- CN
- China
- Prior art keywords
- file
- management file
- script
- management
- confidence level
- 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
Links
Landscapes
- Stored Programmes (AREA)
Abstract
本发明实施例公开了脚本管理方法,所述方法包括:接收服务器发送的第一管理文件,第一管理文件包括第一编译文件和加密后的第一可执行文件;检测第一管理文件的可信度;若第一管理文件的可信度小于预设阈值,则动态调整策略,并运行可信度大于或等于预设阈值的管理文件对应的脚本。采用本发明实施例,通过动态调整策略,并运行可信度大于或等于所述预设阈值的管理文件对应的脚本,可以提高客户端的安全性。
Description
技术领域
本发明涉及互联网技术领域,具体涉及数据处理技术领域,尤其涉及一种脚本管理方法。
背景技术
脚本的设计目的是为了嵌入应用程序中,从而为应用程序提供灵活的扩展和定制功能。为了避免脚本被第三方平台恶意调用,可以通过对脚本进行加密的方式保护脚本的内容。但如果第三方平台挂钩(hook)脚本的解密方法,则获取到加密后的脚本之后,可以通过反编译获得脚本的明文。第三方平台获取到脚本的明文之后,可以对该脚本进行恶意篡改,导致客户端的安全性存在隐患。
发明内容
本发明实施例提供了一种脚本管理方法,通过动态调整策略,并运行可信度大于或等于所述预设阈值的管理文件对应的脚本,可以提高客户端的安全性。
为了解决上述技术问题,第一方面,本发明实施例提供了一种脚本管理方法,所述方法包括:
接收服务器发送的第一管理文件,所述第一管理文件包括第一编译文件和加密后的第一可执行文件;
检测所述第一管理文件的可信度;
若所述第一管理文件的可信度小于预设阈值,则动态调整策略,并运行可信度大于或等于所述预设阈值的管理文件对应的脚本。
第二方面,本发明实施例提供了另一种脚本管理方法,所述方法包括:
接收客户端发送的数据获取请求,所述数据获取请求携带版本信息;
查找所述版本信息对应的第一管理文件,所述第一管理文件包括第一编译文件和加密后的第一可执行文件;
将所述第一管理文件发送给所述客户端。
第三方面,本发明实施例提供了一种脚本管理装置,所述装置包括用于执行第一方面所述的方法的单元。
第四方面,本发明实施例提供了一种脚本管理装置,所述装置包括用于执行第二方面所述的方法的单元。
第五方面,本发明实施例提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令当被客户端执行时使所述客户端执行如第一方面所述的方法。
第六方面,本发明实施例提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令当被服务器执行时使所述服务器执行如第二方面所述的方法。
第七方面,本发明实施例提供了一种客户端,该客户端包括:处理器、存储器和通信接口,存储器中存储有程序指令,处理器调用存储器中存储的程序指令以用于执行如第一方面所述的方法。
第八方面,本发明实施例提供了一种服务器,该服务器包括:处理器、存储器和通信接口,存储器中存储有程序指令,处理器调用存储器中存储的程序指令以用于执行如第二方面所述的方法。
实施本发明实施例,客户端接收服务器发送的第一管理文件,第一管理文件包括第一编译文件和加密后的第一可执行文件,检测第一管理文件的可信度,若第一管理文件的可信度小于预设阈值,则动态调整策略,并运行可信度大于或等于预设阈值的管理文件对应的脚本,可提高客户端的安全性。
附图说明
为了更清楚地说明本发明实施例技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种脚本管理系统的架构示意图;
图2为本发明实施例提供的一种脚本管理方法的流程示意图;
图3为本发明实施例提供的一种lua脚本的示意图;
图4为本发明实施例提供的一种脚本优化方法的流程示意图;
图5为本发明实施例提供的一种目标类型变量的示意图;
图6为本发明实施例提供的一种脚本管理装置的结构示意图;
图7为本发明实施例提供的一种客户端或者服务器的结构示意图。
具体实施方式
脚本(Script)是一种纯文本保存的程序,脚本是一系列控制计算机进行运算操作动作的组合,在其中可以实现一定的逻辑分支等。本发明实施例中的脚本可以为lua脚本或者JavaScript脚本等。lua脚本作为一种解释性动态语言,可在不更新外网数据包的基础上,对项目进行新内容的开发或者对已有的有问题的内容进行修复。JavaScript脚本被广泛用于Web应用开发,可以为网页添加各式各样的动态功能,为用户提供更流畅美观的浏览效果。脚本可以包括操作名及其对应的操作码。
可执行文件包括用脚本源码编译出的可执行程序,可执行程序为字节码(ByteCode)。例如,服务器可以配置luac编译工具,可以通过luac编译工具对lua脚本进行编译,得到luac可执行程序。
编译文件指的是对脚本进行加密得到的文件。例如服务器可以配置虚拟机,将luac可执行程序作为虚拟机的输入,进而在虚拟机中运行lua脚本,可修改操作名和操作码之间的对应关系,得到编译文件。
传统的脚本管理方法中,以QQ飞车手游为例,服务器可以使用高级加密标准(Advanced Encryption Standard,AES)算法加密lua脚本的明文,密钥存储在可变更的配置信息中。项目运行时,客户端先读取加密后的lua脚本和密钥,使用密钥对加密后的lua脚本进行解密,得到解密后的字符串。然后客户端把解密后的字符串发送给虚拟机执行。如果第三方平台hook加密后的lua脚本的解密方法,且获取到解密后的字符串,也可以通过反编译获得lua脚本的明文。第三方平台获取到lua脚本的明文之后,可以对该lua脚本进行恶意篡改,导致客户端的安全性存在隐患。其中,hook是操作系统中提供的一种用以替换磁盘操作系统(Disk Operating System,DOS)下“中断”的系统机制,可以称为“挂钩”或者“钩子”,可以根据系统服务描述符表(System Services Descriptor Table,SSDT)挂钩系统应用程序编程接口(Application Programming Interface,API),从而实现对操作系统中的已启动的进程进行监测。
基于此,本发明实施例提出一种脚本管理方案,该方案具体是:客户端接收服务器发送的第一管理文件,第一管理文件包括第一编译文件和加密后的第一可执行文件,客户端检测第一管理文件的可信度,若第一管理文件的可信度小于预设阈值,则客户端动态调整策略,并运行可信度大于或等于预设阈值的管理文件对应的脚本。本发明实施例在最新接收到的管理文件的可信度小于预设阈值时,可以动态调整策略,并运行可信度大于或等于预设阈值的管理文件对应的脚本,避免脚本遭到恶意调用,可提高客户端的安全性。
以图1所示的脚本管理系统的架构示意图为例,脚本管理系统可以包括客户端和服务器。服务器可以包括脚本编译工具、虚拟机、加密算法和输出设备。客户端可以包括检测模块、解密算法、还原模块和虚拟机。
其中,脚本编译工具可以对目标脚本进行编译,得到第一可执行文件。服务器将第一可执行文件发送给虚拟机,虚拟机使用第一可执行文件对目标脚本所包含的操作名和操作码之间的对应关系进行修改,得到第一编译文件。服务器还可以将第一可执行文件通过加密算法进行加密,得到加密后的第一可执行文件。服务器根据第一编译文件和加密后的第一可执行文件生成第一管理文件。输出设备将第一管理文件发送给客户端。
其中,检测模块接收到第一管理文件之后,可以检测第一管理文件的可信度。若第一管理文件的可信度小于预设阈值,则动态调整策略,并通过虚拟机运行可信度大于或者等于预设阈值的管理文件对应的脚本。若第一管理文件的可信度大于或者等于预设阈值,则客户端可以将加密后的第一可执行文件通过解密算法进行解密,得到第一可执行文件。还原模块使用第一可执行文件对第一编译文件包含的操作名和操作码的对应关系进行还原,得到目标脚本。虚拟机运行该目标脚本。
基于上述描述,本发明实施例提出一种如图2所示的脚本管理方法,该脚本管理方法可以包括以下步骤S201-S207:
S201,服务器对目标脚本进行编译,得到第一可执行文件,目标脚本包括操作名及其对应的操作码。
服务器可以配置脚本编译工具,通过脚本编译工具对目标脚本进行编译,得到第一可执行文件。目标脚本可以为当前需要进行编译的脚本,例如lua脚本或者JavaScript脚本等。
以lua脚本为例,lua脚本的源码Opcode的格式关键在下面这个宏:
#define opmode(t,a,b,c,m)(((t)<<7)|((a)<<6)|((b)<<4)|((c)<<2)|(m))
如表1所示,第0~1bit为m位,2~3bit为c位,4~5bit为b位,6bit为a位,7bit为t位,t,a,b,c,m四部分组成1byte的opcode。
表1
t(7) | a(6) | b(4~5) | c(2~3) | m(0~1) |
lua所有指令编码都在下面这个结构中:
Lua脚本中单条指令为32位,依参数的类型和个数不同,有三种模式,分别为iABC、iABx以及iAsBx,iABC的结构如表2所示:
表2
B(23~31) | C(14~22) | A(6~13) | opcode(0~5) |
iABx的结构如表3所示:
表3
Bx(14~31) | A(6~13) | opcode(0~5) |
iAsBx的结构如表4所示:
表4
sBx(14~31) | A(6~13) | opcode(0~5) |
三种模式中i表示6位的opcode,iABC表示三个参数的指令,iABx将iABC中的B和C合并为18位的无符号数,iAsBx将iABC中的B和C合并为18位的有符号数。
以图3所示的lua脚本的示意图为例,lua脚本可以包括操作名及其对应的操作码。例如操作名为⊕,对应的操作码为opmode1和opmode2,其逻辑关系为opmode1⊕opmode2。又如,操作名为∩,对应的操作码为opmode3和opmode4,其逻辑关系为opmode3∩opmode4。
S202,服务器使用第一可执行文件对操作名和操作码之间的对应关系进行修改,得到第一编译文件。
以图3为例,目标脚本可以包括包含操作名的第一数组luaP_opnames和包含操作码的第二数组luaP_opmodes,服务器可以生成索引数组array[index],将该索引数组按随机方式random(a)进行乱序,使用乱序后的索引数组对操作名和操作码之间的对应关系进行修改,得到第一编译文件。示例性的,第一数组为第二数组为目标脚本中操作名⊕对应的操作码为opmode1和opmode2,操作名∩对应的操作码为opmode3和opmode4。乱序后的索引数组可以为则修改后的操作名⊕对应的操作码为opmode3和opmode4,操作名∩对应的操作码为opmode1和opmode2。
S203,服务器使用预设密钥对第一可执行文件进行加密,得到加密后的第一可执行文件。
服务器使用第一可执行文件对操作名和操作码之间的对应关系进行修改,得到第一编译文件之后,可以使用预设密钥对第一可执行文件进行加密,得到加密后的第一可执行文件。例如,服务器可以将索引数组序列化成字符串,并用32bit的long将其内存对齐,然后用xxtea算法对字符串加密,得到加密后的第一可执行文件,其加密的密钥为sec。xxtea算法的实现过程可以为:在使用加密的时候,可以加入随机数,这样相同的明文,每次加密后得到不同的密文。需要说明的是,本申请实施例的加密算法包含但不限定于xxtea算法,可以通过其他更轻量级的算法做opcode index顺序的加密,例如微型加密算法(TinyEncryption Algorithm,TEA)。
S204,服务器根据第一编译文件和加密后的第一可执行文件,生成第一管理文件。
服务器可以将第一编译文件和加密后的第一可执行文件组合成第一管理文件,即第一管理文件包括编译文件和加密后的第一可执行文件。
S205,服务器将第一管理文件发送给客户端。
客户端可以运行在终端中,该终端可以包括但不限于:智能手机、台式电脑、笔记本电脑、膝上计算机等等
S206,客户端检测第一管理文件的可信度。
客户端接收到第一管理文件之后,可以检测第一管理文件的可信度。例如,当lua源码疑似被破解或者被劫持的时候,客户端可以确定第一管理文件的可信度小于预设阈值,进而执行步骤S207。当lua源码未被破解或者被劫持的时候,客户端可以确定第一管理文件的可信度大于或者等于预设阈值,进而根据第一编译文件和加密后的第一可执行文件,获取第一管理文件对应的脚本,并运行第一管理文件对应的脚本。
在一种实现方式中,客户端根据第一编译文件和加密后的第一可执行文件,获取第一管理文件对应的脚本的方式可以为:使用预设密钥对加密后的第一可执行文件进行解密,得到第一可执行文件,使用第一可执行文件对操作名和操作码之间的对应关系进行还原,得到第一管理文件对应的脚本。
例如,假设第一编译文件中操作名⊕对应的操作码为opmode3和opmode4,操作名∩对应的操作码为opmode1和opmode2,客户端对加密后的第一可执行文件进行解密得到的第一可执行文件为则客户端可以使用第一可执行文件对操作名和操作码之间的对应关系进行还原,还原后的操作名和操作码之间的对应关系为:操作名⊕对应的操作码为opmode1和opmode2,操作名∩对应的操作码为opmode3和opmode4。然后,客户端可以基于还原后的操作名及其对应的操作码,得到lua脚本。
在一种实现方式中,客户端使用预设密钥对加密后的第一可执行文件进行解密,得到第一可执行文件之前,可以获取预设密钥。密钥的获取方式可以包括但不限于如下两种:
一、客户端向服务器发送密钥获取请求,服务器响应该密钥获取请求将预设密钥发送给客户端。
二、客户端向内容分发网络(Content Delivery Network,CDN)节点发送密钥获取请求,密钥获取请求携带第一管理文件的版本信息和签名信息,CDN节点响应密钥获取请求查找到与该版本信息和签名信息匹配的预设密钥,将该预设密钥发送给客户端。
S207,若第一管理文件的可信度小于预设阈值,则客户端动态调整策略,并运行可信度大于或等于预设阈值的管理文件对应的脚本。
在一种实现方式中,客户端动态调整策略的方式可以包括但不限于如下两种:
一、客户端向服务器发送配置信息,服务器可以响应该配置信息动态生成第二管理文件,第二管理文件包括第二编译文件和加密后的第二可执行文件,其中第二可执行文件和第一可执行文件不相同,第二编译文件和第一编译文件也不相同。服务器将第二管理文件发送给客户端。客户端可以检测第二管理文件的可信度,若第二管理文件的可信度大于或等于预设阈值,则根据第二编译文件和加密后的第二可执行文件,获取第二管理文件对应的脚本,并运行第二管理文件对应的脚本。
二、客户端可以确定第一管理文件对应的脚本的版本信息,在客户端的本地查找该版本信息所指示的版本的上一个版本的脚本,并允许该脚本。
在该实施例中,使用lua脚本作为上层开发语言的最大优势在于动态下发更新,由于使用了打乱opcode顺序和加密的机制,并且使用预设密钥作为加密算法的密钥,可以将luac编译后的lua脚本字节码(即编译文件)和预设密钥通过服务器下发。
基于此,可以通过服务器和CDN节点来控制整个lua架构的灵活性和安全性,当lua源码疑似被破解或者被劫持的时候,可以通过配置下发新的加密后的可执行文件和重新加密编译的编译文件,或者通过开关控制客户端只从历史数据包内加载lua脚本,不再动态加载最新下发的lua脚本,以确保客户端的安全性。
在一种实现方式中,客户端可以加载客户端的本地数据包中的脚本,该脚本的版本信息为第一版本信息,第一版本信息所指示的版本为第一版本。进而客户端登录服务器,向服务器发送脚本获取请求,脚本获取请求携带第一版本信息和第二版本信息,服务器可以将第一版本的脚本和版本信息为第二版本信息的脚本进行比较,以生成增量文件,服务器将该增量文件发送给客户端。该实施例中服务器通过增量下发,可以提高数据传输效率。
在图2所示的实施例中,服务器对目标脚本进行编译,得到第一可执行文件,目标脚本包括操作名及其对应的操作码,然后使用第一可执行文件对操作名和操作码之间的对应关系进行修改,得到第一编译文件,并使用预设密钥对第一可执行文件进行加密,得到加密后的第一可执行文件。服务器将根据第一编译文件和加密后的第一可执行文件生成的第一管理文件发送给客户端。若第一管理文件的可信度小于预设阈值,则客户端动态调整策略,并运行可信度大于或等于预设阈值的管理文件对应的脚本,可提高目标脚本的安全性,以及提升客户端的容错率。
传统的脚本管理方法中,对脚本进行加密得到的密文在32bit的操作系统上和64bit的操作系统上是不一样的,即使用服务器中32位的虚拟机编译出来的编译文件,无法被客户端中64位的虚拟机识别;使用服务器中64位的虚拟机编译出来的编译文件,无法被客户端中32位的虚拟机识别。基于此,需要在每个android数据包中分别存储32位的虚拟机编译出来的编译文件以及64位的虚拟机编译出来的编译文件,且在每个ios数据包中分别存储32位的虚拟机编译出来的编译文件以及64位的虚拟机编译出来的编译文件,导致资源冗余。
结合图2所示的脚本管理方法,本发明实施例提供一种脚本优化方法,如图4所示,该脚本优化方法可以包括以下步骤S401-S402:
步骤S401,服务器在目标脚本中获取字节码文件。
服务器对目标脚本进行编译之前,可以在目标脚本中获取字节码文件。
以目标脚本为lua脚本为例,lua脚本在读/写字节码的时候,有两个地方使用到了size_t类型变量来存贮长度,一个是读/写字符串,一个是文件头部的size_t长度校验。而size_t是平台密切相关的,size_t类型变量的字节数和指针变量的字节数相等(sizeof(size_t)=sizeof(void*p)),因此在32、64位的系统上各不相同。服务器可以在lua脚本中获取字节码文件,即加载字节码文件lundump.c和写入字节码文件ldump.c。
步骤S402,服务器将字节码文件中的目标类型变量修改为预设类型变量。
服务器可以将字节码文件中的目标类型变量修改为预设类型变量。以图5所示的目标类型变量的示意图为例,目标类型变量可以为size_t,服务器可以将加载字节码文件中,涉及存档的size_t,换成uint32_t或者LUAI_UINT32。服务器还可以将写入字节码文件中,涉及存档的size_t,换成uint32_t或者LUAI_UINT32。该实施例中同一lua脚本可同时被32bit和64bit的lua虚拟机识别。
在一种实现方式中,服务器可以在lua源码的cmake编辑中加入OPTIMIZE_BYTECODE预编译宏,即可重新编译lua和luac可执行文件,用来编译和读取新的编译。
在图4所示的实施例中,服务器在目标脚本中获取字节码文件,将字节码文件中的目标类型变量修改为预设类型变量,可确保同一脚本可同时被32bit和64bit的虚拟机识别,无需同时向客户端发送使用32bit的虚拟机编译出来的编译文件和使用64bit的虚拟机编译出来的编译文件,提高数据传输效率,并提高客户端的运行效率。
请参见图6,图6是本发明实施例中提供的一种脚本管理装置的结构示意图,如图所示本发明实施例中的脚本管理装置至少可以包括接收单元601和处理单元602,其中:
接收单元601,用于接收服务器发送的第一管理文件,所述第一管理文件包括第一编译文件和加密后的第一可执行文件;
处理单元602,用于检测所述第一管理文件的可信度;
处理单元602,还用于若所述第一管理文件的可信度小于预设阈值,则动态调整策略,并运行可信度大于或等于所述预设阈值的管理文件对应的脚本。
在一种实现方式中,所述处理单元602若所述第一管理文件的可信度小于预设阈值,则动态调整策略,并运行可信度大于或等于所述预设阈值的管理文件对应的脚本,包括:
若所述第一管理文件的可信度小于预设阈值,则向所述服务器发送配置信息;
接收所述服务器响应所述配置信息动态生成的第二管理文件,所述第二管理文件包括第二编译文件和加密后的第二可执行文件。
在一种实现方式中,所述处理单元602,还用于在接收单元601接收所述服务器响应所述配置信息动态生成的第二管理文件之后,检测所述第二管理文件的可信度;
所述处理单元602,还用于若所述第二管理文件的可信度大于或等于所述预设阈值,则根据所述第二编译文件和所述加密后的第二可执行文件,获取所述第二管理文件对应的脚本;
所述处理单元602,还用于运行所述第二管理文件对应的脚本。
在一种实现方式中,所述处理单元602若所述第一管理文件的可信度小于预设阈值,则动态调整策略,并运行可信度大于或等于所述预设阈值的管理文件对应的脚本,包括:
若所述第一管理文件的可信度小于预设阈值,则获取可信度大于或等于所述预设阈值的管理文件对应的脚本;
运行所述可信度大于或等于所述预设阈值的管理文件对应的脚本。
在一种实现方式中,所述处理单元602在检测所述第一管理文件的安全性之后,若所述第一管理文件的可信度大于或等于所述预设阈值,则根据所述第一编译文件和所述加密后的第一可执行文件,获取所述第一管理文件对应的脚本;
所述处理单元602,还用于运行所述第一管理文件对应的脚本。
在一种实现方式中,所述第一编译文件包括操作名及其对应的操作码;
所述处理单元602根据所述第一编译文件和所述加密后的第一可执行文件,获取所述第一管理文件对应的脚本,包括:
使用预设密钥对所述加密后的第一可执行文件进行解密,得到第一可执行文件;
使用所述第一可执行文件对所述操作名和操作码之间的对应关系进行还原,得到所述第一管理文件对应的脚本。
在一种实现方式中,所述脚本管理装置还可以包括发送单元603;
发送单元603,用于在处理单元602使用预设密钥对所述加密后的第一可执行文件进行解密,得到第一可执行文件之前,向CDN节点发送密钥获取请求,所述密钥获取请求携带所述第一管理文件的版本信息和签名信息;
接收单元601,还用于接收所述内容分发网络节点响应所述密钥获取请求所发送的所述预设密钥。
本发明实施例中,接收单元601接收服务器发送的第一管理文件,处理单元602检测第一管理文件的可信度,若第一管理文件的可信度小于预设阈值,则动态调整策略,并运行可信度大于或等于预设阈值的管理文件对应的脚本,可提高脚本管理装置的安全性。
请参见图7,图7为本发明实施例提供的一种客户端的结构示意图,本发明实施例提供的客户端可以用于实施上述图2或图4所示的本发明实施例实现的方法,为了便于说明,仅示出了与本发明实施例相关的部分,具体技术细节未揭示的,请参照图2或图4所示的本发明实施例。
如图7所示,该客户端包括:至少一个处理器701,例如CPU,至少一个输入装置703,至少一个输出装置704,存储器705,至少一个通信总线702。其中,通信总线702用于实现这些组件之间的连接通信。其中,输入装置703、输出装置704具体可以为网络接口,用于与服务器进行交互。其中,存储器705可能包含高速RAM存储器,也可能还包括非不稳定的存储器,例如至少一个磁盘存储器,具体用于存储第一管理文件。存储器705可选的可以包含至少一个位于远离前述处理器701的存储装置。处理器701可以结合图6所示的脚本管理装置。存储器705中存储一组程序代码,且处理器701、输入装置703以及输出装置704调用存储器705中存储的程序代码,用于执行以下操作:
输入装置703接收服务器发送的第一管理文件,所述第一管理文件包括第一编译文件和加密后的第一可执行文件;
处理器701检测所述第一管理文件的可信度;
若所述第一管理文件的可信度小于预设阈值,则处理器701动态调整策略,并运行可信度大于或等于所述预设阈值的管理文件对应的脚本。
在一种实现方式中,所述若所述第一管理文件的可信度小于预设阈值,则处理器701动态调整策略,并运行可信度大于或等于所述预设阈值的管理文件对应的脚本,包括:
若所述第一管理文件的可信度小于预设阈值,则向所述服务器发送配置信息;
接收所述服务器响应所述配置信息动态生成的第二管理文件,所述第二管理文件包括第二编译文件和加密后的第二可执行文件。
在一种实现方式中,所述处理器701在输入装置703接收所述服务器响应所述配置信息动态生成的第二管理文件之后,检测所述第二管理文件的可信度;
若所述第二管理文件的可信度大于或等于所述预设阈值,则处理器701根据所述第二编译文件和所述加密后的第二可执行文件,获取所述第二管理文件对应的脚本;
所述处理器701运行所述第二管理文件对应的脚本。
在一种实现方式中,若所述第一管理文件的可信度小于预设阈值,则处理器701动态调整策略,并运行可信度大于或等于所述预设阈值的管理文件对应的脚本,包括:
若所述第一管理文件的可信度小于预设阈值,则获取可信度大于或等于所述预设阈值的管理文件对应的脚本;
运行所述可信度大于或等于所述预设阈值的管理文件对应的脚本。
在一种实现方式中,所述处理器701在检测所述第一管理文件的安全性之后,若所述第一管理文件的可信度大于或等于所述预设阈值,则根据所述第一编译文件和所述加密后的第一可执行文件,获取所述第一管理文件对应的脚本;
处理器701运行所述第一管理文件对应的脚本。
在一种实现方式中,所述第一编译文件包括操作名及其对应的操作码;
处理器701根据所述第一编译文件和所述加密后的第一可执行文件,获取所述第一管理文件对应的脚本,包括:
使用预设密钥对所述加密后的第一可执行文件进行解密,得到第一可执行文件;
使用所述第一可执行文件对所述操作名和操作码之间的对应关系进行还原,得到所述第一管理文件对应的脚本。
在一种实现方式中,输出装置704在处理器701使用预设密钥对所述加密后的第一可执行文件进行解密,得到第一可执行文件之前,向CDN节点发送密钥获取请求,所述密钥获取请求携带所述第一管理文件的版本信息和签名信息;
输入装置703接收所述内容分发网络节点响应所述密钥获取请求所发送的所述预设密钥。
具体的,本发明实施例中介绍的服务器可以用以实施本发明结合图2或图4介绍的方法实施例中的部分或全部流程。
请参见图6,图6是本发明实施例中提供的一种脚本管理装置的结构示意图,如图所示本发明实施例中的脚本管理装置至少可以包括接收单元601、处理单元602和发送单元603,其中:
接收单元601,用于接收客户端发送的数据获取请求,所述数据获取请求携带版本信息;
处理单元602,用于查找所述版本信息对应的第一管理文件,所述第一管理文件包括第一编译文件和加密后的第一可执行文件;
发送单元603,用于将所述第一管理文件发送给所述客户端。
在一种实现方式中,所述处理单元602,还用于在查找所述版本信息对应的第一管理文件之前,对目标脚本进行编译,得到第一可执行文件,所述目标脚本包括操作名及其对应的操作码;
所述处理单元602,还用于使用所述第一可执行文件对操作名和操作码之间的对应关系进行修改,得到第一编译文件;
所述处理单元602,还用于使用预设密钥对所述第一可执行文件进行加密,得到加密后的第一可执行文件;
所述处理单元602,还用于根据所述第一编译文件和所述加密后的第一可执行文件,生成所述第一管理文件。
在一种实现方式中,所述处理单元602,还用于在所述目标脚本中获取字节码文件;
所述处理单元602,还用于将所述字节码文件中的目标类型变量修改为预设类型变量。
本发明实施例中,接收单元601接收客户端发送的数据获取请求,所述数据获取请求携带版本信息,处理单元602查找所述版本信息对应的第一管理文件,所述第一管理文件包括第一编译文件和加密后的第一可执行文件,发送单元603将所述第一管理文件发送给所述客户端,可提高客户端的安全性。
请参见图7,图7为本发明实施例提供的一种服务器的结构示意图,本发明实施例提供的服务器可以用于实施上述图2或图4所示的本发明实施例实现的方法,为了便于说明,仅示出了与本发明实施例相关的部分,具体技术细节未揭示的,请参照图2或图4所示的本发明实施例。
如图7所示,该服务器包括:至少一个处理器701,例如CPU,至少一个输入装置703,至少一个输出装置704,存储器705,至少一个通信总线702。其中,通信总线702用于实现这些组件之间的连接通信。其中,输入装置703、输出装置704具体可以为网络接口,用于与客户端进行交互。其中,存储器705可能包含高速RAM存储器,也可能还包括非不稳定的存储器,例如至少一个磁盘存储器,具体用于存储第一管理文件和第一可执行文件。存储器705可选的可以包含至少一个位于远离前述处理器701的存储装置。处理器701可以结合图6所示的脚本管理装置。存储器705中存储一组程序代码,且处理器701、输入装置703以及输出装置704调用存储器705中存储的程序代码,用于执行以下操作:
输入装置703接收客户端发送的数据获取请求,所述数据获取请求携带版本信息;
处理器701查找所述版本信息对应的第一管理文件,所述第一管理文件包括第一编译文件和加密后的第一可执行文件;
输出装置704将所述第一管理文件发送给所述客户端。
在一种实现方式中,所述处理器701在查找所述版本信息对应的第一管理文件之前,对目标脚本进行编译,得到第一可执行文件,所述目标脚本包括操作名及其对应的操作码;
处理器701使用所述第一可执行文件对操作名和操作码之间的对应关系进行修改,得到第一编译文件;
处理器701使用预设密钥对所述第一可执行文件进行加密,得到加密后的第一可执行文件;
处理器701根据所述第一编译文件和所述加密后的第一可执行文件,生成所述第一管理文件。
在一种实现方式中,所述处理器701在所述目标脚本中获取字节码文件;
处理器701将所述字节码文件中的目标类型变量修改为预设类型变量。
具体的,本发明实施例中介绍的服务器可以用以实施本发明结合图2或图4介绍的方法实施例中的部分或全部流程。
以上所揭露的仅为本发明较佳实施例而已,当然不能以此来限定本发明之权利范围,因此依本发明权利要求所作的等同变化,仍属本发明所涵盖的范围。
Claims (10)
1.一种脚本管理方法,其特征在于,所述方法包括:
接收服务器发送的第一管理文件,所述第一管理文件包括第一编译文件和加密后的第一可执行文件;
检测所述第一管理文件的可信度;
若所述第一管理文件的可信度小于预设阈值,则动态调整策略,并运行可信度大于或等于所述预设阈值的管理文件对应的脚本。
2.如权利要求1所述的方法,其特征在于,所述若所述第一管理文件的可信度小于预设阈值,则动态调整策略,并运行可信度大于或等于所述预设阈值的管理文件对应的脚本,包括:
若所述第一管理文件的可信度小于预设阈值,则向所述服务器发送配置信息;
接收所述服务器响应所述配置信息动态生成的第二管理文件,所述第二管理文件包括第二编译文件和加密后的第二可执行文件。
3.如权利要求2所述的方法,其特征在于,所述接收所述服务器响应所述配置信息动态生成的第二管理文件之后,还包括:
检测所述第二管理文件的可信度;
若所述第二管理文件的可信度大于或等于所述预设阈值,则根据所述第二编译文件和所述加密后的第二可执行文件,获取所述第二管理文件对应的脚本;
运行所述第二管理文件对应的脚本。
4.如权利要求1所述的方法,其特征在于,所述若所述第一管理文件的可信度小于预设阈值,则动态调整策略,并运行可信度大于或等于所述预设阈值的管理文件对应的脚本,包括:
若所述第一管理文件的可信度小于预设阈值,则获取可信度大于或等于所述预设阈值的管理文件对应的脚本;
运行所述可信度大于或等于所述预设阈值的管理文件对应的脚本。
5.如权利要求1所述的方法,其特征在于,所述检测所述第一管理文件的安全性之后,还包括:
若所述第一管理文件的可信度大于或等于所述预设阈值,则根据所述第一编译文件和所述加密后的第一可执行文件,获取所述第一管理文件对应的脚本;
运行所述第一管理文件对应的脚本。
6.如权利要求5所述的方法,其特征在于,所述第一编译文件包括操作名及其对应的操作码;
所述根据所述第一编译文件和所述加密后的第一可执行文件,获取所述第一管理文件对应的脚本,包括:
使用预设密钥对所述加密后的第一可执行文件进行解密,得到第一可执行文件;
使用所述第一可执行文件对所述操作名和操作码之间的对应关系进行还原,得到所述第一管理文件对应的脚本。
7.如权利要求6所述的方法,其特征在于,所述使用预设密钥对所述加密后的第一可执行文件进行解密,得到第一可执行文件之前,还包括:
向内容分发网络节点发送密钥获取请求,所述密钥获取请求携带所述第一管理文件的版本信息和签名信息;
接收所述内容分发网络节点响应所述密钥获取请求所发送的所述预设密钥。
8.一种脚本管理方法,其特征在于,所述方法包括:
接收客户端发送的数据获取请求,所述数据获取请求携带版本信息;
查找所述版本信息对应的第一管理文件,所述第一管理文件包括第一编译文件和加密后的第一可执行文件;
将所述第一管理文件发送给所述客户端。
9.如权利要求8所述的方法,其特征在于,所述查找所述版本信息对应的第一管理文件之前,还包括:
对目标脚本进行编译,得到第一可执行文件,所述目标脚本包括操作名及其对应的操作码;
使用所述第一可执行文件对操作名和操作码之间的对应关系进行修改,得到第一编译文件;
使用预设密钥对所述第一可执行文件进行加密,得到加密后的第一可执行文件;
根据所述第一编译文件和所述加密后的第一可执行文件,生成所述第一管理文件。
10.如权利要求8所述的方法,其特征在于,所述方法还包括:
在所述目标脚本中获取字节码文件;
将所述字节码文件中的目标类型变量修改为预设类型变量。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910179841.6A CN109885990B (zh) | 2019-03-11 | 2019-03-11 | 脚本管理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910179841.6A CN109885990B (zh) | 2019-03-11 | 2019-03-11 | 脚本管理方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109885990A true CN109885990A (zh) | 2019-06-14 |
CN109885990B CN109885990B (zh) | 2021-01-29 |
Family
ID=66931591
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910179841.6A Active CN109885990B (zh) | 2019-03-11 | 2019-03-11 | 脚本管理方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109885990B (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111770170A (zh) * | 2020-06-29 | 2020-10-13 | 北京百度网讯科技有限公司 | 请求处理方法、装置、设备和计算机存储介质 |
CN112835543A (zh) * | 2021-01-11 | 2021-05-25 | 上海电气集团股份有限公司 | 一种工程图的展示方法及装置 |
CN112948773A (zh) * | 2021-02-07 | 2021-06-11 | 深圳市大梦龙途文化传播有限公司 | 脚本加密与解密方法、终端设备及可读存储介质 |
CN113495895A (zh) * | 2020-04-02 | 2021-10-12 | 北京京东振世信息技术有限公司 | 一种更新数据的方法和装置 |
CN114866241A (zh) * | 2022-07-06 | 2022-08-05 | 深圳华大北斗科技股份有限公司 | Se芯片的通信加密方法、装置及存储介质 |
CN112948773B (zh) * | 2021-02-07 | 2024-05-24 | 深圳市大梦龙途文化传播有限公司 | 脚本加密与解密方法、终端设备及可读存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102207879A (zh) * | 2011-06-14 | 2011-10-05 | 贵阳朗玛信息技术股份有限公司 | Lua脚本热更新方法及系统 |
CN107426201A (zh) * | 2017-07-13 | 2017-12-01 | 北京金山安全管理系统技术有限公司 | 可执行文件的处理方法及装置、存储介质和处理器 |
CN108710500A (zh) * | 2018-05-23 | 2018-10-26 | 北京五八信息技术有限公司 | 资源发布方法、更新方法和装置 |
CN108829396A (zh) * | 2018-06-15 | 2018-11-16 | 腾讯科技(深圳)有限公司 | 脚本编译的方法、脚本执行的方法、相关装置及系统 |
CN109002392A (zh) * | 2018-06-29 | 2018-12-14 | 郑州云海信息技术有限公司 | 一种软件开发脚本管理方法及系统 |
-
2019
- 2019-03-11 CN CN201910179841.6A patent/CN109885990B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102207879A (zh) * | 2011-06-14 | 2011-10-05 | 贵阳朗玛信息技术股份有限公司 | Lua脚本热更新方法及系统 |
CN107426201A (zh) * | 2017-07-13 | 2017-12-01 | 北京金山安全管理系统技术有限公司 | 可执行文件的处理方法及装置、存储介质和处理器 |
CN108710500A (zh) * | 2018-05-23 | 2018-10-26 | 北京五八信息技术有限公司 | 资源发布方法、更新方法和装置 |
CN108829396A (zh) * | 2018-06-15 | 2018-11-16 | 腾讯科技(深圳)有限公司 | 脚本编译的方法、脚本执行的方法、相关装置及系统 |
CN109002392A (zh) * | 2018-06-29 | 2018-12-14 | 郑州云海信息技术有限公司 | 一种软件开发脚本管理方法及系统 |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113495895A (zh) * | 2020-04-02 | 2021-10-12 | 北京京东振世信息技术有限公司 | 一种更新数据的方法和装置 |
CN113495895B (zh) * | 2020-04-02 | 2023-11-03 | 北京京东振世信息技术有限公司 | 一种更新数据的方法和装置 |
CN111770170A (zh) * | 2020-06-29 | 2020-10-13 | 北京百度网讯科技有限公司 | 请求处理方法、装置、设备和计算机存储介质 |
US11689630B2 (en) | 2020-06-29 | 2023-06-27 | Beijing Baidu Netcom Science And Technology Co., Ltd. | Request processing method and apparatus, electronic device, and computer storage medium |
CN112835543A (zh) * | 2021-01-11 | 2021-05-25 | 上海电气集团股份有限公司 | 一种工程图的展示方法及装置 |
CN112835543B (zh) * | 2021-01-11 | 2024-04-12 | 上海电气集团股份有限公司 | 一种工程图的展示方法及装置 |
CN112948773A (zh) * | 2021-02-07 | 2021-06-11 | 深圳市大梦龙途文化传播有限公司 | 脚本加密与解密方法、终端设备及可读存储介质 |
CN112948773B (zh) * | 2021-02-07 | 2024-05-24 | 深圳市大梦龙途文化传播有限公司 | 脚本加密与解密方法、终端设备及可读存储介质 |
CN114866241A (zh) * | 2022-07-06 | 2022-08-05 | 深圳华大北斗科技股份有限公司 | Se芯片的通信加密方法、装置及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN109885990B (zh) | 2021-01-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11409949B2 (en) | Mobile device resource provisioning system and method | |
CN109885990A (zh) | 脚本管理方法 | |
US8417640B2 (en) | Secure license key method and system | |
US20080235258A1 (en) | Method and Apparatus for Processing Extensible Markup Language Security Messages Using Delta Parsing Technology | |
US8812683B2 (en) | Service scripting framework | |
WO2015109321A1 (en) | Intercepting and supervising calls to transformed operations and objects | |
CN105022936A (zh) | 一种类class文件加密解密方法和装置 | |
CN106295255A (zh) | 应用程序的加固方法和装置 | |
CN104301289B (zh) | 用于安全性信息交互的设备 | |
CN110138818B (zh) | 传递参数的方法、网站应用、系统、装置以及服务后端 | |
CN109784007A (zh) | 一种字节码加密的方法、字节码解密的方法及终端 | |
CN104063225B (zh) | 锁屏主题开发方法及装置 | |
CN103647636B (zh) | 安全访问数据的方法及装置 | |
CN109740315A (zh) | 基于安卓平台的常量保护方法、装置、设备及存储介质 | |
CN111159053A (zh) | 一种测试方法、装置及存储介质 | |
US20130066954A1 (en) | Computer software analysis system, client computer, method of controlling operation of same and operation program therefor | |
CN111680477A (zh) | 导出电子表格文件的方法、装置、计算机设备及存储介质 | |
CN106897587A (zh) | 加固应用、加载加固应用的方法和装置 | |
Loke et al. | Secure Prolog-based mobile code | |
WO2016201853A1 (zh) | 加解密功能的实现方法、装置及服务器 | |
CN112671734A (zh) | 面向多数据源的报文处理方法及其相关设备 | |
CN110213105A (zh) | 一种跨平台微应用创建方法 | |
EP1785901A1 (en) | Secure License Key Method and System | |
CN111488169A (zh) | 应用程序热更新的方法及装置、存储介质及电子设备 | |
CN112153012B (zh) | 多端触点接入方法、装置及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | 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 |