Skip to main content

Vivisect Structure Definition/Parsing Library

Project description

vstruct2 ( Mark II )
===================

Vivisect Structure Definition/Parsing Library
|Build Status|

Installing
==========

.. code::

python3.4 -m pip install vstruct2

vstruct2 can now be installed via pip!

Additionally, a repository of existing structure definitions
is available as a seperate package named fracture.

Examples
========

Basic Parsing
-------------

Simple vstruct2 byte parsing:

.. code:: python

from vstruct2.types import *

class Foo(VStruct):

def __init__(self):
VStruct.__init__(self)
self.bar = uint32()
self.baz = vbytes(20)


foo = Foo()

# read in byts from somewhere...
foo.vsParse(byts)

# access struct fields by name
if foo.bar == 30:
print('bar == 30!')

# assign fields by name
foo.bar = 90

# emit modified bytes back out
byts = bytes(foo) # same as foo.vsEmit()

Parser Callbacks
----------------

WriteBack Bytes/Files
---------------------

vstruct2 supports "writeback" functionality for both files and mutable
bytearray types, allowing field assignments to change the underlying file
or bytearray immediately.

.. code:: python

class Foo(VStruct):

def __init__(self):
VStruct.__init__(self)
self.bar = uint32()
self.baz = uint32()


foo = Foo()

# ba is a bytearray
foo.vsParse(ba, writeback=True)

# if bar is 30, set baz to 99
if foo.bar == 30:
foo.baz = 99

# ba bytearray has now been modified

Enum Types
----------

.. |Build Status| image:: https://travis-ci.org/vivisect/vstruct2.svg
:target: https://travis-ci.org/vivisect/vstruct2

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

vstruct2-2.0.2-py3-none-any.whl (9.5 kB view details)

Uploaded Python 3

vstruct2-2.0.2-py2-none-any.whl (9.5 kB view details)

Uploaded Python 2

File details

Details for the file vstruct2-2.0.2-py3-none-any.whl.

File metadata

File hashes

Hashes for vstruct2-2.0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 8045ca13eda143177a883e1b62100782356d30e70085e5527e3062d28cb08096
MD5 c056226e9f59e380dd596c0bc694b957
BLAKE2b-256 7935b9bced7b73f2e8992e8d07f622353c45e981d32b9b10d18449b471fe27df

See more details on using hashes here.

File details

Details for the file vstruct2-2.0.2-py2-none-any.whl.

File metadata

File hashes

Hashes for vstruct2-2.0.2-py2-none-any.whl
Algorithm Hash digest
SHA256 420ae2f24f151f0a6f5d4e1de1d0e5b2f36a65a264dcae12b4f91d19c9abe33d
MD5 db4b0f0d215a0b952d20f735356df73d
BLAKE2b-256 72cfbb858f783dcbe7d3efeed409fa8ad4828a553853fc9af79f3794d1298b1e

See more details on using hashes here.

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