CN105094825B - A kind of memory variable distribution dynamic discovery method - Google Patents

A kind of memory variable distribution dynamic discovery method Download PDF

Info

Publication number
CN105094825B
CN105094825B CN201510430225.5A CN201510430225A CN105094825B CN 105094825 B CN105094825 B CN 105094825B CN 201510430225 A CN201510430225 A CN 201510430225A CN 105094825 B CN105094825 B CN 105094825B
Authority
CN
China
Prior art keywords
memory
path
subprogram
memory block
instruction
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.)
Active
Application number
CN201510430225.5A
Other languages
Chinese (zh)
Other versions
CN105094825A (en
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.)
Institute of Information Engineering of CAS
Original Assignee
Institute of Information Engineering of CAS
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 Institute of Information Engineering of CAS filed Critical Institute of Information Engineering of CAS
Priority to CN201510430225.5A priority Critical patent/CN105094825B/en
Publication of CN105094825A publication Critical patent/CN105094825A/en
Application granted granted Critical
Publication of CN105094825B publication Critical patent/CN105094825B/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Devices For Executing Special Programs (AREA)

Abstract

The invention discloses a kind of memory variable distribution dynamics to find method.This method is:1) object statement is chosen from target software according to the instruction features of setting;2) input data for enabling to the target software that can reach the object statement is generated;3) target software executes the input data, obtains memory variable distribution when executing the object statement.The present invention can lack source code without analyzing all instructions, realize and speculate memory with certain relevant dynamic of instruction.

Description

A kind of memory variable distribution dynamic discovery method
Technical field
The invention mainly relates to a kind of software (executable file) variable analysis methods, are more specifically related to software analysis In in the case that lack source code dynamically speculate memory variable distribution method.
Background technology
Memory variable is analyzed, and is that software is analyzed, especially leak analysis, malice component part important in analyzing.In source In the presence of code, the variable in source code can be directly analyzed, to obtain memory variable distribution.But for lacking source The binary executable of code seems extremely difficult to the acquisition of its memory variable distribution.
Data structure reverse engineering is similar with memory distribution discovery.DIVINE is calculated by using value set analysis and pointer analysis Method restores variable entity, can identify in stack in 88% variable and heap 89% variable.But our method more lightweight. IDA Pro are distributed using a simple algorithm to derive memory, but can only be directed to limited mould for global variable and stack Formula (such as " [esp+offset] " or " [ebp.offset] ").There is no consideration local variables to pass through pointer, structure etc. in heap It accesses.Laika identifies potential pointer to estimate object's position and size in the picture, then similar by block type Sequence detects object.Reward types of identification parameter first when a known function (such as system calling) is called, Then, type information is transmitted during program Dynamic Execution.But it obtains starting type by type.If data Structure does not show that these data types would not be identified directly or indirectly in a well-known function.In fact, Internal variable and data structure occupies significant proportion in a program.Howard Dynamic Extraction data knots from binary code Structure.Compared with Howard, our method is a light weight method, without analyzing all instructions.In this way, we Method not only increases efficiency, and reduces the rate of false alarm in processing procedure.
The generation of invariant can analyze in program circuit the not variable of change value, to a certain extent with present patent application phase It closes.Daikon detects invariant from program process, tracks interested variable by being inserted into source program, then runs The program of insertion simultaneously inputs some test sets, and derives and be inserted into variable and the variable derived, these variables in source program all Do not occur.This method is used in multiple security fields, such as logic Hole Detection, behavior model generate.But these Method has some shortcomings:1) they come generating routine path using stochastic inputs, therefore coverage rate is not high.2) they need manual Point out the variable to be analyzed.3) their situational variables from path, and our method is sent out by analyzing binary system internal memory operation Existing possible memory distribution.WIT regards the instruction of internal memory operation collection as invariant and is inserted into code to prevent modification from not gathering In object.We use this method as mark instructions.
The above method has that the degree of automation is not high, analysis method is complicated, and the present invention is mainly to instruction execution mistake Journey is analyzed, and proposes that a kind of memory variable distribution dynamic finds method, solves lacking source code, is realized and certain instruction phase The dynamic of pass speculates memory.
Invention content
In view of the above-mentioned problems, it is an object of the invention to can be in the case where not needing source code, by target software Dynamic analysis, to find to be distributed discovery method with the relevant memory variable of certain program statement.Due to memory variable structure with The operation of program may change at any time, therefore it needs to be determined that certain program statement in dynamic analysis process, and observe journey Sequence goes to sentence moment memory variable distribution situation.Concrete analysis process is as follows:First, it needs to analyze in option program Object statement.Such as the sentence is loophole sentence that may be present or the required sensitive operation of malicious code.Secondly, Generate the input for enabling to program to reach the object statement.It is different since program operation process and external world's input are closely related Input calling program may be made to execute different paths.In order to make calling program reach target instruction target word, need structure specific Input.Third is executed with the specific input built when program, is analyzed the object statement being performed in program, in acquisition Deposit variant structural.Specific implementation flow is as follows:
1) memory is chosen according to object statement:Due to memory variable distribution as program operation changes at any time, we Only it is concerned about the memory variable distribution situation of sometime program, such as certain the program statement time of running.This is leaked in software security There is significant application value in hole detection, Malicious Code Detection.Such as we can focus on when detecting buffer-overflow vulnerability The associated internal memory variable distribution situation for the test point position operation that latent fault instruction occurs.
2) it is generated to the path of object statement:When we obtain candidate object statement position (i.e. test point position), I Generate a path and reach this position, then analyze the memory variable distribution situation that program goes to this position moment. First, a static path from initial order sentence position to object statement position is generated, then along this static path Program is dynamically run, and records reliable this of institute and inputs relevant constraints.By solving these constraints, we can be with Obtain suitable input so that program runs to target location.
3) memory variable distribution derives:When the input that step 2) obtains enters program, we, which observe instruction in a program, is How to be operated on memory, then generates the relevant memory variable distributed intelligence of target instruction target word.For example, if target is that identification is slow Area's Overflow Vulnerability is rushed, we just need identification buffering area boundary, i.e. buffering area and its neighbours first.We use two-stage process Infer memory variable distribution.First, the memory block m write in test point is identified.In this way, we need not analyze often Item instructs, it is only necessary to find the instruction of operation memory block m.Then, possible memory variable distribution is derived in our these instructions, suddenly The instruction not operated on m slightly.
Compared with prior art, the positive effect of the present invention is:
High degree of automation of the present invention can analyze the memory variable in heap and stack, belong to a kind of light weight method simultaneously, Without analyzing all instructions, source code can lacked, realize and speculate memory with certain relevant dynamic of instruction.
Description of the drawings
Fig. 1 is basic framework figure;
Fig. 2 is the memory distribution situation of code in illustrating 1;
Fig. 3 is possible memory distribution in citing 1.
Specific implementation mode
We analyze an example first, illustrate memory variable distribution identification.
Citing 1:We have following binary code, we analyze it.
By analysis it is found that since sizein will move out more than 0x100 programs, but when sizein is equal to 0x100, follow B [0x100] will obtain user's input in ring.Fig. 2 is respective code in citing 1 in Microsoft Visual Studio 2005 Distribution situation in run-time memory, and the actual spaces b are from b [0] to b [0x99], at this point, buffer overflow, if adjacent Memory is significant field, such as size, and then 13 rows in back citing 1, apply for memory again according to this size, so that it may to divide Buffering area with arbitrary size, malicious user can bring very big security threat with code implant to user.
Therefore, a kind of method that Dynamic Discovery memory distribution carries out Hole Detection as shown in Figure 1 includes mainly three parts:It is interior Deposit selection, path generates and memory variable distribution derives.The method of the present invention can choose institute in the case where lacking source code The test point position that the false command of concern occurs operates associated internal memory, then generates a path that can reach this position Input is eventually found an input and reaches the test point, obtains associated internal memory variable distribution situation.Detailed process is as follows:
1) memory is chosen.We need to choose suitable part from entire memory block.Different types of loophole may have Different instruction features.The position of false command is referred to as test position (check position) in binary code.Cause This, we focus on the internal memory operation at check positions.Such as check position can arbitrarily choose one can The instruction of loophole can be caused, such as recycle internal assignment directive.
2) path generates.In order to generate one from program initial order (writing Is) to the road of target instruction target word (writing Ie) Diameter, we generate a static path from Is to Ie first.Then along static path dynamic operation program, and record foundation Institute's Prescribed Properties of input data.By solving these constraints, we can obtain suitable input data, directly allow program Run to Ie.One routine call path P is made of multiple and different subprogram Pi, we generate a routine call path P, it Subprogram Pe where the subprogram Ps to target instruction target word where initial order.Assuming that Is, in program Ps, Ie is in program Pe In.It is contemplated that generating static path using two-stage process:A the routine call path P from Ps to Pe) is generated;B) in P The node Pi and Pj that each two is closed on generate individual path Bij.If Is and Ie are in identical program (such as Ps=Pe), we Step A is can be omitted, individual path is generated using only step B.
A) routine call path generates
Assuming that there are two subprogram Ps and Pe (Ps ≠ Pe).Our target is that generating routine calls path in Ps and Pe P.We generate one by the instruction calls analyzed in target program first and directly invoke figure Gc.Specific generation method is as follows: It will be adjusted using the subprogram including program entry as first node if the subprogram includes call instruction (call instruction) The subprogram used is added as node from first node to the side of the node;Later, to the two subprograms after Continuous analysis, until the entire calling figure for generating this program.Notice that recursive call can make Gc recycle.We exclude those Side in Gc backward.Then we can directly be by calling figure approachability analysis from Ps to Pe:All nodes in scanning figure And side, a routine call path P can be generated with the path of unicom Ps and Pe by finding.It is indirect to call so that result is imperfect. The purpose of indirect calling mainly determines by hardware and software environment, the feature of program language, such as virtual function and input data. Dynamic analysis obtain the destination address that most of brief introduction is called by using seed input, including first two type and the third A part of destination address of type.We analyze the indirect calling destination address in program using seed input.Although this is It is incomplete, but we can use and more enter data to optimum results.
B) individual path generates
Assuming that Ii and Ij are two instructions in identical subprogram.In order to find an individual path B from Ii to Ij, we It should find a command path I from Ii to Ij first.We generate a controlling stream graph Gf according to subprogram where Ii and Ij, The path backward recycled in exclusion figure.Each node is an instruction in controlling stream graph Gf, and each edge is the stream between instruction To relationship.If such as instruction a has a side from a to b followed by b;If a instructions are jump instructions, and jump to c, then have One side from a to c.We still obtain I with direct figure approachability analysis.Pay attention to redirecting indirectly and can so that result is endless It is whole, somewhat similar indirect calling.We solve the problems, such as this using the above method.Individual path B is the son of command path I Collection.We only keep the individual path in I to generate B.In fact, being not that all branch nodes are all necessary in B.We Remove two branches for reaching Ij in branch node.By this mode, we obtain the individual path B between Ii and Ij.
3) memory variable distribution derives.When one input enter program, we observe in a program instruction be how including Operation is deposited, then generates and instructs relevant memory variable distributed intelligence.In order to effectively derive that memory variable is distributed Situation, we first define some rules, these rules are mainly used for identifying different internal storage locations, are then advised according to these Then, we can optimize, and derived using two-stage process and obtain corresponding memory variable distribution situation.
A) primitive rule
When an input enters program, we observe the operation instructed in program in memory.Then we refer to from these It enables and generates corresponding memory distribution.
Table 1 shows the rule of internal memory operation.When a new memory block M is assigned, we specify an attribute CM to arrive Its property set (being labeled as ε (M)).CM refers to essential attribute, its value is equal to the memory address of M.If a memory block does not have It is assigned, just without the attribute.Memory Allocation operation includes Heap Allocation function (such as ' HeapAlloc ') and stack partition function.Stack Partition function is implicit, because a function call can distribute one piece of memory in stack.Involved in this method to memory block and Memory segment.One memory segment is one section of continuous memory block, by ' HeapAllocI indicates the memory address of instruction I.
Table 1 internal memory operation rule
Internal memory operation Respective rule
Memory Allocation ε(M)←{CM}
Memory discharges ε(M)←Ф
It reads ε(M)←{AddrI}
It writes (cycle is outer) ε(M)←{AddrI}
It writes (in cycle) ε(M)←{CM}
When this block memory is released, we also remove its attribute.Heap release function is the stack as ' HeapFree ' Release function is also implicit, as function returns.When one piece of memory is write (bad outer following) or is read, we allocate it a category Property.This attribute should be able to distinguish the different region of memory operated in block.In we realize, we are to instruction distribution one Block address operates on memory.By this mode, we easily dependence can know which instruction is in reading or writing It deposits.
When memory is that one in being recycled instruction carries out write operation, we will remove its other than its essential attribute CM His memory attribute.In this way, this memory segment can be connected with adjacent memory.This rule helps us to find Memory slice section boundary.If read operation in the circulating cycle, we do not remove memory attribute.Because a program is usually swept Memory is retouched for searching for or checking, memory distribution may be obscured.
B) two-stage process derives memory variable distributional assumption we is only concerned about some memory block m, then during actual analysis, It is unnecessary that all memory blocks are analyzed, to improve efficiency.At this point, we derived using two-stage process it is possible Memory is distributed.
First, we identify memory block m, and memory block m is the instruction write-in by test point position.Pass through this side Formula, according to the principle of optimality, we need not analyze each instruction.In program operation process, we record all storage allocations The instruction of block.When we identify that m is our the required memory blocks analyzed, it is only necessary to the record before inquiring, so that it may with Find the instruction of storage allocation block m.
Second step, we start with from the instruction of storage allocation block m derives possible memory distribution.We, which ignore those, does not have The instruction on m is operated, to improve efficiency.In pervious work, as a whole by m, and the structure inside m is not differentiated between. Therefore only decision instruction on the boundaries m is read or write, and having ignored may leak caused by the covering write operation in m memory segments Hole.We have found that the possible memories of m are distributed and execute fine granularity method to detect relevant vulnerability.
We carry out the identification of memory variable distribution using the rule in table 1, specifically:
In above-mentioned code, we mark the memory of memory block m to be distributed using shadow EMS memory ShM.When the one of memory block m A memory block is assigned, we mark entire block using memory block m initial addresses.When memory block is released, we are by memory The label of block is set as 0.When one section of memory (such as p) is commanded I to write or read, itself and other memory segments should be carried out area by us Point.To put it more simply, we use the address of I as attribute.In this way, we are also known which instruction reads or writes p.Instruction I in a memory segment is recycled writes, we mark ShM using the initial address in storage allocation space.It is logical This mode is crossed, this section of memory segment can be attached with adjacent memory to form a buffering area.This rule helps me Find the boundary of buffering area.Read operation for the memory in cycle, we need not empty its attribute, because of a program Often scanning memory is used for searching or detecting.
Using the rule in table 1, we can obtain memory distribution such as Fig. 3, and left-hand component is memory address.Value on block It is the final injunction in internal memory operation.In this way, memory is divided into several segments by us.Scheming hollow block will not be by Any operation reads or writes.Have in block ' ... ' indicate attribute as in neighbouring memory block.From Fig. 3, it has been found that generation Possible memory layout and real memory layout in Fig. 1 are essentially identical.Operation on memory is more, possible memory Layout is finer.
Specifically, corresponding dis-assembling code is as follows in citing 1, we operate relevant code by display memory.
004017F0 push ebp //esp=0x12ff30
00401800 mov dword ptr[ebp-0Ch],eax
00401803 mov dword ptr[ebp-8],4017E0h
0040180A mov eax,dword ptr[ebp+8]
0040180D mov dword ptr[ebp-514h],eax
00401813 mov dword ptr[ebp-4],0
0040181A mov dword ptr[ebp-61Ch],0
00401826 mov ecx,dword ptr[ebp-61Ch]
0040182F mov dword ptr[ebp-61Ch],ecx
00401835 mov edx,dword ptr[ebp-61Ch]
0040183B cmp edx,dword ptr[ebp+8]
00401846 mov ecx,dword ptr[ebp-61Ch]
0040184C mov byte ptr[ebp+ecx-618h],al
Test point is arranged in we at 0X40184C, then uses table 1, operational objective application program, until first finger It enables outer in cycle.Finally, it is memory address to obtain possible memory distribution such as Fig. 3 left-hand components.The value of right-hand component is operation The last one is instructed in memory.In this way, memory block is divided into multiple segments by us.Some memory segments are empty (the memory segment between such as 0x12F91D and 0x12FA18), it is shown that they all or are not write by any instruction.It is filled out in space As ' ... ' show attribute with abut memory it is fast in attribute it is identical.Although our addresses from 0x12F914 to 12F91D in the example shown ' 0x40184C ' is collectively labeled as in space, ' writing (in cycle) ' rule by table 1 is removed it by us.In this way, This section of memory block will be identical as the attribute in the memory between 0x12F91E to 0x12FA17.This also helps us to refine memory point Cloth.From Fig. 3, it has been found that the possible memory distribution of generation is almost the same with true memory distribution in Fig. 1.Inside Operation in depositing is more, and possible memory distribution is finer.
In conclusion the present invention proposes that a kind of memory variable distribution dynamic finds method.This method is not needing source code In the case of, by target software dynamic analysis, to find and the relevant memory variable distribution situation of certain program statement.It should Method chooses object statement in program first, these sentences be loophole exist or malicious code needed for sensitive operation;Then, raw At the input that can reach object statement;Finally, by the analysis to executing sentence in program, memory variable structure is obtained.

Claims (8)

1. a kind of memory variable distribution dynamic finds that method, step are:
1) object statement is chosen from target software according to the instruction features of setting;
2) input data for enabling to the target software that can reach the object statement is generated;Wherein, the input number is generated According to method be:A static path from target software initial order sentence position to the object statement position is generated first, Then along the static path dynamic operation target software, and institute's Prescribed Properties according to input data are recorded, then solves this A little constraintss obtain the input data;
3) target software executes the input data, obtains memory variable distribution when executing the object statement;Wherein, institute is obtained Stating the method that memory variable is distributed is:When the target software executes an input data, all storage allocation blocks are recorded first Instruction, identify memory block m to be analyzed;Memory block m is by the memory of the instruction write-in of the object statement position;Then Possible memory distribution is derived from dependent instructions of the storage allocation block m with operation memory block m.
2. the method as described in claim 1, which is characterized in that the generation method of the static path is:It first determines whether to originate Instruct whether Is and object statement Ie is located in identical subprogram, if it is, directly being generated in subprogram where Is and Ie Individual path Bse;Otherwise the program tune from subprogram Pe where subprogram Ps to object statement Ie where initial order Is is generated Use path P;Then individual path Bse is generated in calling path P, obtains several static paths.
3. method as claimed in claim 2, which is characterized in that according to static path length, since most short static path according to It is secondary to choose the static path operational objective software, and institute's Prescribed Properties according to input data are recorded, then solve these Constraints obtains the input data.
4. method as claimed in claim 2, which is characterized in that generating the method for calling path P is:By the target software The subprogram of entrance is as first node, if the subprogram includes call instruction, using called subprogram as node, adds Add from first node to the side of the node;Then the rest may be inferred until the entire calling figure Gc for generating the target software; Wherein, side backward is excluded in calling figure Gc generating process;Then being found according to calling figure Gc can be with unicom subprogram Ps and Pe Path, generate the calling path P.
5. method as claimed in claim 2, which is characterized in that generate individual path Bse's in subprogram where Is and Ie Method is:Subprogram generates a controlling stream graph Gf where being first depending on Is and Ie;Then according to controlling stream graph Gf by the sub- journey The command path that Is and Ie two is instructed in sequence is saved in a command path I, is then obtained between Is and Ie according to command path I Individual path Bse.
6. method as claimed in claim 2, which is characterized in that middle between subprogram Ps and Pe to generate individual path Bse's Method is:It is first depending on subprogram Ps and Pe generation and directly invokes figure Gc;Then approachability analysis is carried out to calling figure Gc to obtain Calling path P between Ps and Pe;The command path between Ps and Pe is obtained according to the relationship between every adjacent node in the calling path P Then I obtains the individual path Bse between Ps and Pe according to command path I.
7. the method as described in claim 1, which is characterized in that when the target software executes an input data, if one A new memory block M is assigned, then an attribute CM is arranged for memory block M, and memory block M deletes the memory block when being released Attribute CM, the wherein value of attribute CM are the memory address of memory block M;If a memory block M is read or is write outside cycle, for this Each region of memory write in memory block M distributes an attribute AddrI, operated in the memory block for that can distinguish Region of memory;If memory, which is one in being recycled instruction, carries out write operation, removes and each operated in memory block M Other memory attributes of region of memory other than its essential attribute CM.
8. the method as described in claim 1, which is characterized in that mark the memory point of memory block m using shadow EMS memory ShM Cloth;Then according to the record of shadow EMS memory ShM, if neighbor address region of memory has different attributes, then it is assumed that in this two pieces Deposit the memory variable that region belongs to different;If adjacent memory region has same alike result, then it is assumed that they belong to the same variable.
CN201510430225.5A 2015-07-21 2015-07-21 A kind of memory variable distribution dynamic discovery method Active CN105094825B (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510430225.5A CN105094825B (en) 2015-07-21 2015-07-21 A kind of memory variable distribution dynamic discovery method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510430225.5A CN105094825B (en) 2015-07-21 2015-07-21 A kind of memory variable distribution dynamic discovery method

Publications (2)

Publication Number Publication Date
CN105094825A CN105094825A (en) 2015-11-25
CN105094825B true CN105094825B (en) 2018-11-06

Family

ID=54575353

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510430225.5A Active CN105094825B (en) 2015-07-21 2015-07-21 A kind of memory variable distribution dynamic discovery method

Country Status (1)

Country Link
CN (1) CN105094825B (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110489291B (en) * 2019-08-13 2021-09-07 晶晨半导体(上海)股份有限公司 Method for implementing memory detection tool

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101739283A (en) * 2008-11-20 2010-06-16 联想(北京)有限公司 Computer and method for virtual system to directly access computer hardware
CN103440457A (en) * 2013-08-20 2013-12-11 上海交通大学 Binary program analytic system based on process simulation

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4391464B2 (en) * 2005-10-19 2009-12-24 日本電信電話株式会社 Device for storing binary tree structure information and device for storing heap structure information

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101739283A (en) * 2008-11-20 2010-06-16 联想(北京)有限公司 Computer and method for virtual system to directly access computer hardware
CN103440457A (en) * 2013-08-20 2013-12-11 上海交通大学 Binary program analytic system based on process simulation

Also Published As

Publication number Publication date
CN105094825A (en) 2015-11-25

Similar Documents

Publication Publication Date Title
US8650538B2 (en) Meta garbage collection for functional code
CN108647520A (en) A kind of intelligent fuzzy test method and system based on fragile inquiry learning
CN109101237A (en) The encryption Compilation Method and device of code
CN104573503A (en) Method and device for detecting memory access overflow
Kofler et al. Automatic data layout optimizations for gpus
US9823913B2 (en) Method of adding local variables in place of global in JavaScript
Zhu et al. Determining image base of firmware files for ARM devices
CN107632832A (en) One kind obscures method towards dalvik bytecode controlling streams
CN103955354B (en) Method for relocating and device
CN113419960B (en) Seed generation method and system for kernel fuzzy test of trusted operating system
CN102708053A (en) Method for determining context environmental effect of function call in program path
CN107832446A (en) A kind of searching method and computing device of configuration item information
CN103793653B (en) A kind of program dependence based on tree optimization analyzes method and system
CN105094825B (en) A kind of memory variable distribution dynamic discovery method
US8769498B2 (en) Warning of register and storage area assignment errors
CN108399321B (en) Software local plagiarism detection method based on dynamic instruction dependence graph birthmark
CN101937395B (en) Detected object program feature extraction method for vulnerability detection
Giamblanco et al. A dynamic memory allocation library for high-level synthesis
CN103677746A (en) Instruction recombining method and device
Sasaki et al. Why do programs have heavy tails?
CN106528179B (en) A kind of static recognition methods of java class dependence
JP6274090B2 (en) Threat analysis apparatus and threat analysis method
KR101673151B1 (en) Method and Apparatus for Analyzing Relationship Change of Program Source and DB Schema
Dong et al. A new method of software clone detection based on binary instruction structure analysis
CN103677770A (en) Instruction recombining method and device

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant