Eye of Jupyter: Angr iPython Notebooks in Sandstorm
EDIT (11/1/16): Well, Eye of Jupyter is now on the Sandstorm appstore, and is now simply called Angr Binary Reverse-Engineering! Many thanks to Asheesh Laroia for suggesting I publish it, and guiding me along the way.
At the suggestion of a friend, I decided to take a look into integrating Angr into Jupyter.
Of course, I checked to see if there happened to be a Jupyter Sandstorm app, and there is. Unfortunately, because Sandstorm apps do not have network connectivity by default, there is no way to install additional packages in the app (other than, I suppose, potentially uploading a .whl
file and installing that via pip
).
So, I made my own, and while I was at it, I replaced the Python2 iPython kernel with PyPy for increased speed.
The source is here, and the signed, loadable .spk
is here(~200MB). It seems to work well, but I’ve not done extensive testing. You can get my PGP key from my Keybase page.
Part of the reasoning behind using Angr in Jupyter is for the creation of easy-to-read and easy-to-use/replicate Angr walkthroughs/writeups/tutorials. I’m not all that familiar with Angr myself, but I hope to produce at least a few basic walkthroughs in the near future to help me (and others) learn how to use it better.
Since this really is just Jupyter with Angr and PyPy installed, I’m not planning on attempting to publish it to the Sandstorm App “store”… at least not until it has something that’s actually unique/original in it. :) So for the forseeable future, you can either build it yourself from source, or download/install using the .spk
I linked to above.
References
- How to use PyPy with Jupyter: https://twitter.com/wolever/status/710694374829588480