Proceedings Seventh International Conference on Real-Time Computing Systems and Applications
DOI: 10.1109/rtcsa.2000.896367
|View full text |Cite
|
Sign up to set email alerts
|

Extracting safe and precise control flow from binaries

Abstract: As a starting point for static program analysis a control flow graph (CFG) is needed. If only the binary executable is available, this CFG has to be reconstructed from sequences of instructions.The usual way to do this is a top-down approach: the executable's information about routines is used to split the sequence into routines, and then, each instruction is analysed for branch targets in order to compute basic block boundaries.When analysing safety critical real-time systems, safe and precise results are nee… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
2
1
1
1

Citation Types

0
37
0

Publication Types

Select...
3
2
2

Relationship

0
7

Authors

Journals

citations
Cited by 76 publications
(37 citation statements)
references
References 13 publications
0
37
0
Order By: Relevance
“…Earlier work [1,5,3,7,6] has shown that data flow analysis can be used to augment the results of disassembly, but no conclusive answer was given on the best way to handle states with unresolved control flow successors during data flow analysis. Further, updating the control flow graph could render previous data flow information invalid, which would require backtracking and could cause the analysis to diverge.…”
Section: Augmenting Disassembly With Data Flow Analysismentioning
confidence: 99%
See 3 more Smart Citations
“…Earlier work [1,5,3,7,6] has shown that data flow analysis can be used to augment the results of disassembly, but no conclusive answer was given on the best way to handle states with unresolved control flow successors during data flow analysis. Further, updating the control flow graph could render previous data flow information invalid, which would require backtracking and could cause the analysis to diverge.…”
Section: Augmenting Disassembly With Data Flow Analysismentioning
confidence: 99%
“…The compiler literature knows the concept of link-time-and post-link-optimizers [14,7], which exploit the fact that the whole program including libraries and hand-written assembly routines can be analyzed and optimized at linktime, i.e., after all code has been translated to binary with the symbol information still present. Precise tools for determining worst case execution time (WCET) of programs running on real time systems also have to process machine code, since they need to take compiler optimizations into account, and thus face similar problems of reconstructing the control flow [1,15,5]. Other applications of binary analysis include binary instrumentation [16], binary translation [17], or profiling [4].…”
Section: Related Workmentioning
confidence: 99%
See 2 more Smart Citations
“…Traditional techniques for inferring worst-case execution times apply [20,7]: If a performance model for the processor is available, the actual machine code could be analysed. Otherwise, test runs can be performed for individual instructions, and upper boundaries for the worst-case execution time can be inferred.…”
Section: Worst-case Execution Timesmentioning
confidence: 99%