![]() ![]() void appendToSystemClassLoaderSearch(JarFile jarfile) Specifies a JAR file with instrumentation classes to be defined by the system class loader. void appendToBootstrapClassLoaderSearch(JarFile jarfile) Specifies a JAR file with instrumentation classes to be defined by the bootstrap class loader. void addTransformer(ClassFileTransformer transformer, boolean canRetransform) Registers the supplied transformer. The following interfaces are provided by Java SE 8 in the API documentation (different versions may have different interfaces): void addTransformer(ClassFileTransformer transformer) Registers the supplied transformer. It is also called JPLISAgent (Java Programming Language Instrumentation Services Agent), which is the agent that provides support for instrumentation services written in the Java language. Instrument Agent can be understood as a type of JVMTIAgent dynamic library. JVMTIAgent is a dynamic library that provides the functions of agent on load, agent on attach, and agent on unload by using the interface exposed by JVMTI. These interfaces can be used by developers to extend their own logic. Every time the JVM executes certain logic, it will call some event callback interfaces (if any). ![]() JVMTI provides a set of “agent” program mechanisms, supporting third-party tools to connect and access the JVM in a proxy manner, and use the rich programming interface provided by JVMTI to complete many JVM-related functions. Java Debug Wire Protocol (JDWP) - defines communication between debuggee (a Java application) and debugger processes. ![]() Java Virtual Machine Debug Interface (JVMDI)- JVMDI was deprecated in J2SE 5.0 in favor of JVM TI, and was removed in Java SE 6.Java Virtual Machine Tools Interface (JVMTI), a native interface that helps to inspect the state and to control the execution of applications running in the Java Virtual Machine ( JVM).Java Debugger Interface (JDI) - defines a high-level Java language interface that developers can easily use to write remote debugger application tools.The Java Platform Debugger Architecture( JPDA) is a collection of APIs to debug Java code: The following records the basic concepts of JavaAgent, and I'll introduce how I used JavaAgent to implement a test to get the classes loaded by the target process. Java RASP is also implemented based on JavaAgent. Combined with ASM, javassist, the cglib framework can achieve more powerful functions. It can perform operations such as byte code instrumentation, bTrace, Arthas. It mainly uses the Instrument Agent to enhance bytecode. I just studied the JavaAgent recently and learned that it can intercept. After some researches, I found that it was probably because the class was not loaded. The error was not class notfound, but other 0xxx errors. Getting to know JavaAgent - Getting all the loaded classes of the target 404 Team Time: DecemChinese version: Īn error occurred during the deserialization test with a class in an application. ![]()
0 Comments
Leave a Reply. |