WO2012037732A1 - 建立数据结构及描述计算机运行状态及其状态迁移的方法 - Google Patents

建立数据结构及描述计算机运行状态及其状态迁移的方法 Download PDF

Info

Publication number
WO2012037732A1
WO2012037732A1 PCT/CN2010/077309 CN2010077309W WO2012037732A1 WO 2012037732 A1 WO2012037732 A1 WO 2012037732A1 CN 2010077309 W CN2010077309 W CN 2010077309W WO 2012037732 A1 WO2012037732 A1 WO 2012037732A1
Authority
WO
WIPO (PCT)
Prior art keywords
calling
instruction
code
computer
current
Prior art date
Application number
PCT/CN2010/077309
Other languages
English (en)
French (fr)
Inventor
汪家祥
曲立东
Original Assignee
Wang Jiaxiang
Qu Lidong
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 Wang Jiaxiang, Qu Lidong filed Critical Wang Jiaxiang
Priority to PCT/CN2010/077309 priority Critical patent/WO2012037732A1/zh
Priority to CN201080067254.5A priority patent/CN103080898B/zh
Priority to US13/814,150 priority patent/US9519569B2/en
Publication of WO2012037732A1 publication Critical patent/WO2012037732A1/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3604Software analysis for verifying properties of programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • G06F11/3636Software debugging by tracing the execution of the program
    • 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/30Arrangements for executing machine instructions, e.g. instruction decode

Definitions

  • the present invention relates to the field of computers, and more particularly to a method of establishing a data structure describing a computer code execution process and a method of describing a computer operating state and its state transition.
  • the computer system security detection system, the system security management system, the active defense system, etc. in the prior art all have the following deficiencies: 1. Only a certain function point or an operation of the computer can be monitored, and only the operation can be judged by the single order. Whether it is allowed to happen. 2. This kind of monitoring is only the result monitoring, and it is impossible to monitor the process. 3. This monitoring and management is only an afterthought, that is, the process can only be judged through the results. The main reason is that the current technology can not realize the state of description of the operation of the computer, and it is impossible to accurately control the calculation running state. If you want to achieve the purpose of fully managing and controlling the computer system, you must manage every operation of the computer system, and analyze why it causes the current operation. Only when the current operation is fully analyzed, can the current operation be accurately determined. of Correctness, the effective management of the computer system, in order to achieve the full management and control of the computer system.
  • the present invention provides a method of establishing a data structure describing a computer code execution process, including:
  • the code segment where the calling instruction is located is a node, and the calling relationship between the code segment and the called code segment initiated by the calling instruction to initiate the calling instruction establishes a data structure for the calling path; the data structure includes each node. , and the calling path between each calling node and the called node.
  • the establishing the data structure includes:
  • the obtaining the calling instruction includes:
  • the obtaining the code segment that initiates the calling instruction and the called code segment include:
  • the present invention has the following advantages:
  • the invention uses the code segment between the calling instructions as a node to establish a data structure for the calling path by calling the calling relationship between the code segment of the calling instruction and the called code segment.
  • a data structure for the calling path by calling the calling relationship between the code segment of the calling instruction and the called code segment.
  • the present invention also provides a method of describing a computer operating state using the data structure described above, including:
  • the data structure consisting of all nodes and call paths before the call instruction describes the running state of the computer when the call instruction is executed.
  • it also includes:
  • the present invention has the following advantages:
  • the present invention also provides a method for describing a computer operating state transition using the data structure described above, including:
  • the current computer running state is described by a data structure consisting of all nodes and call paths before the current call instruction;
  • a new calling path is established by the code segment called by the current calling instruction as a node, the calling relationship between the code segment of the calling current instruction and the called code segment established by the calling instruction, the new node, the new calling path and
  • the data structure formed by all the nodes and the calling path of the current computer running state is the running state of the next computer;
  • the process of generating a new node and a new invocation path is used to describe the migration of the current computer operating state to the next computer running state.
  • it also includes:
  • the code fragment that is called by the current calling instruction is a new node, to be called
  • the call relationship established between the code fragment and the called code fragment of the instruction that initiated the instruction is that the new call path includes:
  • a new calling path is established with the established calling relationship.
  • the obtaining the current calling instruction includes:
  • the acquiring the code segment of the current calling instruction includes: obtaining an address of the called code segment of the current calling instruction from the calling parameter; acquiring the current calling instruction based on the address of the called code segment of the current calling instruction The code fragment being called.
  • the present invention has the following advantages:
  • the method for describing the running state of the computer in the present invention it can be known how the computer migrates from the current running state to the next running state, that is, the association between the current running state of the computer and the next running state can be known.
  • the operating efficiency of the computer can be evaluated, the operating efficiency of the computer can be adjusted, and the operating efficiency of the computer can be improved; and the running state of the computer can be monitored as a whole, which is beneficial to the evaluation of the hardware and software.
  • FIG. 1 is a flow chart of a method of establishing a data structure describing a computer code execution process in accordance with an embodiment of the present invention
  • 2 is a schematic diagram of a code segment calling relationship according to a specific embodiment of the present invention
  • FIG. 3 is a schematic diagram of a data structure established in a specific embodiment of the present invention.
  • the method of the present invention for establishing a data structure describing a computer code execution process uses a code segment in which the instruction is located as a node to initiate a call between the code segment of the call instruction and the called code segment.
  • the relationship establishes a data structure for the calling path; the data structure includes each node, and a calling path between each calling node and the called node. This way you can know who initiated the call (initiator) and to whom (invoking the target).
  • the computer implements certain functions by executing code and calling between function functions, wherein a piece of code executed in sequence is defined as a code segment, and after executing a code segment in sequence, the next code segment is executed by calling the instruction jump, based on
  • the present invention establishes a data structure that describes the execution of computer code.
  • the method for establishing a data structure describing a computer code execution process when the computer is running, using a code segment in which the instruction is located as a node, calling between the code segment of the initiating call instruction and the called code segment established by the call instruction
  • the relationship establishes a data structure for the calling path; the data structure includes each node, and a calling path between each calling node and the called node.
  • the calling node refers to a node established by a code fragment that initiates a calling instruction
  • the called node refers to a node established by a code fragment (ie, a called code fragment) to be called by the calling instruction, that is, adjacent to the establishment order.
  • the calling node refers to the node established first
  • the called node refers to the node established later.
  • a method for establishing a data structure describing a computer code execution process according to an embodiment of the present invention includes:
  • Step S1 acquiring a call instruction
  • Step S2 Obtain a code segment that initiates the calling instruction and a code fragment of the called code
  • Step S3 establishing a node by using the acquired code segment that initiates the calling instruction and the called code segment;
  • step S4 a code segment initiating the calling instruction and a calling relationship between the called code fragments are established, and the established calling relationship is a calling path between the calling node and the called node.
  • Step S1 Acquiring a call instruction: The call instruction divides the computer code into a plurality of code segments, each code segment is a sequence of executed code, and the last line of code of each code segment is a call instruction. .
  • the calling instruction is an assembly instruction
  • the code run by the computer is a machine code.
  • the obtaining the calling instruction in the specific embodiment of the present invention includes: performing binary translation on the machine code of the computer to obtain Call the instruction. Specifically, the machine code is translated into assembly language by binary translation of the machine code when the computer is running. This process is a disassembly process. After the disassembled assembly language is obtained, the call instruction in the assembly language is obtained.
  • FIG. 2 is a schematic diagram of a code segment calling relationship according to a specific embodiment of the present invention.
  • FIG. 2 shows a plurality of code segments, which are respectively composed of code blocks 11 composed of Al ⁇ An lines and composed of B1 ⁇ Bn lines.
  • Code fragment 12 a generation consisting of Cl ⁇ Cn line code Code segment 13 , a code segment 21 consisting of ⁇ 1 ⁇ ⁇ line code, a code segment 31 consisting of LI ⁇ Ln line codes, where An line code, Bn line code, Cn line code, Mn line code, Ln line code All are call instructions, the computer code shown in Figure 2 is divided into multiple code segments by An line code, Bn line code, Cn line code, Mn line code, Ln line code, that is, code segment 11, code segment 12, code Fragment 13, code segment 21, code segment 31. In the specific embodiment of the present invention shown in FIG. 2, after the computer executes the code segment 11, the code segment 21 is called by the An line code.
  • the code segment 31 is called by the Mn line code, and the code segment is executed.
  • the code segment 12 is called by the Ln line code, and after the code segment 12 is executed, the code segment 13 is called by the Bn line code.
  • the An line code, the Bn line code, the Cn line code, the Mn line code, and the Ln line code are machine code, and binary translation is performed to obtain an assembly language call instruction.
  • Step S2 is executed to obtain a code segment that initiates the call instruction and a called code segment. Still taking FIG. 2 as an example, after executing step S1 and acquiring the call instruction, the acquired call instruction divides the computer code into a plurality of code segments, namely, code segment 11, code segment 12, code segment 13, code. Fragment 21, code fragment 31. For example, if the call instruction obtained in step S1 is the call instruction indicated by the An line code, the code segment 11 that initiated the call instruction, the called code segment 21 is obtained in step S2. If the call instruction acquired in step S1 is the call instruction indicated by the Mn line code, the code segment 21 initiating the call instruction, the called code segment 31 is obtained in step S2.
  • Step S3 is performed, and the obtained code segment that initiates the calling instruction is The called code fragment establishes a node. 2 and FIG. 3, the node P11 is created by the code segment 11; then, the calling instruction indicated by the An line code calls the code segment 21, and the node P21 is established with the code segment 21; then, the calling instruction calling code represented by the Mn line code Fragment 31, node P31 is established with code segment 31; then, the call instruction indicated by Ln line code calls code segment 12, and node P12 is established with code segment 12; then, the call instruction indicated by Bn line code calls code segment 13 to code segment 13 Create node P13.
  • step S4 a code segment initiating the calling instruction and a calling relationship between the called code fragments are established, and the established calling relationship is a calling path between the calling node and the called node.
  • the code segment 11 (the initiator of the call instruction corresponding to the An line code) is the code target 21 (the call target of the call instruction corresponding to the An line code, the Mn line code).
  • the calling relationship of the initiator of the corresponding calling instruction establishes the calling path T1 between the node of the code fragment 11 and the node of the code fragment 21, and establishes the node and the code fragment of the code fragment 21 by the calling relationship of the code fragment 21 to the code fragment 31.
  • the calling path T2 between the nodes of 31, the calling path T3 between the node of the code fragment 31 and the node of the code fragment 12 is established by the calling relationship of the code fragment 31 to the code fragment 12, and the call of the code fragment 13 by the code fragment 12
  • the relationship establishes a call path T4 between the node of the code fragment 13 and the node of the code fragment 13, so that a call path between all nodes from the root node to the current node can be established.
  • a node is created by a code segment that initiates the call instruction, so that all nodes from the root node to the current node, the calling node and the called node can be established.
  • the root node refers to the original initiator of the current node, that is, the source of the current node, that is, the root node passes through a series of call paths, Dry the nodes so that they can be migrated to the current node.
  • the code segment 13 is taken as the current code segment, the call instruction indicated by the Cn line code of the code segment 13 is the current call instruction; the code segment 11 is the original initiator of the current call instruction, and the code segment is 11 is the root node, code fragment 13 is the current node, code fragment 21, code fragment 31, and code fragment 12 are nodes between the root node and the current node.
  • node P11 is the root node, and node P13 is the current node.
  • nodes, nodes P21, P31, and P12 are nodes between the root node and the current node.
  • the method for establishing a data structure describing a computer code execution process is a dynamic process. Each time a call instruction is acquired, a code segment that initiates the call instruction and a called code segment are acquired, and then acquired. The code segment that initiates the calling instruction and the called code fragment establishes a node, and establishes a calling path between the calling node and the called node by a calling relationship between the code segment initiating the calling instruction and the called code segment. This creates a continuous data structure that describes the execution of computer code.
  • the existing computer is a stack type, wherein the stack area is automatically allocated and released by the compiler, and the calling parameter of the calling instruction is stored, and the calling parameter includes the address of the next code fragment (ie, the called code fragment) called by the calling instruction,
  • the operation method and operation content of a code segment is how to complete an operation
  • the operation content is the corresponding object of operation
  • the following code fragment is for deleting a file as an example
  • the operation method is deletion
  • the operation content is a file.
  • the obtaining the code segment that initiates the calling instruction and the called code segment include: obtaining an address of the called code segment from the calling parameter, such as an address of the first line code of the called code segment, taking FIG. 2 as an example. If the called code fragment is code fragment 21, the address of the acquired code fragment obtained is the address of the M1 line code, that is, Is the address of the first line of code of code fragment 21; the called code fragment is retrieved based on the address of the called code fragment, and the code fragment in which the call instruction is located is the code fragment that initiated the call instruction.
  • the present invention also provides a method for describing the running state of the computer, when a certain call instruction is executed, using all the nodes before the certain call instruction and
  • the data structure consisting of the call path describes the running state of the computer when the call instruction is executed.
  • a certain calling instruction is executed, a data structure composed of all nodes and calling paths before the certain calling instruction is acquired.
  • the running state of the computer is no longer an isolated running state at the current time, but an associated running state containing the running information of the previous time period.
  • the running state of the computer is the node P11 including the code segment 11
  • the node P21 indicated by the code segment 21, the node P31 indicated by the code segment 31, the node P12 indicated by the code segment 12, and the call path T1 of the code segment 11 to the code segment 21 i.e., the call path T1 between the node P11 and the node P21
  • the calling path T2 of the code segment 21 to the code segment 31 i.e., the calling path T2 between the node P21 and the node P31
  • the calling path T3 of the code segment 31 to the code segment 12 i.e., the calling path T3 between the node P31 and the node P12
  • the data structure as illustrated in the data structure shown in FIG.
  • the code indicates the running state of the computer when the call instruction is executed. After knowing the running state of the computer, it is possible to evaluate the operating efficiency of the computer according to the running state of the computer, adjust the operating efficiency of the computer according to the evaluation result of the operating efficiency of the computer, thereby improving the operating efficiency of the computer; The operating state facilitates the evaluation of hardware and software.
  • the present invention is based on a data structure established by the method described above, and also provides a method of describing a state transition of a computer, wherein the term migration refers to a transition of a computer from an operational state to a next operational state in the present invention.
  • a method for describing a computer running state transition includes: Step S11: When a current calling instruction is executed, describe a current computer running state by using a data structure composed of all nodes and a calling path before the current calling instruction;
  • Step S12 the code segment that is called by the current calling instruction is a new node, and the calling relationship between the code segment that initiates the current calling instruction and the called code segment established by the calling instruction is a new calling path, and the new node, the new node, The new calling path and the current computer running state all the nodes and the calling path constitute the data structure for the next computer running state;
  • the process of establishing a new node and a new calling path is used to describe the migration of the current computer running state to the next computer running state, that is, the process of establishing a new node and a new calling path in step S2 is performed by the current The computer is running down to the migration state of a computer.
  • step S11 is performed, and the current computer running state is described by a data structure composed of all nodes and calling paths before the current calling instruction. Specifically, when the current calling instruction is executed, a data structure composed of all nodes and calling paths before the current calling instruction is obtained, and the data structure is used to describe the running state of the current computer. This describes the current computer running state.
  • the running state of the computer is no longer an isolated running state at the current time, but an associated running state containing the running information of the previous time period.
  • Step S12 is executed, the code segment called by the current calling instruction is a new node, the calling relationship between the code segment initiated by the calling instruction and the called code segment initiated by the calling instruction is a new calling path, and the new node is The new call path and the current computer running state of all nodes, the call path constitutes the data structure for the next computer running state.
  • the establishing a new node and the new calling path includes: acquiring a current calling instruction; acquiring a called code fragment of the current calling instruction; and using the called code fragment of the current calling instruction as a new node; Establishing a code segment that initiates the call instruction and a call relationship between the called code segments; establishing a new call path with the established call relationship.
  • obtaining the current call instruction comprises: performing a binary translation of the machine code run by the computer to obtain the current call instruction.
  • the acquiring the code segment of the current calling instruction includes: obtaining an address of the called code segment of the current calling instruction from the calling parameter, that is, an address of the first line code of the called code segment; based on the current calling instruction The address of the called code fragment gets the called code fragment of the currently called instruction.
  • the current calling instruction is a calling instruction represented by the Bn line code
  • the current computer running state is a node P11 including the code segment 11 and a node P21 represented by the code segment 21, and the code segment 31.
  • the data structure of the call path T3 of the code segment 31 to the code segment 12 ie, the call path T3 between the node P31 and the node P12
  • the structure is described as a data structure including nodes P11, P21, P31, P12 and the calling paths T1, ⁇ 2, ⁇ 3 between the respective nodes, and the data structure describes the running state of the current computer.
  • the code segment 13 is the new node P13, and the code segment 12 created by the calling instruction indicated by the Bn line code establishes a new calling path T4 for the calling relationship of the code segment 13.
  • the node P13, the calling path P14 and the nodes P11, P21, P31, P12 and the calling paths T1, ⁇ 2, ⁇ 3 between the respective nodes constitute the next computer operating state.
  • the process of forming the new node P13 and the new calling path ⁇ 4 is the migration of the computer system from the current computer running state to the running state of the computer.
  • the method for describing the running state of the computer of the present invention it is possible to know how the computer migrates from one running state to the next running state, and the operation of the computer It is a continuous process, so that based on the method of the present invention, on the basis of knowing the migration state of the computer, the operating efficiency of the computer can be evaluated, the operating efficiency of the computer can be adjusted, thereby improving the operating efficiency of the computer; and the operation of the computer can be monitored as a whole.
  • the status is useful for evaluating hardware and software; and the code association analysis can be performed based on the established code fragment association.

Description

建立数据结构及描述计算机运行状态及其状态迁移的方法 技术领域
本发明涉及计算机领域,尤其涉及一种建立描述计算机代码执行 过程的数据结构的方法以及描述计算机运行状态及其状态迁移的方 法。
背景技术
目前大量的人力投入到涉及计算机系统管理和计算机系统安全 的研究中, 其中, 计算机系统管理的软硬件系统的设计和实现都是以 直接或间接地判断计算机的某个操作是否被许可来实现对计算机系 统的管理。 触发某个操作可能是由计算机系统的软 /硬件运行时的某 个原因产生, 也可能是由恶意代码产生、也可能是由某种未知原因产 生。 但是这种通过管理某个操作本身只能达到 "有限管理" 的目的, 即只能实现对计算机系统的部分管理,而不能达到对计算机系统的完 全管理。
现有技术中的计算机系统安全探测系统、 系统安全管理系统、 主 动防御系统等都存在以下不足: 1.只能实现对计算机某个功能点或某 个操作进行监控, 只能筒单判断该操作是否允许发生。 2.这种监控只 是结果监控, 无法实现对过程进行监控。 3.这种监控和管理只是事后 的, 即只能通过结果判断过程。 究其原因主要是目前的技术尚无法实 现对计算机的运行描述状态,更无法实现对计算运行状态进行准确控 制。 如果要达到完全管理和控制计算机系统的目的, 就必须管理计算 机系统当前的每一个操作, 并且能分析为什么会引起当前的操作, 只 有充分地分析了为什么会产生当前操作,才能准确地判断当前操作的 正确性, 形成对计算机系统的有效管理, 才能达到完全管理和控制计 算机系统的目的。
由于计算机系统的复杂性, 计算机系统在运行时, 因为时间、 操 作者的操作要求、 硬件运行需求、 网络操作请求、 代码内置需求等因 素, 引起计算机在某一时刻操作的原因极其复杂, 如果要对计算机的 运行全过程进行分析,就必须要建立一个能描述计算机运行的数据结 构。
因为计算机在运行过程中的状态是瞬间存在的,在计算机运行过 程中, 其状态变化十分迅速, 目前尚没有建立一个能描述计算机运行 状态的逻辑结构, 并能依赖逻辑结构对计算机系统进行有效管理。
发明内容
本发明的目的是提供一种建立描述计算机代码执行过程的数据 结构的方法, 用该方法建立一种数据结构, 并用这种数据结构描述计 算机运行状态及状态迁移过程。
为达到以上目的本发明提供一种建立描述计算机代码执行过程 的数据结构的方法, 包括:
在计算机运行时, 以调用指令所在的代码片断为节点, 以调用指 令建立的发起该调用指令的代码片断和被调用代码片断之间的调用 关系为调用路径建立数据结构; 该数据结构包括各个节点, 以及各个 调用节点和被调用节点之间的调用路径。
可选的, 所述建立数据结构包括:
获取调用指令;
获取发起所述调用指令的代码片断以及被调用代码片断; 以所述获取的发起所述调用指令的代码片断以及被调用代码片 断建立节点;
建立发起所述调用指令的代码片断以及被调用代码片断之间的 调用关系。
可选的, 所述获取调用指令包括:
对计算机运行时的机器码进行二进制翻译以获取调用指令。 可选的,所述获取发起所述调用指令的代码片断以及被调用代码 片断包括:
从调用参数中获取被调用代码片断的地址; 指令所在的代码片断为发起调用指令的代码片断。
与现有技术相比, 本发明具有以下优点:
本发明在计算机运行时, 以调用指令间的代码片断为节点, 以发 起调用指令的代码片断和被调用代码片断之间的调用关系为调用路 径建立数据结构。通过该数据结构就可以知道一个调用指令由谁发起 (发起者 ) , 向谁发起 (调用目标), 从而也就可以知道计算机的运 行状态。
本发明还提供一种利用以上所述的数据结构描述计算机运行状 态的方法, 包括:
在某一调用指令被执行时,用该某一调用指令之前的所有节点和 调用路径组成的数据结构描述该某一调用指令被执行时的计算机的 运行状态。
可选的, 还包括:
在某一调用指令被执行时,获取该某一调用指令之前的所有节点 和调用路径组成的数据结构。
与现有技术相比, 本发明具有以下优点:
根据以上建立的数据结构, 当某一调用指令被执行时, 如果想获 知此时计算机的运行状态,则可以用该某一调用指令之前的所有节点 和调用路径组成的数据结构来描述计算机的运行状态,从而也就可以 知道某一时刻计算机的运行状态。 这样就可以根据计算机的运行状 态, 评估计算机的运行效率, 评估计算机的运行效率, 根据计算机运 行效率的评估结果调整计算机的运行效率,从而可以提高计算机的运 行效率; 而且可以整体监控计算机的运行状态, 有利于对软硬件进行 评估。
本发明还提供一种利用以上所述的数据结构描述计算机运行状 态迁移的方法, 包括:
在当前调用指令被执行时,用当前调用指令之前的所有节点和调 用路径组成的数据结构描述当前计算机运行状态;
以当前调用指令被调用的代码片断为节点、以调用指令建立的发 起当前调用指令的代码片断和被调用代码片断之间的调用关系建立 新的调用路径, 该新的节点、新的调用路径与当前计算机运行状态所 有节点、 调用路径所构成的数据结构为下一计算机运行状态;
用所述产生新的节点以及新的调用路径的过程描述当前计算机 运行状态向下一计算机运行状态的迁移。
可选的, 还包括:
在当前调用指令被执行时,获取当前调用指令之前的所有节点和 调用路径组成的数据结构。
可选的, 以当前调用指令被调用的代码片断为新的节点、 以调用 指令建立的发起当前调用指令的代码片断和被调用代码片断之间的 调用关系为新的调用路径包括:
获取当前调用指令;
获取当前调用指令的被调用代码片断;
以当前调用指令的被调用代码片断为节点建立新的节点; 建立发起所述调用指令的代码片断以及被调用代码片断之间的 调用关系;
以所述建立的调用关系建立新的调用路径。
可选的, 所述获取当前调用指令包括:
对计算机运行的机器码进行二进制翻译以获取当前调用指令。 可选的, 所述获取当前调用指令的被调用代码片断包括: 从调用参数中获取当前调用指令的被调用代码片断的地址; 基于所述当前调用指令的被调用代码片断的地址获取当前调用 指令的被调用代码片断。
与现有技术相比, 本发明具有以下优点:
通过本发明的描述计算机运行状态迁移的方法,可以知道计算机 如何从当前运行状态向下一运行状态迁移, 也就是说, 可以知道计算 机的当前运行状态与下一运行状态的关联。在知道计算机运行状态迁 移的基础上可以评估计算机的运行效率, 调整计算机的运行效率, 从 而可以提高计算机的运行效率; 而且可以整体监控计算机的运行状 态, 有利于对软硬件进行评估。
附图说明
图 1 是本发明具体实施方式的建立描述计算机代码执行过程的 数据结构的方法的流程图; 图 2是本发明具体实施例的代码片断调用关系示意图; 图 3为本发明具体实施例中建立的数据结构的示意图。
具体实施方式 本发明的建立描述计算机代码执行过程的数据结构的方法,在计 算机运行时, 以调用指令所在的代码片断为节点, 以发起该调用指令 的代码片断和被调用代码片断之间的调用关系为调用路径建立数据 结构; 该数据结构包括各个节点, 以及各个调用节点和被调用节点之 间的调用路径。 这样就可以知道一个调用指令由谁发起(发起者) , 向谁发起(调用目标) 。 为了使本领域的技术人员可以更好的理解本发明的精神,下面结 合附图以及具体实施例详细说明本发明的建立描述计算机代码执行 过程的数据结构的方法。 计算机通过执行代码以及功能函数之间的调用实现一定的功能, 其中顺序执行的一段代码定义为一代码片断,在顺序执行完一代码片 断后, 通过调用指令跳转执行下一代码片断, 基于此原理, 本发明建 立描述计算机代码执行过程的数据结构。 本发明的建立描述计算机代码执行过程的数据结构的方法,在计 算机运行时, 以调用指令所在的代码片断为节点, 以调用指令建立的 发起调用指令的代码片断和被调用代码片断之间的调用关系为调用 路径建立数据结构; 该数据结构包括各个节点, 以及各个调用节点和 被调用节点之间的调用路径。 其中, 调用节点是指以发起调用指令的 代码片断建立的节点,被调用节点是指以调用指令所要调用的代码片 断(即被调用代码片断)建立的节点, 也就是说, 在建立顺序相邻的 两个节点中, 调用节点是指先建立的节点, 被调用节点指后建立的节 点。
图 1 为本发明具体实施方式的建立描述计算机代码执行过程的 数据结构的方法的流程图, 参考图 1 , 本发明具体实施方式的建立描 述计算机代码执行过程的数据结构的方法包括:
步骤 S1 , 获取调用指令;
步骤 S2, 获取发起所述调用指令的代码片断以及被调用代码片 断;
步骤 S3 , 以所述获取的发起所述调用指令的代码片断以及被调 用代码片断建立节点;
步骤 S4, 建立发起所述调用指令的代码片断以及被调用代码片 断之间的调用关系,以所述建立的调用关系为调用节点和被调用节点 之间的调用路径。
下面详述本发明具体实施例, 步骤 S1 , 获取调用指令: 调用指 令将计算机代码划分为多个代码片断,每一代码片断为一段顺序执行 的代码, 每一代码片断的最后一行代码为调用指令。 在本发明的该具 体实施例中调用指令为汇编指令, 而计算机运行的代码均为机器码, 本发明具体实施例中所述获取调用指令包括:对计算机运行时的机器 码进行二进制翻译以获取调用指令。 具体为: 通过将计算机运行时的 机器码进行二进制翻译, 将机器码翻译为汇编语言, 此过程为反汇编 过程, 得到反汇编后的汇编语言后, 获取汇编语言中的调用指令。
图 2为本发明具体实施例的代码片断调用关系示意图,参考图 2, 图 2示出了多个代码片断, 分别为由 Al~An行代码组成的代码片断 11、 由 Bl~Bn行代码组成的代码片断 12、 由 Cl~Cn行代码组成的代 码片断 13 , 由 Μ 1 ~Μη行代码组成的代码片断 21 , 由 LI ~Ln行代码 组成的代码片断 31 , 其中, An行代码、 Bn行代码、 Cn行代码、 Mn 行代码、 Ln行代码均为调用指令, 通过 An行代码、 Bn行代码、 Cn 行代码、 Mn行代码、 Ln行代码将图 2所示的计算机代码分成了多个 代码片断, 即代码片断 11、代码片断 12、代码片断 13、代码片断 21、 代码片断 31。 在图 2所示的本发明的该具体实施例中, 计算机执行 完代码片断 11后, 通过 An行代码调用代码片断 21 , 代码片断 21执 行完后, 通过 Mn行代码调用代码片断 31 , 代码片断 31执行完后, 通过 Ln行代码调用代码片断 12, 代码片断 12执行完后, 通过 Bn行 代码调用代码片断 13。 图中只是示意性的给出了几个代码片断的示 例, 起到可以使本领域技术人员可以更好的理解本发明的作用。
在本发明的具体实施例中, An行代码、 Bn行代码、 Cn行代码、 Mn行代码、 Ln行代码为机器码, 对其进行二进制翻译获取汇编语言 调用指令。
执行步骤 S2, 获取发起所述调用指令的代码片断以及被调用代 码片断。 仍以图 2为例进行说明, 在执行完步骤 S1 , 获取调用指令 后, 获取的调用指令将计算机代码划分为多个代码片断, 分别为, 代 码片断 11、 代码片断 12、 代码片断 13、 代码片断 21、 代码片断 31。 举例来说, 如果步骤 S1 中获取的调用指令为 An行代码表示的调用 指令, 则在步骤 S2中获取发起该调用指令的代码片断 11 , 被调用的 代码片断 21。 如果步骤 S1中获取的调用指令为 Mn行代码表示的调 用指令, 则在步骤 S2中获取发起该调用指令的代码片断 21 , 被调用 的代码片断 31。
执行步骤 S3 , 以所述获取的发起所述调用指令的代码片断以及 被调用代码片断建立节点。 结合图 2和图 3进行说明, 以代码片断 11建立节点 P11 ; 然后, An行代码表示的调用指令调用代码片断 21 , 以代码片断 21建立节点 P21 ; 然后, Mn行代码表示的调用指令调用 代码片断 31 , 以代码片断 31建立节点 P31 ; 然后, Ln行代码表示的 调用指令调用代码片断 12, 以代码片断 12建立节点 P12; 接着, Bn 行代码表示的调用指令调用代码片断 13 , 以代码片断 13 建立节点 P13。
步骤 S4, 建立发起所述调用指令的代码片断以及被调用代码片 断之间的调用关系,以所述建立的调用关系为调用节点和被调用节点 之间的调用路径。 仍以图 2所示为例, 结合图 3进行说明, 以代码片 断 11 ( An行代码对应的调用指令的发起者 )对代码片断 21 ( An行 代码对应的调用指令的调用目标、 Mn行代码对应的调用指令的发起 者)的调用关系建立代码片断 11的节点和代码片断 21的节点之间的 调用路径 T1 , 以代码片断 21对代码片断 31的调用关系建立代码片 断 21的节点和代码片断 31的节点之间的调用路径 T2, 以代码片断 31对代码片断 12的调用关系建立代码片断 31的节点和代码片断 12 的节点之间的调用路径 T3 , 以代码片断 12对代码片断 13的调用关 系建立代码片断 13的节点和代码片断 13的节点之间的调用路径 T4, 从而可以建立从根节点到当前节点的所有节点之间的调用路径。
基于这样一种方式, 每执行一段代码片断, 即每执行一个调用指 令, 即以发起该调用指令的代码片断建立节点, 从而可以建立从根节 点到当前节点的所有节点,调用节点和被调用节点之间通过建立的调 用路径连接, 其中, 根节点指当前节点的最初发起者, 也就是当前节 点的源头, 即, 根节点通过一系列的调用路径、 经过调用路径中的若 干个节点, 从而可以迁移到当前节点。 在图 2所示的例子中, 将代码 片断 13作为当前代码片断, 代码片断 13的 Cn行代码表示的调用指 令为当前调用指令; 代码片断 11为当前调用指令的最初发起者, 则 以代码片断 11为根节点, 代码片断 13为当前节点, 代码片断 21、 代码片断 31、 代码片断 12为根节点与当前节点之间的节点, 结合参 考图 3, 即节点 P11为根节点,节点 P13为当前节点,节点 P21、 P31、 P12为根节点与当前节点之间的节点。
需要说明的是,本发明的建立描述计算机代码执行过程的数据结 构的方法, 是一个动态过程, 每获取一个调用指令, 即获取发起该调 用指令的代码片断以及被调用代码片断,然后以获取的发起调用指令 的代码片断以及被调用代码片断建立节点,并以发起调用指令的代码 片断以及被调用代码片断之间的调用关系建立调用节点和被调用节 点之间的调用路径。这样就可以建立一个连续的描述计算机代码执行 过程的数据结构。
现有的计算机为堆栈型, 其中, 栈区由编译器自动分配释放, 存 放调用指令的调用参数,该调用参数包括调用指令所调用的下一代码 片断(即被调用代码片断 )的地址, 下一代码片断的操作方法和操作 内容, 操作方法即如何完成一个操作, 操作内容即操作对应的对象, 以下一代码片断为删除一个文件为例, 操作方法即为删除, 操作内容 即文件。
其中,所述获取发起所述调用指令的代码片断以及被调用代码片 断包括: 从调用参数中获取被调用代码片断的地址, 如被调用代码片 断的第一行代码的地址, 以图 2为例, 如果被调用的代码片断为代码 片断 21 ,则获取的被调用代码片断的地址为 Ml行代码的地址,也就 是代码片断 21的第一行代码的地址; 基于所述被调用代码片断的地 址获取被调用代码片断,所述调用指令所在的代码片断为发起调用指 令的代码片断。
基于以上所述的方法建立的计算机代码执行过程的数据结构,本 发明还提供了一种描述计算机运行状态的方法,在某一调用指令被执 行时,用该某一调用指令之前的所有节点和调用路径组成的数据结构 描述该某一调用指令被执行时的计算机的运行状态。 具体为, 在某一 调用指令被执行时,获取该某一调用指令之前的所有节点和调用路径 组成的数据结构。 当我们想知道计算机的当前运行状态时, 可以用当 前调用指令之前的所有节点和调用路径组成的数据结构描述当前的 计算机运行状态。 这样描述当前计算机运行状态, 计算机的运行状态 不再是一个孤立的当前时刻的运行状态,而是包含之前时间段的运行 信息的一个关联的运行状态。 仍以图 2所示的具体实施例为例, 结合 图 3进行说明,如果在 Bn行代码表示的调用指令被执行时,则此时, 计算机的运行状态为包括代码片断 11表示的节点 Pll、 代码片断 21 表示的节点 P21、 代码片断 31表示的节点 P31、 代码片断 12表示的 节点 P12、 代码片断 11对代码片断 21的调用路径 T1 (即节点 P11 和节点 P21之间的调用路径 T1 )、代码片断 21对代码片断 31的调用 路径 T2 (即节点 P21和节点 P31之间的调用路径 T2 )、 代码片断 31 对代码片断 12的调用路径 T3 (即节点 P31和节点 P12之间的调用路 径 T3 ) 的数据结构, 从图 3表示的数据结构中说明, 即为包括节点 Pll、 P21、 P31、 P12以及各个节点之间的调用路径 Tl、 Τ2、 Τ3的 数据结构, 该数据结构描述了 Bn行代码表示的调用指令被执行时的 计算机的运行状态。 在知道了计算机的运行状态后, 就可以根据计算机的运行状态, 评估计算机的运行效率,根据计算机运行效率的评估结果调整计算机 的运行效率, 从而可以提高计算机的运行效率; 而且可以整体监控计 算机的运行状态, 有利于对软硬件进行评估。
本发明基于以上所述的方法建立的数据结构,还提供了一种描述 计算机运行状态迁移的方法, 其中, 迁移一词在本发明中指计算机由 一个运行状态向下一个运行状态的转变。
本发明具体实施方式的描述计算机运行状态迁移的方法, 包括: 步骤 S11 , 在当前调用指令被执行时, 用当前调用指令之前的所 有节点和调用路径组成的数据结构描述当前计算机运行状态;
步骤 S12, 以当前调用指令被调用的代码片断为新的节点、 以调 用指令建立的发起当前调用指令的代码片断和被调用代码片断之间 的调用关系为新的调用路径, 该新的节点、新的调用路径与当前计算 机运行状态所有节点、调用路径所构成的数据结构为下一计算机运行 状态;
用所述建立新的节点以及新的调用路径的过程描述当前计算机 运行状态向下一计算机运行状态的迁移, 也就是说, 步骤 S2中建立 新的节点以及新的调用路径的过程即为由当前计算机运行状态向下 一计算机运行状态的迁移。
在实际应用中, 我们非常关心计算机运行状态的迁移, 即计算机 运行状态从一个运行状态转变为下一个运行状态的过程,因此本发明 中, 基于以上建立的数据结构, 描述计算机运行状态的迁移。 在本发 明中, 根据以上建立的数据结构, 执行步骤 S11 , 用当前调用指令之 前的所有节点和调用路径组成的数据结构描述当前计算机运行状态, 具体为, 在当前调用指令被执行时, 获取当前调用指令之前的所有节 点和调用路径组成的数据结构,用该数据结构描述当前计算机的运行 状态。 这样描述当前计算机运行状态, 计算机的运行状态不再是一个 孤立的当前时刻的运行状态,而是包含之前时间段的运行信息的一个 关联的运行状态。
当计算机由当前运行状态向下一运行状态运行时,即通过当前的 调用指令调用下一代码片断,基于此原理可以描述计算机由当前运行 状态向下一运行状态的迁移。 执行步骤 S12, 以当前调用指令被调用 的代码片断为新的节点、以调用指令建立的发起当前调用指令的代码 片断和被调用代码片断之间的调用关系为新的调用路径, 该新的节 点、新的调用路径与当前计算机运行状态所有节点、调用路径所构成 的数据结构为下一计算机运行状态。
在本发明具体实施例中, 所述建立新的节点和新的调用路径包 括: 获取当前调用指令; 获取当前调用指令的被调用代码片断; 以当 前调用指令的被调用代码片断为新的节点;建立发起所述调用指令的 代码片断以及被调用代码片断之间的调用关系;以所述建立的调用关 系建立新的调用路径。
在本发明的具体实施例中, 获取当前调用指令包括: 对计算机运 行的机器码进行二进制翻译以获取当前调用指令。所述获取当前调用 指令的被调用代码片断包括:从调用参数中获取当前调用指令的被调 用代码片断的地址, 也就是被调用代码片断的第一行代码的地址; 基 于所述当前调用指令的被调用代码片断的地址获取当前调用指令的 被调用代码片断。
需要说明的是, 本发明的描述计算机运行状态迁移方法中, 获取 当前调用指令, 以及建立新的调用路径和新的节点的具体步骤, 可以 参见建立数据结构的发明中的详细描述, 本领域技术人员根据其教 导,可以获知如何获取当前调用指令的获取以及建立新的调用路径和 新的节点。
下面结合图 2和图 3说明一个实例, 如果当前调用指令为 Bn行 代码表示的调用指令, 则当前计算机运行状态为包括代码片断 11表 示的节点 Pll、 代码片断 21表示的节点 P21、 代码片断 31表示的节 点 P31、 代码片断 12表示的节点 P12、 代码片断 11对代码片断 21 的调用路径 T1 (即节点 P11和节点 P21之间的调用路径 T1 )、 代码 片断 21对代码片断 31的调用路径 T2 (即节点 P21和节点 P31之间 的调用路径 T2 )、 代码片断 31对代码片断 12的调用路径 T3 (即节 点 P31和节点 P12之间的调用路径 T3 ) 的数据结构, 从图 3表示的 数据结构中说明, 即为包括节点 Pll、 P21、 P31、 P12以及各个节点 之间的调用路径 Tl、 Τ2、 Τ3的数据结构, 该数据结构描述了当前计 算机的运行状态。
在 Bn行代码表示的调用指令调用代码片断 13时, 以代码片断 13为新的节点 P13 ,以 Bn行代码表示的调用指令建立的代码片断 12 对代码片断 13的调用关系建立新的调用路径 T4, 节点 P13、 调用路 径 P14与节点 Pll、 P21、 P31、 P12以及各个节点之间的调用路径 Tl、 Τ2、 Τ3共同构成了下一计算机运行状态。 其中, 形成新节点 P13和 新调用路径 Τ4的过程为计算机系统由当前计算机运行状态向下一计 算机运行状态的迁移。
通过本发明的描述计算机运行状态迁移的方法,就可以获知计算 机如何由一个运行状态向下一个运行状态迁移, 而且, 计算机的运行 是一个连续的过程, 这样基于本发明的方法, 在知道计算机运行状态 迁移的基础上可以评估计算机的运行效率, 调整计算机的运行效率, 从而可以提高计算机的运行效率;而且可以整体监控计算机的运行状 态, 有利于对软硬件进行评估; 而且根据建立的代码片断关联关系可 以进行代码关联性分析。
以上所述仅为本发明的具体实施例,为了使本领域技术人员更好 的理解本发明的精神,然而本发明的保护范围并不以该具体实施例的 具体描述为限定范围,任何本领域的技术人员在不脱离本发明精神的 范围内, 可以对本发明的具体实施例做修改, 而不脱离本发明的保护 范围。

Claims

权 利 要 求
1. 一种建立描述计算机代码执行过程的数据结构的方法, 其特征在 于, 包括:
在计算机运行时, 以调用指令所在的代码片断为节点, 以调用指 令建立的发起该调用指令的代码片断和被调用代码片断之间的调用 关系为调用路径建立数据结构; 该数据结构包括各个节点, 以及各个 调用节点和被调用节点之间的调用路径。
2. 如权利要求 1所述的建立描述计算机代码执行过程的数据结构的 方法, 其特征在于, 所述建立数据结构包括:
获取调用指令;
获取发起所述调用指令的代码片断以及被调用代码片断; 以所述获取的发起所述调用指令的代码片断以及被调用代码片 断建立节点;
建立发起所述调用指令的代码片断以及被调用代码片断之间的 调用关系。
3. 如权利要求 2所述的建立描述计算机代码执行过程的数据结构的 方法, 其特征在于, 所述获取调用指令包括:
对计算机运行时的机器码进行二进制翻译以获取调用指令。
4. 如权利要求 2所述的建立描述计算机代码执行过程的数据结构的 方法, 其特征在于, 所述获取发起所述调用指令的代码片断以及被调 用代码片断包括:
从调用参数中获取被调用代码片断的地址; 指令所在的代码片断为发起调用指令的代码片断。
5. 一种利用权利要求 1~4任一项所述的数据结构描述计算机运行状 态的方法, 其特征在于,
在某一调用指令被执行时,用该某一调用指令之前的所有节点和 调用路径组成的数据结构描述该某一调用指令被执行时的计算机的 运行状态。
6. 如利用权利要求 5所述的描述计算机运行状态的方法, 其特征在 于, 还包括:
在某一调用指令被执行时,获取该某一调用指令之前的所有节点 和调用路径组成的数据结构。
7. 一种利用权利要求 1~4任一项所述的数据结构描述计算机运行状 态迁移的方法, 其特征在于,
在当前调用指令被执行时,用当前调用指令之前的所有节点和调 用路径组成的数据结构描述当前计算机运行状态;
以当前调用指令被调用的代码片断为新的节点、以调用指令建立 的发起当前调用指令的代码片断和被调用代码片断之间的调用关系 为新的调用路径, 该新的节点、新的调用路径与当前计算机运行状态 所有节点、 调用路径所构成的数据结构为下一计算机运行状态; 用所述产生新的节点以及新的调用路径的过程描述当前计算机 运行状态向下一计算机运行状态的迁移。
8. 如权利要求 7所述的描述计算机运行状态迁移的方法, 其特征在 于, 还包括:
在当前调用指令被执行时,获取当前调用指令之前的所有节点和 调用路径组成的数据结构。
9. 如权利要求 7所述的描述计算机运行状态迁移的方法, 其特征在 于, 以当前调用指令被调用的代码片断为新的节点、 以调用指令建立 的发起当前调用指令的代码片断和被调用代码片断之间的调用关系 为新的调用路径包括:
获取当前调用指令; 获取当前调用指令的被调用代码片断; 以当前调用指令的被调用代码片断为新的节点; 建立发起所述调用指令的代码片断以及被调用代码片断之间的 调用关系;
以所述建立的调用关系建立新的调用路径。
10. 如权利要求 9所述的描述计算机运行状态迁移的方法, 其特征在 于, 所述获取当前调用指令包括:
对计算机运行的机器码进行二进制翻译以获取当前调用指令。
11. 如权利要求 9所述的描述计算机运行状态迁移的方法, 其特征在 于, 所述获取当前调用指令的被调用代码片断包括: 从调用参数中获取当前调用指令的被调用代码片断的地址; 基于所述当前调用指令的被调用代码片断的地址获取当前调用 指令的被调用代码片断。
PCT/CN2010/077309 2010-09-26 2010-09-26 建立数据结构及描述计算机运行状态及其状态迁移的方法 WO2012037732A1 (zh)

Priority Applications (3)

Application Number Priority Date Filing Date Title
PCT/CN2010/077309 WO2012037732A1 (zh) 2010-09-26 2010-09-26 建立数据结构及描述计算机运行状态及其状态迁移的方法
CN201080067254.5A CN103080898B (zh) 2010-09-26 2010-09-26 建立数据结构及描述计算机运行状态及其状态迁移的方法
US13/814,150 US9519569B2 (en) 2010-09-26 2010-09-26 Method for constructing data structures and method for describing running states of computer and state transitions thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2010/077309 WO2012037732A1 (zh) 2010-09-26 2010-09-26 建立数据结构及描述计算机运行状态及其状态迁移的方法

Publications (1)

Publication Number Publication Date
WO2012037732A1 true WO2012037732A1 (zh) 2012-03-29

Family

ID=45873392

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2010/077309 WO2012037732A1 (zh) 2010-09-26 2010-09-26 建立数据结构及描述计算机运行状态及其状态迁移的方法

Country Status (3)

Country Link
US (1) US9519569B2 (zh)
CN (1) CN103080898B (zh)
WO (1) WO2012037732A1 (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012145916A1 (zh) 2011-04-29 2012-11-01 北京中天安泰信息科技有限公司 数据安全存储方法及装置

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1859359A (zh) * 2005-07-12 2006-11-08 上海华为技术有限公司 用抽象语法规则描述的通信协议的实现方法及其装置
CN101216803A (zh) * 2008-01-09 2008-07-09 四川大学 基于基路径的测试程序控制流路径集生成方法
CN101655782A (zh) * 2009-09-10 2010-02-24 浙江大学 基于基本块的汇编代码得出程序的数据流图的实现方法

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6226787B1 (en) * 1999-01-25 2001-05-01 Hewlett-Packard Company Visualization method and system for dynamically displaying operations of a program
US7389497B1 (en) * 2000-07-06 2008-06-17 International Business Machines Corporation Method and system for tracing profiling information using per thread metric variables with reused kernel threads
US8108839B2 (en) * 2006-11-30 2012-01-31 International Business Machines Corporation Method and apparatus for tracing execution of computer programming code using dynamic trace enablement
US8336033B2 (en) * 2007-03-30 2012-12-18 Sap Ag Method and system for generating a hierarchical tree representing stack traces
US8418148B2 (en) * 2009-02-27 2013-04-09 Microsoft Corporation Thread execution analyzer
US20100115494A1 (en) * 2008-11-03 2010-05-06 Gorton Jr Richard C System for dynamic program profiling
US8359584B2 (en) * 2009-12-18 2013-01-22 Microsoft Corporation Debugging from a call graph
US8473928B2 (en) * 2010-04-19 2013-06-25 Sap Ag Call graph simplification/comparison and automatic initial suspects finding of performance degradations

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1859359A (zh) * 2005-07-12 2006-11-08 上海华为技术有限公司 用抽象语法规则描述的通信协议的实现方法及其装置
CN101216803A (zh) * 2008-01-09 2008-07-09 四川大学 基于基路径的测试程序控制流路径集生成方法
CN101655782A (zh) * 2009-09-10 2010-02-24 浙江大学 基于基本块的汇编代码得出程序的数据流图的实现方法

Also Published As

Publication number Publication date
CN103080898A (zh) 2013-05-01
US20130174162A1 (en) 2013-07-04
CN103080898B (zh) 2015-07-08
US9519569B2 (en) 2016-12-13

Similar Documents

Publication Publication Date Title
US10911479B2 (en) Real-time mitigations for unfamiliar threat scenarios
US8898775B2 (en) Method and apparatus for detecting the malicious behavior of computer program
WO2019184164A1 (zh) 自动部署Kubernetes从节点的方法、装置、终端设备及可读存储介质
CN110784476A (zh) 一种基于虚拟化动态部署的电力监控主动防御方法及系统
WO2017041657A1 (zh) 一种应用接口管理方法和装置
US11368479B2 (en) Methods and apparatus to identify and report cloud-based security vulnerabilities
KR20060042149A (ko) 소프트웨어 취약성의 이용을 방지하기 위한 통신 필터링 방법 및 시스템
CN110445669A (zh) 一种基于协程的服务器的监控方法、设备及可读介质
CN104219316A (zh) 一种分布式系统中的调用请求处理方法及装置
JP2004199330A (ja) 情報処理装置、トレース処理方法、プログラム及び記録媒体
US20200044911A1 (en) Automatic generation of threat remediation steps by crowd sourcing security solutions
US9021008B1 (en) Managing targeted scripts
CN109543457B (zh) 管控智能合约之间调用的方法及装置
CN112632527B (zh) 一种用于服务开放平台的api测试方法及系统
US9330266B2 (en) Safe data storage method and device
CN107797859A (zh) 一种定时任务的调度方法及一种调度服务器
CN105765531A (zh) 对程序二进制文件的通用拆包
Yuan et al. Automated mining of software component interactions for self-adaptation
WO2012037732A1 (zh) 建立数据结构及描述计算机运行状态及其状态迁移的方法
Kodavali et al. Adaptation of Blockchain using Ethereum and IPFS for Fog based E-Healthcare activity recognition system
CN108874569A (zh) 事件响应及文件生成的方法、装置及电子设备
JP2005509318A5 (zh)
KR20160066291A (ko) 프로세스 행위 프로파일 생성 장치 및 방법
CN110889112A (zh) 一种基于白名单机制的软件运行统一控制系统及方法
US11922161B2 (en) Scheduling a pausable automated process in a computer network

Legal Events

Date Code Title Description
WWE Wipo information: entry into national phase

Ref document number: 201080067254.5

Country of ref document: CN

121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 10857446

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 13814150

Country of ref document: US

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 10857446

Country of ref document: EP

Kind code of ref document: A1