`
lingqi1818
  • 浏览: 254909 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

class文件检验器

阅读更多
和classloader一起class文件检验器保证装载的class文件内容有正确的内部结构,并且这些class文件相互间协调一致。如果class文件检验器在class文件中发现了问题,它将抛出异常。
class文件检验器的必要性:
由于class文件实质上是一个字节序列,所以虚拟机无法分辨class是正常的java编译器生成的,还是黑客产生的。class文件检验器可以确保class文件的安全使用。

class文件检验器对class进行独立的4趟扫描来完成操作。分别如下:
1.class文件的结构检验
在类被装载的时候进行,主要检查class文件的内部结构,证明被安全的编译。比如是否以4个同样的字节开头,尾部是否有被加上附加的东西等等。

(2,3趟主要在连接过程中进行,确认类型数据遵循java语言规范,以及确保字节码的完整性)
2.类型数据的语义检查
查看每个组成部分结构是否正确,比如字符是否符合上下文,final方法是否被子类覆盖等等。

3.字节码验证
确保任何路径的在字节码流中都得到正确的操作码,但不会试图检测所有的安全问题。比如有些不确定问题。

4.符号引用验证
虚拟机将追踪那些引用,从被验证的class文件到被引用的class文件。
大多数java虚拟机采用了延迟装载的方式,只有在被装载的类找不到该引用才会抛出NoClassDefFoundError,否则及时发现不能找到引用类也不抛出异常。
分享到:
评论

相关推荐

    Class文件反编译工具

    在某些情况下,我们可能需要查看或理解这些二进制文件的原始Java代码,这时就需要用到"Class文件反编译工具"。 "Class文件反编译工具"是一种专门用来将`.class`和`.jar`文件转换回可读的Java源代码格式的软件。这种...

    ClassFinal-java class文件安全加密工具

    在Java应用开发中,源代码的保护至关重要,因为Java的字节码(class文件)是可被反编译的,这可能导致源代码泄露、恶意篡改等安全风险。ClassFinal通过特定的加密算法和混淆技术,对Java类文件进行处理,使得未经...

    class文件热加载,上传class文件实现热加载

    - 在热加载场景下,自定义类加载器通常会监听某个文件系统或网络资源的变化,一旦检测到新版本的class文件,就立即加载。 3. **热加载原理**: - 热加载的核心是替换旧的类定义,而不是重新启动应用。这需要在...

    class文件分析

    在Android应用开发中,Java语言是主要的编程语言,而.class文件是Java源代码编译后的产物,它是Java字节码的载体,包含了程序的结构和指令。在Android系统中,.class文件并不直接运行,而是会被转换为.dex(Dalvik ...

    class文件版本查看器

    闲暇时写的小东西,路过的可以看看.查看class文件编译时使用的jdk版本.没技术含量,纯粹为了查看方便,使用UltraEdit一样可以看16进制来换算.

    YOLO 目标检测数据集:农作物害虫检测(4类别)【包含划分好的数据集、类别class文件、数据可视化脚本】

    项目包含:农作物害虫检测(4类别)【包含划分好的数据集、类别class文件、数据可视化脚本】,数据保存按照YOLOV5文件夹保存,可直接用作目标检测数据集,无需额外处理。 图像分辨率为640*640的大分辨率RGB图片,...

    Jvm之用C#解析class文件

    本篇将深入探讨如何使用C#语言来解析Java的class文件,这是一种跨语言的技术应用,有助于增强开发者对Java字节码的理解和操作能力。 首先,我们需要了解Java类文件的结构。一个`.class`文件是二进制格式的,包含了...

    YOLO 数据集:9种岩石检测【包含划分好的数据集、类别class文件、数据可视化脚本】

    项目包含:9种岩石检测【包含划分好的数据集、类别class文件、数据可视化脚本】,数据保存按照YOLOV5文件夹保存,可直接用作目标检测数据集,无需额外处理。 图像分辨率为640*640的大分辨率RGB图片,数据集为各种...

    class汉化工具 class汉化工具

    在IT行业中,"class汉化工具"通常指的是用于对Java字节码(.class文件)进行汉化的工具。这类工具的主要目的是帮助开发者或用户将Java程序中的英文资源转化为中文,以便于在中国等中文为主要语言的地区更好地使用和...

    YOLO 数据集:家具检测(3类)【包含划分好的数据集、类别class文件、数据可视化脚本】

    数据保存按照YOLOV5文件夹保存,可直接用作yolo检测。 标注格式为:classes,x_centre、y_centre、w、h (yolo的相对坐标标注) 【数据集类别】3类别:沙发、椅子、桌子 数据分为分为训练集和验证集: 训练集...

    编译class不用重启tomcat

    在传统的Java Web开发中,每当修改了Java类文件(.java),需要通过IDE重新编译生成.class文件,然后停止Tomcat,重新部署应用,最后启动Tomcat来查看改动效果。这个过程既耗时又打断了开发流程。为了解决这个问题,...

    YOLO 数据集:夜间车辆、行人检测(4类)【包含划分好的数据集、类别class文件、数据可视化脚本】

    数据为黑夜背景下的人群、车辆检测,保存按照YOLOV5文件夹保存,可直接用作yolo检测。 标注格式为:classes,x_centre、y_centre、w、h (yolo的相对坐标标注) 【类别】:人、自行车、汽车、狗(4类) 数据分为...

    贪吃蛇小游戏+源码+class文件

    在这个项目中,我们看到一个基于Java实现的贪吃蛇游戏,包括源码和编译后的class文件。下面我们将深入探讨这个游戏背后的编程知识点。 首先,`JFrame` 类是Java Swing库中的一个关键组件,它用于创建窗口应用的基础...

    java热加载Class文件.zip

    Java热加载Class文件技术是一种在不重启应用服务器的情况下更新或替换正在运行的Java类的方法,这对于开发者来说是一项非常实用的功能,因为它极大地提高了开发效率。在传统的开发过程中,修改代码后通常需要停止、...

    YOLO 数据集:医疗器械图像目标检测【包含划分好的数据集、类别class文件、数据可视化脚本】

    YOLO 数据集:医疗器械图像目标检测【包含划分好的数据集、类别class文件、数据可视化脚本】 数据保存按照YOLOV5文件夹保存,可直接用作yolo检测。 类别个数(6):手套、针、注射器等等【具体参考classes文件】 ...

    在Eclipse中反编译Class文件完全详解

    如果Eclipse检测到该文件是Class文件,它会自动调用JD-Eclipse进行反编译,并显示源代码。 需要注意的是,反编译并不总是能够完美地恢复原始的源代码,特别是当原代码包含复杂的编译优化或元数据时。此外,如果...

    目标检测数据集:工地安全头盔图像检测数据【VOC标注格式、class文件】

    目标检测数据集:工地安全头盔图像检测数据【VOC标注格式、class文件】,数据保存按照文件夹保存,经测试,可直接用作目标检测数据集,无需额外处理。 【数据集详情】共5000张数据和对应的xml标注文件、包含头盔、...

    javaclass反编辑器

    7. **安全分析**:在安全领域,分析.class文件可能用于检测恶意代码,或者逆向工程以理解第三方库的工作方式。 8. **软件逆向工程**:开发者可能会使用这类工具来理解无法获取源代码的第三方库,以便于修改、优化或...

    JavaClass二进制文件加密专家

    3. **动态加载与解密**:为了进一步增强安全性,有些加密工具会在程序运行时动态地加载和解密Class文件,这样即使有人获取到加密后的文件,也无法直接执行,因为缺少解密的关键环节。 4. **数字签名**:添加数字...

    实现tomcat热更新class文件.docx

    为了解决这个问题,可以配置Tomcat实现热更新class文件,使得修改后的Java类在不重启服务器的情况下就能立即生效。下面将详细介绍如何实现这一功能。 首先,我们需要理解Tomcat的工作原理。当一个Web应用被部署到...

Global site tag (gtag.js) - Google Analytics