Method for performing deep static analysis with or without source code
AssigneeOracle International Corporation
InventorsLiam Richard Howlett, Robert David Gardner
Life of this patent
Estimating the term…
Abstract
A method may include initiating a static analysis of code including a first function, detecting, in the first function and by the static analysis, an indirect call to a second function whose identity is unknown until the code is executed, detecting, in the code, a conditional block including a first instruction sequence and a second instruction sequence, determining, by the static analysis, that the first instruction sequence sets a value that identifies the second function, and adding the value to a called function list for the code.
Claims20
A method, comprising:
- initiating a static analysis of object code comprising a first function, wherein the object code is generated from source code, and wherein the object code is external to the source code;
- detecting, in the first function of the object code and by the static analysis of the object code, an indirect call to a second function of the object code whose identity is unknown until the object code is executed;
- detecting, in the object code, a conditional block comprising a first instruction sequence and a second instruction sequence;
- determining, by the static analysis, that the first instruction sequence sets a first value that identifies the second function;
- and
- adding the first value to a called function list for the object code.
A system, comprising:
- a repository configured to store:
- object code comprising a first function, wherein the object code is generated from source code, and wherein the object code is external to the source code, and
- a called functions list for the object code;
- a memory coupled to a computer processor;
- and
- a tracing tool, executing on the computer processor and using the memory, configured to:
- initiate a static analysis of the object code,
- detect, in the first function of the object code and by the static analysis of the object code, an indirect call to a second function of the object code whose identity is unknown until the object code is executed,
- detect, in the object code, a conditional block comprising a first instruction sequence and a second instruction sequence,
- determine, by the static analysis, that the first instruction sequence sets a first value that identifies the second function, and
- add the first value to the called function list.
A non-transitory computer readable medium comprising instructions that, when executed by a computer processor, perform:
- initiating a static analysis of object code comprising a first function, wherein the object code is generated from source code, and wherein the object code is external to the source code;
- detecting, in the first function of the object code and by the static analysis of the object code, an indirect call to a second function of the object code whose identity is unknown until the object code is executed;
- detecting, in the object code, a conditional block comprising a first instruction sequence and a second instruction sequence;
- determining, by the static analysis, that the first instruction sequence sets a first value that identifies the second function;
- and
- adding the first value to a called function list for the object code.
Dependencies are inferred from the claim text.