From 20ca1d2c8fae68b3f1a31b63e0b1e0810d9ec507 Mon Sep 17 00:00:00 2001 From: Vincent Brillault Date: Wed, 23 May 2018 21:19:41 +0200 Subject: [PATCH] oleform: unify *datablock processing --- oletools/oleform.py | 74 ++++++++++++++++++++++++++++++-------------------------------------------- 1 file changed, 30 insertions(+), 44 deletions(-) diff --git a/oletools/oleform.py b/oletools/oleform.py index 986fa89..b1e56d7 100644 --- a/oletools/oleform.py +++ b/oletools/oleform.py @@ -24,6 +24,11 @@ class Mask(object): def __getitem__(self, key): return self._val[self._names.index(key)] + def consume(self, stream, props): + for (name, size) in props: + if self[name]: + stream.read(size) + class FormPropMask(Mask): """FormPropMask: [MS-OFORMS] 2.2.10.2""" _size = 28 @@ -253,19 +258,14 @@ def consume_OleSiteConcreteControl(stream): tag_len = consume_CountOfBytesWithCompressionFlag(stream) if propmask.fID: id = stream.unpack('> 15 @@ -317,37 +315,24 @@ def consume_MorphDataControl(stream): propmask = MorphDataPropMask(stream.unpack('