zoukankan      html  css  js  c++  java
  • spring-core 中 asm 包的作用

    asm包中主要有以下这些类

    其中,

    AnnotationVisitor类:是一个抽象类,定义在解析注解时会触发的事件,如解析到一个基本值类型的注解、enum值类型的注解、Array值类型的注解、注解值类型的注解等。

    AnnotationWriter类:继承了 AnnotationVisitor 类,用于拼接注解相关字节码。

    Attribute类:字节码中属性的类抽象。

    ByteVector类:字节码二进制存储的容器。

    ClassReader类:字节码的读取与分析引擎。它采用类似SAX的事件读取机制,每当有事件发生时,调用注册的ClassVisitor、AnnotationVisitor、FieldVisitor、MethodVisitor做相应的处理。

    ClassVisitor接口:定义在读取Class字节码时会触发的事件,如类头解析完成、注解解析、字段解析、方法解析等。

    ClassWriter类:它实现了ClassVisitor接口,用于拼接字节码。

    Context类:定义了一些字节码及其属性。

    CurrentFrame类:继承自 Frame 类

    转载 :https://www.cnblogs.com/davidwang456/p/5652181.html

    ASM的核心

    在ASM的核心实现中,它主要有以下几个类、接口(在org.objectweb.asm包中):
    ClassReader类:字节码的读取与分析引擎。它采用类似SAX的事件读取机制,每当有事件发生时,调用注册的ClassVisitor、AnnotationVisitor、FieldVisitor、MethodVisitor做相应的处理。
    ClassVisitor接口:定义在读取Class字节码时会触发的事件,如类头解析完成、注解解析、字段解析、方法解析等。

     A visitor to visit a Java class. The methods of this class must be called in the following order: <tt>visit</tt> [ <tt>visitSource</tt> ] [
    <tt>visitOuterClass</tt> ] ( <tt>visitAnnotation</tt> |
     <tt>visitTypeAnnotation</tt> | <tt>visitAttribute</tt> )* (
     <tt>visitInnerClass</tt> | <tt>visitField</tt> | <tt>visitMethod</tt> )*
     <tt>visitEnd</tt>.

    AnnotationVisitor接口:定义在解析注解时会触发的事件,如解析到一个基本值类型的注解、enum值类型的注解、Array值类型的注解、注解值类型的注解等。

      A visitor to visit a Java annotation. The methods of this class must be
    called in the following order: ( <tt>visit</tt> | <tt>visitEnum</tt> |
    <tt>visitAnnotation</tt> | <tt>visitArray</tt> )* <tt>visitEnd</tt>.

    FieldVisitor接口:定义在解析字段时触发的事件,如解析到字段上的注解、解析到字段相关的属性等。
    MethodVisitor接口:定义在解析方法时触发的事件,如方法上的注解、属性、代码等。

    ClassWriter类:它实现了ClassVisitor接口,用于拼接字节码。

    A {@link ClassVisitor} that generates classes in bytecode form. More
     precisely this visitor generates a byte array conforming to the Java class file format. It can be used alone, to generate a Java class "from scratch",or with one or more {@link ClassReader ClassReader} and adapter class visitor to generate a modified class from one or more existing Java classes.

    AnnotationWriter类:它实现了AnnotationVisitor接口,用于拼接注解相关字节码。
    FieldWriter类:它实现了FieldVisitor接口,用于拼接字段相关字节码。
    MethodWriter类:它实现了MethodVisitor接口,用于拼接方法相关字节码。

    SignatureReader类:对类定义、字段定义、方法定义、本地变量定义的签名的解析。Signature因范型引入,用于存储范型定义时的元数据(因为这些元数据在运行时会被擦除)。
    SignatureVisitor接口:定义在解析Signature时会触发的事件,如正常的Type参数、类或接口的边界等。
    SignatureWriter类:它实现了SignatureVisitor接口,用于拼接范型相关字节码。

    Attribute类:字节码中属性的类抽象。
    ByteVector类:字节码二进制存储的容器。
    Opcodes接口:字节码指令的一些常量定义。
    Type类:类型相关的常量定义以及一些基于其上的操作。

  • 相关阅读:
    Day12——提权学习之第三方软件Radmin提权
    Day11——提权学习之第三方软件VNC提权
    Day10——提权学习之第三方软件FlashFXP及pcAnywhere提权
    Day9——提权学习之第三方软件FileZilla提权
    Day8——提权学习之第三方软件G6-FTP提权
    Day7——提权学习之第三方软件serv-u提权
    Day6——提权学习之Oracle数据库提权学习总结
    Memcached 未授权访问漏洞 CVE-2013-7239
    恭喜tes获得夏季赛冠军
    有关xss的小日记
  • 原文地址:https://www.cnblogs.com/zhangqian27/p/9799673.html
Copyright © 2011-2022 走看看