CN116737229A - Detection method and device of technical stack, processor and electronic equipment - Google Patents

Detection method and device of technical stack, processor and electronic equipment Download PDF

Info

Publication number
CN116737229A
CN116737229A CN202310731832.XA CN202310731832A CN116737229A CN 116737229 A CN116737229 A CN 116737229A CN 202310731832 A CN202310731832 A CN 202310731832A CN 116737229 A CN116737229 A CN 116737229A
Authority
CN
China
Prior art keywords
matching
application program
data
target
preset
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
CN202310731832.XA
Other languages
Chinese (zh)
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.)
Industrial and Commercial Bank of China Ltd ICBC
Original Assignee
Industrial and Commercial Bank of China Ltd ICBC
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 Industrial and Commercial Bank of China Ltd ICBC filed Critical Industrial and Commercial Bank of China Ltd ICBC
Priority to CN202310731832.XA priority Critical patent/CN116737229A/en
Publication of CN116737229A publication Critical patent/CN116737229A/en
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/74Reverse engineering; Extracting design information from source code
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/903Querying
    • G06F16/90335Query processing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/22Matching criteria, e.g. proximity measures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45504Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45504Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
    • G06F9/45516Runtime code conversion or optimisation
    • 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

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Computational Linguistics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Evolutionary Biology (AREA)
  • Evolutionary Computation (AREA)
  • Stored Programmes (AREA)

Abstract

The application discloses a detection method and device of a technical stack, a processor and electronic equipment. Relates to the field of artificial intelligence, and the method comprises the following steps: extracting first data corresponding to an application program, wherein the application program is in a running state in a target virtual machine, and the first data at least comprises one of the following: a first set corresponding to different types in the application program and a second set corresponding to different methods in the application program; matching the first data with a preset relation rule base, and determining a list corresponding to a plurality of technical stacks included in the application program according to a matching result, wherein the preset relation rule base comprises: presetting a third set of different types of components corresponding to the technical stack and presetting a fourth set of different methods corresponding to the technical stack; the application solves the problems that the detection of the prior technical stack in the related technology is easy to generate false alarm and has insufficient coverage, and the unused content can not be accurately identified and the technical stack contained in the application can not be comprehensively detected.

Description

Detection method and device of technical stack, processor and electronic equipment
Technical Field
The present application relates to the field of artificial intelligence, and in particular, to a method and apparatus for detecting a technical stack, a processor, and an electronic device.
Background
The detection of the existing java application back-end technical stack is realized by mainly depending on source code scanning, firstly, the technical stack to be detected is determined, a code static analysis tool is selected to carry out full-scale scanning on codes, and possible technical stacks are extracted from scanned code features. However, the above method is prone to the following problems: 1) False positives are easily identified as part of the technical stack, such as when the code library contains obsolete code, unused components, etc. 2) The coverage is not enough: if part of the technical stack is not integrated in the code base, but is dynamically referenced outside, the problem that the scanning is not completed and the coverage is insufficient may exist.
Aiming at the problems that the detection of the prior technical stack in the related technology is easy to cause false alarm and insufficient coverage, so that when the detection of the technical stack is carried out, the unused content cannot be accurately identified and the technical stack contained in the application cannot be comprehensively detected, no effective solution is proposed at present.
Disclosure of Invention
The application mainly aims to provide a detection method and device for a technical stack, a processor and electronic equipment, and aims to solve the problems that in the related art, false alarm is easy to occur and coverage is insufficient in detection of the prior technical stack, so that when the technical stack is detected, unused content cannot be accurately identified and the technical stack contained in application cannot be comprehensively detected.
To achieve the above object, according to one aspect of the present application, there is provided a method for detecting a technology stack. The method comprises the following steps: extracting first data corresponding to an application program, wherein the application program is in a running state in a target virtual machine, and the first data at least comprises one of the following: the method comprises the steps of a first set corresponding to different types in the application program and a second set corresponding to different methods in the application program; matching the first data with a preset relation rule base, and determining corresponding lists of a plurality of technical stacks included in the application program according to a matching result, wherein the preset relation rule base comprises: a third set of different types of components corresponding to a preset technical stack and a fourth set of different methods corresponding to the preset technical stack.
Optionally, the method further comprises: determining a first process code corresponding to a first virtual machine in an operation state in an operation server by using a target function; receiving a second process code sent by a target object, and determining a first virtual machine, which is the same as the second process code, of the first process code as a target virtual machine; and attaching an agent program to the target virtual machine to perform traversal operations on classes and methods included in the application program through the agent program, wherein the classes are abstract definitions of a set of methods and attributes, and the methods are used for defining abstract operations in the classes or the objects.
Optionally, attaching an agent program to the target virtual machine to perform a traversal operation on the class and method included in the application program through the agent program, including: activating a first interface corresponding to the agent program under the condition that the agent program is attached to the target virtual machine, wherein the first interface is used for connecting a function database to carry out function loading; selecting a subprogram with a byte code conversion function from the function database based on the first interface to load so as to generate a byte code converter in the agent program; processing byte codes generated by the application program in an operation state through the byte code converter; and screening out a first set corresponding to the class included in the application corresponding byte data and a second set corresponding to the method included in the application corresponding byte data according to the processing result.
Optionally, the matching the first data with a preset relation rule base, and determining a list corresponding to a plurality of technical stacks included in the application program according to a matching result, including: under the condition that the first data at least comprises class data, performing first feature matching on the first set and the third set to obtain a first matching result; under the condition that the first data at least comprises method data, performing second feature matching on the second set and the fourth set to obtain a second matching result; and determining a list corresponding to a plurality of technical stacks included by the application program according to the first matching result and/or the second matching result.
Optionally, performing the first feature matching on the first set and the third set to obtain a first matching result, including: matching class characteristics of N first classes corresponding to the first set and M second classes corresponding to the third set to obtain N first matching degrees, wherein M, N is a positive integer, and N is smaller than or equal to M; comparing the N first matching degrees with a preset first threshold value; and determining at least 1 target first matching degree according to the comparison result to generate a first matching result according to the at least 1 target first matching degree, wherein the target first matching degree is used for indicating the first matching degree which is larger than or equal to a preset first threshold value.
Optionally, performing a second feature matching on the second set and the fourth set to obtain a second matching result, including: performing method characteristic matching on the P first methods corresponding to the second set and the Q second methods corresponding to the fourth set to obtain P first matching degrees, wherein P, Q is a positive integer, and P is smaller than or equal to Q; comparing the P second matching degrees with a preset second threshold value; and determining at least 1 target second matching degree according to the comparison result to generate a second matching result according to the at least 1 target second matching degree, wherein the target second matching degree is used for indicating the second matching degree which is larger than or equal to a preset second threshold value.
Optionally, the method further comprises: under the condition that a list corresponding to the application program is determined, the list is sent to a target object; receiving editing operation of the target object on the list; and adjusting the list by using the editing operation to generate a class corresponding to the application program and a target relation rule base corresponding to a technical stack of the method.
To achieve the above object, according to another aspect of the present application, there is provided a detection apparatus for a technology stack. The device comprises: the extraction module is used for extracting first data corresponding to an application program, wherein the application program is in an operation state in a target virtual machine, and the first data at least comprises one of the following: the method comprises the steps of a first set corresponding to different types in the application program and a second set corresponding to different methods in the application program; the determining module is configured to match the first data with a preset relationship rule base, and determine a list corresponding to a plurality of technical stacks included in the application program according to a matching result, where the preset relationship rule base includes: a third set of different types of components corresponding to a preset technical stack and a fourth set of different methods corresponding to the preset technical stack.
According to the application, the following steps are adopted: first data corresponding to an application program are extracted, wherein the application program is in an operating state in a target virtual machine, and the first data at least comprise one of the following: a first set corresponding to different types in the application program and a second set corresponding to different methods in the application program; matching the first data with a preset relation rule base, and determining a list corresponding to a plurality of technical stacks included in the application program according to a matching result, wherein the preset relation rule base comprises: the method comprises the steps of presetting a third set of different types of components corresponding to the technical stack and presetting a fourth set of different methods corresponding to the technical stack, so that the problems that false alarm is easy to occur and coverage is insufficient in detection of the prior technical stack in related technologies, and when the technical stack is detected, unused content cannot be accurately identified and the technical stack contained in the application cannot be comprehensively detected are solved. And then, the technology stack included in the application is determined efficiently, the detection precision and coverage are improved, and the effect of detecting and processing the technology stack is enhanced.
Drawings
The accompanying drawings, which are included to provide a further understanding of the application and are incorporated in and constitute a part of this specification, illustrate embodiments of the application and together with the description serve to explain the application. In the drawings:
FIG. 1 is a flow chart of a method of detecting a technology stack provided in accordance with an embodiment of the present application;
FIG. 2 is a system architecture diagram of an alternative technology stack detection system of an embodiment of the present application;
FIG. 3 is a schematic diagram of a detection apparatus of a technology stack according to an embodiment of the present application;
fig. 4 is a schematic diagram of an alternative electronic device according to an embodiment of the present application.
Detailed Description
It should be noted that, without conflict, the embodiments of the present application and features of the embodiments may be combined with each other. The application will be described in detail below with reference to the drawings in connection with embodiments.
In order that those skilled in the art will better understand the present application, a technical solution in the embodiments of the present application will be clearly and completely described below with reference to the accompanying drawings in which it is apparent that the described embodiments are only some embodiments of the present application, not all embodiments. All other embodiments, which can be made by those skilled in the art based on the embodiments of the present application without making any inventive effort, shall fall within the scope of the present application.
It should be noted that the terms "first," "second," and the like in the description and the claims of the present application and the above figures are used for distinguishing between similar objects and not necessarily for describing a particular sequential or chronological order. It is to be understood that the data so used may be interchanged where appropriate in order to describe the embodiments of the application herein. Furthermore, the terms "comprises," "comprising," and "having," and any variations thereof, are intended to cover a non-exclusive inclusion, such that a process, method, system, article, or apparatus that comprises a list of steps or elements is not necessarily limited to those steps or elements expressly listed but may include other steps or elements not expressly listed or inherent to such process, method, article, or apparatus.
For convenience of description, the following will describe some terms or terminology involved in the embodiments of the present application:
1. a Java virtual machine (Java Virtual Machine, JVM for short) is a virtual computer that can run Java bytecodes. Java program code is not directly converted into executable machine code after compilation, but is converted into an intermediate form called Java bytecode. When a Java program runs, the Java virtual machine loads and interprets these bytecodes and converts them into specific machine code for execution.
2. JMX (Java Management Extensions, java management extension) is a management and monitoring technology on the Java platform. It provides a set of APIs that can be used to manage and monitor various resources of Java applications, devices, systems, etc.
3. jps (Java Virtual Machine Process Status Tool) is a command line tool provided by JDK and capable of listing the process information of the running Java virtual machine, and displaying the information such as the name of the Main Class (Main () function) of the execution of the Java virtual machine process, the unique ID (LVMID, local Virtual Machine Identifier) of the local virtual machine, and the like.
4. Java Agent is an Agent that is loaded and executed when Java application runs, and can be implemented by Java Instrumentation API. It can dynamically modify the bytecode of the running Java application to implement various monitoring, debugging, performance analysis, code injection, etc.
5. Java APIs (Java application Programming interfaces) are a set of pre-written Java libraries or classes that a programmer can use to develop software applications in the Java programming language.
The present application is described below in connection with preferred implementation steps, and fig. 1 is a flowchart of a method for detecting a technical stack according to an embodiment of the present application, as shown in fig. 1, where the method includes the following steps:
step S101, extracting first data corresponding to an application program, where the application program is in a running state in a target virtual machine, and the first data at least includes one of the following: the method comprises the steps of a first set corresponding to different types in the application program and a second set corresponding to different methods in the application program;
step S102, matching the first data with a preset relation rule base, and determining corresponding lists of a plurality of technical stacks included in the application program according to a matching result, wherein the preset relation rule base comprises: a third set of different types of components corresponding to a preset technical stack and a fourth set of different methods corresponding to the preset technical stack.
It should be noted that, the foregoing manifest is mainly used for recording standard information corresponding to a technology stack currently used in an application program, and dividing classes and methods corresponding to the technology stack, where a class is an abstract framework for defining an object, and includes abstract definitions of a set of methods and attributes. In a class, some methods may be defined and rewritten in the subclass to implement the specific behavior of the subclass. For example, a "cat" class may be defined that includes both "bark" and "follow" methods, and then a "kitten" class may be defined that inherits the "cat" class and rewrites the "bark" and "follow" methods to accommodate the characteristics of the kitten.
Alternatively, the method is a class or object owned execution Behavior. In Java, a method is an abstract operation defined in a class or object, which is used to perform a specific task. The method is defined by a name and one or more parameters, and may return a value. For example, a "calculate square" method may be defined that accepts a number as a parameter and returns the square of the number.
In summary, after obtaining the manifest, the related object can quickly locate the technical stack used by the application program in the running process by obtaining the manifest, so that the related object can help the application program to perform development operation better and update the version of the application program better.
The method for detecting the technical stack provided by the embodiment of the application firstly extracts first data corresponding to the application program, wherein the application program is in an operating state in a target virtual machine, and the first data at least comprises one of the following: a first set corresponding to different types in the application program and a second set corresponding to different methods in the application program; matching the first data with a preset relation rule base, and determining a list corresponding to a plurality of technical stacks included in the application program according to a matching result, wherein the preset relation rule base comprises: the method comprises the steps of presetting a third set of different types of components corresponding to the technical stack and presetting a fourth set of different methods corresponding to the technical stack, so that the problems that false alarm is easy to occur and coverage is insufficient in detection of the prior technical stack in related technologies, and when the technical stack is detected, unused content cannot be accurately identified and the technical stack contained in the application cannot be comprehensively detected are solved. And then, the technology stack included in the application is determined efficiently, the detection precision and coverage are improved, and the effect of detecting and processing the technology stack is enhanced.
Optionally, before performing the step S101, step S100 may also be performed: determining a first process code corresponding to a first virtual machine in an operation state in an operation server by using a target function; receiving a second process code sent by a target object, and determining a first virtual machine, which is the same as the second process code, of the first process code as a target virtual machine; and attaching an agent program to the target virtual machine to perform traversal operations on classes and methods included in the application program through the agent program, wherein the classes are abstract definitions of a set of methods and attributes, and the methods are used for defining abstract operations in the classes or the objects.
It can be understood that, when determining the technical stack used by the application program in the runtime, in order to ensure the accuracy of the determination, in the case of determining the process code input by the target object, the process code may be matched with the process code in the running state acquired by tools such as JMX or JPS (corresponding to the target function) so as to locate the target virtual machine running the application program, and in addition, a proxy program including multiple function interfaces may be set in the target virtual machine, and different functions may be invoked by using the interfaces in the proxy program to quickly perform the traversal operation on the classes and methods included in the application program.
Optionally, attaching an agent program to the target virtual machine to perform a traversal operation on the class and method included in the application program through the agent program, including the steps of:
step one, activating a first interface corresponding to the agent program under the condition that the agent program is attached to the target virtual machine, wherein the first interface is used for connecting a function database to carry out function loading;
selecting a subprogram with a byte code conversion function from the function database based on the first interface to load so as to generate a byte code converter in the agent program;
step three, processing byte codes generated by the application program in an operation state through the byte code converter;
and step four, screening out a first set corresponding to the class included in the byte data corresponding to the application program and a second set corresponding to the method included in the byte data corresponding to the application program according to the processing result.
For example, in an actual application scenario, the agent is a Java agent processing process installed in a process corresponding to an application program running in a virtual machine under the condition of determining a target virtual machine, and then the Java agent processing process can be dynamically connected to the target virtual machine through a Java Attach API interface, after the Java agent processing process is dynamically connected to the target virtual machine, a Java Instrumentation API interface (corresponding to the first interface) is used for loading a bytecode converter, a class realizing a Class File Transformer class file converter interface is created, and conversion of bytecodes is realized in the class file converter interface. Then, traversing the classes and methods of the application program using the Java Reflection API interface based on the bytecode is started to obtain a set of classes and methods loaded by the application program at runtime.
Optionally, in the embodiment provided in step S102, the matching the first data with the preset relational rule base and determining, according to a matching result, a list corresponding to a plurality of technology stacks included in the application program includes: under the condition that the first data at least comprises class data, performing first feature matching on the first set and the third set to obtain a first matching result; under the condition that the first data at least comprises method data, performing second feature matching on the second set and the fourth set to obtain a second matching result; and determining a list corresponding to a plurality of technical stacks included by the application program according to the first matching result and/or the second matching result.
Under the condition that the type of the data included in the first data is determined, a data set of a corresponding type is called from a preset relation rule base, the similarity of the data included in the first data and the data set corresponding to standard data existing in the preset relation rule base is positioned through determining the feature matching degree between the data, after the similarity, a technical stack list of an application program is finally obtained through combing the corresponding relation among classes, methods and technical stacks, the technical stack adopted by the application program in the running process can be clearly known through the technical stack list, and the efficiency of the detection flow of the technical stack at the rear end of the whole java application is improved.
Optionally, in this embodiment, the first feature matching may be performed on the first set and the third set by using the following scheme to obtain a first matching result, which specifically includes: matching class characteristics of N first classes corresponding to the first set and M second classes corresponding to the third set to obtain N first matching degrees, wherein M, N is a positive integer; comparing the N first matching degrees with a preset first threshold value; and determining at least 1 target first matching degree according to the comparison result to generate a first matching result according to the at least 1 target first matching degree, wherein the target first matching degree is used for indicating the first matching degree which is larger than or equal to a preset first threshold value.
It should be noted that, the types of the classes included in the first set may have corresponding matching items in the second set, or may not exist in the second set, that is, a new class may be applied in the application program, and at this time, a third threshold may be set, and a first class with a first matching degree smaller than the third threshold may be extracted separately to generate a new class set; after the completion list is determined, the new class set is used for updating the preset relation rule base, for example, the class set can be added to the preset relation rule base to prompt the target object to execute updating operation, and under the condition that the target object issues updating instructions, technical stacks which can be associated with different classes in the current class set are searched, and the technical stacks are bound with the classes in the current class set in an information mode.
Optionally, in this embodiment, the second feature matching may be performed on the second set and the fourth set by using the following scheme to obtain a second matching result, which specifically includes: performing matching of method characteristics on the P first methods corresponding to the second set and the Q second methods corresponding to the fourth set to obtain P first matching degrees, wherein P, Q is a positive integer; comparing the P second matching degrees with a preset second threshold value; and determining at least 1 target second matching degree according to the comparison result to generate a second matching result according to the at least 1 target second matching degree, wherein the target second matching degree is used for indicating the second matching degree which is larger than or equal to a preset second threshold value.
It should be noted that, the types of the methods included in the second set may have corresponding matching items in the fourth set, or may not exist in the fourth set, that is, a new method may be applied to the application program, and at this time, a fourth threshold may be set, and the first method with the first matching degree smaller than the fourth threshold may be separately extracted, so as to generate a new method set; after the completion list is determined, the new method set is used for updating the preset relation rule base, for example, the method set can be added to the preset relation rule base to prompt the target object to execute updating operation, and under the condition that the target object issues an updating instruction, the technical stacks which can be associated with different methods in the current method set are searched, and the technical stacks are bound with the methods in the current method set in information.
Based on the above steps, the completion step S102 is performed: after matching the first data with a preset relation rule base and determining the corresponding lists of a plurality of technical stacks included in the application program according to the matching result, step S103 may further be executed, specifically including: under the condition that a list corresponding to the application program is determined, the list is sent to a target object; receiving editing operation of the target object on the list; and adjusting the list by using the editing operation to generate a class corresponding to the application program and a target relation rule base corresponding to a technical stack of the method.
For example, after determining the list of the application program, the target object may determine that the application program has a higher use frequency or a wider application technology stack from the list by issuing an editing operation, and generate a unique target relation rule base for the application program, and then when the application program needs to be updated, the corresponding target relation rule base may be directly searched, without determining the list of the application program, and in addition, after the application program applies a new technology stack, a class and a method corresponding to the new technology stack may be actively added in the target relation rule base, so as to implement comprehensive tracking of application technology stack use in the application program.
It should be noted that the steps illustrated in the flowcharts of the figures may be performed in a computer system such as a set of computer executable instructions, and that although a logical order is illustrated in the flowcharts, in some cases the steps illustrated or described may be performed in an order other than that illustrated herein.
The embodiment of the application also provides an optional technology stack detection system, as shown in fig. 2, fig. 2 is a system architecture diagram of the optional technology stack detection system in the embodiment of the application, where the system specifically includes: tool delivery module 22, class and method extraction module 24, result generation module 26.
Specifically, the tool delivery module 22: the method mainly takes charge of installing the java agent in the java application process to be detected (which is equivalent to the application program in the embodiment). Firstly, obtaining a Java process ID through JMX or JPS and other tools, and dynamically connecting to a Java virtual machine by using a Java Attach API.
Optionally, class and method extraction module 24: the method is mainly responsible for acquiring the class and the method of the running state. After dynamically connecting to the java virtual machine, the bytecode converter is loaded using Java Instrumentation API, creating a class that implements the classfileconverter interface and implementing the conversion of the bytecode therein. Then, traversing the class and the method of the java application based on the use Java Reflection API of the byte code is started to obtain a set of java application loading classes and methods.
Optionally, the result generation module 26: and the method is mainly responsible for matching the extracted loading class and the method set according to the technical stack characteristics, checking whether the characteristics are hit or not, and finally generating a technical stack list. In the construction of the feature library, the corresponding relation between the technical stack and the core opening class or method is combed, for example, when the type of the database is detected, the corresponding JDBC driving class condition can be detected.
The embodiment of the application also provides an optional detection method of the technical stack, which is applied to the system architecture shown in fig. 2, and specifically comprises the following steps:
step S301: the tool releasing module releases the java agent program into the java process running server, obtains the java process id through jmx or jps, and accesses the agent to the corresponding java virtual machine in an attach mode.
Step S302: and after the java virtual machine is dynamically connected, traversing the class and the method of the java application by using the class and method extraction module to obtain a set of the loading class and the method of the java application.
Step S303: the extracted loading class and method set is matched according to the technical stack characteristics, whether the characteristics hit or not is checked, and finally a technical stack list is generated.
It should be noted that, related information (including, but not limited to, user equipment information, user personal information, etc.) and data (including, but not limited to, data for presentation, analyzed data, etc.) related to the present disclosure are information and data authorized by a user or sufficiently authorized by each party. For example, an interface is provided between the system and the relevant user or institution, before acquiring the relevant information, the system needs to send an acquisition request to the user or institution through the interface, and acquire the relevant information after receiving the consent information fed back by the user or institution.
Through the steps, the java application back-end technology stack detection tool based on the byte code technology is provided, and through the tool throwing module, the class and method acquisition module and the result generation module, a user can realize detection of the java application back-end technology stack in a full-automatic mode, and automatically arrange scanning results, meanwhile, the tool is simple to install and convenient to detect, the class and method loaded in the running state can be detected, false alarms (the class and method of abandoned codes cannot be loaded into the running state set) can be well avoided, coverage rate (the class and method of external dynamic reference can be detected only in a java virtual machine) can be increased, the problems that the existing tool is prone to false alarms and insufficient in coverage are well solved, and the efficiency of the detection flow of the whole java application back-end technology stack is improved.
The embodiment of the application also provides a detection device of the technical stack, and the detection device of the technical stack can be used for executing the detection method of the technical stack. The following describes a detection device for a technical stack provided by the embodiment of the present application.
Fig. 3 is a schematic diagram of a detection apparatus of a technology stack according to an embodiment of the present application. As shown in fig. 3, the apparatus includes:
The extracting module 32 is configured to extract first data corresponding to an application program, where the application program is in a running state in a target virtual machine, and the first data includes at least one of the following: the method comprises the steps of a first set corresponding to different types in the application program and a second set corresponding to different methods in the application program;
the determining module 34 is configured to match the first data with a preset relationship rule base, and determine, according to a matching result, a list corresponding to a plurality of technology stacks included in the application program, where the preset relationship rule base includes: a third set of different types of components corresponding to a preset technical stack and a fourth set of different methods corresponding to the preset technical stack.
It should be noted that, the foregoing manifest is mainly used for recording standard information corresponding to a technology stack currently used in an application program, and dividing classes and methods corresponding to the technology stack, where a class is an abstract framework for defining an object, and includes abstract definitions of a set of methods and attributes. In a class, some methods may be defined and rewritten in the subclass to implement the specific behavior of the subclass. For example, a "cat" class may be defined that includes both "bark" and "follow" methods, and then a "kitten" class may be defined that inherits the "cat" class and rewrites the "bark" and "follow" methods to accommodate the characteristics of the kitten.
Alternatively, the method is a class or object owned execution Behavior. In Java, a method is an abstract operation defined in a class or object, which is used to perform a specific task. The method is defined by a name and one or more parameters, and may return a value. For example, a "calculate square" method may be defined that accepts a number as a parameter and returns the square of the number.
In summary, after obtaining the manifest, the related object can quickly locate the technical stack used by the application program in the running process by obtaining the manifest, so that the related object can help the application program to perform development operation better and update the version of the application program better.
The detection device for the technical stack provided by the embodiment of the application extracts the first data corresponding to the application program, wherein the application program is in the running state in the target virtual machine, and the first data at least comprises one of the following: a first set corresponding to different types in the application program and a second set corresponding to different methods in the application program; matching the first data with a preset relation rule base, and determining a list corresponding to a plurality of technical stacks included in the application program according to a matching result, wherein the preset relation rule base comprises: the method comprises the steps of presetting a third set of different types of components corresponding to the technical stack and presetting a fourth set of different methods corresponding to the technical stack, so that the problems that false alarm is easy to occur and coverage is insufficient in detection of the prior technical stack in related technologies, and when the technical stack is detected, unused content cannot be accurately identified and the technical stack contained in the application cannot be comprehensively detected are solved. And then, the technology stack included in the application is determined efficiently, the detection precision and coverage are improved, and the effect of detecting and processing the technology stack is enhanced.
It should be noted that the steps illustrated in the flowcharts of the figures may be performed in a computer system such as a set of computer executable instructions, and that although a logical order is illustrated in the flowcharts, in some cases the steps illustrated or described may be performed in an order other than that illustrated herein.
Optionally, the apparatus further includes: an add-in module 30, configured to determine, using the target function, a first process code corresponding to a first virtual machine in an operating state in the operating server; receiving a second process code sent by a target object, and determining a first virtual machine, which is the same as the second process code, of the first process code as a target virtual machine; and attaching an agent program to the target virtual machine to perform traversal operations on classes and methods included in the application program through the agent program, wherein the classes are abstract definitions of a set of methods and attributes, and the methods are used for defining abstract operations in the classes or the objects.
Optionally, the above-mentioned additional module 30 is further configured to activate a first interface corresponding to the agent, where the first interface is used to connect to a function database for performing function loading, if it is determined that the agent is already attached to the target virtual machine; selecting a subprogram with a byte code conversion function from the function database based on the first interface to load so as to generate a byte code converter in the agent program; processing byte codes generated by the application program in an operation state through the byte code converter; and screening out a first set corresponding to the class included in the application corresponding byte data and a second set corresponding to the method included in the application corresponding byte data according to the processing result.
Optionally, the determining module 34 is further configured to, if the first data includes at least class data, perform a first feature matching on the first set and the third set to obtain a first matching result; under the condition that the first data at least comprises method data, performing second feature matching on the second set and the fourth set to obtain a second matching result; and determining a list corresponding to a plurality of technical stacks included by the application program according to the first matching result and/or the second matching result.
Optionally, the determining module 34 is further configured to match class characteristics of N first classes corresponding to the first set and M second classes corresponding to the third set to obtain N first matching degrees, where M, N is a positive integer, and N is less than or equal to M; comparing the N first matching degrees with a preset first threshold value; and determining at least 1 target first matching degree according to the comparison result to generate a first matching result according to the at least 1 target first matching degree, wherein the target first matching degree is used for indicating the first matching degree which is larger than or equal to a preset first threshold value.
Optionally, the determining module 34 is further configured to perform matching of method features on P first methods corresponding to the second set and Q second methods corresponding to the fourth set to obtain P first matching degrees, where P, Q is a positive integer, and P is less than or equal to Q; comparing the P second matching degrees with a preset second threshold value; and determining at least 1 target second matching degree according to the comparison result to generate a second matching result according to the at least 1 target second matching degree, wherein the target second matching degree is used for indicating the second matching degree which is larger than or equal to a preset second threshold value.
Optionally, the apparatus further includes: an operation module 36, configured to send a manifest to a target object if it is determined that the manifest corresponds to the application program; receiving editing operation of the target object on the list; and adjusting the list by using the editing operation to generate a class corresponding to the application program and a target relation rule base corresponding to a technical stack of the method.
The detection device of the technical stack comprises a processor and a memory, the above-mentioned extraction module 32, determination module 34, operation module 36, and additional module 30 are stored in the memory as program units, and the processor executes the above-mentioned program units stored in the memory to realize the corresponding functions.
The processor includes a kernel, and the kernel fetches the corresponding program unit from the memory. The kernel can be provided with one or more than one kernel, and the problems that false alarm is easy to occur and coverage is insufficient in detection of the existing technical stack in the related technology, so that when the technical stack is detected, unused content cannot be accurately identified and the technical stack contained in the application cannot be comprehensively detected are solved by adjusting kernel parameters.
The memory may include volatile memory, random Access Memory (RAM), and/or nonvolatile memory, such as Read Only Memory (ROM) or flash memory (flash RAM), among other forms in computer readable media, the memory including at least one memory chip.
The embodiment of the invention provides a computer readable storage medium, on which a program is stored, which when executed by a processor, implements the method for detecting a technical stack.
The embodiment of the invention provides a processor which is used for running a program, wherein the program runs to execute the detection method of the technical stack.
As shown in fig. 4, an embodiment of the present invention provides an electronic device, where the device includes a processor, a memory, and a program stored in the memory and executable on the processor, and when the processor executes the program, the following steps are implemented: extracting first data corresponding to an application program, wherein the application program is in a running state in a target virtual machine, and the first data at least comprises one of the following: a first set corresponding to different types in the application program and a second set corresponding to different methods in the application program; matching the first data with a preset relation rule base, and determining a list corresponding to a plurality of technical stacks included in the application program according to a matching result, wherein the preset relation rule base comprises: a third set of different types of components corresponding to the preset technical stack and a fourth set of different methods corresponding to the preset technical stack.
Optionally, the method further comprises: determining a first process code corresponding to a first virtual machine in an operation state in an operation server by using a target function; receiving a second process code sent by a target object, and determining a first virtual machine, which is the same as the second process code, of the first process code as a target virtual machine; and attaching an agent program to the target virtual machine to perform traversal operations on classes and methods included in the application program through the agent program, wherein the classes are abstract definitions of a set of methods and attributes, and the methods are used for defining abstract operations in the classes or the objects.
Optionally, attaching an agent program to the target virtual machine to perform a traversal operation on the class and method included in the application program through the agent program, including: activating a first interface corresponding to the agent program under the condition that the agent program is attached to the target virtual machine, wherein the first interface is used for connecting a function database to carry out function loading; selecting a subprogram with a byte code conversion function from the function database based on the first interface to load so as to generate a byte code converter in the agent program; processing byte codes generated by the application program in an operation state through the byte code converter; and screening out a first set corresponding to the class included in the application corresponding byte data and a second set corresponding to the method included in the application corresponding byte data according to the processing result.
Optionally, the matching the first data with a preset relation rule base, and determining a list corresponding to a plurality of technical stacks included in the application program according to a matching result, including: under the condition that the first data at least comprises class data, performing first feature matching on the first set and the third set to obtain a first matching result; under the condition that the first data at least comprises method data, performing second feature matching on the second set and the fourth set to obtain a second matching result; and determining a list corresponding to a plurality of technical stacks included by the application program according to the first matching result and/or the second matching result.
Optionally, performing the first feature matching on the first set and the third set to obtain a first matching result, including: matching class characteristics of N first classes corresponding to the first set and M second classes corresponding to the third set to obtain N first matching degrees, wherein M, N is a positive integer, and N is smaller than or equal to M; comparing the N first matching degrees with a preset first threshold value; and determining at least 1 target first matching degree according to the comparison result to generate a first matching result according to the at least 1 target first matching degree, wherein the target first matching degree is used for indicating the first matching degree which is larger than or equal to a preset first threshold value.
Optionally, performing a second feature matching on the second set and the fourth set to obtain a second matching result, including: performing method characteristic matching on the P first methods corresponding to the second set and the Q second methods corresponding to the fourth set to obtain P first matching degrees, wherein P, Q is a positive integer, and P is smaller than or equal to Q; comparing the P second matching degrees with a preset second threshold value; and determining at least 1 target second matching degree according to the comparison result to generate a second matching result according to the at least 1 target second matching degree, wherein the target second matching degree is used for indicating the second matching degree which is larger than or equal to a preset second threshold value.
Optionally, the method further comprises: under the condition that a list corresponding to the application program is determined, the list is sent to a target object; receiving editing operation of the target object on the list; and adjusting the list by using the editing operation to generate a class corresponding to the application program and a target relation rule base corresponding to a technical stack of the method.
The device herein may be a server, PC, PAD, cell phone, etc.
The application also provides a computer program product adapted to perform, when executed on a data processing device, a program initialized with the method steps of: extracting first data corresponding to an application program, wherein the application program is in a running state in a target virtual machine, and the first data at least comprises one of the following: a first set corresponding to different types in the application program and a second set corresponding to different methods in the application program; matching the first data with a preset relation rule base, and determining a list corresponding to a plurality of technical stacks included in the application program according to a matching result, wherein the preset relation rule base comprises: a third set of different types of components corresponding to the preset technical stack and a fourth set of different methods corresponding to the preset technical stack.
Optionally, the method further comprises: determining a first process code corresponding to a first virtual machine in an operation state in an operation server by using a target function; receiving a second process code sent by a target object, and determining a first virtual machine, which is the same as the second process code, of the first process code as a target virtual machine; and attaching an agent program to the target virtual machine to perform traversal operations on classes and methods included in the application program through the agent program, wherein the classes are abstract definitions of a set of methods and attributes, and the methods are used for defining abstract operations in the classes or the objects.
Optionally, attaching an agent program to the target virtual machine to perform a traversal operation on the class and method included in the application program through the agent program, including: activating a first interface corresponding to the agent program under the condition that the agent program is attached to the target virtual machine, wherein the first interface is used for connecting a function database to carry out function loading; selecting a subprogram with a byte code conversion function from the function database based on the first interface to load so as to generate a byte code converter in the agent program; processing byte codes generated by the application program in an operation state through the byte code converter; and screening out a first set corresponding to the class included in the application corresponding byte data and a second set corresponding to the method included in the application corresponding byte data according to the processing result.
Optionally, the matching the first data with a preset relation rule base, and determining a list corresponding to a plurality of technical stacks included in the application program according to a matching result, including: under the condition that the first data at least comprises class data, performing first feature matching on the first set and the third set to obtain a first matching result; under the condition that the first data at least comprises method data, performing second feature matching on the second set and the fourth set to obtain a second matching result; and determining a list corresponding to a plurality of technical stacks included by the application program according to the first matching result and/or the second matching result.
Optionally, performing the first feature matching on the first set and the third set to obtain a first matching result, including: matching class characteristics of N first classes corresponding to the first set and M second classes corresponding to the third set to obtain N first matching degrees, wherein M, N is a positive integer, and N is smaller than or equal to M; comparing the N first matching degrees with a preset first threshold value; and determining at least 1 target first matching degree according to the comparison result to generate a first matching result according to the at least 1 target first matching degree, wherein the target first matching degree is used for indicating the first matching degree which is larger than or equal to a preset first threshold value.
Optionally, performing a second feature matching on the second set and the fourth set to obtain a second matching result, including: performing method characteristic matching on the P first methods corresponding to the second set and the Q second methods corresponding to the fourth set to obtain P first matching degrees, wherein P, Q is a positive integer, and P is smaller than or equal to Q; comparing the P second matching degrees with a preset second threshold value; and determining at least 1 target second matching degree according to the comparison result to generate a second matching result according to the at least 1 target second matching degree, wherein the target second matching degree is used for indicating the second matching degree which is larger than or equal to a preset second threshold value.
Optionally, the method further comprises: under the condition that a list corresponding to the application program is determined, the list is sent to a target object; receiving editing operation of the target object on the list; and adjusting the list by using the editing operation to generate a class corresponding to the application program and a target relation rule base corresponding to a technical stack of the method.
It will be appreciated by those skilled in the art that embodiments of the present application may be provided as a method, system, or computer program product. Accordingly, the present application may take the form of an entirely hardware embodiment, an entirely software embodiment or an embodiment combining software and hardware aspects. Furthermore, the present application may take the form of a computer program product embodied on one or more computer-usable storage media (including, but not limited to, disk storage, CD-ROM, optical storage, and the like) having computer-usable program code embodied therein.
The present application is described with reference to flowchart illustrations and/or block diagrams of methods, apparatus (systems) and computer program products according to embodiments of the application. It will be understood that each flow and/or block of the flowchart illustrations and/or block diagrams, and combinations of flows and/or blocks in the flowchart illustrations and/or block diagrams, can be implemented by computer program instructions. These computer program instructions may be provided to a processor of a general purpose computer, special purpose computer, embedded processor, or other programmable data processing apparatus to produce a machine, such that the instructions, which execute via the processor of the computer or other programmable data processing apparatus, create means for implementing the functions specified in the flowchart flow or flows and/or block diagram block or blocks.
These computer program instructions may also be stored in a computer-readable memory that can direct a computer or other programmable data processing apparatus to function in a particular manner, such that the instructions stored in the computer-readable memory produce an article of manufacture including instruction means which implement the function specified in the flowchart flow or flows and/or block diagram block or blocks.
These computer program instructions may also be loaded onto a computer or other programmable data processing apparatus to cause a series of operational steps to be performed on the computer or other programmable apparatus to produce a computer implemented process such that the instructions which execute on the computer or other programmable apparatus provide steps for implementing the functions specified in the flowchart flow or flows and/or block diagram block or blocks.
In one typical configuration, a computing device includes one or more processors (CPUs), input/output interfaces, network interfaces, and memory.
The memory may include volatile memory in a computer-readable medium, random Access Memory (RAM) and/or nonvolatile memory, etc., such as Read Only Memory (ROM) or flash RAM. Memory is an example of a computer-readable medium.
Computer readable media, including both non-transitory and non-transitory, removable and non-removable media, may implement information storage by any method or technology. The information may be computer readable instructions, data structures, modules of a program, or other data. Examples of storage media for a computer include, but are not limited to, phase change memory (PRAM), static Random Access Memory (SRAM), dynamic Random Access Memory (DRAM), other types of Random Access Memory (RAM), read Only Memory (ROM), electrically Erasable Programmable Read Only Memory (EEPROM), flash memory or other memory technology, compact disc read only memory (CD-ROM), digital Versatile Discs (DVD) or other optical storage, magnetic cassettes, magnetic tape magnetic disk storage or other magnetic storage devices, or any other non-transmission medium, which can be used to store information that can be accessed by a computing device. Computer-readable media, as defined herein, does not include transitory computer-readable media (transmission media), such as modulated data signals and carrier waves.
It should also be noted that the terms "comprises," "comprising," or any other variation thereof, are intended to cover a non-exclusive inclusion, such that a process, method, article, or apparatus that comprises a list of elements does not include only those elements but may include other elements not expressly listed or inherent to such process, method, article, or apparatus. Without further limitation, an element defined by the phrase "comprising one … …" does not exclude the presence of other like elements in a process, method, article or apparatus that comprises an element.
It will be appreciated by those skilled in the art that embodiments of the present application may be provided as a method, system, or computer program product. Accordingly, the present application may take the form of an entirely hardware embodiment, an entirely software embodiment or an embodiment combining software and hardware aspects. Furthermore, the present application may take the form of a computer program product embodied on one or more computer-usable storage media (including, but not limited to, disk storage, CD-ROM, optical storage, and the like) having computer-usable program code embodied therein.
The foregoing is merely exemplary of the present application and is not intended to limit the present application. Various modifications and variations of the present application will be apparent to those skilled in the art. Any modification, equivalent replacement, improvement, etc. which come within the spirit and principles of the application are to be included in the scope of the claims of the present application.

Claims (10)

1. A method for detecting a technical stack, comprising:
extracting first data corresponding to an application program, wherein the application program is in a running state in a target virtual machine, and the first data at least comprises one of the following: the method comprises the steps of a first set corresponding to different types in the application program and a second set corresponding to different methods in the application program;
matching the first data with a preset relation rule base, and determining corresponding lists of a plurality of technical stacks included in the application program according to a matching result, wherein the preset relation rule base comprises: a third set of different types of components corresponding to a preset technical stack and a fourth set of different methods corresponding to the preset technical stack.
2. The method according to claim 1, wherein the method further comprises:
determining a first process code corresponding to a first virtual machine in an operation state in an operation server by using a target function;
receiving a second process code sent by a target object, and determining a first virtual machine, which is the same as the second process code, of the first process code as a target virtual machine;
and attaching an agent program to the target virtual machine to perform traversal operations on classes and methods included in the application program through the agent program, wherein the classes are abstract definitions of a set of methods and attributes, and the methods are used for defining abstract operations in classes or objects.
3. The method of claim 2, wherein attaching an agent to the target virtual machine to perform traversal operations with the agent on classes and methods included in the application, comprises:
activating a first interface corresponding to the agent program under the condition that the agent program is attached to the target virtual machine, wherein the first interface is used for connecting a function database to carry out function loading;
selecting a subprogram with a byte code conversion function from the function database based on the first interface to load so as to generate a byte code converter in the agent program;
processing byte codes generated by the application program in an operation state through the byte code converter;
and screening out a first set corresponding to the class included in the application corresponding byte data and a second set corresponding to the method included in the application corresponding byte data according to the processing result.
4. The method of claim 1, wherein matching the first data with a preset relational rule base, and determining a list corresponding to a plurality of technical stacks included in the application program according to a matching result, comprises:
Under the condition that the first data at least comprises class data, performing first feature matching on the first set and the third set to obtain a first matching result;
under the condition that the first data at least comprises method data, performing second feature matching on the second set and the fourth set to obtain a second matching result;
and determining a list corresponding to a plurality of technical stacks included by the application program according to the first matching result and/or the second matching result.
5. The method of claim 4, wherein performing a first feature match on the first set and the third set to obtain a first match result comprises:
matching class characteristics of N first classes corresponding to the first set and M second classes corresponding to the third set to obtain N first matching degrees, wherein M, N is a positive integer;
comparing the N first matching degrees with a preset first threshold value;
and determining at least 1 target first matching degree according to the comparison result to generate a first matching result according to the at least 1 target first matching degree, wherein the target first matching degree is used for indicating the first matching degree which is larger than or equal to a preset first threshold value.
6. The method of claim 4, wherein performing a second feature match on the second set and the fourth set to obtain a second match result comprises:
performing matching of method characteristics on the P first methods corresponding to the second set and the Q second methods corresponding to the fourth set to obtain P first matching degrees, wherein P, Q is a positive integer;
comparing the P second matching degrees with a preset second threshold value;
and determining at least 1 target second matching degree according to the comparison result to generate a second matching result according to the at least 1 target second matching degree, wherein the target second matching degree is used for indicating the second matching degree which is larger than or equal to a preset second threshold value.
7. The method according to claim 1, wherein the method further comprises:
under the condition that a list corresponding to the application program is determined, the list is sent to a target object;
receiving editing operation of the target object on the list;
and adjusting the list by using the editing operation to generate a class corresponding to the application program and a target relation rule base corresponding to a technical stack of the method.
8. A device for detecting a technical stack, comprising:
the extraction module is used for extracting first data corresponding to an application program, wherein the application program is in an operation state in a target virtual machine, and the first data at least comprises one of the following: the method comprises the steps of a first set corresponding to different types in the application program and a second set corresponding to different methods in the application program;
the determining module is configured to match the first data with a preset relationship rule base, and determine a list corresponding to a plurality of technical stacks included in the application program according to a matching result, where the preset relationship rule base includes: a third set of different types of components corresponding to a preset technical stack and a fourth set of different methods corresponding to the preset technical stack.
9. A processor, characterized in that the processor is configured to run a program, wherein the program runs on performing the method of detecting a technical stack according to any one of claims 1 to 7.
10. An electronic device comprising one or more processors and a memory for storing one or more programs, wherein the one or more programs, when executed by the one or more processors, cause the one or more processors to implement the method of detecting a technology stack of any of claims 1-7.
CN202310731832.XA 2023-06-19 2023-06-19 Detection method and device of technical stack, processor and electronic equipment Pending CN116737229A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310731832.XA CN116737229A (en) 2023-06-19 2023-06-19 Detection method and device of technical stack, processor and electronic equipment

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310731832.XA CN116737229A (en) 2023-06-19 2023-06-19 Detection method and device of technical stack, processor and electronic equipment

Publications (1)

Publication Number Publication Date
CN116737229A true CN116737229A (en) 2023-09-12

Family

ID=87900807

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310731832.XA Pending CN116737229A (en) 2023-06-19 2023-06-19 Detection method and device of technical stack, processor and electronic equipment

Country Status (1)

Country Link
CN (1) CN116737229A (en)

Similar Documents

Publication Publication Date Title
US7627594B2 (en) Runtime support for nullable types
US9274923B2 (en) System and method for stack crawl testing and caching
US8578339B2 (en) Automatically adding bytecode to a software application to determine database access information
US7975257B2 (en) Iterative static and dynamic software analysis
US7275239B2 (en) Run-time wait tracing using byte code insertion
US10684827B2 (en) Generating dynamic modular proxies
US8887141B2 (en) Automatically modifying a native code module accessed from virtual machine bytecode to determine execution information
US10140119B2 (en) Modular serialization
EP3491527B1 (en) Debugging tool for a jit compiler
US10042658B1 (en) Automatically adding bytecode to a software application to determine network communication information
US20220075876A1 (en) Runtime application monitoring without modifying application program code
US8359579B2 (en) Monitoring dynamic aspect oriented applications at execution time
CN110334031B (en) Memory allocation code detection method and device, computer equipment and storage medium
CN115756424A (en) Method, device and equipment for generating MVP (multifunction vehicle platform) code
US8930420B2 (en) Orphan object tracking for objects having acquire-release semantics
US10848410B2 (en) Ranking service implementations for a service interface
US10296363B2 (en) Tuning a virtual machine startup parameter
CN116737229A (en) Detection method and device of technical stack, processor and electronic equipment
US20220075875A1 (en) Language-independent application monitoring through aspect-oriented programming
US10521200B2 (en) Unambiguous proxying of interface methods
US20140351799A1 (en) Binary interface instrumentation
Andrzejak et al. Confguru-A system for fully automated debugging of configuration errors
US20220107825A1 (en) Measuring the Memory Usage of Java Programs
US11568047B2 (en) Distinguished nest-based access control
Troost A testing tool visualizing and ensuring data-flow coverage

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