Skip to main content

Python binding for QBDI

Project description

Documentation Status https://travis-ci.com/QBDI/QBDI.svg?branch=master https://ci.appveyor.com/api/projects/status/s2qvpu8k8yiau647/branch/master?svg=true

QuarkslaB Dynamic binary Instrumentation (QBDI) is a modular, cross-platform and cross-architecture DBI framework. It aims to support Linux, macOS, Android, iOS and Windows operating systems running on x86, x86-64, ARM and AArch64 architectures. Information about what is a DBI framework and how QBDI works can be found in the user documentation introduction (User Documentation).

QBDI modularity means it doesn’t contain a preferred injection method and it is designed to be used in conjunction with an external injection tool. QBDI includes a tiny (LD_PRELOAD based) Linux and macOS injector for dynamic executables (QBDIPreload), which acts as the foundation for our Python bindings (pyQBDI). QBDI is also fully integrated with Frida, a reference dynamic instrumentation toolkit, allowing anybody to use their combined powers.

x86-64 support is mature (even if SIMD memory access are not yet reported). The support of x86 is new and some bug may occur. ARM architecture is a work in progress but already sufficient to execute simple CLI program like ls or cat. AArch64 is planned, but currently unsupported.

A current limitation is that QBDI doesn’t handle signals, multithreading (it doesn’t deal with new threads creation) and C++ exception mechanisms. However, those system-dependent features will probably not be part of the core library (KISS), and should be integrated as a new layer (to be determined how).

Status

CPU Operating Systems Execution Memory Access Information
x86-64 Android, Linux, macOS, Windows Supported Partial (only non SIMD)
x86 Android, Linux, macOS, Windows Supported Partial (only non SIMD)
ARM Linux, Android, iOS Planned (*) Planned (*)
AArch64 Android Planned (*) Planned (*)

Warning

The ARM and AArch64 instruction sets are supported but they still need to be integrated along with x86 and x86-64.

Project details


Download files

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

Files for PyQBDI, version 0.7.1b2
Filename, size File type Python version Upload date Hashes
Filename, size PyQBDI-0.7.1b2-cp35-cp35m-manylinux2010_i686.whl (1.8 MB) File type Wheel Python version cp35 Upload date Hashes View hashes
Filename, size PyQBDI-0.7.1b2-cp35-cp35m-manylinux2010_x86_64.whl (1.8 MB) File type Wheel Python version cp35 Upload date Hashes View hashes
Filename, size PyQBDI-0.7.1b2-cp35-cp35m-win32.whl (1.1 MB) File type Wheel Python version cp35 Upload date Hashes View hashes
Filename, size PyQBDI-0.7.1b2-cp35-cp35m-win_amd64.whl (1.2 MB) File type Wheel Python version cp35 Upload date Hashes View hashes
Filename, size PyQBDI-0.7.1b2-cp36-cp36m-macosx_10_13_x86_64.whl (1.6 MB) File type Wheel Python version cp36 Upload date Hashes View hashes
Filename, size PyQBDI-0.7.1b2-cp36-cp36m-manylinux2010_i686.whl (1.8 MB) File type Wheel Python version cp36 Upload date Hashes View hashes
Filename, size PyQBDI-0.7.1b2-cp36-cp36m-manylinux2010_x86_64.whl (1.8 MB) File type Wheel Python version cp36 Upload date Hashes View hashes
Filename, size PyQBDI-0.7.1b2-cp36-cp36m-win32.whl (1.1 MB) File type Wheel Python version cp36 Upload date Hashes View hashes
Filename, size PyQBDI-0.7.1b2-cp36-cp36m-win_amd64.whl (1.2 MB) File type Wheel Python version cp36 Upload date Hashes View hashes
Filename, size PyQBDI-0.7.1b2-cp37-cp37m-macosx_10_13_x86_64.whl (1.6 MB) File type Wheel Python version cp37 Upload date Hashes View hashes
Filename, size PyQBDI-0.7.1b2-cp37-cp37m-manylinux2010_i686.whl (1.8 MB) File type Wheel Python version cp37 Upload date Hashes View hashes
Filename, size PyQBDI-0.7.1b2-cp37-cp37m-manylinux2010_x86_64.whl (1.8 MB) File type Wheel Python version cp37 Upload date Hashes View hashes
Filename, size PyQBDI-0.7.1b2-cp37-cp37m-win32.whl (1.1 MB) File type Wheel Python version cp37 Upload date Hashes View hashes
Filename, size PyQBDI-0.7.1b2-cp37-cp37m-win_amd64.whl (1.2 MB) File type Wheel Python version cp37 Upload date Hashes View hashes
Filename, size PyQBDI-0.7.1b2-cp38-cp38-macosx_10_13_x86_64.whl (1.6 MB) File type Wheel Python version cp38 Upload date Hashes View hashes
Filename, size PyQBDI-0.7.1b2-cp38-cp38-manylinux2010_i686.whl (1.9 MB) File type Wheel Python version cp38 Upload date Hashes View hashes
Filename, size PyQBDI-0.7.1b2-cp38-cp38-manylinux2010_x86_64.whl (1.8 MB) File type Wheel Python version cp38 Upload date Hashes View hashes
Filename, size PyQBDI-0.7.1b2-cp38-cp38-win32.whl (1.1 MB) File type Wheel Python version cp38 Upload date Hashes View hashes
Filename, size PyQBDI-0.7.1b2-cp38-cp38-win_amd64.whl (1.2 MB) File type Wheel Python version cp38 Upload date Hashes View hashes

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN DigiCert DigiCert EV certificate StatusPage StatusPage Status page