Skip to main content

Pure python disassembler, debugger, emulator, and static analysis framework

Project description

Vivisect / Vdb / Vtrace

A combined disassembler/static analysis/symbolic execution/debugger framework. More documentation is in the works :)

Vdb

As in previous vdb releases, the command python vdbbin from the checkout directory will drop you into a debugger prompt on supported platforms. ( Windows / Linux / FreeBSD / OSX... kinda? )

Commands in vdb grow/refine quickly, so use in-line help such as:

vdb> help

or...

vdb> help writemem

to show available commands and options.

Vivisect

Fairly un-documented static analysis / emulation / symbolik analysis framework for PE/Elf/Mach-O/Blob binary formats on various architectures. To start with, you probably want to run a "bulk analysis" pass on a binary using:

python2 -m vivisect.vivbin -B <binaryfile>

which will leave you with .viv

Then run:

python2 -m vivisect.vivbin <binaryfile>.viv

to open the GUI and begin reverse engineering. As with most vtoys, the ui relies fairly heavily on right-click context menus and various memory views.

For the binary ninjas, all APIs used during automatic analysis ( and several that aren't ) are directly accessible for use writing your own custom research tools... The interface should be nearly the same when dealing with a real process ( via vdb/vtrace ) and dealing with an emulator / viv workspace.

UI Dependencies

The vivisect UI can be run under either PyQt4 and PyQt5

For running via PyQt4, first you'll need to install Qt4 and Qt4-Webkit libraries. On Ubuntu, you can do this via:

sudo apt-get install libqt4-dev libqtwebkit-dev

If you're on an older version of python, you may be able to pip install PyQt4 and SIP like so:

pip install PyQt4 SIP

However, on recent (tested on 2.7.15 December 2018) versions of pip, that pip install fails. To get around this, you'll need to download the sources for both PyQt4 and SIP from Riverbank.

  • SIP can be found here
  • PyQt4 can be found here

Untar them to their respective directories and cd in the directory for SIP:

tar -xf sip-4.19.13.tar.gz
tar -xf PyQt4_gpl_x11-4.12.3.tar.gz
cd sip-4.19.13/

Then build the SIP module. Due to the recent version of SIP we're using, we have to build it as a private module like so:

python configure.py --sip-module PyQt4.sip
make
make install

Now cd back to the PyQt4 module and build that one:

cd ../PyQt4_gpl_x11-4.12.3/
python configure-ng.py
make -j4
make install

If you run into an Error 2 status code on the make install line, replace that line with sudo make install, and things should work out fine.

And then you should be able to open up your vivisect workspace with the vivbin script.

PyQt5

Installing PyQt5 via pip is not supported in Python 2.x. So similar steps must be followed to install PyQt5 to get the UI working that way as well.

Install qt5 and the webkit dependency:

sudo apt-get install qt5-default libqt5webkit5-dev

Install the dependencies that PyQt5 needs:

pip install enum34

The rest of the build/install steps are the same, save for changing out the version numbers from PyQt4 to PyQt5.

Dependencies:

To enable proper networking:

pip install msgpack

To enable Posix C++ demangling:

pip install cxxfilt

Build Status

Build Status

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

vivisect-0.2.1.tar.gz (2.5 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

vivisect-0.2.1-py3-none-any.whl (4.1 MB view details)

Uploaded Python 3

File details

Details for the file vivisect-0.2.1.tar.gz.

File metadata

  • Download URL: vivisect-0.2.1.tar.gz
  • Upload date:
  • Size: 2.5 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.3.0 pkginfo/1.7.0 requests/2.25.1 setuptools/49.2.1 requests-toolbelt/0.9.1 tqdm/4.57.0 CPython/3.9.1

File hashes

Hashes for vivisect-0.2.1.tar.gz
Algorithm Hash digest
SHA256 8fc4d2097a1d0d8d97aa8c540984cb52432df759f04f2281a21a4e1b7d1a95a7
MD5 56be968daa9ee645c159fe8f1633de04
BLAKE2b-256 fbb80780cc792ae865e905b94957fd0f0c8d444919df409e853548f0f54141c4

See more details on using hashes here.

File details

Details for the file vivisect-0.2.1-py3-none-any.whl.

File metadata

  • Download URL: vivisect-0.2.1-py3-none-any.whl
  • Upload date:
  • Size: 4.1 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.3.0 pkginfo/1.7.0 requests/2.25.1 setuptools/49.2.1 requests-toolbelt/0.9.1 tqdm/4.57.0 CPython/3.9.1

File hashes

Hashes for vivisect-0.2.1-py3-none-any.whl
Algorithm Hash digest
SHA256 d0a267130a731ebfe6c5ffac568e64608f60c5f2ec2d90f0976c46f5c196779d
MD5 c338978a8b72cbbc75ae6cea6e398d40
BLAKE2b-256 c87cfcb616e6f333d890134f51a7d63a660f71e935b5cc1367bfe6584280f8ef

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page