Skip to main content

Interact with .sdb (application compatibility shim database) files

Project description

sdbtool

A tool for converting Microsoft Application Compatibility Database (SDB) files to XML format.


PyPI - Version PyPI - License PyPI - Python Version
CI Publish Python Package codecov

Table of Contents

  1. Features
  2. Getting Started
  3. Contributing

Features

  • Parses SDB files used by Windows for application compatibility.
  • Converts SDB data into readable XML or JSON format.
  • Dump file attributes in SDB-recognizable format
  • Useful for analysis, migration, or documentation.
  • Pure Python and cross-platform - no native apphelp.dll dependency.

Getting Started

Installation

Sdbtool is available as sdbtool on PyPI.

Invoke sdbtool directly with uvx:

uvx sdbtool sdb2xml your.sdb                        # Convert the file 'your.sdb' to xml, and print it to the console
uvx sdbtool sdb2xml your.sdb --output your.xml      # Convert the file 'your.sdb' to xml, and write it to 'your.xml'
uvx sdbtool sdb2json your.sdb                       # Convert the file 'your.sdb' to json, and print it to the console
uvx sdbtool sdb2json your.sdb --output your.json    # Convert the file 'your.sdb' to json, and write it to 'your.json'
uvx sdbtool sdb2xml old.sdb --target-os 0501        # Resolve tag names as of Windows XP (for older databases)
uvx sdbtool attributes your.exe                     # Show the file attributes as recognized by apphelp in an XML-friendly format
uvx sdbtool info your.sdb                           # Show some details about the SDB file (version, description, ...)

Or install sdbtool with uv (recommended), pip, or pipx:

# With uv.
uv tool install sdbtool@latest  # Install sdbtool globally.

# With pip.
pip install sdbtool

# With pipx.
pipx install sdbtool

Updating an installed sdbtool to the latest version with uv:

# With uv.
uv tool upgrade sdbtool

# With pip.
pip install --upgrade sdbtool

# With pipx.
pipx upgrade sdbtool

Tag names and --target-os

Tag names are not constant across Windows versions: some are renamed (e.g. OS_PLATFORM became GUEST_TARGET_PLATFORM), and some are dropped (e.g. OS_SKU exists on XP but not on Windows 11). sdb2xml / sdb2json therefore accept --target-os <VERSION> to resolve names as of a particular Windows release; without it, names are resolved against the newest known table. An unknown tag is rendered as InvalidTag_0xXXXX.

Contributing

Contributions are welcome! Please open issues or submit pull requests.

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

sdbtool-0.9.3.tar.gz (28.2 kB view details)

Uploaded Source

Built Distribution

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

sdbtool-0.9.3-py3-none-any.whl (36.8 kB view details)

Uploaded Python 3

File details

Details for the file sdbtool-0.9.3.tar.gz.

File metadata

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

File hashes

Hashes for sdbtool-0.9.3.tar.gz
Algorithm Hash digest
SHA256 d9bff214b30578f6419b7e953b97d15bae6aba3f08e6b427cf5a356ba617fef3
MD5 e6477f82b2ea6f992102e9a26d637536
BLAKE2b-256 8e27e80b7e4aefa535973c2de3e64eb2ebe5aa4d463d8882dc4cb401cb855e50

See more details on using hashes here.

Provenance

The following attestation bundles were made for sdbtool-0.9.3.tar.gz:

Publisher: python-publish.yml on learn-more/sdbtool

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

File details

Details for the file sdbtool-0.9.3-py3-none-any.whl.

File metadata

  • Download URL: sdbtool-0.9.3-py3-none-any.whl
  • Upload date:
  • Size: 36.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for sdbtool-0.9.3-py3-none-any.whl
Algorithm Hash digest
SHA256 c3d6582babb1a80bfc4a0e89d0c29db6a39f94edb0e994ff24c44a0601ffcdee
MD5 52115ecc73d7bf9ce494707f2669d36f
BLAKE2b-256 72434b18b9fd17b448c3eed97abe23243675ff736737591697a632e78289df92

See more details on using hashes here.

Provenance

The following attestation bundles were made for sdbtool-0.9.3-py3-none-any.whl:

Publisher: python-publish.yml on learn-more/sdbtool

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