CN111290781A - Npk方式打包脚本、运行npk格式脚本文件的方法及装置 - Google Patents

Npk方式打包脚本、运行npk格式脚本文件的方法及装置 Download PDF

Info

Publication number
CN111290781A
CN111290781A CN202010164261.2A CN202010164261A CN111290781A CN 111290781 A CN111290781 A CN 111290781A CN 202010164261 A CN202010164261 A CN 202010164261A CN 111290781 A CN111290781 A CN 111290781A
Authority
CN
China
Prior art keywords
script
decryption
encrypted
target
encryption
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.)
Pending
Application number
CN202010164261.2A
Other languages
English (en)
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.)
Netease Hangzhou Network Co Ltd
Original Assignee
Netease Hangzhou Network 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 Netease Hangzhou Network Co Ltd filed Critical Netease Hangzhou Network Co Ltd
Priority to CN202010164261.2A priority Critical patent/CN111290781A/zh
Publication of CN111290781A publication Critical patent/CN111290781A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/12Protecting executable software
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing 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/2107File encryption

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Multimedia (AREA)
  • Technology Law (AREA)
  • Computer Hardware Design (AREA)
  • Storage Device Security (AREA)

Abstract

本申请提供一种NPK方式打包脚本、运行NPK格式脚本文件的方法及装置,涉及数据处理技术领域。该NPK方式打包脚本的方法通过对解密脚本进行加密运算,获得加密后的解密脚本;采用加密脚本对待加密的目标脚本进行加密运算,获得加密后的目标脚本;进而将加密后的解密脚本、加密后的目标脚本打包生成目标NPK包,并向客户端发送目标NPK包时,由于不仅对目标脚本不仅进行了加密,而且还对解密脚本进行了加密,使得解密脚本不再以明文的方式存在于目标NPK包,因此,通过两个加密运算,可以降低目标脚本被泄露甚至被篡改的风险,提高目标脚本的安全性。

Description

NPK方式打包脚本、运行NPK格式脚本文件的方法及装置
技术领域
本申请涉及数据处理技术领域,特别涉及一种NPK方式打包脚本、运行NPK格式脚本文件的方法及装置。
背景技术
Python作为一种面向对象的动态类型语言,由于其具有可扩展性、可嵌入性、可移植性等多种特点,因此被广泛应用于人工智能、软件开发等多个领域。以应用于游戏开发过程中为例,在游戏开发中,为了保护游戏脚本不被反编译,常常需要将游戏脚本进行加密打包。
现有的加密打包方式中,NPK格式是由网龙公司开发的一种软件安装包格式,作为一种典型的加密打包方式,其主要是在Python脚本进行了字节码混淆的基础上,对Python脚本进行了一次加密。
但现有的方案中,由于只对Python脚本进行了一次加密,加密过程较简单,因此Python脚本存在被反编译的风险,安全性不高。
发明内容
本申请的目的在于,针对上述现有技术中的不足,提供一种NPK方式打包脚本、运行NPK格式脚本文件的方法及装置,可以解决现有技术中NPK方式打包脚本,脚本安全性不高的技术问题。
为实现上述目的,本申请实施例采用的技术方案如下:
第一方面,本申请实施例提供了一种NPK方式打包脚本的方法,包括:
对解密脚本进行加密运算,获得加密后的解密脚本;采用加密脚本对待加密的目标脚本进行加密运算,获得加密后的目标脚本;将所述加密后的解密脚本、所述加密后的目标脚本打包生成目标NPK包并向客户端发送所述目标NPK包,其中,所述解密脚本与所述加密脚本为互逆运算的脚本。
可选地,所述对解密脚本进行加密运算,获得加密后的解密脚本,包括:对所述解密脚本进行编译,获得编译后的解密脚本;对所述编译后的解密脚本进行加密运算,获得加密后的解密脚本。
可选地,所述对所述编译后的解密脚本进行加密运算,获得加密后的解密脚本,包括:采用第一加密算法和第一密钥对所述编译后的解密脚本进行加密运算,获得第一解密脚本,所述第一密钥根据多个第一参数和第一加密函数获得;采用第二加密算法和第二密钥对所述第一解密脚本进行加密运算,获得加密后的解密脚本,所述第二密钥根据多个第二参数和第二加密函数获得。
可选地,所述采用加密脚本对待加密的目标脚本进行加密运算,获得加密后的目标脚本,包括:对所述待加密的目标脚本进行编译,获得编译后的目标脚本;对所述编译后的目标脚本进行压缩处理,获得压缩后的目标脚本;采用所述加密脚本的加密算法和第三密钥对所述压缩后的目标脚本进行加密运算,获得所述加密后的目标脚本,所述第三密钥根据多个第三参数和第三加密函数获得。
可选地,所述对所述待加密的目标脚本进行编译,获得编译后的目标脚本,包括:对所述待加密的目标脚本进行静态库编译,获得编译后的目标脚本。
可选地,所述对所述待加密的目标脚本进行编译,获得编译后的目标脚本之后,以及对所述编译后的目标脚本进行压缩处理之前,还包括:对所述编译后的目标脚本进行扰码处理。
可选地,上述方法还包括:获取接收到客户端发送的第一访问请求的第一时间和第二访问请求的第二时间,所述第一访问请求和所述第二访问请求为所述客户端按预设时间间隔发送的时间获取请求;计算所述第一时间与所述第二时间的时间差;若所述时间差大于所述预设时间间隔,向所述客户端发送断开指令,所述断开指令用于断开与所述客户端之间的数据交互。
第二方面,本申请实施例提供了一种运行NPK格式脚本文件的方法,包括:接收服务器发送的NPK包,所述NPK包包括:加密的解密脚本和通过加密脚本加密的目标脚本,其中,所述加密脚本与所述解密脚本为互逆运算的脚本;对所述加密的解密脚本进行解密运算,获得解密后的解密脚本;根据所述解密后的解密脚本,对所述加密的目标脚本进行解密运算,获得解密后的目标脚本。
可选地,所述对所述加密的解密脚本进行解密运算,获得解密后的解密脚本,包括:采用第一解密算法和第二密钥对所述加密的解密脚本进行解密运算,获得第二解密脚本,所述第二密钥根据多个第二参数和第二解密函数获得,多个所述第二参数通过向服务器发送第二请求指令获取;采用第二解密算法和第一密钥对所述第二解密脚本进行解密运算,获得解密后的解密脚本,所述第一密钥根据多个第一参数和第一解密函数获得,多个所述第一参数通过向服务器发送第一请求指令获取。
可选地,所述根据所述解密后的解密脚本,对所述加密的目标脚本进行解密运算,获得解密后的目标脚本,包括:采用所述解密脚本的解密算法和第三密钥对所述加密的目标脚本进行解密运算,获得解密后的目标脚本,所述第三密钥根据多个第三参数和第三解密函数获得,多个所述第三参数通过向服务器发送第三请求指令获取。
可选地,所述根据所述解密后的解密脚本,对所述加密的目标脚本进行解密运算,获得解密后的目标脚本之后,还包括:对所述解密后的目标脚本进行解压处理,获得解压后的目标脚本;对所述解压后的目标脚本进行字节码恢复,获取处理后的目标脚本。
可选地,上述方法还包括:按照预设时间间隔向服务器发送第一访问请求和第二访问请求;接收所述服务器发送的断开指令,所述断开指令用于断开与所述服务器之间的数据交互。
可选地,上述方法还包括:接收加载所述目标脚本的加载指令;根据所述加载指令,加载所述解密后的目标脚本。
第三方面,本申请实施例提供了一种NPK方式打包脚本的装置,包括:第一加密模块、第二加密模块和打包模块;所述第一加密模块,用于对解密脚本进行加密运算,获得加密后的解密脚本;所述第二加密模块,用于采用加密脚本对待加密的目标脚本进行加密运算,获得加密后的目标脚本;所述打包模块,用于将所述加密后的解密脚本、所述加密后的目标脚本打包生成目标NPK包并向客户端发送所述目标NPK包,其中,所述解密脚本与所述加密脚本为互逆运算的脚本。
可选地,上述第一加密模块,具体用于对所述解密脚本进行编译,获得编译后的解密脚本;对所述编译后的解密脚本进行加密运算,获得加密后的解密脚本。
可选地,上述第一加密模块,具体用于采用第一加密算法和第一密钥对所述编译后的解密脚本进行加密运算,获得第一解密脚本,所述第一密钥根据多个第一参数和第一加密函数获得;采用第二加密算法和第二密钥对所述第一解密脚本进行加密运算,获得加密后的解密脚本,所述第二密钥根据多个第二参数和第二加密函数获得。
可选地,上述第二加密模块,具体用于对所述待加密的目标脚本进行编译,获得编译后的目标脚本;对所述编译后的目标脚本进行压缩处理,获得压缩后的目标脚本;采用所述加密脚本的加密算法和第三密钥对所述压缩后的目标脚本进行加密运算,获得所述加密后的目标脚本,所述第三密钥根据多个第三参数和第三加密函数获得。
可选地,上述第二加密模块,具体用于对所述待加密的目标脚本进行静态库编译,获得编译后的目标脚本。
可选地,上述第二加密模块,还用于对所述编译后的目标脚本进行扰码处理。
可选地,上述装置还包括获取模块、计算模块及发送模块;所述获取模块,用于获取接收到客户端发送的第一访问请求的第一时间和第二访问请求的第二时间,所述第一访问请求和所述第二访问请求为所述客户端按预设时间间隔发送的时间获取请求;所述计算模块,用于计算所述第一时间与所述第二时间的时间差;所述发送模块,用于若所述时间差大于所述预设时间间隔,向所述客户端发送断开指令,所述断开指令用于断开与所述客户端之间的数据交互。
第四方面,本申请实施例提供了一种运行NPK格式脚本文件的装置,包括:第一接收模块、第一解密模块和第二解密模块;所述第一接收模块,用于接收服务器发送的NPK包,所述NPK包包括:加密的解密脚本和通过加密脚本加密的目标脚本,其中,所述加密脚本与所述解密脚本为互逆运算的脚本;所述第一解密模块,用于对所述加密的解密脚本进行解密运算,获得解密后的解密脚本;所述第二解密模块,用于根据所述解密后的解密脚本,对所述加密的目标脚本进行解密运算,获得解密后的目标脚本。
可选地,所述第一解密模块,具体用于采用第一解密算法和第二密钥对所述加密的解密脚本进行解密运算,获得第二解密脚本,所述第二密钥根据多个第二参数和第二解密函数获得,多个所述第二参数通过向服务器发送第二请求指令获取;采用第二解密算法和第一密钥对所述第二解密脚本进行解密运算,获得解密后的解密脚本,所述第一密钥根据多个第一参数和第一解密函数获得,多个所述第一参数通过向服务器发送第一请求指令获取。
可选地,所述第二解密模块,具体用于采用所述解密脚本的解密算法和第三密钥对所述加密的目标脚本进行解密运算,获得解密后的目标脚本,所述第三密钥根据多个第三参数和第三解密函数获得,多个所述第三参数通过向服务器发送第三请求指令获取。
可选地,所述第二解密模块,还用于对所述解密后的目标脚本进行解压处理,获得解压后的目标脚本;对所述解压后的目标脚本进行字节码恢复,获取处理后的目标脚本。
可选地,上述装置还包括发送模块和第二接收模块,所述发送模块,具体用于按照预设时间间隔向服务器发送第一访问请求和第二访问请求;所述第二接收模块,具体用于接收所述服务器发送的断开指令,所述断开指令用于断开与所述服务器之间的数据交互。
可选地,上述装置还包括加载模块,用于接收加载所述目标脚本的加载指令;根据所述加载指令,加载所述解密后的目标脚本。
第五方面,本申请实施例提供了一种电子设备,包括:处理器、存储介质和总线,存储介质存储有处理器可执行的机器可读指令,当电子设备运行时,处理器与存储介质之间通过总线通信,处理器执行机器可读指令,以执行上述第一方面或第二方面方法的步骤。
第六方面,本申请实施例提供了一种存储介质,存储介质上存储有计算机程序,计算机程序被处理器运行时执行如执行上述第一方面或第二方面方法的步骤。
本申请的有益效果是:
本申请实施例提供的一种NPK方式打包脚本、运行NPK格式脚本文件的方法及装置,其中,NPK方式打包脚本的方法通过对解密脚本进行加密运算,获得加密后的解密脚本;采用加密脚本对待加密的目标脚本进行加密运算,获得加密后的目标脚本;进而将加密后的解密脚本、加密后的目标脚本打包生成目标NPK包,并向客户端发送目标NPK包时,由于不仅对目标脚本不仅进行了加密,而且还对解密脚本进行了加密,使得解密脚本不再以明文的方式存在于目标NPK包,因此,通过两个加密运算,可以降低目标脚本被泄露甚至被篡改的风险,提高目标脚本的安全性。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本申请实施例提供的一种NPK方式打包脚本的方法的流程示意图;
图2为本申请实施例提供的另一种NPK方式打包脚本的方法的流程示意图;
图3为本申请实施例提供的又一种NPK方式打包脚本的方法的流程示意图;
图4为本申请实施例提供的一种NPK方式打包解密脚本的流程示意图;
图5为本申请实施例提供的另一种NPK方式打包脚本的方法的流程示意图;
图6为本申请实施例提供的一种NPK方式打包目标脚本的流程示意图;
图7为本申请实施例提供的又一种NPK方式打包脚本的方法的流程示意图;
图8为本申请实施例提供的一种运行NPK格式脚本文件的方法的流程示意图;
图9为本申请实施例提供的又一种运行NPK格式脚本文件的方法的流程示意图;
图10为本申请实施例提供的一种获取解密后的解密脚本的流程示意图;
图11为本申请实施例提供的一种获取解密后的目标脚本的流程示意图;
图12为本申请实施例提供的另一种运行NPK格式脚本文件的方法的流程示意图;
图13为本申请实施例提供的又一种运行NPK格式脚本文件的方法的流程示意图;
图14为本申请实施例提供的另一种运行NPK格式脚本文件的方法的流程示意图;
图15为本申请实施例提供的一种NPK方式打包脚本的装置的结构示意图;
图16为本申请实施例提供的另一种NPK方式打包脚本的装置的结构示意图;
图17为本申请实施例提供的另一种运行NPK格式脚本文件的装置的结构示意图;
图18为本申请实施例提供的又一种运行NPK格式脚本文件的装置的结构示意图;
图19为本申请实施例提供的一种电子设备结构示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。
因此,以下对在附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
图1为本申请实施例提供的一种NPK方式打包脚本的方法的流程示意图,该方法的执行主体可以是进行NPK方式打包脚本的服务器,该服务器可以与运行该脚本的客户端进行数据交互,该客户端可以集成于计算机、移动终端、平板电脑等设备,如图1所示,该方法包括:
S101、对解密脚本进行加密运算,获得加密后的解密脚本。
S102、采用加密脚本对待加密的目标脚本进行加密运算,获得加密后的目标脚本。
上述解密脚本用于对加密后的目标脚本进行解密,而加密脚本用于对待加密的目标脚本进行加密运算,也即,对某待加密的目标脚本,服务器可以先采用加密脚本对该待加密的目标脚本进行加密运算,而在客户端需要运行或加载时,可以采用解密脚本对加密后的目标脚本进行解密,从而获得解密后的目标脚本,而解密后的目标脚本即可用于运行或加载;而在此过程中,由于对解密脚本也进行了加密运算,使得解密脚本不再是以明文的格式存在,进而提高了目标脚本的安全性。需要说明的是,该目标脚本可以是Python脚本、JavaScript脚本等,本申请在此并不限定目标脚本的脚本类型。
其中,解密脚本和加密脚本可以基于任意算法实现,比如,字节码混淆、插入扰码、对称加密等算法。本申请实施例在此以对称加密算法为例进行说明,比如,可以基于高级加密标准(Advanced Encryption Standard,AES)、三重数据加密算法(Triple DataEncryption Algorithm,TDEA)等加密算法中的一种或多种的组合实现。
S103、将加密后的解密脚本、加密后的目标脚本打包生成目标NPK包,并向客户端发送目标NPK包。
其中,解密脚本与加密脚本为互逆运算的脚本,也即,采用加密脚本对待加密的目标脚本进行加密后,可以采用解密脚本完成解密,从而得到加密前的目标脚本。
在对解密脚本和目标脚本进行加密后,可以将加密后的解密脚本、加密后的目标脚本打包生成目标NPK包,并向客户端发送目标NPK包,在此过程中,由于不仅对目标脚本进行了加密,而且还对解密脚本进行了加密,使得解密脚本不再是以明文的格式存在于目标NPK包中,因此,通过两个加密运算,使得可以降低目标脚本被泄露甚至被篡改的风险,提高目标脚本的安全性。
可选地,所生成的目标NPK包可以用于Neox引擎中,本申请在此并不对该目标NPK包的应用场景进行限定。
当然,需要说明的是,本申请在此并不限定上述S101和S102的执行顺序,可以是先执行S101,后执行S102;也可以是先执行S102,后执行S101;此外,根据实际的应用场景,可以在执行S101之后,将加密后的解密脚本打包入目标NPK包,而在执行S102之后,将加密后的目标脚本打包入目标NPK包,本申请在此并不限定打包的顺序。
综上所述,本申请实施例所提供的一种NPK方式打包脚本的方法中,通过对解密脚本进行加密运算,获得加密后的解密脚本;采用加密脚本对待加密的目标脚本进行加密运算,获得加密后的目标脚本;进而将加密后的解密脚本、加密后的目标脚本打包生成目标NPK包,并向客户端发送目标NPK包时,由于不仅对目标脚本不仅进行了加密,而且还对解密脚本进行了加密,使得解密脚本不再以明文的方式存在于目标NPK包,因此,通过两个加密运算,可以降低目标脚本被泄露甚至被篡改的风险,提高目标脚本的安全性。
图2为本申请实施例提供的另一种NPK方式打包脚本的方法的流程示意图。可选地,如图2所示,上述对解密脚本进行加密运算,获得加密后的解密脚本,包括:
S201、对解密脚本进行编译,获得编译后的解密脚本。
S202、对编译后的解密脚本进行加密运算,获得加密后的解密脚本。
其中,服务器在对解密脚本进行加密运算时,可以先对解密脚本进行编译,然后再对编译后的解密脚本进行加密运算,获得加密后的解密脚本,使得客户端在对解密脚本进行解密后,所获取的解密后的解密脚本可以直接运行,省去了再次编译的过程,可以节省运行过程中的时间。当然,在编译过程中也可进行序列化,本申请在此不作限定。
当然,需要说明的是,根据实际的需要,对于编译后的解密脚本,也可以对该编译后的解密脚本进行压缩处理,以进一步提高解密脚本的安全性。
图3为本申请实施例提供的又一种NPK方式打包脚本的方法的流程示意图;图4为本申请实施例提供的一种NPK方式打包解密脚本的流程示意图。可选地,如图3所示,上述对编译后的解密脚本进行加密运算,获得加密后的解密脚本,包括:
S301、采用第一加密算法和第一密钥对编译后的解密脚本进行加密运算,获得第一解密脚本。
其中,第一密钥可以根据多个第一参数和第一加密函数获得。
S302、采用第二加密算法和第二密钥对第一解密脚本进行加密运算,获得加密后的解密脚本。
其中,第二密钥可以根据多个第二参数和第二加密函数获得。
可选地,如图4所示,可以采用两次加密运算对编译后的解密脚本进行加密,进而将加密后的解密脚本打包入目标NPK包,当然,本申请在此并不对加密次数和各加密算法进行限定,根据实际的需要,可以自行设置。可选地,上述第一加密算法可以是ES、TDES等对称加密算法中的一种或多种的组合,上述第二加密算法可以基于转轮机(Rotor)加密实现,本申请在此不作限定。
在采用第一加密算法、第二加密算法进行加密运算时,需要说明的是,第一加密算法、第二加密算法分别对应的第一密钥、第二密钥并不是直接以明文的方式直接存储在服务器上。本申请实施例在此以第一密钥为例进行说明,对于第一密钥,第一密钥可以通过多个第一参数和第一加密函数获得,比如,第一密钥=F1(参数1,参数2.....),F1为第一加密函数,服务器上可以事先存储有第一加密函数和多个第一参数,则根据该多个第一参数和第一加密函数即可获取该第一密钥,如此,可以避免第一密钥以明文的方式直接存储在服务器上,进而服务器在向客户端发送目标NPK包时,也就可以避免第一密钥被泄露,进一步提高解密脚本的安全性。第二密钥的获取方式与第一密钥的获取方式相同,本申请在此不作赘述,此外,需要说明的是,上述“第一加密函数”不等同“第一加密算法”,“第二加密函数”不等同“第二加密算法”,“第一加密函数”可以与“第二加密函数”相同,此外,第一密钥值与第二密钥值可以相同或不同,第一加密算法与第二加密算法可以相同或不同,根据实际的应用可自行选择,使得采用第一加密算法、第二加密算法依次对编译后的解密脚本进行加密运算后,可以提高解密脚本的安全性。
图5为本申请实施例提供的另一种NPK方式打包脚本的方法的流程示意图;图6为本申请实施例提供的一种NPK方式打包目标脚本的流程示意图。可选地,如图5和图6所示,上述采用加密脚本对待加密的目标脚本进行加密运算,获得加密后的目标脚本,包括:
S401、对待加密的目标脚本进行编译,获得编译后的目标脚本。
S402、对编译后的目标脚本进行压缩处理,获得压缩后的目标脚本。
S403、采用加密脚本的加密算法和第三密钥对压缩后的目标脚本进行加密运算,获得加密后的目标脚本。
其中,第三密钥可以根据多个第三参数和第三加密函数获得。
其中,如图6所示,通过对待加密的目标脚本进行编译,然后对编译后的目标脚本进行压缩处理,进而对压缩后的目标脚本再进行加密运算,将加密后的目标脚本打包入目标NPK包,在此过程中,通过编译过程,使得客户端在对目标脚本进行解密后,所获取的解密后的目标脚本可以直接运行,省去了再次编译的过程,可以节省客户端的运行时间;而通过压缩处理,一方面,可以减少编译后的目标脚本所占内存空间,另一方面,可以进一步提高目标脚本的安全性。
可选地,上述对待加密的目标脚本进行编译,获得编译后的目标脚本,包括:对待加密的目标脚本进行静态库编译,获得编译后的目标脚本。
其中,在编译过程中可以采用静态库编译方式进行编译,如此,可以防止调用目标脚本的库函数,提高目标脚本的安全性。比如,目标脚本为Python脚本时,可以采用Python解释器对待加密的目标脚本进行静态库编译,相比于动态库编译方式,可以防止非法用户调用Python的库函数,提高Python脚本的安全性。
此外,需要说明的是,对待加密的目标脚本进行编译时,可以包括相应的序列化过程,则在进行压缩处理之前,可以先对序列化后的目标脚本进行逆序处理,以打乱序列化后的目标脚本的字节码顺序,获取到逆序后的目标脚本,然后再对该逆序后的目标脚本进行压缩处理,进一步提高目标脚本的安全性。其中,该压缩处理可以是zlib压缩方式,但不以此为限。
当然,本申请实施例在此也并不对上述第三加密算法进行限定,可选地,该第三加密算法可以是前述第一加密算法和第二算法中的一种,比如,Rotor加密处理,如此可以实现加密算法的重用,省去开发人员再次编写额外加密算法的过程,提高便捷性。
可选地,上述对待加密的目标脚本进行编译,获得编译后的目标脚本之后,以及对编译后的目标脚本进行压缩处理之前,还包括:对编译后的目标脚本进行扰码处理。
其中,扰码处理可以增加对编译后的目标脚本进行反序列化的难度,进一步提高目标脚本的安全性。可选地,扰码处理可以通过插入一些不可能执行的条件跳转指令实现,以此迷惑反序列化工具。
图7为本申请实施例提供的又一种NPK方式打包脚本的方法的流程示意图。可选地,如图7所示,上述方法还包括:
S501、获取接收到客户端发送的第一访问请求的第一时间和第二访问请求的第二时间,第一访问请求和第二访问请求为客户端按预设时间间隔发送的时间获取请求。
S502、计算第一时间与第二时间的时间差。
S503、若时间差大于预设时间间隔,向客户端发送断开指令,断开指令用于断开与客户端之间的数据交互。
其中,第一访问请求、第二访问请求可以为客户端按预设时间间隔发送的时间获取请求,也即客户端是按预设时间间隔(比如,1秒)向服务器发送时间获取请求,对于服务器来说,如果在进行程序调试就会收不到时间获取请求,那么通过计算第一时间和第二时间时间差,并将时间差与预设时间间隔进行比较,可以判断客户端是否在对加密后的解密脚本、加密后的目标脚本进行非正常程序调试以进行破译。可选地,若该时间差大于预设时间间隔,那么服务器可以向客户端发送断开指令,并断开与客户端之间的数据交互,进而服务器不再接收该客户端发送的任何访问请求,实现反调试检测,当然,根据实际的应用场景,也可设置其他的处罚处理,比如,禁止登录于该客户端的账号在其他客户端上登录等。
图8为本申请实施例提供的一种运行NPK格式脚本文件的方法的流程示意图,该方法可以应用于客户端,该客户端可以与前述进行NPK方式打包脚本的服务器进行数据交互,该客户端可以集成于计算机、移动终端、平板电脑等设备,如图8所示,该方法包括:
S601、接收服务器发送的NPK包,NPK包可以包括:加密的解密脚本和通过加密脚本加密的目标脚本,其中,加密脚本与解密脚本为互逆运算的脚本。
S602、对加密的解密脚本进行解密运算,获得解密后的解密脚本。
S603、根据解密后的解密脚本,对加密的目标脚本进行解密运算,获得解密后的目标脚本。
其中,由于所接收的NPK包中,不仅对目标脚本进行了加密,而且还对解密脚本进行了加密,使得解密脚本不再是以明文的格式存在于目标NPK包中,也即客户端不仅要对加密的解密脚本进行解密运算,还要根据解密后的解密脚本对加密的目标脚本进行解密运算,通过两次解密运算,可以降低目标脚本被泄露甚至被篡改的风险,提高目标脚本的安全性。此外,对于与前述相关的部分,可参见前述的相关描述,本申请在此不再赘述。
图9为本申请实施例提供的又一种运行NPK格式脚本文件的方法的流程示意图;图10为本申请实施例提供的一种获取解密后的解密脚本的流程示意图。可选地,如图9和图10所示,上述对加密的解密脚本进行解密运算,获得解密后的解密脚本,包括:
S701、采用第一解密算法和第二密钥对加密的解密脚本进行解密运算,获得第二解密脚本。
其中,第二密钥根据多个第二参数和第二解密函数获得,多个第二参数通过向服务器发送第二请求指令获取。
S702、采用第二解密算法和第一密钥对第二解密脚本进行解密运算,获得解密后的解密脚本。
其中,第一密钥根据多个第一参数和第一解密函数获得,多个第一参数通过向服务器发送第一请求指令获取。
其中,步骤S701和步骤S702为与前述步骤S302和步骤S301所对应的方法步骤,由于服务器通过前述步骤S301和步骤S302对编译后的解密脚本进行两次加密运算,因此,在客户端对加密后的解密脚本进行解密运算,还应进行两次解密运算。需要说明的是,第一解密算法与前述步骤S302中的第二加密算法可以为互逆运算,也即,采用第一解密算法可以对加密后的解密脚本(也即前述采用第二加密算法和第二密钥对所述第一解密脚本进行加密运算所得到的加密后的解密脚本)进行解密运算,得到第二解密脚本;对于第二解密算法,该第二解密算法与前述步骤S301中的第一加密算法可以为互逆运算,具体说明可参见上述第一解密算法的部分,本申请在此不作赘述。
可选地,若解密脚本采用的脚本语言为第一脚本语言(比如,Python脚本),则通过加密后的解密脚本对加密的目标脚本进行解密运算时,由于解密脚本也被加密了,所以要对解密脚本先进行解密,可选地,可以在第二语言所对应的语言平台(比如,C/C++)中实现对解密脚本的解密。
此外,需要说明的是,上述第一密钥可以根据多个第一参数和第一解密函数获得,而第一解密函数可以事先存储在客户端,多个第一参数可以通过客户端向服务器发送第一请求指令获取。比如,客户端采用第一解密算法对加密后的解密脚本进行解密运算时,可以先向服务器发送第一请求指令,该第一请求指令可以用于请求获取多个第一参数,服务器在收到该第一请求指令时,则将该多个第一参数发送给客户端,比如,服务器可以通过https等安全协议将该多个第一参数发送给客户端,客户端在接收到该多个第一参数后,即可根据该多个第一参数和第一解密函数获取该第一密钥,使得服务器不再是将第一密钥以明文的形式直接发送给客户端,可以避免发送过程中密钥被泄露,提高解密脚本的安全性。第二密钥的获取方式可参见上述第一密钥的获取过程,本申请实施例在此不再赘述。
当然,需要说明的是,若该解密脚本进行了多次加密,则在进行解密的时候,还需进行多次解密,使得最终解密后的解密脚本可以用于对加密的目标脚本进行解密运算。
图11为本申请实施例提供的一种获取解密后的目标脚本的流程示意图。可选地,如图11所示,上述根据解密后的解密脚本,对加密的目标脚本进行解密运算,获得解密后的目标脚本,包括:
采用解密脚本的解密算法和第三密钥对加密的目标脚本进行解密运算,获得解密后的目标脚本。
其中,第三密钥根据多个第三参数和第三解密函数获得,多个第三参数通过向服务器发送第三请求指令获取。
其中,第三密钥的获取方式可参见前述第一密钥的获取方式,本申请在此不再赘述,通过采用解密脚本的解密算法和第三密钥对加密的目标脚本进行解密运算,即可获得解密后的目标脚本,该解密后的目标脚本即可在客户端上进行加载和运行。
图12为本申请实施例提供的另一种运行NPK格式脚本文件的方法的流程示意图。可选地,如图12所示,上述根据解密后的解密脚本,对加密的目标脚本进行解密运算,获得解密后的目标脚本之后,还包括:
S801、对解密后的目标脚本进行解压处理,获得解压后的目标脚本。
S802、对解压后的目标脚本进行字节码恢复,获取处理后的目标脚本。
可选地,如图11所示,与前述步骤S402对应的,若服务器对目标脚本进行了压缩,则客户端还应对解密后的目标脚本进行解压处理,通过解压后获取的目标脚本即可在客户端加载与运行。可选地,若服务器对目标脚本在进行压缩处理时,还进行了逆序处理,则在解压处理时,对应地,还应进行反逆序处理,即执行与前述逆序处理的逆运算,从而将解压后的目标脚本还原为原有的字节码用于客户端的加载与执行。可选地,若服务器对编译后的目标脚本还进行扰码处理,则客户端对应的还应进行字节码恢复,以去除服务器进行的扰码干扰,获取处理后的目标脚本,该处理后的目标脚本即可用于客户端的加载与执行。
图13为本申请实施例提供的又一种运行NPK格式脚本文件的方法的流程示意图。可选地,如图13所示,上述方法还包括:
S901、按照预设时间间隔向服务器发送第一访问请求和第二访问请求。
S902、接收服务器发送的断开指令,断开指令用于断开与服务器之间的数据交互。
其中,客户端可以按照预设时间间隔(比如,1秒)向服务器发送第一访问请求和第二访问请求,对于客户端来说,若客户端被非正常程序调试,则客户端发送第一访问请求和第二访问请求的时间间隔会大于预设时间间隔,对于服务器来说,服务器接收到客户端发送的第一访问请求的第一时间和第二访问请求的第二时间的时间差也就会大于预设时间间隔,因此,可以通过该方法来判断客户端是否被非正常程序调试,而在判定客户端被非正常调试后,服务器可以向客户端发送断开指令,并断开与客户端之间的数据交互,如此可以避免客户端被非正常调试,提高目标脚本的安全性。当然,需要说明的是,根据实际的应用场景,也可关闭该功能,而在需要时,则开启该功能。
图14为本申请实施例提供的另一种运行NPK格式脚本文件的方法的流程示意图。可选地,如图14所示,上述还包括:
S1001、接收加载目标脚本的指令。
S1002、根据加载指令,加载解密后的目标脚本。
其中,若客户端接收到了加载目标脚本的指令,则客户端可以加载上述解密后的目标脚本,实现目标脚本的加载和运行。
图15为本申请实施例提供的一种NPK方式打包脚本的装置的结构示意图,该装置可以应用于服务器,该装置基本原理及产生的技术效果与前述对应的方法实施例相同,为简要描述,本实施例中未提及部分,可参考方法实施例中的相应内容,可选地,如图15所示,该装置可以包括:第一加密模块110、第二加密模块120和打包模块130。
其中,第一加密模块110,用于对解密脚本进行加密运算,获得加密后的解密脚本;第二加密模块120,用于采用加密脚本对待加密的目标脚本进行加密运算,获得加密后的目标脚本;打包模块130,用于将加密后的解密脚本、加密后的目标脚本打包生成目标NPK包并向客户端发送目标NPK包,其中,解密脚本与加密脚本为互逆运算的脚本。
可选地,上述第一加密模块110,具体用于对解密脚本进行编译,获得编译后的解密脚本;对编译后的解密脚本进行加密运算,获得加密后的解密脚本。
可选地,上述第一加密模块110,具体用于采用第一加密算法和第一密钥对编译后的解密脚本进行加密运算,获得第一解密脚本,第一密钥根据多个第一参数和第一加密函数获得;采用第二加密算法和第二密钥对第一解密脚本进行加密运算,获得加密后的解密脚本,第二密钥根据多个第二参数和第二加密函数获得。
可选地,上述第二加密模块120,具体用于对待加密的目标脚本进行编译,获得编译后的目标脚本;对编译后的目标脚本进行压缩处理,获得压缩后的目标脚本;采用加密脚本的加密算法和第三密钥对压缩后的目标脚本进行加密运算,获得加密后的目标脚本,第三密钥根据多个第三参数和第三加密函数获得。
可选地,上述第二加密模块120,具体用于对待加密的目标脚本进行静态库编译,获得编译后的目标脚本。
可选地,上述第二加密模块120,还用于对编译后的目标脚本进行扰码处理。
图16为本申请实施例提供的另一种NPK方式打包脚本的装置的结构示意图。可选地,如图16所示,上述装置还包括获取模块150、计算模块160及发送模块170。获取模块150,用于获取接收到客户端发送的第一访问请求的第一时间和第二访问请求的第二时间,第一访问请求和第二访问请求为客户端按预设时间间隔发送的时间获取请求;计算模块160,用于计算第一时间与第二时间的时间差;发送模块170,用于若时间差大于预设时间间隔,向客户端发送断开指令,断开指令用于断开与客户端之间的数据交互。
图17为本申请实施例提供的另一种运行NPK格式脚本文件的装置的结构示意图,该装置可以应用于客户端,该装置基本原理及产生的技术效果与前述对应的方法实施例相同,为简要描述,本实施例中未提及部分,可参考方法实施例中的相应内容,可选地,如图17所示,该装置可以包括:第一接收模块210、第一解密模块220和第二解密模块230。
第一接收模块210,用于接收服务器发送的NPK包,NPK包包括:加密的解密脚本和通过加密脚本加密的目标脚本,其中,加密脚本与解密脚本为互逆运算的脚本;第一解密模块220,用于对加密的解密脚本进行解密运算,获得解密后的解密脚本;第二解密模块230,用于根据解密后的解密脚本,对加密的目标脚本进行解密运算,获得解密后的目标脚本。
可选地,第一解密模块220,具体用于采用第一解密算法和第二密钥对加密的解密脚本进行解密运算,获得第二解密脚本,第二密钥根据多个第二参数和第二解密函数获得,多个第二参数通过向服务器发送第二请求指令获取;采用第二解密算法和第一密钥对第二解密脚本进行解密运算,获得解密后的解密脚本,第一密钥根据多个第一参数和第一解密函数获得,多个第一参数通过向服务器发送第一请求指令获取。
可选地,第二解密模块230,具体用于采用解密脚本的解密算法和第三密钥对加密的目标脚本进行解密运算,获得解密后的目标脚本,第三密钥根据多个第三参数和第三解密函数获得,多个第三参数通过向服务器发送第三请求指令获取。
可选地,第二解密模块230,还用于对解密后的目标脚本进行解压处理,获得解压后的目标脚本;对解压后的目标脚本进行字节码恢复,获取处理后的目标脚本。
图18为本申请实施例提供的又一种运行NPK格式脚本文件的装置的结构示意图。可选地,如图18所示,上述装置还包括发送模块250和第二接收模块260,发送模块250,具体用于按照预设时间间隔向服务器发送第一访问请求和第二访问请求;第二接收模块260,具体用于接收服务器发送的断开指令,断开指令用于断开与服务器之间的数据交互。
可选地,如图18所示,上述装置还包括加载模块270,用于接收加载目标脚本的加载指令;根据加载指令,加载解密后的目标脚本。
上述装置用于执行前述实施例提供的方法,其实现原理和技术效果类似,在此不再赘述。
以上这些模块可以是被配置成实施以上方法的一个或多个集成电路,例如:一个或多个特定集成电路(Application Specific Integrated Circuit,简称ASIC),或,一个或多个微处理器(Digital Signal Processor,简称DSP),或,一个或者多个现场可编程门阵列(Field Programmable Gate Array,简称FPGA)等。再如,当以上某个模块通过处理元件调度程序代码的形式实现时,该处理元件可以是通用处理器,例如中央处理器(CentralProcessing Unit,简称CPU)或其它可以调用程序代码的处理器。再如,这些模块可以集成在一起,以片上系统(system-on-a-chip,简称SOC)的形式实现。
图19为本申请实施例提供的一种电子设备结构示意图。如图19所示,该电子设备可以包括:处理器510、存储介质520和总线530,存储介质520存储有处理器510可执行的机器可读指令,当电子设备运行时,处理器510与存储介质520之间通过总线530通信,处理器510执行机器可读指令,以执行上述方法实施例的步骤。具体实现方式和技术效果类似,这里不再赘述。
可选地,本申请还提供一种存储介质,存储介质上存储有计算机程序,计算机程序被处理器运行时执行上述方法实施例的步骤。具体实现方式和技术效果类似,这里不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
上述以软件功能单元的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能单元存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(英文:processor)执行本申请各个实施例所述方法的部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(英文:Read-Only Memory,简称:ROM)、随机存取存储器(英文:Random Access Memory,简称:RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
需要说明的是,在本文中,诸如“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上所述仅为本申请的优选实施例而已,并不用于限制本申请,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。以上所述仅为本申请的优选实施例而已,并不用于限制本申请,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

Claims (17)

1.一种NPK方式打包脚本的方法,其特征在于,包括:
对解密脚本进行加密运算,获得加密后的解密脚本;
采用加密脚本对待加密的目标脚本进行加密运算,获得加密后的目标脚本;
将所述加密后的解密脚本、所述加密后的目标脚本打包生成目标NPK包并向客户端发送所述目标NPK包,其中,所述解密脚本与所述加密脚本为互逆运算的脚本。
2.根据权利要求1所述的方法,其特征在于,所述对解密脚本进行加密运算,获得加密后的解密脚本,包括:
对所述解密脚本进行编译,获得编译后的解密脚本;
对所述编译后的解密脚本进行加密运算,获得加密后的解密脚本。
3.根据权利要求2所述的方法,其特征在于,所述对所述编译后的解密脚本进行加密运算,获得加密后的解密脚本,包括:
采用第一加密算法和第一密钥对所述编译后的解密脚本进行加密运算,获得第一解密脚本,所述第一密钥根据多个第一参数和第一加密函数获得;
采用第二加密算法和第二密钥对所述第一解密脚本进行加密运算,获得加密后的解密脚本,所述第二密钥根据多个第二参数和第二加密函数获得。
4.根据权利要求1所述的方法,其特征在于,所述采用加密脚本对待加密的目标脚本进行加密运算,获得加密后的目标脚本,包括:
对所述待加密的目标脚本进行编译,获得编译后的目标脚本;
对所述编译后的目标脚本进行压缩处理,获得压缩后的目标脚本;
采用所述加密脚本的加密算法和第三密钥对所述压缩后的目标脚本进行加密运算,获得所述加密后的目标脚本,所述第三密钥根据多个第三参数和第三加密函数获得。
5.根据权利要求4所述的方法,其特征在于,所述对所述待加密的目标脚本进行编译,获得编译后的目标脚本,包括:
对所述待加密的目标脚本进行静态库编译,获得编译后的目标脚本。
6.根据权利要求4所述的方法,其特征在于,所述对所述待加密的目标脚本进行编译,获得编译后的目标脚本之后,以及对所述编译后的目标脚本进行压缩处理之前,还包括:
对所述编译后的目标脚本进行扰码处理。
7.根据权利要求1所述的方法,其特征在于,还包括:
获取接收到客户端发送的第一访问请求的第一时间和第二访问请求的第二时间,所述第一访问请求和所述第二访问请求为所述客户端按预设时间间隔发送的时间获取请求;
计算所述第一时间与所述第二时间的时间差;
若所述时间差大于所述预设时间间隔,向所述客户端发送断开指令,所述断开指令用于断开与所述客户端之间的数据交互。
8.一种运行NPK格式脚本文件的方法,其特征在于,包括:
接收服务器发送的NPK包,所述NPK包包括:加密的解密脚本和通过加密脚本加密的目标脚本,其中,所述加密脚本与所述解密脚本为互逆运算的脚本;
对所述加密的解密脚本进行解密运算,获得解密后的解密脚本;
根据所述解密后的解密脚本,对所述加密的目标脚本进行解密运算,获得解密后的目标脚本。
9.根据权利要求8所述的方法,其特征在于,所述对所述加密的解密脚本进行解密运算,获得解密后的解密脚本,包括:
采用第一解密算法和第二密钥对所述加密的解密脚本进行解密运算,获得第二解密脚本,所述第二密钥根据多个第二参数和第二解密函数获得,多个所述第二参数通过向服务器发送第二请求指令获取;
采用第二解密算法和第一密钥对所述第二解密脚本进行解密运算,获得解密后的解密脚本,所述第一密钥根据多个第一参数和第一解密函数获得,多个所述第一参数通过向服务器发送第一请求指令获取。
10.根据权利要求8所述的方法,其特征在于,所述根据所述解密后的解密脚本,对所述加密的目标脚本进行解密运算,获得解密后的目标脚本,包括:
采用所述解密脚本的解密算法和第三密钥对所述加密的目标脚本进行解密运算,获得解密后的目标脚本,所述第三密钥根据多个第三参数和第三解密函数获得,多个所述第三参数通过向服务器发送第三请求指令获取。
11.根据权利要求8所述的方法,其特征在于,所述根据所述解密后的解密脚本,对所述加密的目标脚本进行解密运算,获得解密后的目标脚本之后,还包括:
对所述解密后的目标脚本进行解压处理,获得解压后的目标脚本;
对所述解压后的目标脚本进行字节码恢复,获取处理后的目标脚本。
12.根据权利要求8所述的方法,其特征在于,还包括:
按照预设时间间隔向服务器发送第一访问请求和第二访问请求;
接收所述服务器发送的断开指令,所述断开指令用于断开与所述服务器之间的数据交互。
13.根据权利要求8所述的方法,其特征在于,还包括:
接收加载所述目标脚本的加载指令;
根据所述加载指令,加载所述解密后的目标脚本。
14.一种NPK方式打包脚本的装置,其特征在于,包括:第一加密模块、第二加密模块和打包模块;
所述第一加密模块,用于对解密脚本进行加密运算,获得加密后的解密脚本;
所述第二加密模块,用于采用加密脚本对待加密的目标脚本进行加密运算,获得加密后的目标脚本;
所述打包模块,用于将所述加密后的解密脚本、所述加密后的目标脚本打包生成目标NPK包并向客户端发送所述目标NPK包,其中,所述解密脚本与所述加密脚本为互逆运算的脚本。
15.一种运行NPK格式脚本文件的装置,其特征在于,包括:接收模块、第一解密模块和第二解密模块;
所述接收模块,用于接收服务器发送的NPK包,所述NPK包包括:加密的解密脚本和通过加密脚本加密的目标脚本,其中,所述加密脚本与所述解密脚本为互逆运算的脚本;
所述第一解密模块,用于对所述加密的解密脚本进行解密运算,获得解密后的解密脚本;
所述第二解密模块,用于根据所述解密后的解密脚本,对所述加密的目标脚本进行解密运算,获得解密后的目标脚本。
16.一种电子设备,其特征在于,包括:处理器、存储介质和总线,所述存储介质存储有所述处理器可执行的机器可读指令,当电子设备运行时,所述处理器与所述存储介质之间通过总线通信,所述处理器执行所述机器可读指令,以执行如权利要求1-13任一项所述方法的步骤。
17.一种存储介质,其特征在于,所述存储介质上存储有计算机程序,所述计算机程序被处理器运行时执行如权利要求1-13任一项所述方法的步骤。
CN202010164261.2A 2020-03-10 2020-03-10 Npk方式打包脚本、运行npk格式脚本文件的方法及装置 Pending CN111290781A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010164261.2A CN111290781A (zh) 2020-03-10 2020-03-10 Npk方式打包脚本、运行npk格式脚本文件的方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010164261.2A CN111290781A (zh) 2020-03-10 2020-03-10 Npk方式打包脚本、运行npk格式脚本文件的方法及装置

Publications (1)

Publication Number Publication Date
CN111290781A true CN111290781A (zh) 2020-06-16

Family

ID=71020665

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010164261.2A Pending CN111290781A (zh) 2020-03-10 2020-03-10 Npk方式打包脚本、运行npk格式脚本文件的方法及装置

Country Status (1)

Country Link
CN (1) CN111290781A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113591040A (zh) * 2021-06-23 2021-11-02 北京百度网讯科技有限公司 加密方法及其装置、解密方法及其装置、电子设备和介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104978539A (zh) * 2014-04-14 2015-10-14 博雅网络游戏开发(深圳)有限公司 flash加密、解密方法以及加密、解密装置
CN107480477A (zh) * 2017-07-21 2017-12-15 四川长虹电器股份有限公司 基于html5 技术的移动终端产品版权保护方法
CN107545189A (zh) * 2017-06-26 2018-01-05 新华三技术有限公司 一种文件获得方法及装置
US20190220576A1 (en) * 2018-01-14 2019-07-18 International Business Machines Corporation Debuggable obfuscated script

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104978539A (zh) * 2014-04-14 2015-10-14 博雅网络游戏开发(深圳)有限公司 flash加密、解密方法以及加密、解密装置
CN107545189A (zh) * 2017-06-26 2018-01-05 新华三技术有限公司 一种文件获得方法及装置
CN107480477A (zh) * 2017-07-21 2017-12-15 四川长虹电器股份有限公司 基于html5 技术的移动终端产品版权保护方法
US20190220576A1 (en) * 2018-01-14 2019-07-18 International Business Machines Corporation Debuggable obfuscated script

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113591040A (zh) * 2021-06-23 2021-11-02 北京百度网讯科技有限公司 加密方法及其装置、解密方法及其装置、电子设备和介质
CN113591040B (zh) * 2021-06-23 2023-10-24 北京百度网讯科技有限公司 加密方法及其装置、解密方法及其装置、电子设备和介质

Similar Documents

Publication Publication Date Title
CN107977553B (zh) 移动应用程序的安全加固的方法及装置
EP3038004A1 (en) Method for providing security for common intermediate language-based program
CN111143869B (zh) 应用程序包处理方法、装置、电子设备及存储介质
CN104680039B (zh) 一种应用程序安装包的数据保护方法及装置
CN108363580A (zh) 应用程序安装方法、装置、计算机设备和存储介质
US20150095653A1 (en) Method and apparatus of creating application package, method and apparatus of executing application package, and recording medium storing application package
CN110826031B (zh) 加密方法、装置、计算机设备及存储介质
CN111159757A (zh) 文件加密方法、解密方法及相应装置
CN111240654A (zh) 一种Python代码加固保护的方法及其系统
CN108133147B (zh) 可执行代码的保护方法、设备及可读存储介质
US20180013551A1 (en) Apparatus for obfuscating and restoring program execution code and method thereof
CN109992974B (zh) 虚拟机字节码文件的保护方法、设备及可读存储介质
CN107257282A (zh) 一种基于rc4算法的代码全包加密方法
CN111290781A (zh) Npk方式打包脚本、运行npk格式脚本文件的方法及装置
CN107169370A (zh) 可执行文件的加密方法及加密装置
CN112199730A (zh) 一种终端上应用数据的处理方法、装置及电子设备
KR101667774B1 (ko) 스크립트 프로그램을 위한 보안 제공 장치 및 방법
CN109995534B (zh) 一种对应用程序进行安全认证的方法和装置
CN111078224A (zh) 软件包文件数据处理方法、装置、计算机设备及存储介质
CN113032741B (zh) 类文件加密方法、类文件运行方法、装置、设备及介质
CN115883078A (zh) 文件加密方法、文件解密方法、装置、设备及存储介质
JP6698775B2 (ja) 共有オブジェクトのコード保護のための保安提供装置と方法、及び保安実行装置と方法
CN114329535A (zh) 文件加密方法、装置、电子设备和计算机可读介质
CN114357520A (zh) 文件生成方法和装置、文件编码信息发送方法和装置
CN114444028A (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