Disasemble binaries and recover as much info as possible.
Project description
dis-cover
Disassemble binaries and recover as much info as possible
How to use
Run on you binary
To run this tool on your own binary, first you must install dis-cover, as well as elfutils and binutils.
pip install dis-cover
apt install elfutils binutils # or whatever your version of this is
Then, you can run it to analyze your binary, for example /bin/gold
.
dis-cover /bin/gold
This will create a reconstructed
elf file in your current directory. This binary will contain symbols and dwarf information describing the classes and hierarchies that dis-cover was able to find.
Run the case studies
To run the case studies, simply make run-scenarios
. You need to have docker
installed.
Command-line
You can install dis-cover by running pip install dis-cover
.
Here are the CLI options :
usage: dis-cover [-h] [-d OUTPUT_DIRECTORY] [-p] [-o OUTPUT_FILE] [-l] [-b | -c] file
Disasemble binaries and recover as much info as possible
positional arguments:
file File to dis-cover
optional arguments:
-h, --help show this help message and exit
-d OUTPUT_DIRECTORY, --output-directory OUTPUT_DIRECTORY
Directory where the temporary files are written (default "/tmp")
-p, --pickle Output info in the pickle format (used with --bin)
-o OUTPUT_FILE, --output-file OUTPUT_FILE
File where the output should be written (used with --bin) (default "./reconstructed")
-l, --list-classes List the classes found in the binary (used with --bin)
-b, --bin Extract info from a binary file (default)
-c, --cpp Compile C++ file under multiple scenarios and extract info from the given outputs
Still TODO
- Verify objcopy and eu-unstrip outputs (priority: medium)
- Add better error handling and more helpful messages (priority: medium)
- Set NOBIT flag in the section headers (priority: low)
- Remodel output to be more understandable (priority: low)
- Find a way to compute the size of the classes (priority: low)
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for dis_cover-0.3.4-py2.py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5fbd641d4439417f3b8987eebd2b8e588f721098ade6ffbc549d2f42b811c178 |
|
MD5 | 15547254a9e252d06b353de0ad0a6360 |
|
BLAKE2b-256 | 22bd50fb9b749e9155c9d9269f4c222739174792e721b53c28b37267538c11e5 |