EN
ENNA

angr

BSD-2-Clause

๐Ÿงฌ Reverse Engineering ยท Python

angr is a platform-agnostic binary analysis framework developed at UC Santa Barbara's Seclab. It combines both static and dynamic symbolic (concolic) analysis, providing a powerful Python API for analyzing compiled binaries without source code. angr can automatically explore execution paths through a binary, solve for inputs that reach specific code locations, recover control flow graphs, perform taint analysis, and identify vulnerabilities like buffer overflows and format string bugs. Its architecture is modular - SimOS provides OS abstraction, SimEngine handles execution, and the exploration strategies (DFS, BFS, coverage-optimized) guide analysis through the program state space. angr is widely used in academic research and CTF competitions, and forms the backbone of several automated vulnerability discovery tools.

8.6kstars
1.2kforks
604issues
Updated 3d ago

Installation

pip

$ pip install angr

Docker

$ docker pull angr/angr

Use Cases

  • Automated vulnerability discovery through symbolic execution of binaries
  • Solving CTF reverse engineering challenges by constraining execution paths
  • Recovering control flow graphs from stripped or obfuscated binaries
  • Finding inputs that trigger specific code paths or crash conditions
  • Building custom binary analysis tools on top of the angr Python API

Tags

symbolic-executionbinary-analysiscfrvulnerability-discoveryconcolicctfanalysisangrbinaryhacktoberfest

Details

Category
๐Ÿงฌ Reverse Engineering
Language
Python
Repository
angr/angr
License
BSD-2-Clause
Platforms
๐Ÿงlinux๐ŸŽmacos๐ŸชŸwindows

Alternatives & Comparisons

More in Reverse Engineering