Skip to main content

Parse .NET executable files.

Project description

dnfile

https://img.shields.io/pypi/v/dnfile.svg

Parse .NET executable files.

  • Free software: MIT license

Features

  • Parse as much as we can, even if the file is partially malformed.

  • Easy to use. Developed with IDE autocompletion in mind.

Quick Start

pip install dnfile

Then create a simple program that loads a .NET binary, parses it, and displays information about the streams and Metadata Tables.

import sys
import dnfile

filepath = sys.argv[1]

pe = dnfile.dnPE(filepath)
pe.print_info()

Everything is an object, and raw structure values are stored in an object’s “struct” attribute. The CLR directory entry object is accessible from the “net” attribute of a dnPE object.

pe = dnfile.dnPE(FILEPATH)

# access the directory entry raw structure values
pe.net.struct

# access the metadata raw structure values
pe.net.metadata.struct

# access the streams
for s in pe.net.metadata.streams_list:
    if isinstance(s, dnfile.stream.MetaDataTables):
        # how many Metadata tables are defined in the binary?
        num_of_tables = len(s.tables_list)

# the first Metadata tables stream can also be accessed by a shortcut
num_of_tables = len(pe.net.mdtables.tables_list)

TODO

  • CI

  • Documentation on readthedocs

Credits

This package was created with Cookiecutter and the audreyr/cookiecutter-pypackage project template.

History

0.5.0 (2021-01-29)

  • First release.

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

dnfile-0.7.0.tar.gz (28.3 kB view details)

Uploaded Source

Built Distribution

dnfile-0.7.0-py2.py3-none-any.whl (30.6 kB view details)

Uploaded Python 2 Python 3

File details

Details for the file dnfile-0.7.0.tar.gz.

File metadata

  • Download URL: dnfile-0.7.0.tar.gz
  • Upload date:
  • Size: 28.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.3.0 pkginfo/1.6.1 requests/2.24.0 setuptools/53.0.0 requests-toolbelt/0.9.1 tqdm/4.51.0 CPython/3.6.9

File hashes

Hashes for dnfile-0.7.0.tar.gz
Algorithm Hash digest
SHA256 84e7fb0af01a48390c400d1a81fef0b1df66741cebd030e8393ad28d53998e17
MD5 7638e1be0bfa7d688976dae227ae767b
BLAKE2b-256 b2f6c266ea6a48b2fd8c7b216cefdfcf57a86045668fa25c9f9b9cc567d08531

See more details on using hashes here.

Provenance

File details

Details for the file dnfile-0.7.0-py2.py3-none-any.whl.

File metadata

  • Download URL: dnfile-0.7.0-py2.py3-none-any.whl
  • Upload date:
  • Size: 30.6 kB
  • Tags: Python 2, Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.3.0 pkginfo/1.6.1 requests/2.24.0 setuptools/53.0.0 requests-toolbelt/0.9.1 tqdm/4.51.0 CPython/3.6.9

File hashes

Hashes for dnfile-0.7.0-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 59c21b2c460a61932eb6a7eef10fd4051778e779dd7f8f935fadec9abfd4f38f
MD5 657c27cc28f40ff1ec5214c7d34cf9e9
BLAKE2b-256 27296fc6ba86f73f9ea80aa01cedccc65c453814e5e5534a5c57080f421eee29

See more details on using hashes here.

Provenance

Supported by

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