CN112395564A - 类文件的保护与运行方法、装置、设备及存储介质 - Google Patents
类文件的保护与运行方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN112395564A CN112395564A CN202011284432.1A CN202011284432A CN112395564A CN 112395564 A CN112395564 A CN 112395564A CN 202011284432 A CN202011284432 A CN 202011284432A CN 112395564 A CN112395564 A CN 112395564A
- Authority
- CN
- China
- Prior art keywords
- file
- class
- encrypted
- class file
- target
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 42
- 238000004422 calculation algorithm Methods 0.000 claims abstract description 84
- PXFBZOLANLWPMH-UHFFFAOYSA-N 16-Epiaffinine Natural products C1C(C2=CC=CC=C2N2)=C2C(=O)CC2C(=CC)CN(C)C1C2CO PXFBZOLANLWPMH-UHFFFAOYSA-N 0.000 claims abstract description 72
- 238000004806 packaging method and process Methods 0.000 claims abstract description 18
- 238000012545 processing Methods 0.000 claims description 29
- 238000012546 transfer Methods 0.000 claims description 12
- 230000004044 response Effects 0.000 claims description 10
- 230000006870 function Effects 0.000 claims description 8
- 238000012856 packing Methods 0.000 claims description 8
- 238000013507 mapping Methods 0.000 claims description 6
- 238000007405 data analysis Methods 0.000 claims description 5
- 238000005516 engineering process Methods 0.000 abstract description 3
- 238000005336 cracking Methods 0.000 description 9
- 238000010586 diagram Methods 0.000 description 6
- 230000008569 process Effects 0.000 description 4
- 238000006243 chemical reaction Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000007792 addition Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000012858 packaging process Methods 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 230000001052 transient effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/10—Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
- G06F21/12—Protecting executable software
- G06F21/14—Protecting executable software against software analysis or reverse engineering, e.g. by obfuscation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/42—Syntactic analysis
- G06F8/427—Parsing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/53—Decompilation; Disassembly
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Bioethics (AREA)
- Multimedia (AREA)
- Technology Law (AREA)
- Storage Device Security (AREA)
Abstract
本发明涉及信息安全技术领域,公开了一种类文件的保护与运行方法、装置、设备及存储介质,用于提高类文件的安全性。类文件的保护与运行方法包括:按照待加密的文件路径信息读取源代码文件;对源代码文件进行编译处理,得到字节码信息;根据仿射加密算法对字节码信息进行加密处理,得到已加密的类文件;对已加密的类文件进行打包处理,并将已打包的类文件和动态链接库文件发送至目标终端,得到发送结果;当发送结果为发送成功时,根据已打包的类文件和动态链接库文件生成待操作脚本指令,建立与目标终端之间的远程连接,调用并执行待操作脚本指令,得到执行结果。此外,本发明还涉及区块链技术,动态链接库文件可存储于区块链节点中。
Description
技术领域
本发明涉及信息安全技术的混淆处理领域,尤其涉及一种类文件的保护与运行方法、装置、设备及存储介质。
背景技术
当系统部署在客户方的操作系统(例如,linux)主机上时,那么类class文件存在被破解的风险,核心算法及规则存在泄漏的问题。由于java是解析型语言,很容易就能反编译出源码,且还原度很高。业内常规的防止反编译的做法一般采用C++编写核心代码,再转成native方法可供java调用。
另外,也可以对类class文件加密,再通过自定义类加载器classloader在装载class之前先解密再装载。这个方法的确能防止class文件被反编译,但是该自定义的类加载器文件classloader.class本身是无法加密的,因此破解方能够轻易反编译classloader.class,进而根据class解密逻辑自行解密所有的class文件。还有通过混淆工具来对class字节码进行混淆的,虽然代码混淆后可以增加代码的可读性,从而提升破解难度,但是其本身并不能阻止class文件被反编译和破解,导致class文件加密后,存在容易破解和安全性差的问题。
发明内容
本发明提供了一种类文件的保护与运行方法、装置、设备及存储介质,用于增加类class文件的破解难度,并提高class文件的安全性。
为实现上述目的,本发明第一方面提供了一种类文件的保护与运行方法,包括:获取待加密的文件路径信息,按照所述待加密的文件路径信息读取源代码文件;对所述源代码文件进行编译处理,得到目标类文件,并从所述目标类文件中读取字节码信息;根据仿射加密算法对所述字节码信息进行加密处理,得到密文字符串,并将所述密文字符串写入至所述目标类文件中,得到已加密的类文件;获取所述已加密的类文件对应的动态链接库文件,对所述已加密的类文件进行打包处理,得到已打包的类文件,并将所述已打包的类文件和所述动态链接库文件发送至目标终端,得到发送结果,所述动态链接库文件包括预先设置的解密规则和仿射解密算法;当所述发送结果为发送成功时,根据所述已打包的类文件和所述动态链接库文件生成待操作脚本指令,建立与所述目标终端之间的远程连接,调用并执行所述待操作脚本指令,得到执行结果,所述待操作脚本指令用于指示在所述目标终端中基于所述仿射解密算法和所述解密规则对所述已打包的类文件进行解密和运行处理。
可选的,在本发明第一方面的第一种实现方式中,所述获取待加密的文件路径信息,按照所述待加密的文件路径信息读取源代码文件,包括:获取待加密的文件类型和文件处理状态,根据所述待加密的文件类型和所述文件处理状态、预设数据库表和结构化查询语言语法规则设置查询语句,所述文件处理状态为待加密状态;执行所述查询语句,得到待加密的文件路径信息,并按照所述待加密的文件路径信息读取源代码文件。
可选的,在本发明第一方面的第二种实现方式中,所述对所述源代码文件进行编译处理,得到目标类文件,并从所述目标类文件中读取字节码信息,包括:调用预设的编译器将所述源代码文件转换为目标类文件,并获取所述目标类文件的全路径信息,所述目标类文件的全路径信息包括存储目录信息和目标类文件的类名称信息;通过预设类文件读取函数按照所述存储目录信息和所述目标类文件的类名称信息从所述目标类文件中读取字节码信息,所述字节码信息主要由十六进制的数据组成。
可选的,在本发明第一方面的第三种实现方式中,所述根据仿射加密算法对所述字节码信息进行加密处理,得到密文字符串,并将所述密文字符串写入至所述目标类文件中,得到已加密的类文件,包括:获取预先设置的密钥对和预设的模数,并将所述字节码信息中的每个字符转换为对应的目标数值;按照仿射加密算法对所述密钥对、所述模数和每个字符对应的目标数值进行计算,得到每个字符对应的密文数字;将每个字符对应的密文数字转换为对应的密文字符,并将每个字符对应的密文字符按照所述字节码信息中的字符先后顺序进行组合,得到密文字符串,将所述密文字符串写入至所述目标类文件中,得到已加密的类文件,并将所述已加密的类文件更新至预设配置数据表中。
可选的,在本发明第一方面的第四种实现方式中,所述获取所述已加密的类文件对应的动态链接库文件,对所述已加密的类文件进行打包处理,得到已打包的类文件,并将所述已打包的类文件和所述动态链接库文件发送至目标终端,得到发送结果,所述动态链接库文件包括预先设置的解密规则和仿射解密算法,包括:按照预设的文件类型和预设的打包指令对所述已加密的类文件进行打包操作,得到已打包的类文件;从所述预设配置数据表中查询所述已加密的类文件对应的动态链接库文件,并对所述已打包的类文件与所述动态链接库文件进行关联映射,所述动态链接库文件包括预先设置的解密规则和仿射解密算法;通过文件传输协议将所述已打包的类文件和所述动态链接库文件发送至目标终端,得到发送结果。
可选的,在本发明第一方面的第五种实现方式中,所述当所述发送结果为发送成功时,根据所述已打包的类文件和所述动态链接库文件生成待操作脚本指令,建立与所述目标终端之间的远程连接,调用并执行所述待操作脚本指令,得到执行结果,所述待操作脚本指令用于指示在所述目标终端中基于所述仿射解密算法和所述解密规则对所述已打包的类文件进行解密和运行处理,包括:当所述发送结果为发送成功时,获取预设指令关键字,根据所述预设指令关键字、所述已打包的类文件和所述动态链接库文件生成待操作脚本指令,所述待操作脚本指令用于指示在所述目标终端中基于所述仿射解密算法和所述解密规则对所述已打包的类文件进行解密和运行处理;获取目标终端的网际互连协议地址信息,按照所述网际互连协议地址信息向所述目标终端发送远程连接请求,得到响应数据,并对所述响应数据进行数据解析,得到连接结果;当所述连接结果为连接成功时,调用并执行所述待操作脚本指令,从所述动态链接库文件中读取所述解密规则和所述仿射解密算法,所述解密规则包括所述密钥对和所述模数;从所述已打包的类文件中读取已加密的字符串,并通过所述仿射解密算法按照所述密钥对和所述模数对所述已加密的字符串进行解密,得到已解密的类文件;通过预设类加载器加载所述已解密的类文件,并启动所述已解密的类文件对应的应用服务。
可选的,在本发明第一方面的第六种实现方式中,在所述获取待加密的文件路径信息,按照所述待加密的文件路径信息读取源代码文件之前,所述类文件的保护与运行方法还包括:获取预先设置的解密规则,并将所述预先设置的解密规则写入至初始文件中;获取预先设置的解密规则,并将所述预先设置的解密规则写入至初始文件中;通过预设脚本指令对所述初始文件进行编译,得到动态链接库文件。
本发明第二方面提供了一种类文件的保护与运行装置,包括:获取模块,用于获取待加密的文件路径信息,按照所述待加密的文件路径信息读取源代码文件;处理模块,用于对所述源代码文件进行编译处理,得到目标类文件,并从所述目标类文件中读取字节码信息;加密模块,用于根据仿射加密算法对所述字节码信息进行加密处理,得到密文字符串,并将所述密文字符串写入至所述目标类文件中,得到已加密的类文件;打包模块,用于获取所述已加密的类文件对应的动态链接库文件,对所述已加密的类文件进行打包处理,得到已打包的类文件,并将所述已打包的类文件和所述动态链接库文件发送至目标终端,得到发送结果,所述动态链接库文件包括预先设置的解密规则和仿射解密算法;执行模块,当所述发送结果为发送成功时,用于根据所述已打包的类文件和所述动态链接库文件生成待操作脚本指令,建立与所述目标终端之间的远程连接,调用并执行所述待操作脚本指令,得到执行结果,所述待操作脚本指令用于指示在所述目标终端中基于所述仿射解密算法和所述解密规则对所述已打包的类文件进行解密和运行处理。
可选的,在本发明第二方面的第一种实现方式中,所述获取模块具体用于:获取待加密的文件类型和文件处理状态,根据所述待加密的文件类型和所述文件处理状态、预设数据库表和结构化查询语言语法规则设置查询语句,所述文件处理状态为待加密状态;执行所述查询语句,得到待加密的文件路径信息,并按照所述待加密的文件路径信息读取源代码文件。
可选的,在本发明第二方面的第二种实现方式中,所述处理模块具体用于:调用预设的编译器将所述源代码文件转换为目标类文件,并获取所述目标类文件的全路径信息,所述目标类文件的全路径信息包括存储目录信息和目标类文件的类名称信息;通过预设类文件读取函数按照所述存储目录信息和所述目标类文件的类名称信息从所述目标类文件中读取字节码信息,所述字节码信息主要由十六进制的数据组成。
可选的,在本发明第二方面的第三种实现方式中,所述加密模块具体用于:获取预先设置的密钥对和预设的模数,并将所述字节码信息中的每个字符转换为对应的目标数值;按照仿射加密算法对所述密钥对、所述模数和每个字符对应的目标数值进行计算,得到每个字符对应的密文数字;将每个字符对应的密文数字转换为对应的密文字符,并将每个字符对应的密文字符按照所述字节码信息中的字符先后顺序进行组合,得到密文字符串,将所述密文字符串写入至所述目标类文件中,得到已加密的类文件,并将所述已加密的类文件更新至预设配置数据表中。
可选的,在本发明第二方面的第四种实现方式中,所述打包模块具体用于:按照预设的文件类型和预设的打包指令对所述已加密的类文件进行打包操作,得到已打包的类文件;从所述预设配置数据表中查询所述已加密的类文件对应的动态链接库文件,并对所述已打包的类文件与所述动态链接库文件进行关联映射,所述动态链接库文件包括预先设置的解密规则和仿射解密算法;通过文件传输协议将所述已打包的类文件和所述动态链接库文件发送至目标终端,得到发送结果。
可选的,在本发明第二方面的第五种实现方式中,所述执行模块具体用于:当所述发送结果为发送成功时,获取预设指令关键字,根据所述预设指令关键字、所述已打包的类文件和所述动态链接库文件生成待操作脚本指令,所述待操作脚本指令用于指示在所述目标终端中基于所述仿射解密算法和所述解密规则对所述已打包的类文件进行解密和运行处理;获取目标终端的网际互连协议地址信息,按照所述网际互连协议地址信息向所述目标终端发送远程连接请求,得到响应数据,并对所述响应数据进行数据解析,得到连接结果;当所述连接结果为连接成功时,调用并执行所述待操作脚本指令,从所述动态链接库文件中读取所述解密规则和所述仿射解密算法,所述解密规则包括所述密钥对和所述模数;从所述已打包的类文件中读取已加密的字符串,并通过所述仿射解密算法按照所述密钥对和所述模数对所述已加密的字符串进行解密,得到已解密的类文件;通过预设类加载器加载所述已解密的类文件,并启动所述已解密的类文件对应的应用服务。
可选的,在本发明第二方面的第六种实现方式中,所述类文件的保护与运行装置还包括:写入模块,用于获取预先设置的解密规则,并将所述预先设置的解密规则写入至初始文件中;编译模块,用于通过预设脚本指令对所述初始文件进行编译,得到动态链接库文件。
本发明第三方面提供了一种类文件的保护与运行设备,包括:存储器和至少一个处理器,所述存储器中存储有指令;所述至少一个处理器调用所述存储器中的所述指令,以使得所述类文件的保护与运行设备执行上述的类文件的保护与运行方法。
本发明的第四方面提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述的类文件的保护与运行方法。
本发明提供的技术方案中,获取待加密的文件路径信息,按照所述待加密的文件路径信息读取源代码文件;对所述源代码文件进行编译处理,得到目标类文件,并从所述目标类文件中读取字节码信息;根据仿射加密算法对所述字节码信息进行加密处理,得到密文字符串,并将所述密文字符串写入至所述目标类文件中,得到已加密的类文件;获取所述已加密的类文件对应的动态链接库文件,对所述已加密的类文件进行打包处理,得到已打包的类文件,并将所述已打包的类文件和所述动态链接库文件发送至目标终端,得到发送结果,所述动态链接库文件包括预先设置的解密规则和仿射解密算法;当所述发送结果为发送成功时,根据所述已打包的类文件和所述动态链接库文件生成待操作脚本指令,建立与所述目标终端之间的远程连接,调用并执行所述待操作脚本指令,得到执行结果,所述待操作脚本指令用于指示在所述目标终端中基于所述仿射解密算法和所述解密规则对所述已打包的类文件进行解密和运行处理。本发明实施例中,通过仿射算法对类文件实现加密和解密处理,采用自定义密钥对,增加了类文件破解难度。并且将解密算法封装在动态链接库so文件中,so文件使用汇编语言,通过远程连接的方式,控制动态链接库文件对类文件进行解密和运行,提高了类文件运行的安全性。
附图说明
图1为本发明实施例中类文件的保护与运行方法的一个实施例示意图;
图2为本发明实施例中类文件的保护与运行方法的另一个实施例示意图;
图3为本发明实施例中类文件的保护与运行装置的一个实施例示意图;
图4为本发明实施例中类文件的保护与运行装置的另一个实施例示意图;
图5为本发明实施例中类文件的保护与运行设备的一个实施例示意图。
具体实施方式
本发明实施例提供了一种类文件的保护与运行方法、装置、设备及存储介质,用于通过仿射算法对类文件实现加密和解密处理,采用自定义密钥对,增加了类文件破解难度。
本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”或“具有”及其任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
为便于理解,下面对本发明实施例的具体流程进行描述,请参阅图1,本发明实施例中类文件的保护与运行方法的一个实施例包括:
101、获取待加密的文件路径信息,按照待加密的文件路径信息读取源代码文件。
其中,待加密的文件路径信息与源代码文件一一对应,例如,待加密的文件路径信息为/var/www/html/file/a.java文件,源代码文件为a.java文件。进一步地,服务器预先设置多个类文件,并将多个类文件上传至预设的文件路径下,得到待加密的文件路径信息,并将待加密的文件路径信息和文件类型存储至预设数据库中,并设置每个未加密的类文件对应的文件处理状态为待加密状态。服务器可以按照文件唯一标识信息确定待加密的文件路径信息。
可以理解的是,本发明的执行主体可以为类文件的保护与运行装置,还可以是终端或者服务器,具体此处不做限定。本发明实施例以服务器为执行主体为例进行说明。
102、对源代码文件进行编译处理,得到目标类文件,并从目标类文件中读取字节码信息。
需要说明的是,服务器通过预设的编译器将源代码文件转换为目标类文件,目标类文件就是编译器编译之后,以供服务器解释执行的十六进制字节码文件,其中,预设的编译器可以为IDE工具或者命令行脚本编译指令。例如,命令行脚本编译指令为,javaca.java,得到一个a.class,也就是目标类文件;进一步地,服务器获取目标类文件的全路径信息,目标类文件的全路径信息包括存储目录信息和目标类文件的类名称信息;服务器通过预设类文件读取函数(例如,Class.forName)按照存储目录信息和目标类文件的类名称信息从目标类文件中读取字节码信息,其中字节码信息主要由十六进制的数据组成。
103、根据仿射加密算法对字节码信息进行加密处理,得到密文字符串,并将密文字符串写入至目标类文件中,得到已加密的类文件。
具体的,服务器使用仿射加密算法对字节码加密,得到密文字符串,仿射加密算法对应的公式如下所示:
c=a*m+b(modn);
其中,a,b是密钥对,a与b的取值范围均为大于或者等于0,并且小于或者等于25,服务器根据gcd(a,26)等于1的整数,gcd(a,26)表示a和26的最大公因子,gcd(a,26)=1表示a和26是互素的,a∧-1表示a的逆元,即a-1*a==1mod26。
然后,服务器将密文字符串写入至目标类文件中,得到已加密的类文件。目标类文件与已加密的类文件为同一文件,节省了文件存储空间。
104、获取已加密的类文件对应的动态链接库文件,对已加密的类文件进行打包处理,得到已打包的类文件,并将已打包的类文件和动态链接库文件发送至目标终端,得到发送结果,动态链接库文件包括预先设置的解密规则和仿射解密算法。
其中,目标终端可以为容器,也可以为虚拟机,具体此处不做限定。需要说明的是,已加密的类文件与已打包的类文件为一一对应关系。例如,已加密的类文件为ff.class,已打包的类文件为h.jar,已打包的类文件也可以包括其他相关的文件(例如,头文件),具体此处不做限定。并且已打包的类文件的文件存储路径为预先设置在目标终端中的文件目录,该文件目录的具有读权限、写权限和执行权限。
具体的,服务器从预设数据库中获取已加密的类文件对应的动态链接库文件,然后服务器对已加密的类文件打包处理,得到已打包的类文件,最后服务器将已打包的类文件和动态链接库文件发送至目标终端,并接收目标终端发送的发送结果,动态链接库文件包括预先设置的解密规则和仿射解密算法。进一步地,将动态链接库文件存储于区块链数据库中,具体此处不做限定。
105、当发送结果为发送成功时,根据已打包的类文件和动态链接库文件生成待操作脚本指令,建立与目标终端之间的远程连接,调用并执行待操作脚本指令,得到执行结果,待操作脚本指令用于指示在目标终端中基于仿射解密算法和解密规则对已打包的类文件进行解密和运行处理。
可以理解的是,服务器通过改变class文件的字节码,实现加密的效果。而关键在于把解密算法写在linux系统上的动态链接库so文件中,具体的,当发送结果为发送成功时,服务器建立与目标终端之间的远程连接,并能够在全球广域网web容器启动前,服务器远程执行待操作脚本指令,调用目标终端中的so文件中的解密算法和解密规则解密已打包的类文件,得到解密后的class文件,然后服务器在目标终端中再远程加载解密后的class文件。需要说明的是,由于加解密的算法均使用了仿射算法,可以自定义(a,b)密钥对,增加了类文件的破解难度和运行的安全性。
需要说明的是,发送结果包括发送成功和发送失败,当发送结果为发送失败时,服务器可以重新发送已打包的类文件和动态链接库文件,也可以生成警示信息,以使得目标人员按照警示信息及时排查目标终端与服务器之间的网络连接等情况,提高了文件分发的效率和准确率。
本发明实施例中,通过仿射算法对类文件实现加密和解密处理,采用自定义密钥对,增加了类文件破解难度。并且将解密算法封装在动态链接库so文件中,so文件使用汇编语言,通过远程连接的方式,控制动态链接库文件对类文件进行解密和运行,提高了类文件运行的安全性。
请参阅图2,本发明实施例中类文件的保护与运行方法的另一个实施例包括:
201、获取待加密的文件路径信息,按照待加密的文件路径信息读取源代码文件。
可以理解的是,服务器读取源代码文件之前,服务器还可以采用预设函数判断待加密的文件路径信息是否存在,并在确定待加密的文件路径信息存在的情况下,才读取源代码文件。可选的,服务器获取待加密的文件类型和文件处理状态,服务器根据待加密的文件类型和文件处理状态、预设数据库表和结构化查询语言语法规则设置查询语句,文件处理状态为待加密状态;服务器执行查询语句,得到待加密的文件路径信息,并按照待加密的文件路径信息读取源代码文件,需要说明的是,服务器执行查询语句,得到查询结果,当查询结果不为空值时,服务器从查询结果中读取待加密的文件路径信息;服务器按照待加密的文件路径信息读取文件,得到读取结果;当读取结果为读取成功时,服务器获取源代码文件。
202、对源代码文件进行编译处理,得到目标类文件,并从目标类文件中读取字节码信息。
其中,目标类文件用于存储经过编译处理的字节码信息。可选的,服务器调用预设的编译器将源代码文件转换为目标类文件,并获取目标类文件的全路径信息,目标类文件的全路径信息包括存储目录信息和目标类文件的类名称信息;服务器通过预设类文件读取函数按照存储目录信息和目标类文件的类名称信息从目标类文件中读取字节码信息,字节码信息主要由十六进制的数据组成。
进一步地,服务器还可以通过对类名.class进行数据打印输出,得到目标类文件中的字节码信息;或者,服务器创建对象后,通过类创建的对象从目标类文件中读取字节码信息,具体此处不做限定。编译器查找动态连接库时有隐含的命名规则,即在给出的名字前面加上lib,后面加上.so来确定库的名称。
203、根据仿射加密算法对字节码信息进行加密处理,得到密文字符串,并将密文字符串写入至目标类文件中,得到已加密的类文件。
也就是,服务器按照仿射加密算法对字节码信息中的字符逐一加密处理,得到密文字符串,密文字符串的字符顺序与字节码信息中的字符顺序一致。可选的,服务器获取预先设置的密钥对和预设的模数,并将字节码信息中的每个字符转换为对应的目标数值;服务器按照仿射加密算法对密钥对、模数和每个字符对应的目标数值进行计算,得到每个字符对应的密文数字;服务器将每个字符对应的密文数字转换为对应的密文字符,并将每个字符对应的密文字符按照字节码信息中的字符先后顺序进行组合,得到密文字符串,将密文字符串写入至目标类文件中,得到已加密的类文件,并将已加密的类文件更新至预设配置数据表中。
例如,m的规则设置为字母序号-1,服务器设定密钥a为7,密钥b为3,模数n为16,字节码信息为6a6e,服务器将每个字符(采用十六进制表示)转换为数值m(采用十进制表示)为6,10,6,14;然后服务器根据仿射加密算法,计算得到每个字符对应的目标数字c为13,9,13,5。服务器再根据m的设定规则,得到密文字符串(十进制转化为十六进制)为d9d5。需要说明的是,服务器还可以统一字符为大写字母的方式,具体此处不做限定。
204、按照预设的文件类型和预设的打包指令对已加密的类文件进行打包操作,得到已打包的类文件。
其中,动态链接库文件为采用汇编语言进行编写的文件。服务器对已加密的类文件进行打包处理后,得到已打包的类文件,例如,服务器预设的文件类型和预设的打包指令对已加密的类文件进行打包操作,如下所示:
jar--create--verbose–file xxx_encrypted.jar--main-class Main.class;
服务器得到的已打包的类文件为xxx_encrypted.jar,预设的文件类型为.jar,预设的打包指令为jar--create--verbose–file,其中,Main.class为已加密的类文件。
205、从预设配置数据表中查询已加密的类文件对应的动态链接库文件,并对已打包的类文件与动态链接库文件进行关联映射,动态链接库文件包括预先设置的解密规则和仿射解密算法。
可以理解的是,服务器采用动态链接库文件(预先设置的解密规则和仿射解密算法)对已打包的类文件进行解密。动态链接库文件与已加密的类文件以及已打包的类文件存在对应关系。例如,服务器获取已打包的类文件为xxx_encrypted.jar,并将xxx_encrypted.jar更新至预设配置数据表中,服务器对已打包的类文件xxx_encrypted.jar与动态链接库文件A.so进行映射配置。
206、通过文件传输协议将已打包的类文件和动态链接库文件发送至目标终端,得到发送结果。
可以理解的是,源代码文件、已加密的类文件、已打包的类文件和动态链接库文件存在一一对应关系,并均存储于预设配置数据表中。文件传输协议(file transferprotocol,FTP)是用于在网络上进行文件传输的一套标准协议,以文件操作的方式(如文件的增加、删除、修改、查询、传送等)与另一主机(目标终端)相互通信,实现文件传输。
具体的,服务器通过文件传输协议对服务器与目标终端建立数据链路,服务器通过数据链路将已打包的类文件和动态链接库文件传送至目标终端,得到目标终端返回的发送结果。进一步地,服务器也可以采用安全文件传输协议(secure file transferprotocol,SFTP)进行文件传输,提高网络安全性。
207、当发送结果为发送成功时,根据已打包的类文件和动态链接库文件生成待操作脚本指令,建立与目标终端之间的远程连接,调用并执行待操作脚本指令,得到执行结果,待操作脚本指令用于指示在目标终端中基于仿射解密算法和解密规则对已打包的类文件进行解密和运行处理。
也就是,服务器获取发送结果,并判断发送结果是否为预设值,预设值可以为1或者逻辑真,也可以为其他值,具体此处不做限定;当发送结果为预设值时,服务器确定发送结果为发送成功。可选的,首先,当发送结果为发送成功时,服务器获取预设指令关键字,服务器根据预设指令关键字、已打包的类文件和动态链接库文件生成待操作脚本指令,待操作脚本指令用于指示在目标终端中基于仿射解密算法和解密规则对已打包的类文件进行解密和运行处理,其中,预设指令关键字包括java、agentpath和cp等指令。
其次,服务器获取目标终端的网际互连协议地址信息,按照网际互连协议地址信息向目标终端发送远程连接请求,得到响应数据,并对响应数据进行数据解析,得到连接结果;其中,连接结果包括连接成功或者连接失败,例如,服务器可采用200表示连接结果为连接成功,可采用500表示连接结果为连接失败,具体此处不做限定。
然后,当连接结果为连接成功时,服务器调用并执行待操作脚本指令,从动态链接库文件中读取解密规则和仿射解密算法,解密规则包括密钥对和模数。也就是,服务器使用待操作脚本指令运行jar包,该待操作脚本指令需要调用动态链接库文件。命令如下:
java-agentpath:/data/so/test/libxxx.so-cp xxx_encrypted.jarcom.xxx.Application。
再次,服务器从已打包的类文件中读取已加密的字符串,并通过仿射解密算法按照密钥对和模数对已加密的字符串进行解密,得到已解密的类文件。具体的,服务器采用仿射解密算法对已加密的字符串逐个进行解密,也就是对每个密文字符转换为对应的数字,并将密文数字代入m=a-1(m-b)(modn)中,进行解密处理,得到已解密的字符串,并将已解密的字符串更新至已解密的已解密的类文件中。最后,服务器通过预设类加载器加载已解密的类文件,并启动已解密的类文件对应的应用服务。
服务器将解密算法隐藏在动态链接库.so文件中,.so文件使用汇编语言,破解难度大。例如,服务器获取密钥对a,b分别为7和3,模数n为16,已加密的密文字符串为d9d5,服务器按照a∧-1进行计算,得到15,服务器将每个字符转换为数字m为13,9,13,5(十六进制转换为十进制),并将每个字符转换为目标数字c为6,10,6,14,然后服务器再根据m的设定规则,转换为名为明文字符6a6e(十进制转换为十六进制)。
进一步地,服务器获取预先设置的解密规则,并将预先设置的解密规则写入至初始文件中;服务器通过预设脚本指令对初始文件进行编译,得到动态链接库文件。可以理解的是,服务器采用编程语言C++编写加解密算法的实现逻辑(解密规则),生成初始源码文件(cpp文件)。然后,服务器在操作系统linux上使用g++命令将cpp文件编译成预设的动态链接库文件(文件格式为.so)。对应的预设脚本指令如下:
g++xxx.cpp-fPIC-shared-o libxxx.so。
需要说明的是,对于不同的代码cpp文件,服务器编译生成每个cpp文件的动态链接库文件。
本发明实施例中,通过仿射算法对类文件实现加密和解密处理,采用自定义密钥对,增加了类文件破解难度。并且将解密算法封装在动态链接库so文件中,so文件使用汇编语言,通过远程连接的方式,控制动态链接库文件对类文件进行解密和运行,提高了类文件运行的安全性。
上面对本发明实施例中类文件的保护与运行方法进行了描述,下面对本发明实施例中类文件的保护与运行装置进行描述,请参阅图3,本发明实施例中类文件的保护与运行装置的一个实施例包括:
获取模块301,用于获取待加密的文件路径信息,按照待加密的文件路径信息读取源代码文件;
处理模块302,用于对源代码文件进行编译处理,得到目标类文件,并从目标类文件中读取字节码信息;
加密模块303,用于根据仿射加密算法对字节码信息进行加密处理,得到密文字符串,并将密文字符串写入至目标类文件中,得到已加密的类文件;
打包模块304,用于获取已加密的类文件对应的动态链接库文件,对已加密的类文件进行打包处理,得到已打包的类文件,并将已打包的类文件和动态链接库文件发送至目标终端,得到发送结果,动态链接库文件包括预先设置的解密规则和仿射解密算法;
执行模块305,当发送结果为发送成功时,用于根据已打包的类文件和动态链接库文件生成待操作脚本指令,建立与目标终端之间的远程连接,调用并执行待操作脚本指令,得到执行结果,待操作脚本指令用于指示在目标终端中基于仿射解密算法和解密规则对已打包的类文件进行解密和运行处理。
进一步地,将动态链接库文件存储于区块链数据库中,具体此处不做限定。
本发明实施例中,通过仿射算法对类文件实现加密和解密处理,采用自定义密钥对,增加了类文件破解难度。并且将解密算法封装在动态链接库so文件中,so文件使用汇编语言,通过远程连接的方式,控制动态链接库文件对类文件进行解密和运行,提高了类文件运行的安全性。
请参阅图4,本发明实施例中类文件的保护与运行装置的另一个实施例包括:
获取模块301,用于获取待加密的文件路径信息,按照待加密的文件路径信息读取源代码文件;
处理模块302,用于对源代码文件进行编译处理,得到目标类文件,并从目标类文件中读取字节码信息;
加密模块303,用于根据仿射加密算法对字节码信息进行加密处理,得到密文字符串,并将密文字符串写入至目标类文件中,得到已加密的类文件;
打包模块304,用于获取已加密的类文件对应的动态链接库文件,对已加密的类文件进行打包处理,得到已打包的类文件,并将已打包的类文件和动态链接库文件发送至目标终端,得到发送结果,动态链接库文件包括预先设置的解密规则和仿射解密算法;
执行模块305,当发送结果为发送成功时,用于根据已打包的类文件和动态链接库文件生成待操作脚本指令,建立与目标终端之间的远程连接,调用并执行待操作脚本指令,得到执行结果,待操作脚本指令用于指示在目标终端中基于仿射解密算法和解密规则对已打包的类文件进行解密和运行处理。
可选的,获取模块301还可以具体用于:
获取待加密的文件类型和文件处理状态,根据待加密的文件类型和文件处理状态、预设数据库表和结构化查询语言语法规则设置查询语句,文件处理状态为待加密状态;
执行查询语句,得到待加密的文件路径信息,并按照待加密的文件路径信息读取源代码文件。
可选的,处理模块302还具体用于:
调用预设的编译器将源代码文件转换为目标类文件,并获取目标类文件的全路径信息,目标类文件的全路径信息包括存储目录信息和目标类文件的类名称信息;
通过预设类文件读取函数按照存储目录信息和目标类文件的类名称信息从目标类文件中读取字节码信息,字节码信息主要由十六进制的数据组成。
可选的,加密模块303还具体用于:
获取预先设置的密钥对和预设的模数,并将字节码信息中的每个字符转换为对应的目标数值;
按照仿射加密算法对密钥对、模数和每个字符对应的目标数值进行计算,得到每个字符对应的密文数字;
将每个字符对应的密文数字转换为对应的密文字符,并将每个字符对应的密文字符按照字节码信息中的字符先后顺序进行组合,得到密文字符串,将密文字符串写入至目标类文件中,得到已加密的类文件,并将已加密的类文件更新至预设配置数据表中。
可选的,打包模块304还可以具体用于:
按照预设的文件类型和预设的打包指令对已加密的类文件进行打包操作,得到已打包的类文件;
从预设配置数据表中查询已加密的类文件对应的动态链接库文件,并对已打包的类文件与动态链接库文件进行关联映射,动态链接库文件包括预先设置的解密规则和仿射解密算法;
通过文件传输协议将已打包的类文件和动态链接库文件发送至目标终端,得到发送结果。
可选的,执行模块305还可以具体用于:
当发送结果为发送成功时,获取预设指令关键字,根据预设指令关键字、已打包的类文件和动态链接库文件生成待操作脚本指令,待操作脚本指令用于指示在目标终端中基于仿射解密算法和解密规则对已打包的类文件进行解密和运行处理;
获取目标终端的网际互连协议地址信息,按照网际互连协议地址信息向目标终端发送远程连接请求,得到响应数据,并对响应数据进行数据解析,得到连接结果;
当连接结果为连接成功时,调用并执行待操作脚本指令,从动态链接库文件中读取解密规则和仿射解密算法,解密规则包括密钥对和模数;
从已打包的类文件中读取已加密的字符串,并通过仿射解密算法按照密钥对和模数对已加密的字符串进行解密,得到已解密的类文件;
通过预设类加载器加载已解密的类文件,并启动已解密的类文件对应的应用服务。
可选的,类文件的保护与运行装置还包括:
写入模块306,用于获取预先设置的解密规则,并将预先设置的解密规则写入至初始文件中;
编译模块307,用于通过预设脚本指令对初始文件进行编译,得到动态链接库文件。
本发明实施例中,通过仿射算法对类文件实现加密和解密处理,采用自定义密钥对,增加了类文件破解难度。并且将解密算法封装在动态链接库so文件中,so文件使用汇编语言,通过远程连接的方式,控制动态链接库文件对类文件进行解密和运行,提高了类文件运行的安全性。
上面图3和图4从模块化的角度对本发明实施例中的类文件的保护与运行装置进行详细描述,下面从硬件处理的角度对本发明实施例中类文件的保护与运行设备进行详细描述。
图5是本发明实施例提供的一种类文件的保护与运行设备的结构示意图,该类文件的保护与运行设备500可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上处理器(central processing units,CPU)510(例如,一个或一个以上处理器)和存储器520,一个或一个以上存储应用程序533或数据532的存储介质530(例如一个或一个以上海量存储设备)。其中,存储器520和存储介质530可以是短暂存储或持久存储。存储在存储介质530的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对类文件的保护与运行设备500中的一系列指令操作。更进一步地,处理器510可以设置为与存储介质530通信,在类文件的保护与运行设备500上执行存储介质530中的一系列指令操作。
类文件的保护与运行设备500还可以包括一个或一个以上电源540,一个或一个以上有线或无线网络接口550,一个或一个以上输入输出接口560,和/或,一个或一个以上操作系统531,例如Windows Serve,Mac OS X,Unix,Linux,FreeBSD等等。本领域技术人员可以理解,图5示出的类文件的保护与运行设备结构并不构成对类文件的保护与运行设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
本发明还提供一种计算机可读存储介质,该计算机可读存储介质可以为非易失性计算机可读存储介质,该计算机可读存储介质也可以为易失性计算机可读存储介质,所述计算机可读存储介质中存储有指令,当所述指令在计算机上运行时,使得计算机执行所述类文件的保护与运行方法的步骤。
本发明还提供一种类文件的保护与运行设备,所述类文件的保护与运行设备包括存储器和处理器,存储器中存储有指令,所述指令被处理器执行时,使得处理器执行上述每个实施例中的所述类文件的保护与运行方法的步骤。
进一步地,所述计算机可读存储介质可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序等;存储数据区可存储根据区块链节点的使用所创建的数据等。
本发明所指区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链(Blockchain),本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。区块链可以包括区块链底层平台、平台产品服务层以及应用服务层等。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明每个个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(read-only memory,ROM)、随机存取存储器(random access memory,RAM)、磁碟或者光盘等每个种可以存储程序代码的介质。
以上所述,以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述每个实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明每个实施例技术方案的精神和范围。
Claims (10)
1.一种类文件的保护与运行方法,其特征在于,所述类文件的保护与运行方法包括:
获取待加密的文件路径信息,按照所述待加密的文件路径信息读取源代码文件;
对所述源代码文件进行编译处理,得到目标类文件,并从所述目标类文件中读取字节码信息;
根据仿射加密算法对所述字节码信息进行加密处理,得到密文字符串,并将所述密文字符串写入至所述目标类文件中,得到已加密的类文件;
获取所述已加密的类文件对应的动态链接库文件,对所述已加密的类文件进行打包处理,得到已打包的类文件,并将所述已打包的类文件和所述动态链接库文件发送至目标终端,得到发送结果,所述动态链接库文件包括预先设置的解密规则和仿射解密算法;
当所述发送结果为发送成功时,根据所述已打包的类文件和所述动态链接库文件生成待操作脚本指令,建立与所述目标终端之间的远程连接,调用并执行所述待操作脚本指令,得到执行结果,所述待操作脚本指令用于指示在所述目标终端中基于所述仿射解密算法和所述解密规则对所述已打包的类文件进行解密和运行处理。
2.根据权利要求1所述的类文件的保护与运行方法,其特征在于,所述获取待加密的文件路径信息,按照所述待加密的文件路径信息读取源代码文件,包括:
获取待加密的文件类型和文件处理状态,根据所述待加密的文件类型和所述文件处理状态、预设数据库表和结构化查询语言语法规则设置查询语句,所述文件处理状态为待加密状态;
执行所述查询语句,得到待加密的文件路径信息,并按照所述待加密的文件路径信息读取源代码文件。
3.根据权利要求1所述的类文件的保护与运行方法,其特征在于,所述对所述源代码文件进行编译处理,得到目标类文件,并从所述目标类文件中读取字节码信息,包括:
调用预设的编译器将所述源代码文件转换为目标类文件,并获取所述目标类文件的全路径信息,所述目标类文件的全路径信息包括存储目录信息和目标类文件的类名称信息;
通过预设类文件读取函数按照所述存储目录信息和所述目标类文件的类名称信息从所述目标类文件中读取字节码信息,所述字节码信息主要由十六进制的数据组成。
4.根据权利要求1所述的类文件的保护与运行方法,其特征在于,所述根据仿射加密算法对所述字节码信息进行加密处理,得到密文字符串,并将所述密文字符串写入至所述目标类文件中,得到已加密的类文件,包括:
获取预先设置的密钥对和预设的模数,并将所述字节码信息中的每个字符转换为对应的目标数值;
按照仿射加密算法对所述密钥对、所述模数和每个字符对应的目标数值进行计算,得到每个字符对应的密文数字;
将每个字符对应的密文数字转换为对应的密文字符,并将每个字符对应的密文字符按照所述字节码信息中的字符先后顺序进行组合,得到密文字符串,将所述密文字符串写入至所述目标类文件中,得到已加密的类文件,并将所述已加密的类文件更新至预设配置数据表中。
5.根据权利要求4所述的类文件的保护与运行方法,其特征在于,所述获取所述已加密的类文件对应的动态链接库文件,对所述已加密的类文件进行打包处理,得到已打包的类文件,并将所述已打包的类文件和所述动态链接库文件发送至目标终端,得到发送结果,所述动态链接库文件包括预先设置的解密规则和仿射解密算法,包括:
按照预设的文件类型和预设的打包指令对所述已加密的类文件进行打包操作,得到已打包的类文件;
从所述预设配置数据表中查询所述已加密的类文件对应的动态链接库文件,并对所述已打包的类文件与所述动态链接库文件进行关联映射,所述动态链接库文件包括预先设置的解密规则和仿射解密算法;
通过文件传输协议将所述已打包的类文件和所述动态链接库文件发送至目标终端,得到发送结果。
6.根据权利要求4所述的类文件的保护与运行方法,其特征在于,所述当所述发送结果为发送成功时,根据所述已打包的类文件和所述动态链接库文件生成待操作脚本指令,建立与所述目标终端之间的远程连接,调用并执行所述待操作脚本指令,得到执行结果,所述待操作脚本指令用于指示在所述目标终端中基于所述仿射解密算法和所述解密规则对所述已打包的类文件进行解密和运行处理,包括:
当所述发送结果为发送成功时,获取预设指令关键字,根据所述预设指令关键字、所述已打包的类文件和所述动态链接库文件生成待操作脚本指令,所述待操作脚本指令用于指示在所述目标终端中基于所述仿射解密算法和所述解密规则对所述已打包的类文件进行解密和运行处理;
获取目标终端的网际互连协议地址信息,按照所述网际互连协议地址信息向所述目标终端发送远程连接请求,得到响应数据,并对所述响应数据进行数据解析,得到连接结果;
当所述连接结果为连接成功时,调用并执行所述待操作脚本指令,从所述动态链接库文件中读取所述解密规则和所述仿射解密算法,所述解密规则包括所述密钥对和所述模数;
从所述已打包的类文件中读取已加密的字符串,并通过所述仿射解密算法按照所述密钥对和所述模数对所述已加密的字符串进行解密,得到已解密的类文件;
通过预设类加载器加载所述已解密的类文件,并启动所述已解密的类文件对应的应用服务。
7.根据权利要求1-6中任意一项所述的类文件的保护与运行方法,其特征在于,在所述获取待加密的文件路径信息,按照所述待加密的文件路径信息读取源代码文件之前,所述类文件的保护与运行方法还包括:
获取预先设置的解密规则,并将所述预先设置的解密规则写入至初始文件中;
通过预设脚本指令对所述初始文件进行编译,得到动态链接库文件。
8.一种类文件的保护与运行装置,其特征在于,所述类文件的保护与运行装置包括:
获取模块,用于获取待加密的文件路径信息,按照所述待加密的文件路径信息读取源代码文件;
处理模块,用于对所述源代码文件进行编译处理,得到目标类文件,并从所述目标类文件中读取字节码信息;
加密模块,用于根据仿射加密算法对所述字节码信息进行加密处理,得到密文字符串,并将所述密文字符串写入至所述目标类文件中,得到已加密的类文件;
打包模块,用于获取所述已加密的类文件对应的动态链接库文件,对所述已加密的类文件进行打包处理,得到已打包的类文件,并将所述已打包的类文件和所述动态链接库文件发送至目标终端,得到发送结果,所述动态链接库文件包括预先设置的解密规则和仿射解密算法;
执行模块,当所述发送结果为发送成功时,用于根据所述已打包的类文件和所述动态链接库文件生成待操作脚本指令,建立与所述目标终端之间的远程连接,调用并执行所述待操作脚本指令,得到执行结果,所述待操作脚本指令用于指示在所述目标终端中基于所述仿射解密算法和所述解密规则对所述已打包的类文件进行解密和运行处理。
9.一种类文件的保护与运行设备,其特征在于,所述类文件的保护与运行设备包括:存储器和至少一个处理器,所述存储器中存储有指令;
所述至少一个处理器调用所述存储器中的所述指令,以使得所述类文件的保护与运行设备执行如权利要求1-7中任意一项所述的类文件的保护与运行方法。
10.一种计算机可读存储介质,其上存储有指令,其特征在于,所述指令被处理器执行时实现如权利要求1-7中任意一项所述的类文件的保护与运行方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011284432.1A CN112395564A (zh) | 2020-11-17 | 2020-11-17 | 类文件的保护与运行方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011284432.1A CN112395564A (zh) | 2020-11-17 | 2020-11-17 | 类文件的保护与运行方法、装置、设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112395564A true CN112395564A (zh) | 2021-02-23 |
Family
ID=74600575
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011284432.1A Pending CN112395564A (zh) | 2020-11-17 | 2020-11-17 | 类文件的保护与运行方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112395564A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113032741A (zh) * | 2021-04-20 | 2021-06-25 | 江苏保旺达软件技术有限公司 | 类文件加密方法、类文件运行方法、装置、设备及介质 |
CN113489723A (zh) * | 2021-07-05 | 2021-10-08 | 平安科技(深圳)有限公司 | 数据传输方法、系统、计算机设备及存储介质 |
CN116185486A (zh) * | 2023-04-27 | 2023-05-30 | 苏州清研精准汽车科技有限公司 | Can模块配置方法、装置及系统 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101944042A (zh) * | 2010-09-01 | 2011-01-12 | 深圳市拜特科技股份有限公司 | 一种Java程序的运行方法及电子终端 |
CN101957903A (zh) * | 2010-09-13 | 2011-01-26 | 中兴通讯股份有限公司 | 一种保护类文件的方法和装置 |
CN105022936A (zh) * | 2014-04-30 | 2015-11-04 | 北京畅游天下网络技术有限公司 | 一种类class文件加密解密方法和装置 |
US20170024230A1 (en) * | 2014-03-31 | 2017-01-26 | Yunpeng Li | Method, apparatus, and computer-readable medium for ofuscating execution of an application on a virtual machine |
CN107992723A (zh) * | 2017-11-29 | 2018-05-04 | 南京莱斯信息技术股份有限公司 | 一种基于动态链接库的Java源码保护方法 |
CN108898007A (zh) * | 2018-06-26 | 2018-11-27 | 焦点科技股份有限公司 | 一种基于JavaAgent和dll增强Java分发软件的安全方法 |
CN109784007A (zh) * | 2018-12-04 | 2019-05-21 | 厦门中控智慧信息技术有限公司 | 一种字节码加密的方法、字节码解密的方法及终端 |
CN110309630A (zh) * | 2019-06-28 | 2019-10-08 | 南京冰鉴信息科技有限公司 | 一种Java代码加密方法及装置 |
CN111159662A (zh) * | 2019-12-25 | 2020-05-15 | 郑州阿帕斯数云信息科技有限公司 | 一种数据的处理方法和装置 |
-
2020
- 2020-11-17 CN CN202011284432.1A patent/CN112395564A/zh active Pending
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101944042A (zh) * | 2010-09-01 | 2011-01-12 | 深圳市拜特科技股份有限公司 | 一种Java程序的运行方法及电子终端 |
CN101957903A (zh) * | 2010-09-13 | 2011-01-26 | 中兴通讯股份有限公司 | 一种保护类文件的方法和装置 |
US20170024230A1 (en) * | 2014-03-31 | 2017-01-26 | Yunpeng Li | Method, apparatus, and computer-readable medium for ofuscating execution of an application on a virtual machine |
CN105022936A (zh) * | 2014-04-30 | 2015-11-04 | 北京畅游天下网络技术有限公司 | 一种类class文件加密解密方法和装置 |
CN107992723A (zh) * | 2017-11-29 | 2018-05-04 | 南京莱斯信息技术股份有限公司 | 一种基于动态链接库的Java源码保护方法 |
CN108898007A (zh) * | 2018-06-26 | 2018-11-27 | 焦点科技股份有限公司 | 一种基于JavaAgent和dll增强Java分发软件的安全方法 |
CN109784007A (zh) * | 2018-12-04 | 2019-05-21 | 厦门中控智慧信息技术有限公司 | 一种字节码加密的方法、字节码解密的方法及终端 |
CN110309630A (zh) * | 2019-06-28 | 2019-10-08 | 南京冰鉴信息科技有限公司 | 一种Java代码加密方法及装置 |
CN111159662A (zh) * | 2019-12-25 | 2020-05-15 | 郑州阿帕斯数云信息科技有限公司 | 一种数据的处理方法和装置 |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113032741A (zh) * | 2021-04-20 | 2021-06-25 | 江苏保旺达软件技术有限公司 | 类文件加密方法、类文件运行方法、装置、设备及介质 |
CN113032741B (zh) * | 2021-04-20 | 2024-01-26 | 江苏保旺达软件技术有限公司 | 类文件加密方法、类文件运行方法、装置、设备及介质 |
CN113489723A (zh) * | 2021-07-05 | 2021-10-08 | 平安科技(深圳)有限公司 | 数据传输方法、系统、计算机设备及存储介质 |
CN113489723B (zh) * | 2021-07-05 | 2022-11-22 | 平安科技(深圳)有限公司 | 数据传输方法、系统、计算机设备及存储介质 |
CN116185486A (zh) * | 2023-04-27 | 2023-05-30 | 苏州清研精准汽车科技有限公司 | Can模块配置方法、装置及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112395564A (zh) | 类文件的保护与运行方法、装置、设备及存储介质 | |
CN1097771C (zh) | 执行可校验程序的系统和方法 | |
CN100527145C (zh) | 支持安全模式的可编程处理器 | |
CN111639306A (zh) | 离线软件授权方法、装置、设备及存储介质 | |
US9215219B1 (en) | Method for protecting data used in cloud computing with homomorphic encryption | |
KR101328012B1 (ko) | 애플리케이션 코드 난독화 장치 및 그 방법 | |
US7360097B2 (en) | System providing methodology for securing interfaces of executable files | |
JP5996810B2 (ja) | 自己書換え基盤のアプリケーションコード難読化装置及びその方法 | |
WO2021217980A1 (zh) | java代码的加壳方法与系统 | |
CN110069905A (zh) | 一种Springboot程序加密和解密的装置及方法 | |
CN108111622B (zh) | 一种下载白盒库文件的方法、装置及系统 | |
CN113010856A (zh) | 一种动态非对称加解密的JavaScript代码混淆方法与系统 | |
CN108134673B (zh) | 一种生成白盒库文件的方法及装置 | |
CN109614772B (zh) | 基于应用安装包文件的代码转换方法及装置 | |
CN112380575A (zh) | 多方电子签名合成方法、装置、设备及存储介质 | |
WO2021218173A1 (zh) | 源码加固方法、装置、计算机设备及存储介质 | |
US11231958B2 (en) | Method and control system for controlling and/or monitoring devices | |
US8838955B2 (en) | Two-way, secure, data communication within critical infrastructures | |
CN112311528B (zh) | 一种基于国密算法的数据安全传输方法 | |
CN113656765A (zh) | java程序安全处理方法、装置、计算机设备及存储介质 | |
CN111131281B (zh) | 消息传输方法、装置、系统及其保护代码更新方法、装置 | |
CN113489723B (zh) | 数据传输方法、系统、计算机设备及存储介质 | |
CN111078224A (zh) | 软件包文件数据处理方法、装置、计算机设备及存储介质 | |
CN114039743A (zh) | 数据的加密方法、装置、存储介质以及终端 | |
CN111460464B (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 |