Ropper v1.11.10 releases: find gadgets to build rop chains for different architectures
You can use ropper to display information about binary files in different file formats and you can search for gadgets to build rop chains for different architectures (x86/X86_64, ARM/ARM64, MIPS/MIPS64, PowerPC). For disassembly, it uses the awesome Capstone Framework.
NOTE: I recommend to use the dev version of ropper because bugfixes are earlier available in the dev branch.
Install Capstone with PyPi:
$ sudo pip install capstone
Install filebytes with PyPi:
$ sudo pip install filebytes
$ sudo pip install keystone-engine
$ git clone https://github.com/sashs/Ropper.git$ python setup.py install
You can also install with pip
$ pip install ropper
If you don’t want to install filebytes, filebytes is a submodule of the ropper repository. This means you don’t need to install filebytes and ropper.
THIS FEATURE IS STILL UNDER DEVELOPMENT! Ropper has a semantic search command, which offers the possibility to search for gadgets. Due to a dependency, this command only works with python2 on Linux, but I am working on porting this dependency to python3. Since python3 defaults on some systems, ropper2 can be used to execute ropper with python2.
$ ropper2 --file <afile> --semantic "<any constraint>"
The following optional dependencies are needed to use semantic search:
$ sudo pip install pyvex
Currently Possible Constraints
Copyright (C) 2014
– Sascha Schirra
– Levente Polyak (refactoring)
– Moshe Kaplan (fixed typo)
– Кirils Sоlovjоvs (bugfix)
– Aaron Gallagher (bugfix)
– Matthias Ganz (–cfg-only option)
– Lorenzo Santina (bugfixes)