https://github.com/angr/angr-targets
This repository contains the currently implemented angr concrete targets.
https://github.com/angr/angr-targets
Last synced: 26 days ago
JSON representation
This repository contains the currently implemented angr concrete targets.
- Host: GitHub
- URL: https://github.com/angr/angr-targets
- Owner: angr
- Created: 2018-06-16T02:00:09.000Z (almost 7 years ago)
- Default Branch: master
- Last Pushed: 2023-09-01T18:13:26.000Z (over 1 year ago)
- Last Synced: 2024-05-06T00:24:08.556Z (about 1 year ago)
- Language: Python
- Homepage:
- Size: 134 KB
- Stars: 32
- Watchers: 10
- Forks: 9
- Open Issues: 2
-
Metadata Files:
- Readme: Readme.md
Awesome Lists containing this project
README
## Overview
This repository contains the currently implemented angr concrete targets.An angr concrete target is the implementation of the ConcreteTarget interface which allows angr
to synchronize a SimState with the state of running process inside a debugging environment (gdbserver, IDA debugger...).
After that you can continue to analyse the binary with angr using as a memory backend the concrete process memory.
Finally, you can use the results of the analysis to modify the process memory and control its execution path.The angr concrete target needs to implement the ConcreteTarget interface which means:
- `read_memory(address,nbytes)`: Mandatory
- `write_memory(address, value)`: Mandatory
- `read_register(register)`: Mandatory
- `write_register(register, value)`: Mandatory
- `set_breakpoint(address)`: Mandatory
- `remove_breakpoint(self, address)`: Mandatory
- `set_watchpoint(self, address)`: Optional
- `remove_watchpoint(self, address)`: Optional
- `run(self)`: MandatoryIn the ConcreteTarget class docstrings you can find the detailed definition of the methods and the types of arguments/return values
Currently we support 2 targets:
- `AvatarGDBTarget`: Connects to a gdbserver instance.
- `PandaConcreteTarget`: Connects to an emulated guest system running with [PANDA](https://panda.re).## Install
```sh
$ cd angr-targets
$ pip install -e .
```