IP Library Granted Patent US 9,519,569
Granted Patent B2
US 9,519,569 · App. 13/814,150 · Granted Dec 13, 2016

Method for constructing data structures and method for describing running states of computer and state transitions thereof

Inventors: Jiaxiang Wang (Beijing, CN); Lidong Qu (Beijing, CN)
Assignee: Antaios (Beijing) Information Technology Co., Ltd.
G06F11/3636G06F9/30G06F11/3604
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 9,519,569
App. No.
13/814,150
Granted
Dec 13, 2016
Kind
B2
Abstract

A method for constructing data structures and a method for describing running states of a computer and state transitions thereof are provided. The method for constructing the data structure, which describes the execution processes of computer codes, includes: when the computer is running, constructs the data structure using the code segment wherein lies a calling instruction as a node and using the calling relationship between the code segment initiating the calling instruction and the called code segment, which are both constructed by the calling instruction, as a calling path. The data structure includes every node and the calling path between every calling and called nodes. When a certain calling instruction is executed, it is possible to describe the running state of the computer when the calling instruction is executed with the data structure consisting of all nodes and calling paths before the calling instruction by constructing the above data structure.

Claims (52)

1. A method for constructing a data structure for describing a current running state of a whole computer at a current time, the method comprising:

in response to a calling instruction being called, which is acquired after performing a disassembling process that translates machine codes into assembly codes, constructing, at a current time of execution of the calling instruction, the data structure for describing the current running state of the whole computer at the current time at least by:

using a code segment in which the calling instruction is located as a node;

using a calling relationship which is built by the calling instruction between a code segment initiating the calling instruction and a called code segment as a calling path when the computer is running; and

using one or more nodes and calling paths prior to the calling instruction as part of the data structure, wherein:

the code segment comprises a segment of codes executed sequentially by the computer, which jumps to the called code segment according to the calling instruction,

the code segment in which the calling instruction is located is referred to as a calling node,

the called code segment is referred to as a called node, and

the data structure comprises respective nodes and calling paths between respective calling nodes and respective called nodes;

each time a new calling instruction that is executed by the computer is acquired, the data structure is acquired, where the data structure comprises all nodes and corresponding calling paths prior to the new calling instruction, and dynamically update the data structure by:

acquiring an address of the new called code segment from calling parameters;

acquiring a code segment initiating the new calling instruction based on the address of the new called code segment and acquiring a called code segment called by the new calling instruction;

using the code segment initiating the new calling instruction as a new calling node;

using the called code segment called by the new calling instruction as a new called node;

establishing a new calling path between the new calling node and the new called node using a calling relationship between the code segment initiating the new calling instruction and the called code segment; and

adding the new calling node, the new called node, and the new calling path into the data structure so that the data structure is updated continuously in real time.

2. The method for constructing the data structure for describing the current running state of the whole computer at the current time according to claim 1 , wherein acquiring the calling instruction comprises:

performing binary translation on machine codes executed by the computer, so as to acquire the calling instruction.

3. A method for describing a current running state of a whole computer at a current time by using a data structure, the method comprising:

in response to a calling instruction being called, which is acquired after performing a disassembling process that translates machine codes into assembly codes, constructing, at a current time of execution of the calling instruction, the data structure for describing the current running state of the whole computer at the current time at least by:

using a code segment in which the calling instruction is located as a node;

using a calling relationship which is built by the calling instruction between a code segment initiating the calling instruction and a called code segment as a calling path when the computer is running; and

using one or more nodes and calling paths prior to the calling instruction as part of the data structure, wherein:

the code segment comprises a segment of codes executed sequentially by the computer, which jumps to the called code segment according to the calling instruction,

the code segment in which the calling instruction is located is referred to as a calling node,

the called code segment is referred to as a called node, and

the data structure comprises respective nodes and calling paths between respective calling nodes and respective called nodes;

each time a new calling instruction that is executed by the computer is acquired, the data structure is acquired, where the data structure comprises all nodes and corresponding calling paths prior to the new calling instruction, and the data structure is dynamically updated by:

acquiring an address of the new called code segment from calling parameters;

acquiring a code segment initiating the new calling instruction based on the address of the new called code segment and acquiring a called code segment called by the new calling instruction;

using the called code segment called by the new calling instruction as a new called node;

establishing a new calling path between the new calling node and the new called node is established using a calling relationship between the code segment initiating the new calling instruction and the called code segment; and

adding the new calling node, the new called node, and the new calling path into the data structure so that the data structure is updated continuously in real time.

4. The method for describing the current running state of the whole computer at the current time according to claim 3 , wherein acquiring the calling instruction comprises:

performing binary translation on machine codes executed by the computer, so as to acquire the calling instruction.

5. A method for describing a current running state transition of a whole computer at a current time by using a data structure, the method comprising:

in response to a calling instruction being called, which is acquired after performing a disassembling process that translates machine codes into assembly codes, constructing, at a current time of execution of a calling instruction, the data structure for describing the current running state of the whole computer at the current time at least by:

using a code segment in which the calling instruction is located as a node;

using a calling relationship which is built by the calling instruction between a code segment initiating the calling instruction and a called code segment as a calling path when the whole computer is running; and

using one or more nodes and calling paths prior to the calling instruction as part of the data structure, wherein:

the code segment comprises a segment of codes executed sequentially by the computer, which jumps to the called code segment according to the calling instruction,

the code segment in which the calling instruction is located is referred to as a calling node,

the called code segment is referred to as a called node, and

the data structure comprises respective nodes and calling paths between respective calling nodes and respective called nodes;

each time a new calling instruction that is executed by the computer is acquired, the data structure is acquired, where the data structure comprises all nodes and corresponding calling paths prior to the new calling instruction, and dynamically update the structure by:

acquiring an address of the new called code segment from calling parameters;

acquiring a code segment initiating the new calling instruction based on the address of the new called code segment and acquiring a called code segment called by the new calling instruction;

using the called code segment called by the new calling instruction as a new called node;

establishing a new calling path between the new calling node and the new called node using a calling relationship between the code segment initiating the new calling instruction and the called code segment; and

adding the new calling node, the new called node, and the new calling path into the data structure so that the data structure is updated continuously in real time.

6. The method for describing the current running state transition of the whole computer at the current time according to claim 5 , wherein acquiring the current calling instruction comprises:

performing binary translation on machine codes executed by the computer, so as to acquire the calling instruction.

Assignments (3)
CHANGE OF NAME Recorded Oct 28, 2015
From: BEIJING ANTAIOS INFORMATION TECHNOLOGY CO., LTD.
To: ANTAIOS (BEIJING) INFORMATION TECHNOLOGY CO., LTD.
Reel/Frame 036986/0251 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 19, 2015
From: BEIJING ZHONGTIAN ANTAI TECHNOLOGY CO., LTD.
To: BEIJING ANTAIOS INFORMATION TECHNOLOGY CO., LTD.
Reel/Frame 034781/0142 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 5, 2013
From: WANG, JIAXIANG; QU, LIDONG
To: BEIJING ZHONGTIAN ANTAI TECHNOLOGY CO., LTD.
Reel/Frame 029752/0059 →
Continuity (1)
Related Publication 20130174162A1 · Jul 4, 2013