# secure-software-engineering/phasar

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/secure-software-engineering-phasar).**

1,045 stars · 156 forks · C++ · NOASSERTION

## Links

- GitHub: https://github.com/secure-software-engineering/phasar
- awesome-repositories: https://awesome-repositories.com/repository/secure-software-engineering-phasar.md

## Topics

`c` `cpp` `data-flow-analysis` `llvm` `program-analysis` `static-analysis`

## Description

Phasar is a static analysis framework designed for the inspection of software logic through the processing of compiler intermediate representations. It provides a modular pipeline for building program representations, including call graphs, control flow graphs, and type hierarchies, which serve as the foundation for deep structural analysis of software behavior.

The framework specializes in interprocedural data flow analysis and pointer alias resolution, enabling the tracking of information movement across function boundaries and the identification of indirect memory access patterns. By leveraging these capabilities, it supports the development of custom analysis tools capable of detecting complex logic errors and security vulnerabilities within codebases.

Users can configure the analysis scope to optimize performance by excluding specific library or intrinsic function calls. The framework also includes a taint tracking system that allows for the definition of custom data sources and sinks, facilitating automated security auditing by monitoring the flow of sensitive or untrusted information through a system.

## Tags

### Part of an Awesome List

- [Static Analysis Frameworks](https://awesome-repositories.com/f/awesome-lists/devtools/static-analysis-frameworks.md) — Provides a framework for building custom static analysis tools to detect logic errors and security vulnerabilities.
- [Control-Flow Graph Constructions](https://awesome-repositories.com/f/awesome-lists/devtools/smart-contract-analysis/control-flow-analysis/control-flow-graph-constructions.md) — Constructs detailed call graphs and type hierarchies from compiler intermediate representations to enable precise interprocedural analysis. ([source](https://github.com/secure-software-engineering/phasar#readme))
- [Program Representation Builders](https://awesome-repositories.com/f/awesome-lists/devtools/smart-contract-analysis/control-flow-analysis/control-flow-graph-constructions/program-representation-builders.md) — Constructs call graphs, control flow graphs, and type hierarchies to support deep code analysis.
- [Custom Data-Flow Analysis Frameworks](https://awesome-repositories.com/f/awesome-lists/devtools/smart-contract-analysis/control-flow-analysis/custom-data-flow-analysis-frameworks.md) — Enables the development of custom analysis tools for computing specific data flow characteristics. ([source](https://secure-software-engineering.github.io/phasar/))

### Operating Systems & Systems Programming

- [Pointer Alias Resolution Engines](https://awesome-repositories.com/f/operating-systems-systems-programming/binary-execution-analysis/points-to-analysis-engines/pointer-alias-resolution-engines.md) — Resolves memory reference relationships to identify indirect memory access patterns.
- [Data Flow Analysis](https://awesome-repositories.com/f/operating-systems-systems-programming/cross-architecture-binary-analysis/intermediate-representation-lifting/data-flow-analysis.md) — Executes data flow analyses using standard algorithmic frameworks to track information propagation. ([source](https://github.com/secure-software-engineering/phasar/blob/development/examples/how-to))

### Programming Languages & Runtimes

- [Interprocedural Pointer Analysis](https://awesome-repositories.com/f/programming-languages-runtimes/interprocedural-pointer-analysis.md) — Tracks information movement across function boundaries to identify security vulnerabilities and logic errors. ([source](https://github.com/secure-software-engineering/phasar/blob/development/CHANGELOG.md))
- [Interprocedural Data-Flow Solvers](https://awesome-repositories.com/f/programming-languages-runtimes/interprocedural-pointer-analysis/interprocedural-data-flow-solvers.md) — Implements an interprocedural data flow solver to track information movement across function boundaries.
- [Pointer Analysis Frameworks](https://awesome-repositories.com/f/programming-languages-runtimes/pointer-analysis-frameworks.md) — Determines memory reference relationships and points-to information to resolve indirect memory access patterns. ([source](https://github.com/secure-software-engineering/phasar/blob/development/README.md))
- [Deep Pointer Resolution](https://awesome-repositories.com/f/programming-languages-runtimes/pointer-utilities/deep-pointer-resolution.md) — Determines memory reference relationships and points-to information to resolve indirect access patterns.

### Web Development

- [Taint Analysis Engines](https://awesome-repositories.com/f/web-development/data-flow-architectures/taint-analysis-engines.md) — Provides an engine for tracking sensitive data movement across program boundaries to identify potential security vulnerabilities. ([source](https://github.com/secure-software-engineering/phasar/blob/development/README.md))
- [Inter-procedural Data Flow](https://awesome-repositories.com/f/web-development/data-flow-architectures/taint-analysis-engines/inter-procedural-data-flow.md) — Tracks how information propagates across function boundaries and memory references.
- [Taint Tracking Frameworks](https://awesome-repositories.com/f/web-development/data-flow-architectures/taint-analysis-engines/taint-tracking-frameworks.md) — Provides a taint tracking system to monitor the flow of sensitive or untrusted information.
- [Source-Sink Taint Tracking](https://awesome-repositories.com/f/web-development/request-body-parsers/network-sink-streaming/source-sink-taint-tracking.md) — Allows definition of custom data sources and sinks to track untrusted information flow for automated security auditing. ([source](https://github.com/secure-software-engineering/phasar#readme))

### Development Tools & Productivity

- [Call Graph Generators](https://awesome-repositories.com/f/development-tools-productivity/call-graph-generators.md) — Generates detailed representations of program call structures and type hierarchies.
- [Intermediate Representation Analyzers](https://awesome-repositories.com/f/development-tools-productivity/compiled-code-analysis/intermediate-representation-inspection/intermediate-representation-analyzers.md) — Processes compiler intermediate representations to perform deep structural inspection of software logic.

### Security & Cryptography

- [Security Auditing Tools](https://awesome-repositories.com/f/security-cryptography/security-auditing-tools.md) — Defines custom taint analysis sources and sinks to identify security flaws during compilation.
- [Automated Security Pipelines](https://awesome-repositories.com/f/security-cryptography/security-automation-integrations/automated-security-pipelines.md) — Integrates data taint analysis into build pipelines to automatically identify untrusted data movement.

### Software Engineering & Architecture

- [Analysis Pipelines](https://awesome-repositories.com/f/software-engineering-architecture/static-analysis-extensions/analysis-pipelines.md) — Orchestrates static analysis passes by chaining together graph construction, alias resolution, and data flow propagation.
