CN117910005A - 一种Java字节码的加载方法、装置、设备及存储介质 - Google Patents

一种Java字节码的加载方法、装置、设备及存储介质 Download PDF

Info

Publication number
CN117910005A
CN117910005A CN202311844637.4A CN202311844637A CN117910005A CN 117910005 A CN117910005 A CN 117910005A CN 202311844637 A CN202311844637 A CN 202311844637A CN 117910005 A CN117910005 A CN 117910005A
Authority
CN
China
Prior art keywords
jvm
java
encrypted
byte code
loading
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
CN202311844637.4A
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.)
Wuhan Dream Database Co ltd
Original Assignee
Wuhan Dream Database 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 Wuhan Dream Database Co ltd filed Critical Wuhan Dream Database Co ltd
Priority to CN202311844637.4A priority Critical patent/CN117910005A/zh
Publication of CN117910005A publication Critical patent/CN117910005A/zh
Pending legal-status Critical Current

Links

Classifications

    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Storage Device Security (AREA)

Abstract

本发明涉及一种Java字节码的加载方法、装置、设备及存储介质,该方法包括:根据预设加密字节码要求对开源的JVM系统类加载器进行修改,得到定制JVM;判断Java源代码是否需要加密,对需要加密的所述Java源代码进行加密得到加密字节码文件;通过所述定制JVM解密所述加密字节码文件,并加载解密后的字节码文件。本发明通过对开源的普通JVM系统类加载器进行修改,从而得到定制JVM,通过定制JVM可以执行已经加密了的字节码文件,实现加密字节码文件的加载,不需要将代码混淆,避免了影响代码正常执行的逻辑,并且修改了开源的JVM,提高了字节码的安全性,避免了字节码在使用的过程中被泄漏。

Description

一种Java字节码的加载方法、装置、设备及存储介质
技术领域
本发明涉及字节码加密技术领域,尤其涉及一种Java字节码的加载方法、装置、设备及存储介质。
背景技术
Java广泛应用于后端服务开发,其原理是将源码编译成字节码,然后交给Java虚拟机(JVM)进行执行。但是Java的字节码是一种公开的指令,且极易反编译,因此将Java用于客户端开发会有很大的风险暴露源码以及被破解。
现有技术中,可以通过代码混淆的方法或字节码加密后解密的方法来降低源码破解的风险。代码混淆的方法通过一定的代码混淆降低源码暴露以及被破解的风险;字节码加密后解密的方法对字节码进行加密,并且在JDK进行类加载的时候对字节码进行解密,然后再加载。
但是,现有技术中代码混淆可能会影响代码的执行逻辑,具有一定的负面影响;而字节码加密由于通过普通开源的JVM,Java可以加载用户自定义的类加载器以及类,还是存在字节码泄露的风险。
发明内容
有鉴于此,有必要提供一种Java字节码的加载方法、装置、设备及存储介质,用以解决现有技术中代码混淆加密时会影响代码的执行逻辑而通过普通开源的JVM存在字节码泄露风险的问题。
为达到上述技术目的,本发明采取了以下技术方案:
第一方面,本发明提供了一种Java字节码的加载方法,包括:
判断Java源代码是否需要加密,对需要加密的Java源代码进行加密得到加密字节码文件;
根据预设加密字节码要求对开源的JVM系统类加载器进行修改,得到定制JVM;
通过定制JVM解密加密字节码文件,并加载解密后的字节码文件。
在一些可能的实现方式中,判断Java源代码是否需要加密,对需要加密的Java源代码进行加密得到加密字节码文件,包括:
判断Java源代码的包装名称是否是目标业务代码,若Java源代码的包装名称是目标业务代码,则将Java源代码进行编译;
将编译后的Java源代码插入预设指令,对编译后的Java源代码进行加密;
为加密后的Java源代码设置预设文件头得到加密字节码文件。
在一些可能的实现方式中,预设加密字节码要求包括添加解密密钥;根据预设加密字节码要求对开源的JVM系统类加载器进行修改,得到定制JVM,包括:根据对Java源代码加密方式确定解密密钥,将解密密钥放入开源JVM的二进制代码中。
在一些可能的实现方式中,预设加密字节码要求还包括删除调试功能;根据预设加密字节码要求对开源的JVM系统类加载器进行修改,得到定制JVM,还包括:删除开源JVM中的调试功能。
在一些可能的实现方式中,预设加密字节码要求还包括删除dump功能;根据预设加密字节码要求对开源的JVM系统类加载器进行修改,得到定制JVM,还包括:删除开源JVM中的dump功能。
在一些可能的实现方式中,预设加密字节码要求还包括删除JavaAgent插件;根据预设加密字节码要求对开源的JVM系统类加载器进行修改,得到定制JVM,还包括:删除开源JVM中的JavaAgent插件。
在一些可能的实现方式中,预设加密字节码要求还包括增加插桩字节码;根据预设加密字节码要求对开源的JVM系统类加载器进行修改,得到定制JVM,还包括:在开源JVM中增加插桩字节码。
第二方面,本发明还提供了一种Java字节码的加载装置,包括:
加密模块,用于判断Java源代码是否需要加密,对需要加密的Java源代码进行加密得到加密字节码文件;
修改模块,用于根据预设加密字节码要求对开源的JVM系统类加载器进行修改,得到定制JVM;
加载模块,用于通过定制JVM解密加密字节码文件,并加载解密后的字节码文件。
第三方面,本发明还提供了一种Java字节码的加载设备,包括存储器和处理器,其中,
存储器,用于存储程序;
处理器,与存储器耦合,用于执行存储器中存储的程序,以实现上述任一种实现方式中的Java字节码的加载方法中的步骤。
第四方面,本发明还提供了一种计算机可读存储介质,用于存储计算机可读取的程序或指令,程序或指令被处理器执行时,能够实现上述任一种实现方式中的Java字节码的加载方法中的步骤。
采用上述实施例的有益效果是:本发明涉及一种Java字节码的加载方法、装置、设备及存储介质,该方法包括:根据预设加密字节码要求对开源的JVM系统类加载器进行修改,得到定制JVM;判断Java源代码是否需要加密,对需要加密的所述Java源代码进行加密得到加密字节码文件;通过所述定制JVM解密所述加密字节码文件,并加载解密后的字节码文件。本发明通过对开源的普通JVM系统类加载器进行修改,从而得到定制JVM,通过定制JVM可以执行已经加密了的字节码文件,实现加密字节码文件的加载,不需要将代码混淆,避免了影响代码正常执行的逻辑,并且修改了开源的JVM,提高了字节码的安全性,避免了字节码在使用的过程中被泄漏。
附图说明
图1为本发明提供的Java字节码的加载方法的一实施例的流程示意图;
图2为本发明提供的图1中步骤S101的一实施例的流程示意图;
图3为本发明提供的Java字节码的加载装置的一实施例的结构示意图;
图4为本发明实施例提供的Java字节码的加载设备的结构示意图。
具体实施方式
下面结合附图来具体描述本发明的优选实施例,其中,附图构成本申请一部分,并与本发明的实施例一起用于阐释本发明的原理,并非用于限定本发明的范围。
在本申请的描述中,“多个”的含义是两个或两个以上,除非另有明确具体的限定。
在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本发明的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其他实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其他实施例相结合。
本发明提供了一种Java字节码的加载方法、装置、设备及存储介质,以下分别进行说明。
请参阅图1,图1为本发明提供的Java字节码的加载方法的一实施例的流程示意图,本发明的一个具体实施例,公开了一种Java字节码的加载方法,包括:
S101、判断Java源代码是否需要加密,对需要加密的Java源代码进行加密得到加密字节码文件;
S102、根据预设加密字节码要求对开源的JVM系统类加载器进行修改,得到定制JVM;
S103、通过定制JVM解密加密字节码文件,并加载解密后的字节码文件。
在上述实施例中,Java源代码是指程序员编写完成的目标代码,有可能需要通过加密后传输给其他人员使用,因此,首先需要对Java源代码是否需要加密进行判断,而有些Java源代码属于开源的代码,加密并没有实际意义,也就可以不加密直接传输。
预设加密字节码要求为加密前确定的需要对字节码进行加密的情况,本发明中通过预设加密字节码要求可以调整解密密钥、修改定制JVM的功能,最终得到特定的定制JVM,而非普通的开源的JVM,因此,预设加密字节码要求可以根据实际需要进行调整。
开源:顾名思义是指“开放源代码”,代表着分享和使用,源代码或源设计因此可以被大众审查、修改和增强,最终达到分享和使用双向促进的目的。
JVM即Java虚拟机,是一种抽象计算机,它有一个指令集,在运行时操作各种内存区域。虚拟机有很多种,不同厂商提供了不同实现,只要遵循虚拟机规范即可,JVM对Java语言一无所知,只知道一种特定的二进制格式,即类文件格式,写好的程序最终将交给JVM执行的时候会被编译成二进制格式,JVM只认识二进制格式,所以任何语言只要编译后的格式符合要求,都可以在JVM上运行。
定制的JVM可以识别出需要进行解密的加密字节码文件,并对加密字节码文件进行解密后得到目标业务代码,完成对目标业务代码的加载,也就是加载字节码文件。
与现有技术相比,本实施例提供的一种Java字节码的加载方法,该方法包括:根据预设加密字节码要求对开源的JVM系统类加载器进行修改,得到定制JVM;判断Java源代码是否需要加密,对需要加密的所述Java源代码进行加密得到加密字节码文件;通过所述定制JVM解密所述加密字节码文件,并加载解密后的字节码文件。本发明通过对开源的普通JVM系统类加载器进行修改,从而得到定制JVM,通过定制JVM可以执行已经加密了的字节码文件,实现加密字节码文件的加载,不需要将代码混淆,避免了影响代码正常执行的逻辑,并且修改了开源的JVM,提高了字节码的安全性,避免了字节码在使用的过程中被泄漏。
请参阅图2,图2为本发明提供的图1中步骤S101的一实施例的流程示意图,在本发明的一些实施例中,判断Java源代码是否需要加密,对需要加密的Java源代码进行加密得到加密字节码文件,包括:
S201、判断Java源代码的包装名称是否是目标业务代码,若Java源代码的包装名称是目标业务代码,则将Java源代码进行编译;
S202、将编译后的Java源代码插入预设指令,对编译后的Java源代码进行加密;
S203、为加密后的Java源代码设置预设文件头得到加密字节码文件。
在上述实施例中,Java源代码并非直接进行传输,而是通过打包的方式进行传输,因此,在Java源代码打包之后,有一个打包的包装名称,通过设置包装名称来确定不同的Java源代码,也就可以确定哪一个包装中的代码是目标业务代码了,然后对Java源代码进行编译。
预设指令是只能在定制的JVM中识别并执行的指令,本发明对其能实现的具体功能并不完全限定,无法被其他的JVM识别出来,在插入了预设指令后,再对经过编译的Java源代码进行加密,需要说明的是,预设指令可以根据实际需要进行调整,本发明对此不做进一步限制。
为了确保加密后的Java源代码能够被定制的JVM准确识别,需要加入预设的特定文件头,该预设文件头也只有通过定制的JVM才能识别出来,从而完成了对Java源代码的加密,得到加密字节码文件,而预设文件头可以根据实际使用的需要进行调整,本发明对此不做进一步限制。
在本发明的一些实施例中,预设加密字节码要求包括添加解密密钥;根据预设加密字节码要求对开源的JVM系统类加载器进行修改,得到定制JVM,包括:根据对Java源代码加密方式确定解密密钥,将解密密钥放入开源JVM的二进制代码中。
在上述实施例中,解密密钥是与加密密钥相对的,通过加密密钥确定了加密的规则对Java源代码进行了加密,在进行解密的时候就需要解密密钥才能实现,而本发明为了实现Java字节码的安全加载,将解密密钥放入到开源JVM的二进制代码中,并在后续进一步处理以得到定制的JVM。
在本发明的一些实施例中,预设加密字节码要求还包括删除调试功能;根据预设加密字节码要求对开源的JVM系统类加载器进行修改,得到定制JVM,还包括:删除开源JVM中的调试功能。
在上述实施例中,调试又称除错,是发现和减少计算机程序或电子仪器设备中程序错误的一个过程。在日常写代码出现非语法问题的情况时,一般会借助调试解决问题,当编写的代码越来越多,犯的语法错误就越来越少,而非语法错误需要调试解决。调试需要使用特定的调试工具才能实现,而删除开源JVM中的调试功能可以杜绝用户通过调试工具侵入系统中,这正是本发明为了保护代码,防止JVM泄露代码而做出的考虑。
在本发明的一些实施例中,预设加密字节码要求还包括删除dump功能;根据预设加密字节码要求对开源的JVM系统类加载器进行修改,得到定制JVM,还包括:删除开源JVM中的dump功能。
在上述实施例中,dump功能是指备份文件系统,在特定时刻,将整个储存装置或储存装置之某部分的内容记录在另一储存装置中,存储的目的通常是为了防止发生错误,将具备可读格式的数据从主要或辅助储存体复制至外部媒体,如磁带、磁盘或打印机等媒体,为收集错误信息而复制整个虚拟储存体或虚拟储存体之某部分的内容。删除开源JVM中的dump功能可以防止因系统故障而导致生成dump文件泄露解密后的字节码,这正是本发明为了保护代码,防止JVM泄露代码而做出的考虑。
在本发明的一些实施例中,预设加密字节码要求还包括删除JavaAgent插件;根据预设加密字节码要求对开源的JVM系统类加载器进行修改,得到定制JVM,还包括:删除开源JVM中的JavaAgent插件。
在上述实施例中,JavaAgent插件本质上可以理解为一个JVM层面的插件,该插件就是一个精心提供的jar包。只是启动方式和普通Jar包有所不同,对于普通的Jar包,通过指定类的main函数进行启动。但是JavaAgent插件并不能单独启动,必须依附在一个Java应用程序运行,在面向切面编程方面应用比较广泛。
JavaAgent插件的jar包通过JVMTI(JVM Tool Interface)完成加载,最终借助JPLISAgent(Java Programming Language Instrumentation Services Agent)完成对目标代码的修改。主要功能是在加载java文件之前做拦截把字节码做修改以及在运行期将已经加载的类的字节码做变更。
可以利用JDK中的Instrumenttation类,实现对类字节码文件的修改,删除开源JVM中的JavaAgent插件。在定制的JVM可去掉此功能,增加安全性,这正是本发明为了保护代码,防止JVM泄露代码而做出的考虑。
在本发明的一些实施例中,预设加密字节码要求还包括增加插桩字节码;根据预设加密字节码要求对开源的JVM系统类加载器进行修改,得到定制JVM,还包括:在开源JVM中增加插桩字节码。
在上述实施例中,插桩字节码就是在构建的过程中,通过修改已经编译完成的字节码文件,也就是class文件,来实现功能的添加,从技术上来说,字节码插桩是自定义Gradle插件、ASM、Java字节码、切面编程的综合应用,在开源JVM中增加插桩字节码没有实际用途,只是为了防止反编译,这正是本发明为了保护代码,防止JVM泄露代码而做出的考虑。
为了更好实施本发明实施例中的Java字节码的加载方法,在Java字节码的加载方法基础之上,对应的,请参阅图3,图3为本发明提供的Java字节码的加载装置的一实施例的结构示意图,本发明实施例提供了一种Java字节码的加载装置300,包括:
加密模块310,用于判断Java源代码是否需要加密,对需要加密的Java源代码进行加密得到加密字节码文件;
修改模块320,用于根据预设加密字节码要求对开源的JVM系统类加载器进行修改,得到定制JVM;
加载模块330,用于通过定制JVM解密加密字节码文件,并加载解密后的字节码文件。
这里需要说明的是:上述实施例提供的装置300可实现上述各方法实施例中描述的技术方案,上述各模块或单元具体实现的原理可参见上述方法实施例中的相应内容,此处不再赘述。
请参阅图4,图4为本发明实施例提供的Java字节码的加载设备的结构示意图。基于上述Java字节码的加载方法,本发明还相应提供了一种Java字节码的加载设备,Java字节码的加载设备可以是移动终端、桌上型计算机、笔记本、掌上电脑及服务器等计算设备。该Java字节码的加载设备400包括处理器410、存储器420及显示器430。图4仅示出了Java字节码的加载设备的部分组件,但是应理解的是,并不要求实施所有示出的组件,可以替代的实施更多或者更少的组件。
存储器420在一些实施例中可以是Java字节码的加载设备400的内部存储单元,例如Java字节码的加载设备400的硬盘或内存。存储器420在另一些实施例中也可以是Java字节码的加载设备400的外部存储设备,例如Java字节码的加载设备400上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。进一步地,存储器420还可以既包括Java字节码的加载设备400的内部存储单元也包括外部存储设备。存储器420用于存储安装于Java字节码的加载设备400的应用软件及各类数据,例如安装Java字节码的加载设备400的程序代码等。存储器420还可以用于暂时的存储已经输出或者将要输出的数据。在一实施例中,存储器420上存储有Java字节码的加载程序440,该Java字节码的加载程序440可被处理器410所执行,从而实现本申请各实施例的Java字节码的加载方法。
处理器410在一些实施例中可以是中央处理器(Central Processing Unit,CPU),微处理器或其他数据处理芯片,用于运行存储器420中存储的程序代码或处理数据,例如执行Java字节码的加载方法等。
显示器430在一些实施例中可以是LED显示器、液晶显示器、触控式液晶显示器以及OLED(Organic Light-Emitting Diode,有机发光二极管)触摸器等。显示器430用于显示在Java字节码的加载设备400的信息以及用于显示可视化的用户界面。Java字节码的加载设备400的部件410-430通过系统总线相互通信。
在一实施例中,当处理器410执行存储器420中Java字节码的加载程序440时实现如上的Java字节码的加载方法中的步骤。
本实施例还提供了一种计算机可读存储介质,其上存储有Java字节码的加载程序,该Java字节码的加载程序被处理器执行时实现以下步骤:
判断Java源代码是否需要加密,对需要加密的Java源代码进行加密得到加密字节码文件;
根据预设加密字节码要求对开源的JVM系统类加载器进行修改,得到定制JVM;
通过定制JVM解密加密字节码文件,并加载解密后的字节码文件。
综上,本实施例提供的一种Java字节码的加载方法、装置、设备及存储介质,该方法包括:根据预设加密字节码要求对开源的JVM系统类加载器进行修改,得到定制JVM;判断Java源代码是否需要加密,对需要加密的所述Java源代码进行加密得到加密字节码文件;通过所述定制JVM解密所述加密字节码文件,并加载解密后的字节码文件。本发明通过对开源的普通JVM系统类加载器进行修改,从而得到定制JVM,通过定制JVM可以执行已经加密了的字节码文件,实现加密字节码文件的加载,不需要将代码混淆,避免了影响代码正常执行的逻辑,并且修改了开源的JVM,提高了字节码的安全性,避免了字节码在使用的过程中被泄漏。
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。

Claims (10)

1.一种Java字节码的加载方法,其特征在于,包括:
判断Java源代码是否需要加密,对需要加密的所述Java源代码进行加密得到加密字节码文件;
根据预设加密字节码要求对开源的JVM系统类加载器进行修改,得到定制JVM;
通过所述定制JVM解密所述加密字节码文件,并加载解密后的字节码文件。
2.根据权利要求1所述的Java字节码的加载方法,其特征在于,所述判断Java源代码是否需要加密,对需要加密的所述Java源代码进行加密得到加密字节码文件,包括:
判断所述Java源代码的包装名称是否是目标业务代码,若所述Java源代码的包装名称是目标业务代码,则将所述Java源代码进行编译;
将编译后的Java源代码插入预设指令,对编译后的Java源代码进行加密;
为加密后的Java源代码设置预设文件头得到加密字节码文件。
3.根据权利要求1所述的Java字节码的加载方法,其特征在于,所述预设加密字节码要求包括添加解密密钥;所述根据预设加密字节码要求对开源的JVM系统类加载器进行修改,得到定制JVM,包括:根据对所述Java源代码加密方式确定解密密钥,将所述解密密钥放入开源JVM的二进制代码中。
4.根据权利要求1所述的Java字节码的加载方法,其特征在于,所述预设加密字节码要求还包括删除调试功能;所述根据预设加密字节码要求对开源的JVM系统类加载器进行修改,得到定制JVM,还包括:删除开源JVM中的调试功能。
5.根据权利要求1所述的Java字节码的加载方法,其特征在于,所述预设加密字节码要求还包括删除dump功能;所述根据预设加密字节码要求对开源的JVM系统类加载器进行修改,得到定制JVM,还包括:删除开源JVM中的dump功能。
6.根据权利要求1所述的Java字节码的加载方法,其特征在于,所述预设加密字节码要求还包括删除JavaAgent插件;所述根据预设加密字节码要求对开源的JVM系统类加载器进行修改,得到定制JVM,还包括:删除开源JVM中的JavaAgent插件。
7.根据权利要求1所述的Java字节码的加载方法,其特征在于,所述预设加密字节码要求还包括增加插桩字节码;所述根据预设加密字节码要求对开源的JVM系统类加载器进行修改,得到定制JVM,还包括:在开源JVM中增加插桩字节码。
8.一种Java字节码的加载装置,其特征在于,包括:
加密模块,用于判断Java源代码是否需要加密,对需要加密的所述Java源代码进行加密得到加密字节码文件;
修改模块,用于根据预设加密字节码要求对开源的JVM系统类加载器进行修改,得到定制JVM;
加载模块,用于通过所述定制JVM解密所述加密字节码文件,并加载解密后的字节码文件。
9.一种Java字节码的加载设备,其特征在于,包括存储器和处理器,其中,
所述存储器,用于存储程序;
所述处理器,与所述存储器耦合,用于执行所述存储器中存储的所述程序,以实现上述权利要求1至7中任一项所述Java字节码的加载方法中的步骤。
10.一种计算机可读存储介质,其特征在于,用于存储计算机可读取的程序或指令,所述程序或指令被处理器执行时,能够实现上述权利要求1至7中任一项所述Java字节码的加载方法中的步骤。
CN202311844637.4A 2023-12-27 2023-12-27 一种Java字节码的加载方法、装置、设备及存储介质 Pending CN117910005A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311844637.4A CN117910005A (zh) 2023-12-27 2023-12-27 一种Java字节码的加载方法、装置、设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311844637.4A CN117910005A (zh) 2023-12-27 2023-12-27 一种Java字节码的加载方法、装置、设备及存储介质

Publications (1)

Publication Number Publication Date
CN117910005A true CN117910005A (zh) 2024-04-19

Family

ID=90683311

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311844637.4A Pending CN117910005A (zh) 2023-12-27 2023-12-27 一种Java字节码的加载方法、装置、设备及存储介质

Country Status (1)

Country Link
CN (1) CN117910005A (zh)

Similar Documents

Publication Publication Date Title
US10853270B2 (en) Cryptographic pointer address encoding
US11620391B2 (en) Data encryption based on immutable pointers
Rodler et al. {EVMPatch}: Timely and automated patching of ethereum smart contracts
US11748468B2 (en) Dynamic switching between pointer authentication regimes
Mashtizadeh et al. CCFI: Cryptographically enforced control flow integrity
Sinha et al. A design and verification methodology for secure isolated regions
US8434064B2 (en) Detecting memory errors using write integrity testing
US7313824B1 (en) Method for protecting digital content from unauthorized use by automatically and dynamically integrating a content-protection agent
JP5821034B2 (ja) 情報処理装置、仮想マシン生成方法及びアプリ配信システム
US20120246487A1 (en) System and Method to Protect Java Bytecode Code Against Static And Dynamic Attacks Within Hostile Execution Environments
TW201839644A (zh) 安卓平台上可執行程式的保護方法
CN111832014B (zh) 基于动态加载的Java SDK代码加解密方法及终端
De Keulenaer et al. Link-time smart card code hardening
US20150026483A1 (en) Systems and Methods for Mobile Application Protection
US20220308991A1 (en) Test processing method and information processing apparatus
CN117910005A (zh) 一种Java字节码的加载方法、装置、设备及存储介质
Ma et al. Revisiting challenges for selective data protection of real applications
CN114461992A (zh) 一种java程序代码保护方法、装置、设备及存储介质
Zhang et al. Stackvault: Protection from untrusted functions
Braunsdorf et al. Compiler-based attack origin tracking with dynamic taint analysis
KR20190060181A (ko) 공유 오브젝트의 코드 보호를 위한 보안 제공 장치와 방법, 및 보안 실행 장치와 방법
Ismail et al. Enforcing C/C++ Type and Scope at Runtime for Control-Flow and Data-Flow Integrity
Chen et al. Impact of Dynamic Binary Translators on Security
Davi et al. Automated Software Diversity

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