2019
DOI: 10.1007/978-3-030-17465-1_22
|View full text |Cite
|
Sign up to set email alerts
|

PhASAR: An Inter-procedural Static Analysis Framework for C/C++

Abstract: Static program analysis is used to automatically determine program properties, or to detect bugs or security vulnerabilities in programs. It can be used as a stand-alone tool or to aid compiler optimization as an intermediary step. Developing precise, inter-procedural static analyses, however, is a challenging task, due to the algorithmic complexity, implementation effort, and the threat of state explosion which leads to unsatisfactory performance. Software written in C and C++ is notoriously hard to analyze b… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
2
1
1
1

Citation Types

0
12
0
2

Year Published

2020
2020
2022
2022

Publication Types

Select...
5
3
1

Relationship

0
9

Authors

Journals

citations
Cited by 55 publications
(15 citation statements)
references
References 14 publications
0
12
0
2
Order By: Relevance
“…These are the languages used to build the majority of operating systems and virtual machines (also the Java Virtual Machine). However, high control and versatility come with a cost, the obligation to avoid bugs and software vulnerabilities, which can entail serious consequences for critical services [59]. According to [24], fifty-nine percent of C++ applications scanned with their analysis tools included high and very high severity flaws.…”
Section: Related Workmentioning
confidence: 99%
“…These are the languages used to build the majority of operating systems and virtual machines (also the Java Virtual Machine). However, high control and versatility come with a cost, the obligation to avoid bugs and software vulnerabilities, which can entail serious consequences for critical services [59]. According to [24], fifty-nine percent of C++ applications scanned with their analysis tools included high and very high severity flaws.…”
Section: Related Workmentioning
confidence: 99%
“…In the example, the block bb is identified as being the loop of the program, thus the invariant is mapped to the loop head. For this, we employed some basic functions provided by PHASAR [41] in our adapter. Finally, we construct the CFA of the C-program, store the invariants at the nodes and convert the equipped CFA to a verification witness.…”
Section: Adapter For Llvm-based Helper Invariant Generatorsmentioning
confidence: 99%
“…During the course of this research, we studied several LLVM-based pointer analyses and found these tools have known implementation bugs that cause false negatives (i.e., missing alias relationships) in the analysis output [36], [50], [60]. For instance, these tools miss tracking pointers passed as an element of structure type (aggregate) registers.…”
Section: Instrumenting Memory Accessesmentioning
confidence: 99%