angr is a library for Python 3.8+, and must be installed into a Python environment before it can be used.
It is recommended to use an isolated python environment rather than installing angr globally. Doing so reduces dependency conflicts and aids in reproducibility while debugging. Some popular tools that accomplish this include:
Installing from PyPI#
angr is published on PyPI, and using this is the easiest and recommended way to install angr. It can be installed angr with pip:
pip install angr
The PyPI distribution includes binary packages for most popular system configurations. If you are using a system that is not supported by the binary packages, you will need to build the C dependencies from source. See the Installing from Source section for more information.
Installing from Source#
angr is a collection of Python packages, each of which is published on GitHub. The easiest way to install angr from source is to use angr-dev.
To set up a development environment manually, first ensure that build
dependencies are installed. These consist of python development headers,
make, and a C compiler. On Ubuntu, these can be installed with:
sudo apt-get install python3-dev build-essential
Then, checkout and install the following packages, in order:
angr has no attribute Project, or similar#
If angr can be imported but the
Project class is missing, it is likely one
of two problems:
There is a script named
angr.pyin the working directory. Rename it to something else.
There is a folder called
angrin your working directory, possibly the cloned repository. Change the working directory to somewhere else.
AttributeError: ‘module’ object has no attribute ‘KS_ARCH_X86’#
keystone package is installed, which conflicts with the
keystone-engine package, an optional dependency of angr. Uninstall
keystone and install