summaryrefslogtreecommitdiff
path: root/python/examples
diff options
context:
space:
mode:
authorAndrew Lamoureux <andrew@vector35.com>2019-03-20 15:35:00 -0400
committerAndrew Lamoureux <andrew@vector35.com>2019-03-20 15:35:00 -0400
commita2d0b2cd66639e983b5a4fb191d8afe5cac77855 (patch)
tree8561a4193d6cb394839cf6aaef2642b095a4ea30 /python/examples
parentb5e86006a35910ff115d35998e84938e7d92a8ea (diff)
kaitai: more format compatibility, testing
Diffstat (limited to 'python/examples')
-rwxr-xr-xpython/examples/kaitai/__main__.py60
-rw-r--r--python/examples/kaitai/dex.py2
-rw-r--r--python/examples/kaitai/dicom.py2
-rw-r--r--python/examples/kaitai/ethernet_frame.py8
-rw-r--r--python/examples/kaitai/exif.py4
-rw-r--r--python/examples/kaitai/google_protobuf.py2
-rw-r--r--python/examples/kaitai/ipv4_packet.py4
-rw-r--r--python/examples/kaitai/ipv6_packet.py4
-rw-r--r--python/examples/kaitai/jpeg.py2
-rw-r--r--python/examples/kaitai/microsoft_network_monitor_v2.py8
-rw-r--r--python/examples/kaitai/openpgp_message.py18
-rw-r--r--python/examples/kaitai/packet_ppi.py4
-rw-r--r--python/examples/kaitai/pcap.py8
-rw-r--r--python/examples/kaitai/pcx_dcx.py2
-rw-r--r--python/examples/kaitai/protocol_body.py20
-rw-r--r--python/examples/kaitai/regf.py19
-rw-r--r--python/examples/kaitai/sqlite3.py2
-rw-r--r--python/examples/kaitai/standard_midi_file.py2
-rw-r--r--python/examples/kaitai/warcraft_2_pud.py2
-rw-r--r--python/examples/kaitai/windows_lnk_file.py2
20 files changed, 80 insertions, 95 deletions
diff --git a/python/examples/kaitai/__main__.py b/python/examples/kaitai/__main__.py
index b52f01cf..2541ef0c 100755
--- a/python/examples/kaitai/__main__.py
+++ b/python/examples/kaitai/__main__.py
@@ -118,36 +118,40 @@ if __name__ == '__main__':
print('importing every format...')
module_names = [
- 'cpio_old_le', 'gzip', 'lzh', 'rar', 'zip', 'monomakh_sapr_chg', 'bcd',
- 'vlq_base128_be', 'vlq_base128_le', 'dbf', 'gettext_mo', 'sqlite3', 'tsm',
- 'dex', 'dos_mz', 'elf', 'java_class', 'mach_o', 'microsoft_pe',
- 'python_pyc_27', 'swf', 'apm_partition_table', 'apple_single_double', 'cramfs',
- 'ext2', 'gpt_partition_table', 'iso9660', 'luks', 'lvm2',
- 'mbr_partition_table', 'tr_dos_image', 'vdi', 'vfat', 'vmware_vmdk',
- 'andes_firmware', 'ines', 'uimage', 'ttf', 'allegro_dat', 'doom_wad',
- 'dune_2_pak', 'fallout2_dat', 'fallout_dat', 'ftl_dat', 'gran_turismo_vol',
- 'heaps_pak', 'heroes_of_might_and_magic_agg', 'heroes_of_might_and_magic_bmp',
- 'quake_mdl', 'quake_pak', 'renderware_binary_stream', 'saints_row_2_vpp_pc',
- 'warcraft_2_pud', 'shapefile_index', 'shapefile_main', 'edid',
- 'mifare_classic', 'bmp', 'dicom', 'exif', 'exif_be', 'exif_le', 'gif', 'icc_4',
- 'ico', 'jpeg', 'pcx', 'pcx_dcx', 'png', 'psx_tim', 'tga', 'wmf', 'xwd',
- 'aix_utmp', 'glibc_utmp', 'systemd_journal', 'windows_evt_log', 'code_6502',
- 'avi', 'blender_blend', 'creative_voice_file', 'genmidi_op2', 'id3v1_1',
- 'id3v2_3', 'id3v2_4', 'magicavoxel_vox', 'ogg', 'quicktime_mov',
- 'standard_midi_file', 'stl', 'fasttracker_xm_module', 's3m', 'vp8_ivf', 'wav',
- 'bitcoin_transaction', 'dns_packet', 'ethernet_frame', 'hccap', 'hccapx',
- 'icmp_packet', 'ipv4_packet', 'ipv6_packet', 'microsoft_network_monitor_v2',
- 'packet_ppi', 'pcap', 'protocol_body', 'rtcp_payload', 'rtp_packet',
- 'tcp_segment', 'tls_client_hello', 'udp_datagram', 'nt_mdt', 'nt_mdt_pal',
- 'avantes_roh60', 'specpr', 'openpgp_message', 'ssh_public_key', 'asn1_der',
- 'bson', 'google_protobuf', 'microsoft_cfb', 'msgpack', 'ruby_marshal', 'regf',
- 'windows_lnk_file', 'windows_minidump', 'windows_resource_file',
- 'windows_shell_items', 'windows_systemtime'
+ 'aix_utmp', 'allegro_dat', 'andes_firmware', 'apm_partition_table',
+ 'apple_single_double', 'asn1_der', 'avantes_roh60', 'avi', 'bcd',
+ 'bitcoin_transaction', 'blender_blend', 'bmp', 'bson', 'code_6502', 'cpio_old_le',
+ 'cramfs', 'creative_voice_file', 'dbf', 'dex', 'dicom', 'dns_packet', 'doom_wad',
+ 'dos_mz', 'dune_2_pak', 'edid', 'elf', 'exif', 'exif_be', 'exif_le',
+ 'ext2', 'fallout2_dat', 'fallout_dat', 'fasttracker_xm_module', 'ftl_dat',
+ 'genmidi_op2', 'gettext_mo', 'gif', 'glibc_utmp', 'google_protobuf',
+ 'gpt_partition_table', 'gran_turismo_vol', 'gzip', 'hccap', 'hccapx', 'heaps_pak',
+ 'heroes_of_might_and_magic_agg', 'heroes_of_might_and_magic_bmp', 'icc_4',
+ 'icmp_packet', 'ico', 'id3v1_1', 'id3v2_3', 'id3v2_4', 'ines',
+ 'iso9660', 'java_class', 'jpeg', 'luks', 'lvm2', 'lzh', 'mach_o',
+ 'magicavoxel_vox', 'mbr_partition_table', 'microsoft_cfb',
+ 'microsoft_pe', 'mifare_classic',
+ 'monomakh_sapr_chg', 'msgpack', 'nt_mdt', 'nt_mdt_pal', 'ogg', 'openpgp_message',
+ 'pcx', 'pcx_dcx', 'png', 'psx_tim',
+ 'python_pyc_27', 'quake_mdl', 'quake_pak', 'quicktime_mov', 'rar', 'regf',
+ 'renderware_binary_stream', 'rtcp_payload', 'rtp_packet', 'ruby_marshal', 's3m',
+ 'saints_row_2_vpp_pc', 'shapefile_index', 'shapefile_main', 'specpr', 'sqlite3',
+ 'ssh_public_key', 'standard_midi_file', 'stl', 'swf', 'systemd_journal',
+ 'tcp_segment', 'tga', 'tls_client_hello', 'tr_dos_image', 'tsm', 'ttf',
+ 'udp_datagram', 'uimage', 'vdi', 'vfat', 'vlq_base128_be', 'vlq_base128_le',
+ 'vmware_vmdk', 'vp8_ivf', 'warcraft_2_pud', 'wav', 'windows_evt_log',
+ 'windows_lnk_file', 'windows_minidump', 'windows_resource_file',
+ 'windows_shell_items', 'windows_systemtime', 'wmf', 'xwd', 'zip',
]
+ if sys.version_info[0] == 3:
+ module_names += ['ipv4_packet', 'ipv6_packet', 'protocol_body',
+ 'microsoft_network_monitor_v2', 'packet_ppi', 'pcap',
+ 'ethernet_frame']
+
(npass, nfail) = (0,0)
- for module_name in module_names:
+ for module_name in sorted(module_names):
class_name = ''.join(map(lambda x: x.capitalize(), module_name.split('_')))
print('from %s import %s...' % (module_name, class_name), end='')
@@ -162,8 +166,8 @@ if __name__ == '__main__':
ntests = 1.0*npass + nfail
assert(ntests == len(module_names))
- print('passes %d of %d (rate: %f%%)' % (npass, ntests, npass/ntests))
- print('failures %d of %d (rate: %f%%)' % (nfail, ntests, nfail/ntests))
+ print('passes %d of %d (rate: %0.1f%%)' % (npass, ntests, 100*npass/ntests))
+ print('failures %d of %d (rate: %0.1f%%)' % (nfail, ntests, 100*nfail/ntests))
if cmd == 'dumpbinja':
fpath = sys.argv[2]
diff --git a/python/examples/kaitai/dex.py b/python/examples/kaitai/dex.py
index f2dad696..b90441bc 100644
--- a/python/examples/kaitai/dex.py
+++ b/python/examples/kaitai/dex.py
@@ -9,7 +9,7 @@ import collections
if parse_version(ks_version) < parse_version('0.7'):
raise Exception("Incompatible Kaitai Struct Python API: 0.7 or later is required, but you have %s" % (ks_version))
-from vlq_base128_le import VlqBase128Le
+from .vlq_base128_le import VlqBase128Le
class Dex(KaitaiStruct):
"""Android OS applications executables are typically stored in its own
format, optimized for more efficient execution in Dalvik virtual
diff --git a/python/examples/kaitai/dicom.py b/python/examples/kaitai/dicom.py
index 2bba1910..4aa2d592 100644
--- a/python/examples/kaitai/dicom.py
+++ b/python/examples/kaitai/dicom.py
@@ -1774,7 +1774,7 @@ class Dicom(KaitaiStruct):
alpha_lut_transfer_function = 2626576
icc_profile = 2629632
color_space = 2629634
- lossy_image_compression = 2629904
+ lossy_image_compression_ = 2629904
lossy_image_compression_ratio = 2629906
lossy_image_compression_method = 2629908
modality_lut_sequence = 2633728
diff --git a/python/examples/kaitai/ethernet_frame.py b/python/examples/kaitai/ethernet_frame.py
index e90c43c7..adbe60de 100644
--- a/python/examples/kaitai/ethernet_frame.py
+++ b/python/examples/kaitai/ethernet_frame.py
@@ -9,8 +9,8 @@ import collections
if parse_version(ks_version) < parse_version('0.7'):
raise Exception("Incompatible Kaitai Struct Python API: 0.7 or later is required, but you have %s" % (ks_version))
-from ipv4_packet import Ipv4Packet
-from ipv6_packet import Ipv6Packet
+from . import ipv4_packet
+from . import ipv6_packet
class EthernetFrame(KaitaiStruct):
"""Ethernet frame is a OSI data link layer (layer 2) protocol data unit
for Ethernet networks. In practice, many other networks and/or
@@ -51,12 +51,12 @@ class EthernetFrame(KaitaiStruct):
if _on == self._root.EtherTypeEnum.ipv4:
self._raw_body = self._io.read_bytes_full()
io = KaitaiStream(BytesIO(self._raw_body))
- self.body = Ipv4Packet(io)
+ self.body = ipv4_packet.Ipv4Packet(io)
self.body._read()
elif _on == self._root.EtherTypeEnum.ipv6:
self._raw_body = self._io.read_bytes_full()
io = KaitaiStream(BytesIO(self._raw_body))
- self.body = Ipv6Packet(io)
+ self.body = ipv6_packet.Ipv6Packet(io)
self.body._read()
else:
self.body = self._io.read_bytes_full()
diff --git a/python/examples/kaitai/exif.py b/python/examples/kaitai/exif.py
index f0a27b70..134ab3f6 100644
--- a/python/examples/kaitai/exif.py
+++ b/python/examples/kaitai/exif.py
@@ -8,8 +8,8 @@ import collections
if parse_version(ks_version) < parse_version('0.7'):
raise Exception("Incompatible Kaitai Struct Python API: 0.7 or later is required, but you have %s" % (ks_version))
-from exif_le import ExifLe
-from exif_be import ExifBe
+from .exif_le import ExifLe
+from .exif_be import ExifBe
class Exif(KaitaiStruct):
SEQ_FIELDS = ["endianness", "body"]
def __init__(self, _io, _parent=None, _root=None):
diff --git a/python/examples/kaitai/google_protobuf.py b/python/examples/kaitai/google_protobuf.py
index 27b4b2ef..74d8020e 100644
--- a/python/examples/kaitai/google_protobuf.py
+++ b/python/examples/kaitai/google_protobuf.py
@@ -9,7 +9,7 @@ from enum import Enum
if parse_version(ks_version) < parse_version('0.7'):
raise Exception("Incompatible Kaitai Struct Python API: 0.7 or later is required, but you have %s" % (ks_version))
-from vlq_base128_le import VlqBase128Le
+from .vlq_base128_le import VlqBase128Le
class GoogleProtobuf(KaitaiStruct):
"""Google Protocol Buffers (AKA protobuf) is a popular data
serialization scheme used for communication protocols, data storage,
diff --git a/python/examples/kaitai/ipv4_packet.py b/python/examples/kaitai/ipv4_packet.py
index ffc83f92..4ed02a64 100644
--- a/python/examples/kaitai/ipv4_packet.py
+++ b/python/examples/kaitai/ipv4_packet.py
@@ -8,7 +8,7 @@ import collections
if parse_version(ks_version) < parse_version('0.7'):
raise Exception("Incompatible Kaitai Struct Python API: 0.7 or later is required, but you have %s" % (ks_version))
-from protocol_body import ProtocolBody
+from . import protocol_body
class Ipv4Packet(KaitaiStruct):
SEQ_FIELDS = ["b1", "b2", "total_length", "identification", "b67", "ttl", "protocol", "header_checksum", "src_ip_addr", "dst_ip_addr", "options", "body"]
def __init__(self, _io, _parent=None, _root=None):
@@ -57,7 +57,7 @@ class Ipv4Packet(KaitaiStruct):
self._debug['body']['start'] = self._io.pos()
self._raw_body = self._io.read_bytes((self.total_length - self.ihl_bytes))
io = KaitaiStream(BytesIO(self._raw_body))
- self.body = ProtocolBody(self.protocol, io)
+ self.body = protocol_body.ProtocolBody(self.protocol, io)
self.body._read()
self._debug['body']['end'] = self._io.pos()
diff --git a/python/examples/kaitai/ipv6_packet.py b/python/examples/kaitai/ipv6_packet.py
index 3d828e64..70bac74f 100644
--- a/python/examples/kaitai/ipv6_packet.py
+++ b/python/examples/kaitai/ipv6_packet.py
@@ -8,7 +8,7 @@ import collections
if parse_version(ks_version) < parse_version('0.7'):
raise Exception("Incompatible Kaitai Struct Python API: 0.7 or later is required, but you have %s" % (ks_version))
-from protocol_body import ProtocolBody
+from . import protocol_body
class Ipv6Packet(KaitaiStruct):
SEQ_FIELDS = ["version", "traffic_class", "flow_label", "payload_length", "next_header_type", "hop_limit", "src_ipv6_addr", "dst_ipv6_addr", "next_header", "rest"]
def __init__(self, _io, _parent=None, _root=None):
@@ -44,7 +44,7 @@ class Ipv6Packet(KaitaiStruct):
self.dst_ipv6_addr = self._io.read_bytes(16)
self._debug['dst_ipv6_addr']['end'] = self._io.pos()
self._debug['next_header']['start'] = self._io.pos()
- self.next_header = ProtocolBody(self.next_header_type, self._io)
+ self.next_header = protocol_body.ProtocolBody(self.next_header_type, self._io)
self.next_header._read()
self._debug['next_header']['end'] = self._io.pos()
self._debug['rest']['start'] = self._io.pos()
diff --git a/python/examples/kaitai/jpeg.py b/python/examples/kaitai/jpeg.py
index 6fd5bcb0..54c28bb6 100644
--- a/python/examples/kaitai/jpeg.py
+++ b/python/examples/kaitai/jpeg.py
@@ -9,7 +9,7 @@ import collections
if parse_version(ks_version) < parse_version('0.7'):
raise Exception("Incompatible Kaitai Struct Python API: 0.7 or later is required, but you have %s" % (ks_version))
-from exif import Exif
+from .exif import Exif
class Jpeg(KaitaiStruct):
class ComponentId(Enum):
diff --git a/python/examples/kaitai/microsoft_network_monitor_v2.py b/python/examples/kaitai/microsoft_network_monitor_v2.py
index 3d0a14f6..be145e11 100644
--- a/python/examples/kaitai/microsoft_network_monitor_v2.py
+++ b/python/examples/kaitai/microsoft_network_monitor_v2.py
@@ -9,8 +9,8 @@ import collections
if parse_version(ks_version) < parse_version('0.7'):
raise Exception("Incompatible Kaitai Struct Python API: 0.7 or later is required, but you have %s" % (ks_version))
-from windows_systemtime import WindowsSystemtime
-from ethernet_frame import EthernetFrame
+from . import windows_systemtime
+from . import ethernet_frame
class MicrosoftNetworkMonitorV2(KaitaiStruct):
"""Microsoft Network Monitor (AKA Netmon) is a proprietary Microsoft's
network packet sniffing and analysis tool. It can save captured
@@ -151,7 +151,7 @@ class MicrosoftNetworkMonitorV2(KaitaiStruct):
self.mac_type = KaitaiStream.resolve_enum(self._root.Linktype, self._io.read_u2le())
self._debug['mac_type']['end'] = self._io.pos()
self._debug['time_capture_start']['start'] = self._io.pos()
- self.time_capture_start = WindowsSystemtime(self._io)
+ self.time_capture_start = windows_systemtime.WindowsSystemtime(self._io)
self.time_capture_start._read()
self._debug['time_capture_start']['end'] = self._io.pos()
self._debug['frame_table_ofs']['start'] = self._io.pos()
@@ -279,7 +279,7 @@ class MicrosoftNetworkMonitorV2(KaitaiStruct):
if _on == self._root.Linktype.ethernet:
self._raw_body = self._io.read_bytes(self.inc_len)
io = KaitaiStream(BytesIO(self._raw_body))
- self.body = EthernetFrame(io)
+ self.body = ethernet_frame.EthernetFrame(io)
self.body._read()
else:
self.body = self._io.read_bytes(self.inc_len)
diff --git a/python/examples/kaitai/openpgp_message.py b/python/examples/kaitai/openpgp_message.py
index f68af285..3b10b5bc 100644
--- a/python/examples/kaitai/openpgp_message.py
+++ b/python/examples/kaitai/openpgp_message.py
@@ -152,26 +152,26 @@ class OpenpgpMessage(KaitaiStruct):
private_experimental_algorithm_10 = 110
class SubpacketTypes(Enum):
- reserved = 0
- reserved = 1
+ reserved0 = 0
+ reserved1 = 1
signature_creation_time = 2
signature_expiration_time = 3
exportable_certification = 4
trust_signature = 5
regular_expression = 6
revocable = 7
- reserved = 8
+ reserved8 = 8
key_expiration_time = 9
placeholder_for_backward_compatibility = 10
preferred_symmetric_algorithms = 11
revocation_key = 12
- reserved = 13
- reserved = 14
- reserved = 15
+ reserved13 = 13
+ reserved14 = 14
+ reserved15 = 15
issuer = 16
- reserved = 17
- reserved = 18
- reserved = 19
+ reserved17 = 17
+ reserved18 = 18
+ reserved19 = 19
notation_data = 20
preferred_hash_algorithms = 21
preferred_compression_algorithms = 22
diff --git a/python/examples/kaitai/packet_ppi.py b/python/examples/kaitai/packet_ppi.py
index aa16a322..c281f784 100644
--- a/python/examples/kaitai/packet_ppi.py
+++ b/python/examples/kaitai/packet_ppi.py
@@ -9,7 +9,7 @@ import collections
if parse_version(ks_version) < parse_version('0.7'):
raise Exception("Incompatible Kaitai Struct Python API: 0.7 or later is required, but you have %s" % (ks_version))
-from ethernet_frame import EthernetFrame
+from . import ethernet_frame
class PacketPpi(KaitaiStruct):
"""PPI is a standard for link layer packet encapsulation, proposed as
generic extensible container to store both captured in-band data and
@@ -163,7 +163,7 @@ class PacketPpi(KaitaiStruct):
elif _on == self._root.Linktype.ethernet:
self._raw_body = self._io.read_bytes_full()
io = KaitaiStream(BytesIO(self._raw_body))
- self.body = EthernetFrame(io)
+ self.body = ethernet_frame.EthernetFrame(io)
self.body._read()
else:
self.body = self._io.read_bytes_full()
diff --git a/python/examples/kaitai/pcap.py b/python/examples/kaitai/pcap.py
index bf814663..80dc1d60 100644
--- a/python/examples/kaitai/pcap.py
+++ b/python/examples/kaitai/pcap.py
@@ -9,8 +9,8 @@ import collections
if parse_version(ks_version) < parse_version('0.7'):
raise Exception("Incompatible Kaitai Struct Python API: 0.7 or later is required, but you have %s" % (ks_version))
-from ethernet_frame import EthernetFrame
-from packet_ppi import PacketPpi
+from . import ethernet_frame
+from . import packet_ppi
class Pcap(KaitaiStruct):
"""PCAP (named after libpcap / winpcap) is a popular format for saving
network traffic grabbed by network sniffers. It is typically
@@ -219,12 +219,12 @@ class Pcap(KaitaiStruct):
if _on == self._root.Linktype.ppi:
self._raw_body = self._io.read_bytes(self.incl_len)
io = KaitaiStream(BytesIO(self._raw_body))
- self.body = PacketPpi(io)
+ self.body = packet_ppi.PacketPpi(io)
self.body._read()
elif _on == self._root.Linktype.ethernet:
self._raw_body = self._io.read_bytes(self.incl_len)
io = KaitaiStream(BytesIO(self._raw_body))
- self.body = EthernetFrame(io)
+ self.body = ethernet_frame.EthernetFrame(io)
self.body._read()
else:
self.body = self._io.read_bytes(self.incl_len)
diff --git a/python/examples/kaitai/pcx_dcx.py b/python/examples/kaitai/pcx_dcx.py
index 7c6376bc..03ab8ac9 100644
--- a/python/examples/kaitai/pcx_dcx.py
+++ b/python/examples/kaitai/pcx_dcx.py
@@ -8,7 +8,7 @@ import collections
if parse_version(ks_version) < parse_version('0.7'):
raise Exception("Incompatible Kaitai Struct Python API: 0.7 or later is required, but you have %s" % (ks_version))
-from pcx import Pcx
+from .pcx import Pcx
class PcxDcx(KaitaiStruct):
"""DCX is a simple extension of PCX image format allowing to bundle
many PCX images (typically, pages of a document) in one file. It saw
diff --git a/python/examples/kaitai/protocol_body.py b/python/examples/kaitai/protocol_body.py
index 951c1a82..33bcbddc 100644
--- a/python/examples/kaitai/protocol_body.py
+++ b/python/examples/kaitai/protocol_body.py
@@ -9,11 +9,11 @@ import collections
if parse_version(ks_version) < parse_version('0.7'):
raise Exception("Incompatible Kaitai Struct Python API: 0.7 or later is required, but you have %s" % (ks_version))
-from udp_datagram import UdpDatagram
-from icmp_packet import IcmpPacket
-from tcp_segment import TcpSegment
-from ipv4_packet import Ipv4Packet
-from ipv6_packet import Ipv6Packet
+from . import udp_datagram
+from . import icmp_packet
+from . import tcp_segment
+from . import ipv4_packet
+from . import ipv6_packet
class ProtocolBody(KaitaiStruct):
"""Protocol body represents particular payload on transport level (OSI
layer 4).
@@ -192,22 +192,22 @@ class ProtocolBody(KaitaiStruct):
self.body = self._root.NoNextHeader(self._io, self, self._root)
self.body._read()
elif _on == self._root.ProtocolEnum.ipv4:
- self.body = Ipv4Packet(self._io)
+ self.body = ipv4_packet.Ipv4Packet(self._io)
self.body._read()
elif _on == self._root.ProtocolEnum.udp:
- self.body = UdpDatagram(self._io)
+ self.body = udp_datagram.UdpDatagram(self._io)
self.body._read()
elif _on == self._root.ProtocolEnum.icmp:
- self.body = IcmpPacket(self._io)
+ self.body = icmp_packet.IcmpPacket(self._io)
self.body._read()
elif _on == self._root.ProtocolEnum.hopopt:
self.body = self._root.OptionHopByHop(self._io, self, self._root)
self.body._read()
elif _on == self._root.ProtocolEnum.ipv6:
- self.body = Ipv6Packet(self._io)
+ self.body = ipv6_packet.Ipv6Packet(self._io)
self.body._read()
elif _on == self._root.ProtocolEnum.tcp:
- self.body = TcpSegment(self._io)
+ self.body = tcp_segment.TcpSegment(self._io)
self.body._read()
self._debug['body']['end'] = self._io.pos()
diff --git a/python/examples/kaitai/regf.py b/python/examples/kaitai/regf.py
index de883bc3..6eb96b0d 100644
--- a/python/examples/kaitai/regf.py
+++ b/python/examples/kaitai/regf.py
@@ -10,25 +10,6 @@ if parse_version(ks_version) < parse_version('0.7'):
raise Exception("Incompatible Kaitai Struct Python API: 0.7 or later is required, but you have %s" % (ks_version))
class Regf(KaitaiStruct):
- """This spec allows to parse files used by Microsoft Windows family of
- operating systems to store parts of its "registry". "Registry" is a
- hierarchical database that is used to store system settings (global
- configuration, per-user, per-application configuration, etc).
-
- Typically, registry files are stored in:
-
- * System-wide: several files in `%SystemRoot%\System32\Config\`
- * User-wide:
- * `%USERPROFILE%\Ntuser.dat`
- * `%USERPROFILE%\Local Settings\Application Data\Microsoft\Windows\Usrclass.dat` (localized, Windows 2000, Server 2003 and Windows XP)
- * `%USERPROFILE%\AppData\Local\Microsoft\Windows\Usrclass.dat` (non-localized, Windows Vista and later)
-
- Note that one typically can't access files directly on a mounted
- filesystem with a running Windows OS.
-
- .. seealso::
- Source - https://github.com/libyal/libregf/blob/master/documentation/Windows%20NT%20Registry%20File%20(REGF)%20format.asciidoc
- """
SEQ_FIELDS = ["header", "hive_bins"]
def __init__(self, _io, _parent=None, _root=None):
self._io = _io
diff --git a/python/examples/kaitai/sqlite3.py b/python/examples/kaitai/sqlite3.py
index bb878099..1db1a375 100644
--- a/python/examples/kaitai/sqlite3.py
+++ b/python/examples/kaitai/sqlite3.py
@@ -9,7 +9,7 @@ import collections
if parse_version(ks_version) < parse_version('0.7'):
raise Exception("Incompatible Kaitai Struct Python API: 0.7 or later is required, but you have %s" % (ks_version))
-from vlq_base128_be import VlqBase128Be
+from .vlq_base128_be import VlqBase128Be
class Sqlite3(KaitaiStruct):
"""SQLite3 is a popular serverless SQL engine, implemented as a library
to be used within other applications. It keeps its databases as
diff --git a/python/examples/kaitai/standard_midi_file.py b/python/examples/kaitai/standard_midi_file.py
index bd6305a7..f4723352 100644
--- a/python/examples/kaitai/standard_midi_file.py
+++ b/python/examples/kaitai/standard_midi_file.py
@@ -9,7 +9,7 @@ from enum import Enum
if parse_version(ks_version) < parse_version('0.7'):
raise Exception("Incompatible Kaitai Struct Python API: 0.7 or later is required, but you have %s" % (ks_version))
-from vlq_base128_be import VlqBase128Be
+from .vlq_base128_be import VlqBase128Be
class StandardMidiFile(KaitaiStruct):
"""Standard MIDI file, typically knows just as "MID", is a standard way
to serialize series of MIDI events, which is a protocol used in many
diff --git a/python/examples/kaitai/warcraft_2_pud.py b/python/examples/kaitai/warcraft_2_pud.py
index 76908aad..760b0134 100644
--- a/python/examples/kaitai/warcraft_2_pud.py
+++ b/python/examples/kaitai/warcraft_2_pud.py
@@ -30,7 +30,7 @@ class Warcraft2Pud(KaitaiStruct):
computer = 1
passive_computer = 2
nobody = 3
- computer = 4
+ computer_ = 4
human = 5
rescue_passive = 6
rescue_active = 7
diff --git a/python/examples/kaitai/windows_lnk_file.py b/python/examples/kaitai/windows_lnk_file.py
index 6de2cb52..c1dca73b 100644
--- a/python/examples/kaitai/windows_lnk_file.py
+++ b/python/examples/kaitai/windows_lnk_file.py
@@ -9,7 +9,7 @@ import collections
if parse_version(ks_version) < parse_version('0.7'):
raise Exception("Incompatible Kaitai Struct Python API: 0.7 or later is required, but you have %s" % (ks_version))
-from windows_shell_items import WindowsShellItems
+from .windows_shell_items import WindowsShellItems
class WindowsLnkFile(KaitaiStruct):
"""Windows .lnk files (AKA "shell link" file) are most frequently used
in Windows shell to create "shortcuts" to another files, usually for