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
===================
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
Release history Release notifications | RSS feed
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
File details
Details for the file vstruct2-2.0.2-py3-none-any.whl
.
File metadata
- Download URL: vstruct2-2.0.2-py3-none-any.whl
- Upload date:
- Size: 9.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8045ca13eda143177a883e1b62100782356d30e70085e5527e3062d28cb08096 |
|
MD5 | c056226e9f59e380dd596c0bc694b957 |
|
BLAKE2b-256 | 7935b9bced7b73f2e8992e8d07f622353c45e981d32b9b10d18449b471fe27df |
File details
Details for the file vstruct2-2.0.2-py2-none-any.whl
.
File metadata
- Download URL: vstruct2-2.0.2-py2-none-any.whl
- Upload date:
- Size: 9.5 kB
- Tags: Python 2
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 420ae2f24f151f0a6f5d4e1de1d0e5b2f36a65a264dcae12b4f91d19c9abe33d |
|
MD5 | db4b0f0d215a0b952d20f735356df73d |
|
BLAKE2b-256 | 72cfbb858f783dcbe7d3efeed409fa8ad4828a553853fc9af79f3794d1298b1e |