Skip to main content

Python binding for QBDI

Project description

Introduction

Documentation Status https://ci.appveyor.com/api/projects/status/s2qvpu8k8yiau647/branch/master?svg=true https://img.shields.io/github/v/release/QBDI/QBDI https://img.shields.io/pypi/pyversions/PyQBDI https://img.shields.io/pypi/v/PyQBDI

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. In addition of C/C++ API, Python and JS/frida bindings are available to script QBDI. Information about what is a DBI framework and how QBDI works can be found in the documentation introduction.

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). QBDI is also fully integrated with Frida, a reference dynamic instrumentation toolkit, allowing anybody to use their combined powers.

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

Supported

x86

Android, Linux, macOS, Windows

Supported

Supported

ARM

Linux, Android, iOS

Planned (*)

Planned (*)

AArch64

Android, Linux, macOS

Supported (*)

Supported (*)

* The ARM and AArch64 instruction sets are supported for internal use at the moment.

Installation

Python API (PyQBDI)

PyQBDI is available through PyPI. The wheel package can be either downloaded or installed with the following command:

pip install PyQBDI

The PyQBDI package is self-contained so completely independent from the C/C++ package.

Devel packages

There is no strict development timeline or scheduled release plan for the QBDI project. All the new features and fixes are merged onto the dev-next branch. Devel packages can be downloaded in the artefacts of:

Project details


Download files

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

Source Distributions

No source distribution files available for this release. See tutorial on generating distribution archives.

Built Distributions

PyQBDI-0.9.0-cp310-cp310-win_amd64.whl (1.4 MB view hashes)

Uploaded cp310

PyQBDI-0.9.0-cp310-cp310-win32.whl (1.3 MB view hashes)

Uploaded cp310

PyQBDI-0.9.0-cp39-cp39-win_amd64.whl (1.4 MB view hashes)

Uploaded cp39

PyQBDI-0.9.0-cp39-cp39-win32.whl (1.3 MB view hashes)

Uploaded cp39

PyQBDI-0.9.0-cp38-cp38-win_amd64.whl (1.4 MB view hashes)

Uploaded cp38

PyQBDI-0.9.0-cp38-cp38-win32.whl (1.3 MB view hashes)

Uploaded cp38

Supported by

AWS AWS Cloud computing Datadog Datadog Monitoring Facebook / Instagram Facebook / Instagram PSF Sponsor Fastly Fastly CDN Google Google Object Storage and Download Analytics Huawei Huawei PSF Sponsor Microsoft Microsoft PSF Sponsor NVIDIA NVIDIA PSF Sponsor Pingdom Pingdom Monitoring Salesforce Salesforce PSF Sponsor Sentry Sentry Error logging StatusPage StatusPage Status page