All Projects → fmagin → angr-cli

fmagin / angr-cli

Licence: MIT license
Repo for various angr ipython features to give it more of a cli feeling

Programming Languages

python
139335 projects - #7 most used programming language
shell
77523 projects

Projects that are alternatives of or similar to angr-cli

Sci Pype
A Machine Learning API with native redis caching and export + import using S3. Analyze entire datasets using an API for building, training, testing, analyzing, extracting, importing, and archiving. This repository can run from a docker container or from the repository.
Stars: ✭ 90 (+119.51%)
Mutual labels:  jupyter, ipython
Cheatsheets.pdf
📚 Various cheatsheets in PDF
Stars: ✭ 159 (+287.8%)
Mutual labels:  jupyter, ipython
Ipyexperiments
jupyter/ipython experiment containers for GPU and general RAM re-use
Stars: ✭ 128 (+212.2%)
Mutual labels:  jupyter, ipython
Vagrant Projects
Vagrant projects for various use-cases with Spark, Zeppelin, IPython / Jupyter, SparkR
Stars: ✭ 34 (-17.07%)
Mutual labels:  jupyter, ipython
Juniper
🍇 Edit and execute code snippets in the browser using Jupyter kernels
Stars: ✭ 189 (+360.98%)
Mutual labels:  jupyter, ipython
Telepyth
Telegram notification with IPython magics.
Stars: ✭ 54 (+31.71%)
Mutual labels:  jupyter, ipython
Sqlcell
SQLCell is a magic function for the Jupyter Notebook that executes raw, parallel, parameterized SQL queries with the ability to accept Python values as parameters and assign output data to Python variables while concurrently running Python code. And *much* more.
Stars: ✭ 145 (+253.66%)
Mutual labels:  jupyter, ipython
Nbstripout
strip output from Jupyter and IPython notebooks
Stars: ✭ 738 (+1700%)
Mutual labels:  jupyter, ipython
Awesome Jupyter
A curated list of awesome Jupyter projects, libraries and resources
Stars: ✭ 2,523 (+6053.66%)
Mutual labels:  jupyter, ipython
Ipywebrtc
WebRTC for Jupyter notebook/lab
Stars: ✭ 171 (+317.07%)
Mutual labels:  jupyter, ipython
Ansible Jupyterhub
Ansible role to setup jupyterhub server (deprecated)
Stars: ✭ 14 (-65.85%)
Mutual labels:  jupyter, ipython
Halo
💫 Beautiful spinners for terminal, IPython and Jupyter
Stars: ✭ 2,532 (+6075.61%)
Mutual labels:  jupyter, ipython
Openerp Proxy
Provides interface similar to Odoo / OpenERP internal code to perform operations on Odoo / OpenERP objects remotely using XML-RPC or JSON-RPC behind.
Stars: ✭ 17 (-58.54%)
Mutual labels:  jupyter, ipython
Ipybind
IPython / Jupyter integration for pybind11
Stars: ✭ 63 (+53.66%)
Mutual labels:  jupyter, ipython
Jupyterlab Lsp
Coding assistance for JupyterLab (code navigation + hover suggestions + linters + autocompletion + rename) using Language Server Protocol
Stars: ✭ 796 (+1841.46%)
Mutual labels:  jupyter, ipython
Ipytracer
📊 Algorithm Visualizer for IPython/Jupyter Notebook
Stars: ✭ 138 (+236.59%)
Mutual labels:  jupyter, ipython
Nteract
📘 The interactive computing suite for you! ✨
Stars: ✭ 5,713 (+13834.15%)
Mutual labels:  jupyter, ipython
Cookbook 2nd
IPython Cookbook, Second Edition, by Cyrille Rossant, Packt Publishing 2018
Stars: ✭ 704 (+1617.07%)
Mutual labels:  jupyter, ipython
Signals And Systems Lecture
Continuous- and Discrete-Time Signals and Systems - Theory and Computational Examples
Stars: ✭ 166 (+304.88%)
Mutual labels:  jupyter, ipython
Jupyterhub Deploy Teaching
Reference deployment of JupyterHub and nbgrader on a single server
Stars: ✭ 194 (+373.17%)
Mutual labels:  jupyter, ipython

angr CLI

Tests with angr from PyPI

This Python package is a collection of modules to allow easier interactive use of angr for learning and prototyping angr.

All features are designed for the use of angr in an interactive environment like an IPython shell or a Jupyter environment (both CLI and Notebook), but some will still work in a simple Python shell or script.

Using a font that supports Ligatures like JetBrains Mono is recommended to make the output more pleasant to read.

Install

PyPi

A stable version is available on PyPi.

pip install angrcli

Dev

In case you want a development install of this, run this in a folder of your choice (e.g. your angr-dev repo) after activating your angr virtual environment

git clone https://github.com/fmagin/angr-cli.git
cd angr-cli
pip install -e ./

General Usage

To import and setup all features:

import angrcli.full

This will take care of importing and registering the plugins.

Core Features

State View Plugin

The Context View plugin allows rendering of a state in a view similiar to that provided by GDB plugins like GEF or pwndbg.

Usage

import angr
# This line registers the plugin and makes it available on each state
import angrcli.plugins.ContextView
proj = angr.Project("/bin/ls", load_options={"auto_load_libs":False})
state = proj.factory.entry_state()

# Print the state
state.context_view.pprint()

Context View

Interactive Exploration

The Interactive Exploration is a Python CMD wrapper around a Simulation Manager that provides shortcuts for various common operations, like stepping blocks, running until a symbolic branch or manually selecting successors.

This can either be used in a script, or inside an IPython shell. The latter allows rapid switching between the wrapper to access the shortcuts and the IPython shell for more complex operations.

Usage

import angr
import angrcli.plugins.ContextView
from angrcli.interaction.explore import ExploreInteractive
proj = angr.Project("/bin/ls", load_options={"auto_load_libs":False})
state = proj.factory.entry_state()
# For quick but less flexible access (state isn't modified)
state.explore()

# state.explore() basically just does the following on each call
e = ExploreInteractive(proj, state)
e.cmdloop()

Demo

asciicast

Misc

AST Preview

angrcli.ast.rendering provides render_ast which uses graphviz to generate a SVG representation of an AST which can be displayed instead of the __repr__ method of the AST object.

Example

import claripy
from angrcli.ast.rendering import render_ast
from claripy.ast.bv import BV
BV._repr_svg_ = lambda self: render_ast(self)._repr_svg_()
x = claripy.BVS('x', 32)
y = claripy.BVS('y', 32)

AST Rendering

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].