Skip to main content

An implementation of probabilistic disassembly for ELF binaries.

Project description

probdisasm

This is still a major work in progress.

Background

probdisasm is a disassembler based on two concepts: superset disassembly and probabilistic analysis. Superset disassembly attempts to decode an instruction for each byte or offset in the binary or executable section. Probabilistic analysis then refines the results by assigning a probability to each decoded instruction based on "hints" such as control flow patterns and data flow edges. The goal for this repository is to implement the approach specified in the paper, "Probabilistic disassembly" by Miller et al and to further extend it to support new static and machine learning based hints.

Why not the original artifact

We found that the implementation did not fully explore or implement the algorithm from the paper. We have tried integrating ML and other probalistic methods in the past, but with the lack of activity in the BAP ecosphere and the non probalisitc based engine in the BAP plugin we felt that we and the community could benefit for a more accessible version of the idea for future research.

Installation

Rust

cargo add probdisasm

Python

uv add probdisasm 

Usage

Credit

This work is based heavily on the following paper.

@inproceedings{10.1109/ICSE.2019.00121,
author = {Miller, Kenneth and Kwon, Yonghwi and Sun, Yi and Zhang, Zhuo and Zhang, Xiangyu and Lin, Zhiqiang},
title = {Probabilistic disassembly},
year = {2019},
publisher = {IEEE Press},
url = {https://doi.org/10.1109/ICSE.2019.00121},
doi = {10.1109/ICSE.2019.00121},
booktitle = {Proceedings of the 41st International Conference on Software Engineering},
location = {Montreal, Quebec, Canada},
series = {ICSE '19}
}

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

probdisasm-0.2.2.tar.gz (14.3 kB view details)

Uploaded Source

Built Distributions

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

probdisasm-0.2.2-cp39-abi3-win_amd64.whl (1.3 MB view details)

Uploaded CPython 3.9+Windows x86-64

probdisasm-0.2.2-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.7 MB view details)

Uploaded CPython 3.9+manylinux: glibc 2.17+ x86-64

probdisasm-0.2.2-cp39-abi3-macosx_11_0_arm64.whl (1.4 MB view details)

Uploaded CPython 3.9+macOS 11.0+ ARM64

probdisasm-0.2.2-cp39-abi3-macosx_10_12_x86_64.whl (1.4 MB view details)

Uploaded CPython 3.9+macOS 10.12+ x86-64

File details

Details for the file probdisasm-0.2.2.tar.gz.

File metadata

  • Download URL: probdisasm-0.2.2.tar.gz
  • Upload date:
  • Size: 14.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for probdisasm-0.2.2.tar.gz
Algorithm Hash digest
SHA256 cf6467a91427e629c8330d9d4ce4a88a9167aaa8445c0ef1d0bf7817944bf40a
MD5 8bec25b8947079fd14a21d86d951a828
BLAKE2b-256 03e3490ea99edff072ed43c612e7f243b64d4e22cf42749c7275ea1374d2277e

See more details on using hashes here.

Provenance

The following attestation bundles were made for probdisasm-0.2.2.tar.gz:

Publisher: pypi_publish.yml on Program-Understanding/probdisasm

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file probdisasm-0.2.2-cp39-abi3-win_amd64.whl.

File metadata

  • Download URL: probdisasm-0.2.2-cp39-abi3-win_amd64.whl
  • Upload date:
  • Size: 1.3 MB
  • Tags: CPython 3.9+, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for probdisasm-0.2.2-cp39-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 7d705cf8da6d8cacc47df0bafa659c794cf18c64d61e148e3e9295dc0427d19f
MD5 b94a523471191618201b5c6b061b720d
BLAKE2b-256 78b5a53ad5df80b2a802fc2a3edd2b0dd7eb6ce466aab7e27c35ca636e70d90d

See more details on using hashes here.

Provenance

The following attestation bundles were made for probdisasm-0.2.2-cp39-abi3-win_amd64.whl:

Publisher: pypi_publish.yml on Program-Understanding/probdisasm

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file probdisasm-0.2.2-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for probdisasm-0.2.2-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 234c28894e256a2697e49b6c0740e0371b80d774b36240d0679015b3b5f8aaa1
MD5 6480b9cac665069f9a152b6d42ef2710
BLAKE2b-256 8fd8b050d27637712b6aa6a88d0b65aa0bee09f86e5bcfb9a78f2fc3ddbd8746

See more details on using hashes here.

Provenance

The following attestation bundles were made for probdisasm-0.2.2-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: pypi_publish.yml on Program-Understanding/probdisasm

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file probdisasm-0.2.2-cp39-abi3-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for probdisasm-0.2.2-cp39-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 c8e617a42fb3406da009b0db0eb90c721d134d16c2474f9567c6c564be9e5389
MD5 72175fcf76e8e98b88a20b3792089c3c
BLAKE2b-256 28158330f7ccda0d4753db4622970ed9b5c76555a68cf9b194e6e214daaed403

See more details on using hashes here.

Provenance

The following attestation bundles were made for probdisasm-0.2.2-cp39-abi3-macosx_11_0_arm64.whl:

Publisher: pypi_publish.yml on Program-Understanding/probdisasm

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file probdisasm-0.2.2-cp39-abi3-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for probdisasm-0.2.2-cp39-abi3-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 397c25f88bc1a5d8f9661718dd56be04ec00e3a5abe8d26137165c6bf377110f
MD5 4513b81cc847d9d88b0f0c4595314b5f
BLAKE2b-256 421f3510d7419ee51f6ca530bc0b8973e19b962ab9e5909e7f271944572a4c3d

See more details on using hashes here.

Provenance

The following attestation bundles were made for probdisasm-0.2.2-cp39-abi3-macosx_10_12_x86_64.whl:

Publisher: pypi_publish.yml on Program-Understanding/probdisasm

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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