CN112948773A - 脚本加密与解密方法、终端设备及可读存储介质 - Google Patents

脚本加密与解密方法、终端设备及可读存储介质 Download PDF

Info

Publication number
CN112948773A
CN112948773A CN202110169994.XA CN202110169994A CN112948773A CN 112948773 A CN112948773 A CN 112948773A CN 202110169994 A CN202110169994 A CN 202110169994A CN 112948773 A CN112948773 A CN 112948773A
Authority
CN
China
Prior art keywords
key
instruction
target file
encryption
encrypted
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
CN202110169994.XA
Other languages
English (en)
Other versions
CN112948773B (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.)
Shenzhen Dameng Longtu Culture Communication Co ltd
Original Assignee
Shenzhen Dameng Longtu Culture Communication 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 Shenzhen Dameng Longtu Culture Communication Co ltd filed Critical Shenzhen Dameng Longtu Culture Communication Co ltd
Priority to CN202110169994.XA priority Critical patent/CN112948773B/zh
Publication of CN112948773A publication Critical patent/CN112948773A/zh
Application granted granted Critical
Publication of CN112948773B publication Critical patent/CN112948773B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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
    • G06F21/14Protecting executable software against software analysis or reverse engineering, e.g. by obfuscation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • 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)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • Multimedia (AREA)
  • Technology Law (AREA)
  • Storage Device Security (AREA)

Abstract

本发明公开了一种脚本加密与解密方法,该方法包括:获取待编译脚本编译后的目标文件;获取所述目标文件中的密钥切换密码;根据所述密钥切换密码以及第一参考密钥生成加密密钥;根据所述加密密钥对所述目标文件进行加密,根据所述加密密钥更新所述第一参考密钥。本发明还提供一种终端设备及可读存储介质。本发明的脚本加密与解密方法通过加密密钥对待编译脚本编译后的目标文件进行加密,以避免目标文件处于公开状态而被轻易获取并篡改,导致目标文件被执行存在安全隐患,此外,生成加密密钥的参考密钥处于不断更新的过程,以实现动态改变加密密钥,防止通过暴力统计破解加密的目标文件,进一步提高了加密后的目标文件的安全性。

Description

脚本加密与解密方法、终端设备及可读存储介质
技术领域
本发明涉及程序安全技术领域,尤其涉及一种脚本加密与解密方法、终端设备及可读存储介质。
背景技术
随着程序软件的发展,通过编译型语言对程序编译的效率高且执行速度快,然而每次修改代码都需要重新进行编译,特别是对于大型程序编译时间会非常久。随着程序语言的发展,由于脚本语言是使用虚拟机来执行,在脚本代码发生变更时,不需要重新进行编译就可直接运行。所以目前大多数程序采用编译型语言开发程序框架,而将进程变动的部分使用脚本语言来开发。从而既保证了程序执行的效率,同时也使得程序易于更新。
然而随着脚本语言使用的越来越频繁,由于脚本语言是解释性语言,容易被反编译,且被反编译后容易获知程序实现逻辑,越来越多的黑客通过研究脚本语言以实现一些非法的“外挂”功能,可能导致用户使用程序软件存在严重的信息安全隐患。
上述内容仅用于辅助理解本发明的技术方案,并不代表承认上述内容是现有技术。
发明内容
本发明的主要目的在于提供一种脚本加密与解密方法、终端设备及可读存储介质,旨在解决脚本语言易被反编译,导致用户使用带有脚本语言的程序软件存在严重的信息安全隐患的问题。
为实现上述目的,本发明提供一种脚本加密与解密方法,所述脚本加密与解密方法包括:
获取待编译脚本编译后的目标文件;
获取所述目标文件中的密钥切换密码;
根据所述密钥切换密码以及第一参考密钥生成加密密钥;
根据所述加密密钥对所述目标文件进行加密,根据所述加密密钥更新所述第一参考密钥。
可选地,根据所述加密密钥对所述目标文件进行加密的步骤包括:
获取所述目标文件中的指令段以及数据段;
根据所述加密密钥中的指令密钥对所述指令段进行加密;
根据所述加密密钥中的数据密钥对所述数据段进行加密。
可选地,根据所述加密密钥中的指令密钥对所述指令段进行加密的步骤之后,包括:
根据加密后的所述指令段生成第一指令校验码;
将所述第一指令校验码添加至所述加密后的所述目标文件中。
可选地,根据所述加密密钥中的数据密钥对所述数据段进行加密的步骤之后,包括:
根据加密后的所述数据段生成第一数据校验码;
将所述第一数据校验码添加至所述加密后的所述目标文件中。
可选地,根据所述加密密钥中的指令密钥对所述指令段进行加密的步骤包括:
将预设的校验指令添加至所述指令段;
根据所述加密密钥中的指令密钥对包含有所述校验指令的所述指令段进行加密。
为实现上述目的,本发明还提供一种脚本加密与解密方法,所述脚本加密与解密方法包括:
获取预存的第二参考密钥;
获取加密后的目标文件中的密钥切换密码;
根据所述第二参考密钥以及所述密钥切换密码生成解密密钥;
根据所述解密密钥对加密后的所述目标文件进行解密,根据所述解密密钥更新所述第二参考密钥。
可选地,根据所述参考密钥以及所述密钥切换密码生成解密密钥的步骤之后,包括:
获取加密后的所述目标文件中的加密指令段以及第一指令校验码;
根据所述加密指令段生成第二指令校验码;
若所述第二指令校验码与所述第一指令校验码匹配,执行所述根据所述解密密钥对加密后的所述目标文件进行解密的步骤;
或者,所述根据所述参考密钥以及所述密钥切换密码生成解密密钥的步骤之后,包括:
获取加密后的所述目标文件中的加密数据段以及第一数据校验码;
根据所述加密数据段生成第二数据校验码;
若所述第二数据校验码与所述第一数据校验码匹配,执行所述根据所述解密密钥对加密后的所述目标文件进行解密的步骤。
可选地,根据所述解密密钥对加密后的所述目标文件进行解密的步骤之后,包括:
判断解密后的所述目标文件中的指令段是否包含预设的校验指令;
若所述目标文件中的指令段不包含预设的校验指令,输出所述目标文件异常的提示信息;
若所述目标文件中的指令段包含预设的校验指令,获取所述校验指令中检验参数;
在所述检验参数与所述校验指令在所述指令段中的实际参数相同,则表明所述目标文件正常。
此外,为实现上述目的,本发明还提供一种终端设备,所述终端设备包括存储器、处理器以及存储在所述处理器里并可在所述处理器上运行的脚本加密与解密程序,所述脚本加密与解密程序被所述处理器执行时实现如以上所述的脚本加密与解密方法的各个步骤。
此外,为实现上述目的,本发明还提供一种可读存储介质,所述可读存储介质上存储有脚本加密与解密程序,所述脚本加密与解密程序被所述处理器执行时实现如以上所述的脚本加密与解密方法的各个步骤。
本发明的脚本加密与解密方法、终端设备及可读存储介质,通过加密密钥对待编译脚本编译后的目标文件进行加密,以避免目标文件处于公开状态而被轻易获取并篡改,导致目标文件被执行存在安全隐患,此外,生成加密密钥的参考密钥处于不断更新的过程,以实现动态改变加密密钥,防止通过暴力统计破解加密的目标文件,进一步提高了加密后的目标文件的安全性。
附图说明
图1为实现本发明各个实施例的终端设备的结构框图;
图2为本发明的脚本加密与解密方法第一实施例中加密的流程示意图;
图3为本发明的脚本加密与解密方法第一实施例中解密的流程示意图;
图4为本发明的脚本加密与解密方法第二实施例的流程示意图;
图5为待编译文件编译后的目标文件未进行加密前的内部结构图;
图6为待编译文件编译后的目标文件进行加密后的内部结构图;
图7为本发明的脚本加密与解密方法第四实施例的流程示意图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
在后续的描述中,使用用于表示元件的诸如“模块”、“部件”或者“单元”的后缀仅为了有利于本发明的说明,其本身没有特定的意义。因此,“模块”、“部件”或者“单元”可以混合地使用。
终端设备可以以各种形式来实施。例如,本发明中描述的终端设备可以包括诸如手机、平板电脑、笔记本电脑以及掌上电脑等终端。
本领域技术人员将理解的是,除了特别用于移动目的元件之外,根据本发明的实施方式的构造也能够应用于固定类型的终端。
请参阅图1,图1为实现本发明各个实施例的终端设备的结构框图,该终端设备可以包括:存储器101以及处理器102。本领域技术人员可以理解,图1示出的终端设备的结构并不构成对终端设备的限定,终端设备可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。其中,存储器101中存储有操作系统以及脚本加密与解密程序。处理器102是终端设备的控制中心,处理器102执行存储在存储器101内的脚本加密与解密程序,以实现本发明的脚本加密与解密方法各实施例的步骤。可选地,终端设备还可包括显示单元103,显示单元103包括显示面板,可采用液晶显示器(Liquid Crystal Display,LCD)、有机发光二极管(Organic Light-Emitting Diode,OLED)等形式来配置显示面板,用于输出显示用户浏览的界面。
需要说明的是,应理解,本发明中的脚本具体可以是Lua脚本,Lua脚本是一个小巧的脚本语言,Lua脚本的设计目的是为了嵌入应用程序中,从而为应用程序提供灵活的扩展和定制功能。Lua脚本由标准C语言编写而成,几乎在所有操作系统和平台上都可以编译和运行。Lua脚本有一个同时进行的即时编译器(Just-In-Time Compiler)项目,提供在特定平台上的即时编译功能。Lua脚本可以很容易的被C代码或C++代码调用,也可以反过来调用C代码的函数或C++代码的函数,这使得Lua脚本在应用程序中可以被广泛应用。不仅仅作为扩展脚本,也可以作为普通的配置文件,代替可扩展标记语言(Extensible MarkupLanguage,XML)等文件格式,并且更容易理解和维护。
本发明可以应用于需要对Lua脚本进行加密的场景,比如,随客户端一起发布的客户端游戏脚本,或者发布到服务器的服务端脚本,又或者应用于网页应用、游戏开发、扩展和数据库插件以及安全系统等。
本发明中的脚本编译装置可以部署于至少一台终端设备上,或者部署于至少一台服务器上,采用脚本编译装置可以针对Lua 5.3的自定义格式对脚本进行编译和加密,并生成经过编译和加密后的Lua字节码,这种Lua字节码只能被相应改造后的脚本执行装置来解释并执行,或者,加密后的Lua字节码解密后被脚本执行装置来解释并执行,从而极大地提高Lua脚本被破解的难度。脚本执行装置同样可以部署于至少一台终端设备上,或者部署于至少一台服务器上。
可以理解的是,脚本编译装置具体可以是Lua字节码编译工具——Luac,Luac把用Lua语言编写的程序也即待编译脚本翻译为二进制文件也即目标文件,之后这些文件可被载入并执行。脚本执行装置具体可以是Lua虚拟机,Lua虚拟机主要功能是用于解析编码后得到的字节码,并执行其中的指令集,最后输出结果。
需要说明的是,终端设备的存储器101中的脚本加密与解密程序中加密程序被处理器102执行时实现如下步骤:
获取待编译脚本编译后的目标文件;
获取所述目标文件中的密钥切换密码;
根据所述密钥切换密码以及第一参考密钥生成加密密钥;
根据所述加密密钥对所述目标文件进行加密,根据所述加密密钥更新所述第一参考密钥。
或者,终端设备的存储器101中的脚本加密与解密程序中解密程序被处理器102执行时实现如下步骤:
获取预存的第二参考密钥;
获取加密后的目标文件中的密钥切换密码;
根据所述第二参考密钥以及所述密钥切换密码生成解密密钥;
根据所述解密密钥对加密后的所述目标文件进行解密,根据所述解密密钥更新所述第二参考密钥。
基于上述终端设备的结构框图,本发明提供一种脚本加密与解密方法,请参考图2,图2为本发明的脚本加密与解密方法第一实施例中加密的流程示意图。在该实施例中,脚本加密与解密方法包括以下步骤:
步骤S10,获取待编译脚本编译后的目标文件;
需要说明的是,脚本语言也称为动态语言,是一种编程语言,用来控制软件应用程序,脚本通常以文本(如ASCII)保存只在被调用时进行解释或编译。目标文件指的是通过将待编译脚本编译后所形成的二进制中间码,其中,编译是把高级语言变成计算机可以识别的二进制语言。获取待编译脚本编译后的目标文件,可通过编译器对待编译脚本编译后直接获取。
步骤S20,获取所述目标文件中的密钥切换密码;
密钥切换密码是为实现生成加密密钥的参考因子。密钥切换密码可预先进行设置,也可基于获取的目标文件中的二进制中间码生成得到,本实施例对此不做限定。需要说明的是,获取得到的密钥切换密码添加至目标文件中。
步骤S30,根据所述密钥切换密码以及第一参考密钥生成加密密钥;
步骤S40,根据所述加密密钥对所述目标文件进行加密,根据所述加密密钥更新所述第一参考密钥。
第一参考密钥是根据加密密钥更新得到的密钥或者预先设置的初始加密密钥。需要说明的是,在待编译脚本进行第一次编译时,第一参考密钥为预先设置的初始加密密钥,根据密钥切换密码以及第一参考密钥也即初始密钥生成的加密密钥可看做第一加密密钥,在第一加密密钥对目标文件进行加密后,可根据第一加密密钥更新第一参考密钥,从而实现第一参考密钥的动态更新。
在实际应用过程中,在待编译脚本发生改变如修改脚本后,需要对待编译脚本进行重新编译,以获得修改后的待编译脚本对应的目标文件,此时,根据密钥切换密码以及第一参考密钥也即第一加密密钥生成加密密钥,可以理解的是,此时加密密钥可看做为第二加密密钥,根据第二加密密钥对目标文件进行加密,且通过第二加密密钥更新第一参考密钥,以此类推,以实现待编译脚本每次编译后,均采用不同的加密密钥对待编译脚本对应的目标文件进行加密,以防止暴力统计破解出目标文件中的指令映射关系,提高加密后的目标文件加密等级。
在本实施例公开的技术方案中,通过加密密钥对待编译脚本编译后的目标文件进行加密,以避免目标文件处于公开状态而被轻易获取并篡改,导致目标文件被执行存在安全隐患,此外,生成加密密钥的参考密钥处于不断更新的过程,以实现动态改变加密密钥,防止通过暴力统计破解加密的目标文件,进一步提高了加密后的目标文件的安全性。
相对应地,请参考图3,图3为本发明的脚本加密与解密方法第一实施例中解密的流程示意图。在该实施例中,脚本加密与解密方法包括以下步骤:
步骤S50,获取预存的第二参考密钥;
步骤S60,获取加密后的目标文件中的密钥切换密码;
步骤S70,根据所述第二参考密钥以及所述密钥切换密码生成解密密钥;
步骤S80,根据所述解密密钥对加密后的所述目标文件进行解密,根据所述解密密钥更新所述第二参考密钥。
在实际应用过程中,可对加密后的目标文件进行解密以获取目标文件,并执行目标文件以实现目标问价对应的功能。需要说明的是,对应于上述对目标文件的加密过程,第二参考密钥是根据解密密钥更新得到的密钥或者预先设置的初始解密密钥。可选地,第二参考密钥为预先设置的初始解密密钥时,初始解密密钥可以是预先设置的初始加密密钥,也即采用对称加密-解密的方式对目标文件进行加密或者解密。对应于对目标文件进行加密的加密过程且与加密过程中同理,通过解密密钥更新第二参考密钥以实现第二参考密钥的动态更新,进而实现解密密钥的动态更新,从而在实现通过动态的加密密钥对目标文件进行加密后,可对应采用动态的解密密钥以实现对加密的目标文件进行解密。其中,根据第二参考密钥以及密钥切换密码生成解密密码,可通过第二参考密钥以及密钥切换密码进行相互异或以生成解密密码,对此不做限定。
基于上述第一实施例提出的本发明的脚本加密与解密方法的第二实施例,请参考图4,图4为本发明的脚本加密与解密方法第二实施例的流程示意图。在该实施例中,步骤S40包括:
步骤S41,获取所述目标文件中的指令段以及数据段;
步骤S42,根据所述加密密钥中的指令密钥对所述指令段进行加密;
步骤S43,根据所述加密密钥中的数据密钥对所述数据段进行加密。
指令段为目标文件中放置程序指令的位置。数据段为目标文件中放置数据常量的位置。获取目标文件中的指令段以及数据段,可通过字段标识以确定目标文件中的指令段以及数据段,并获取目标文件中的指令段以及数据段。
需要说明的是,在实际应用过程中,指令段以及数据段分别放置于目标文件中不同的位置,需要对指令段以及数据段分别进行加密。可以理解的是,目标文件中存储指令与数据常量表示方式如字节长度可能存在差异,对应于不同表示方式的指令与数据常量,加密密钥包括指令密钥以及数据密钥,以通过指令密钥对指令段进行加密,通过数据密钥对数据段进行加密。
举例来说,根据Lua指令集的设计,Lua指令为四个字节,前7个位为指令类型后25位为指令内容,对应于Lua指令,指令密钥设置为4个字节表示,根据指令密钥对指令段进行加密,可通过异或加密方式也即Lua指令与指令密钥进行异或操作以实现对指令段中条指令进行加密,又如,数据常量为变长字段,假设Lua数据为一个字节,数据密钥设置为1个字节表示,根据数据密钥对数据段进行加密,也可通过异或加密方式,在此不再赘述。
此外,需要说明的是,加密密钥包括指令密钥以及数据密钥。基于加密密钥是由密钥切换密码以及第一参考密钥生成,且第一参考密钥可进行更新,指令密钥以及数据密钥也处于动态更新中。
可以理解的是,指令密钥由密钥切换密码以及第一参考密钥生成,同理地,数据密钥由密钥切换密码以及第一参考密钥生成。以指令密钥由密钥切换密码以及第一参考密钥生成为例说明,指令密钥处于动态更新中。由于第一参考密钥是根据加密密钥更新得到的密钥或者预先设置的初始加密密钥。其中,预先设置的初始加密密钥包括预先设置的初始指令密钥以及预先设置的初始数据密钥。采用指令密钥对目标文件中的指令段进行第一次加密,可通过预先设置的初始加密密钥中预先设置的初始指令密钥与密钥切换密码生成第一次的指令密钥,进而根据第一次的指令密钥对目标文件中的指令段进行第一次加密,且根据第一次加密的指令密钥更新第一参考密钥。
当该目标文件对应的待编译脚本发生更新,重新对更新后的待编译脚本进行编译以获得新的目标文件后,对新的目标文件进行加密的指令密钥是由第一参考密钥也即第一次的指令密钥以及密钥切换密码生成的,此时,对新的目标文件进行加密的指令密钥为第二次加密的指令密钥,且根据第二次加密的指令密钥更新第一参考密钥,以此类推,进而实现第一参考密钥的更新,以进一步实现指令密钥的更新。
同理,数据密钥由密钥切换密码以及第一参考密钥生成,数据密钥处于动态更新中,在此不再赘述。需要说明的是,生成指令密钥的密钥切换密码由4个字节表示,生成数据密钥的密钥切换密码由生成指令密钥的密钥切换密码的4个字节(0-31二进制位)中1个字节(0-7二进制位)表示。
作为一种可选的实施方式,步骤S42根据所述加密密钥中的指令密钥对所述指令段进行加密包括:
将预设的校验指令添加至所述指令段;
根据所述加密密钥中的指令密钥对包含有所述校验指令的所述指令段进行加密。
需要说明的是,在对目标文件中的指令段进行加密时,可添加预设的校验指令如金丝雀指令放置于目标文件的指令段中函数的最后,其中,金丝雀指令可用于验证指令段中是否进行增删操作,进而确定指令段是否被篡改。举例来说,金丝雀指令添加至指令段后,获取得到金丝雀指令在指令段中的所在目标行数,若指令段中的指令发生增加或者删除时,金丝雀指令所在的实际行数与目标行数并不匹配,则表明指令段中进行了增加或者删除指令的操作,也即目标文件中的指令段被篡改,目标文件异常,执行目标文件存在安全隐患。
作为一种可选的实施方式,步骤S42根据所述加密密钥中的指令密钥对所述指令段进行加密之后,包括:
根据加密后的所述指令段生成第一指令校验码;
将所述第一指令校验码添加至所述加密后的所述目标文件中。
对应于加密后的指令段,根据加密后的指令段生成第一指令校验码,其中,第一指令校验码为四个字节的指令段Check Sum,需要说明的还是,Check Sum是在数据处理和数据通信领域中,用于校验目的的一组数据项的和,其中,数据项可以是数字或在计算检验总和过程中看作数字的其它字符串。
需要说明的是,将第一指令校验码添加至加密后的目标文件中,可通过第一指令校验码以检验加密后的目标文件中的加密指令段也即加密后的指令段是否被篡改导致存在安全隐患,也即通过将第一指令校验码添加至加密后的目标文件中,倘若通过第一指令校验码进行校验时,加密的指令段生成的第二指令校验码与第一指令校验码不匹配,则可认定加密后的指令段被篡改,目标文件中的指令段存在异常。可以理解的还是,获取加密后的所述目标文件中的加密指令段以及第一指令校验码;根据所述加密指令段生成第二指令校验码;若所述第二指令校验码与所述第一指令校验码匹配,则表明加密指令段也即加密后的指令段未被篡改,目标文件中的指令段正常。
同理地,作为一种可选的实施方式,步骤S43根据所述加密密钥中的数据密钥对所述数据段进行加密之后,包括:
根据加密后的所述数据段生成第一数据校验码;
将所述第一数据校验码添加至所述加密后的所述目标文件中。
与上述将加密后的指令段生成的第一指令校验码添加至加密后的目标文件中原理相同,在此不再赘述。相对应地,将第一数据校验码添加至加密后的目标文件中,可通过第一数据校验码以检验加密后的目标文件中的加密数据段也即加密后的数据段是否被篡改导致存在安全隐患。可选地,获取加密后的所述目标文件中的加密数据段以及第一数据校验码;根据所述加密数据段生成第二数据校验码;若所述第二数据校验码与所述第一数据校验码匹配,则表明加密数据段未被篡改。
为便于理解,请参考图5以及图6,其中,图5为待编译文件编译后的目标文件未进行加密前的内部结构图,图6为待编译文件编译后的目标文件进行加密后的内部结构图,其中,图6中代码段checksum为根据加密的目标文件中指令段如bytecodes生成的第一指令校验码,常量段checksum为根据加密的目标文件中数据段如constans生成的第一数据校验码,密钥切换段为密钥切换密码,金丝雀指令为预设的校验指令。
在本实施例公开的技术方案中,通过加密密钥对目标文件中的指令段以及数据段分别进行加密,以对目标文件中的重要内容如指令段以及数据段进行加密,避免重要内容处于公开状态导致易被他人获取且进行篡改,提高待编译脚本编译后的目标文件的安全性,且通过仅对目标文件中的重要内容进行加密,提高目标文件的加密效率。
基于上述任意一个实施例提出本发明的脚本加密与解密方法的第三实施例,在该实施例中,步骤S70之后,包括:
获取加密后的所述目标文件中的加密指令段以及第一指令校验码;
根据所述加密指令段生成第二指令校验码;
若所述第二指令校验码与所述第一指令校验码匹配,执行步骤S80所述根据所述解密密钥对加密后的所述目标文件进行解密;或者,
步骤S70之后,包括:
获取加密后的所述目标文件中的加密数据段以及第一数据校验码;
根据所述加密数据段生成第二数据校验码;
若所述第二数据校验码与所述第一数据校验码匹配,执行步骤S80所述根据所述解密密钥对加密后的所述目标文件进行解密。
对应于第二实施例中,根据加密密钥分别对目标文件中的指令段以及数据段进行加密后,以根据加密的指令段生成第一指令校验码和/或根据加密的数据段生成第一数据校验码,将第一指令校验码以及第一数据校验码添加至目标文件,可基于确定的第一指令校验码和/或第一数据校验码以验证目标文件是否发生篡改。其中,通过第一指令校验码和/或第一数据校验码以验证目标文件发生篡改存在以下情况,第一,目标文件的指令段被篡改;第二,目标文件的数据段被篡改,第三,目标文件的指令段以及数据段同时被篡改。可以理解的是,若确定加密后的目标文件被篡改,则表明加密后的目标文件异常,不对加密后的目标文件进行解密后予以执行,避免存在安全隐患如导致用户信息泄漏。
需要说明的是,加密指令段是指通过指令密钥对目标文件中的指令段进行加密,也即加密后的指令段。根据加密指令段生成第二指令校验码,可对应于第二实施例加密过程中,根据加密后的指令段生成第一指令校验码的方式,如若第一指令校验码为加密后的指令段的Check Sum时,在解密之前,可通过根据加密指令段生成第二指令校验码,进而通过比对第二指令校验码与第一指令校验码以确定加密后的指令段也即加密指令段是否被篡改,可以理解的是,若第二指令校验码与第一指令校验码匹配,则表明加密后的指令段未被篡改,目标文件中的指令段正常,可根据解密密钥对加密后的目标文件进行解密并指令目标文件;若第二指令校验码与第一指令校验码不匹配,则表明加密后的指令段被篡改,目标文件中的指令段异常,可删除该加密的目标文件或者输出目标文件异常的提示信息。
同理地,加密数据段是指通过数据密钥对目标文件中的数据段进行加密,也即加密后的数据段,对于目标文件中的数据段是否被篡改的判定与上述判定目标文件中的指令段是否被篡改同理,在此不再赘述。
在本实施例公开的技术方案中,在获得加密密钥且在对加密的目标文件进行解密前,为确定加密后的目标文件的重要内容如指令段以及数据段未被篡改,可比对加密后的指令段生成第二指令校验码与第一指令校验码,若第一指令校验码与第二指令校验码匹配,则表明目标文件中的指令段正常;或者,可比对加密后的数据段生成第二数据校验码与第一数据校验码,若第一数据校验码与第二数据校验码匹配,则表明目标文件中的数据段正常,可在确定加密后的目标文件中的指令段和/或数据段正常的情况下,根据解密密钥解密加密后的目标文件以执行目标文件所对应的功能,解决了加密的目标文件被篡改可能导致的经济损失,提高目标文件执行的安全性。
基于上述任意一个实施例提出本发明的脚本加密与解密方法的第四实施例,请参考图7,图7为本发明的脚本加密与解密方法第四实施例的流程示意图,在该实施例中,步骤S80之后,包括:
步骤S90,判断解密后的所述目标文件中的指令段是否包含预设的校验指令;
步骤S100,若所述目标文件中的指令段不包含预设的校验指令,输出所述目标文件异常的提示信息;
步骤S110,若所述目标文件中的指令段包含预设的校验指令,获取所述校验指令中检验参数;
步骤S120,在所述检验参数与所述校验指令在所述指令段中的实际参数相同,则表明所述目标文件正常。
对应于第二实施例中,在通过指令密钥对目标文件中的指令段进行加密的过程中,先将预设的校验指令添加至指令段后,根据指令密钥对包含有校验指令的指令段进行加密,在通过解密密钥对加密后的目标文件进行解密后,可通过判定目标文件中指令段是否包含预设的校验指令以确定指令段是否被篡改,如在指令段中增加指令或者删除指令。可以理解的是,若目标文件中的指令段不包含预设的校验指令,输出目标文件异常的提示信息,以表明目标文件存在安全隐患,不予以执行,可选地,在输出目标文件异常的提示信息的同时删除该目标文件;若目标文件中的指令段包含预设的校验指令,此时,还无法确定指令段是否正常且安全,可通过获取校验指令中检验参数,如校验指令如金丝雀指令中确定的在指令段中目标行数,在检验参数也即目标行数与检验指令在指令段中的实际参数也即实际所在行数不相同时,可确定指令段中的指令被篡改,可输出目标文件异常的提示信息;在检验参数也即目标行数与检验指令在指令段中的实际参数也即实际所在行数相同时,则表明目标文件正常,可执行目标文件以实现目标文件对应的功能。
在本实施例公开的技术方案中,通过判定解密后的目标文件是否存在预设的校验指令以进一步验证目标文件是否被篡改而存在安全隐患,达到了更进一步验证目标文件是否安全的目的,以提高目标文件被执行的安全性。
本发明还提出一种终端设备,终端设备包括存储器、处理器以及存储在存储器中并可在处理器上运行的脚本加密与解密程序,处理器执行脚本加密与解密程序时实现上述任一实施例的脚本加密与解密方法的步骤。
本发明还提出一种可读存储介质,该可读存储介质上存储有脚本加密与解密程序,脚本加密与解密程序被处理器执行时实现如以上任一实施例的脚本加密与解密方法的步骤。
在本发明提供的终端设备和可读存储介质的实施例中,包含了上述脚本加密与解密的各实施例的全部技术特征,说明书拓展和解释内容与上述脚本加密与解密方法的各实施例基本相同,在此不做再赘述。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在如上的一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台移动终端(可以是手机,计算机,服务器,被控终端,或者网络设备等)执行本发明每个实施例的方法。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。

Claims (10)

1.一种脚本加密与解密方法,其特征在于,所述脚本加密与解密方法包括:
获取待编译脚本编译后的目标文件;
获取所述目标文件中的密钥切换密码;
根据所述密钥切换密码以及第一参考密钥生成加密密钥;
根据所述加密密钥对所述目标文件进行加密,根据所述加密密钥更新所述第一参考密钥。
2.如权利要求1所述的脚本加密与解密方法,其特征在于,所述根据所述加密密钥对所述目标文件进行加密的步骤包括:
获取所述目标文件中的指令段以及数据段;
根据所述加密密钥中的指令密钥对所述指令段进行加密;
根据所述加密密钥中的数据密钥对所述数据段进行加密。
3.如权利要求2所述的脚本加密与解密方法,其特征在于,所述根据所述加密密钥中的指令密钥对所述指令段进行加密的步骤之后,包括:
根据加密后的所述指令段生成第一指令校验码;
将所述第一指令校验码添加至所述加密后的所述目标文件中。
4.如权利要求2所述的脚本加密与解密方法,其特征在于,所述根据所述加密密钥中的数据密钥对所述数据段进行加密的步骤之后,包括:
根据加密后的所述数据段生成第一数据校验码;
将所述第一数据校验码添加至所述加密后的所述目标文件中。
5.如权利要求2所述的脚本加密与解密方法,其特征在于,所述根据所述加密密钥中的指令密钥对所述指令段进行加密的步骤包括:
将预设的校验指令添加至所述指令段;
根据所述加密密钥中的指令密钥对包含有所述校验指令的所述指令段进行加密。
6.一种脚本加密与解密方法,其特征在于,所述脚本加密与解密方法包括:
获取预存的第二参考密钥;
获取加密后的目标文件中的密钥切换密码;
根据所述第二参考密钥以及所述密钥切换密码生成解密密钥;
根据所述解密密钥对加密后的所述目标文件进行解密,根据所述解密密钥更新所述第二参考密钥。
7.如权利要求6所述的脚本加密与解密方法,其特征在于,所述根据所述参考密钥以及所述密钥切换密码生成解密密钥的步骤之后,包括:
获取加密后的所述目标文件中的加密指令段以及第一指令校验码;
根据所述加密指令段生成第二指令校验码;
若所述第二指令校验码与所述第一指令校验码匹配,执行所述根据所述解密密钥对加密后的所述目标文件进行解密的步骤;
或者,所述根据所述参考密钥以及所述密钥切换密码生成解密密钥的步骤之后,包括:
获取加密后的所述目标文件中的加密数据段以及第一数据校验码;
根据所述加密数据段生成第二数据校验码;
若所述第二数据校验码与所述第一数据校验码匹配,执行所述根据所述解密密钥对加密后的所述目标文件进行解密的步骤。
8.如权利要求6所述的脚本加密与解密方法,其特征在于,所述根据所述解密密钥对加密后的所述目标文件进行解密的步骤之后,包括:
判断解密后的所述目标文件中的指令段是否包含预设的校验指令;
若所述目标文件中的指令段不包含预设的校验指令,输出所述目标文件异常的提示信息;
若所述目标文件中的指令段包含预设的校验指令,获取所述校验指令中检验参数;
在所述检验参数与所述校验指令在所述指令段中的实际参数相同,则表明所述目标文件正常。
9.一种终端设备,其特征在于,所述终端设备包括:存储器、处理器以及存储在所述存储器里并可在所述处理器上运行的脚本加密程序,所述脚本加密程序被所述处理器执行时实现如权利要求1-8任一项脚本加密与解密方法的步骤。
10.一种可读存储介质,其特征在于,所述可读存储介质上存储有脚本加密程序,所述脚本加密程序被处理器执行时实现如权利要求1-8任一项脚本加密与解密方法的步骤。
CN202110169994.XA 2021-02-07 2021-02-07 脚本加密与解密方法、终端设备及可读存储介质 Active CN112948773B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110169994.XA CN112948773B (zh) 2021-02-07 2021-02-07 脚本加密与解密方法、终端设备及可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110169994.XA CN112948773B (zh) 2021-02-07 2021-02-07 脚本加密与解密方法、终端设备及可读存储介质

Publications (2)

Publication Number Publication Date
CN112948773A true CN112948773A (zh) 2021-06-11
CN112948773B CN112948773B (zh) 2024-05-24

Family

ID=76243329

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110169994.XA Active CN112948773B (zh) 2021-02-07 2021-02-07 脚本加密与解密方法、终端设备及可读存储介质

Country Status (1)

Country Link
CN (1) CN112948773B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114221784A (zh) * 2021-11-12 2022-03-22 招银云创信息技术有限公司 数据传输方法和计算机设备

Citations (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1222991A (zh) * 1997-03-13 1999-07-14 布尔Cp8公司 用于在保密模块中存储和使用敏感信息的方法及相关的保密模块
CN1380610A (zh) * 2001-04-09 2002-11-20 凤凰技术有限公司 用于计算机装置验证的系统和方法
CN101479984A (zh) * 2006-04-25 2009-07-08 斯蒂芬·L.·博伦 用于身份管理、验证服务器、数据安全和防止中间人攻击的动态分发密钥系统和方法
CN102238001A (zh) * 2010-05-07 2011-11-09 腾讯数码(深圳)有限公司 一种提高数据安全性的方法和装置
CN103914666A (zh) * 2013-09-17 2014-07-09 亚欧宝龙信息安全技术(湖南)有限公司 一种基于分区的文件加解密方法和装置
US20170012949A1 (en) * 2006-04-25 2017-01-12 Stephen Laurence Boren Dynamic identity verification and authentication continuous, dynamic one-time-pad/one-time passwords and dynamic distributed key infrastructure for secure communications with a single key for any key-based network security controls
WO2018102382A1 (en) * 2016-11-29 2018-06-07 ZeroDB, Inc. Method and system for switching public keys in ciphertexts
CN109885990A (zh) * 2019-03-11 2019-06-14 腾讯科技(深圳)有限公司 脚本管理方法
CN109902493A (zh) * 2019-01-04 2019-06-18 平安科技(深圳)有限公司 脚本的下发方法及服务器
CN109995526A (zh) * 2019-04-10 2019-07-09 睿驰达新能源汽车科技(北京)有限公司 一种密钥的存储方法和装置、密钥的调用方法和装置
US10523434B1 (en) * 2016-03-04 2019-12-31 Amazon Technologies, Inc. Data storage key rotation
CN110826031A (zh) * 2019-10-31 2020-02-21 北京东软望海科技有限公司 加密方法、装置、计算机设备及存储介质
CN110968844A (zh) * 2019-12-02 2020-04-07 卫盈联信息技术(深圳)有限公司 离线状态下的软件授权方法、服务器及可读存储介质
CN110995411A (zh) * 2019-11-13 2020-04-10 京东数字科技控股有限公司 加密、解密方法、装置、电子设备及存储介质
CN111159757A (zh) * 2019-12-18 2020-05-15 成都烽创科技有限公司 文件加密方法、解密方法及相应装置
CN111177749A (zh) * 2019-12-18 2020-05-19 深圳市金蝶天燕云计算股份有限公司 加密源代码文件处理方法、装置、计算机设备和存储介质

Patent Citations (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1222991A (zh) * 1997-03-13 1999-07-14 布尔Cp8公司 用于在保密模块中存储和使用敏感信息的方法及相关的保密模块
CN1380610A (zh) * 2001-04-09 2002-11-20 凤凰技术有限公司 用于计算机装置验证的系统和方法
CN101479984A (zh) * 2006-04-25 2009-07-08 斯蒂芬·L.·博伦 用于身份管理、验证服务器、数据安全和防止中间人攻击的动态分发密钥系统和方法
US20170012949A1 (en) * 2006-04-25 2017-01-12 Stephen Laurence Boren Dynamic identity verification and authentication continuous, dynamic one-time-pad/one-time passwords and dynamic distributed key infrastructure for secure communications with a single key for any key-based network security controls
CN102238001A (zh) * 2010-05-07 2011-11-09 腾讯数码(深圳)有限公司 一种提高数据安全性的方法和装置
CN103914666A (zh) * 2013-09-17 2014-07-09 亚欧宝龙信息安全技术(湖南)有限公司 一种基于分区的文件加解密方法和装置
US10523434B1 (en) * 2016-03-04 2019-12-31 Amazon Technologies, Inc. Data storage key rotation
WO2018102382A1 (en) * 2016-11-29 2018-06-07 ZeroDB, Inc. Method and system for switching public keys in ciphertexts
CN109902493A (zh) * 2019-01-04 2019-06-18 平安科技(深圳)有限公司 脚本的下发方法及服务器
CN109885990A (zh) * 2019-03-11 2019-06-14 腾讯科技(深圳)有限公司 脚本管理方法
CN109995526A (zh) * 2019-04-10 2019-07-09 睿驰达新能源汽车科技(北京)有限公司 一种密钥的存储方法和装置、密钥的调用方法和装置
CN110826031A (zh) * 2019-10-31 2020-02-21 北京东软望海科技有限公司 加密方法、装置、计算机设备及存储介质
CN110995411A (zh) * 2019-11-13 2020-04-10 京东数字科技控股有限公司 加密、解密方法、装置、电子设备及存储介质
CN110968844A (zh) * 2019-12-02 2020-04-07 卫盈联信息技术(深圳)有限公司 离线状态下的软件授权方法、服务器及可读存储介质
CN111159757A (zh) * 2019-12-18 2020-05-15 成都烽创科技有限公司 文件加密方法、解密方法及相应装置
CN111177749A (zh) * 2019-12-18 2020-05-19 深圳市金蝶天燕云计算股份有限公司 加密源代码文件处理方法、装置、计算机设备和存储介质

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114221784A (zh) * 2021-11-12 2022-03-22 招银云创信息技术有限公司 数据传输方法和计算机设备
CN114221784B (zh) * 2021-11-12 2024-04-09 招银云创信息技术有限公司 数据传输方法和计算机设备

Also Published As

Publication number Publication date
CN112948773B (zh) 2024-05-24

Similar Documents

Publication Publication Date Title
US10402179B1 (en) Application randomization mechanism
CN108322461B (zh) 应用程序自动登录的方法、系统、装置、设备和介质
KR101471589B1 (ko) 공통중간언어 기반 프로그램을 위한 보안 제공 방법
CN105683990B (zh) 用于保护动态库的方法和装置
CN104680039B (zh) 一种应用程序安装包的数据保护方法及装置
US20220209951A1 (en) Authentication method, apparatus and device, and computer-readable storage medium
CN107908392B (zh) 数据采集工具包定制方法、装置、终端和存储介质
KR101216995B1 (ko) 인덱스 테이블 기반 코드 암호화 및 복호화 장치 및 그 방법
CN105681039A (zh) 用于生成密钥及对应解密的方法和设备
CN105446713A (zh) 安全存储方法及设备
KR102013983B1 (ko) 애플리케이션 무결성 인증 방법 및 인증 서버
CN113568680B (zh) 应用程序的动态链接库保护方法、装置、设备及介质
KR101472346B1 (ko) 암호화된 웹 어플리케이션 제공 방법, 이를 지원하는 단말, 및 이를 위한 기록매체
CN106897587A (zh) 加固应用、加载加固应用的方法和装置
CN113553572A (zh) 资源信息获取方法、装置、计算机设备和存储介质
KR101097103B1 (ko) 소프트웨어 소스코드의 유출을 방지하기 위한 시스템 및 방법
CN112231702A (zh) 应用保护方法、装置、设备及介质
CN111159658B (zh) 字节码处理方法、系统、装置、计算机设备和存储介质
CN112948773B (zh) 脚本加密与解密方法、终端设备及可读存储介质
JP2017146967A (ja) 中間言語ファイルのロード速度改善のための方法およびシステム
CN107871066A (zh) 基于安卓系统的代码编译方法及装置
CN104965701A (zh) 获取应用信息的方法及装置
CN116910712A (zh) 代码保护方法、系统、电子设备及存储介质
CN109784072B (zh) 一种安全文件管理方法和系统
CN109995534B (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
CB02 Change of applicant information

Country or region after: China

Address after: 518000, Building 4205, Building D1, Kexing Science Park, No. 15 Keyuan Road, Science Park Community, Yuehai Street, Nanshan District, Shenzhen, Guangdong Province

Applicant after: Shenzhen Dameng Longtu Culture Communication Co.,Ltd.

Address before: B4-1102, building B, Kexing Science Park, No. 15, Keyuan Road, Science Park community, Yuehai street, Nanshan District, Shenzhen, Guangdong 518000

Applicant before: Shenzhen Dameng Longtu Culture Communication Co.,Ltd.

Country or region before: China