Commit 3287766170384d716dd8dcabbd70ae4ea78c6818
1 parent
73ed5d71
fix/clarify some output and add a comment
Showing
1 changed file
with
9 additions
and
3 deletions
oletools/olevba.py
| @@ -1515,7 +1515,7 @@ def _extract_vba(ole, vba_root, project_path, dir_path, relaxed=False): | @@ -1515,7 +1515,7 @@ def _extract_vba(ole, vba_root, project_path, dir_path, relaxed=False): | ||
| 1515 | vba_codec = 'cp%d' % projectcodepage_codepage | 1515 | vba_codec = 'cp%d' % projectcodepage_codepage |
| 1516 | log.debug("ModuleName = {0}".format(modulename_modulename)) | 1516 | log.debug("ModuleName = {0}".format(modulename_modulename)) |
| 1517 | log.debug("ModuleNameUnicode = {0}".format(uni_out(modulename_unicode_modulename_unicode))) | 1517 | log.debug("ModuleNameUnicode = {0}".format(uni_out(modulename_unicode_modulename_unicode))) |
| 1518 | - log.debug("StreamName = {0}".format(uni_out(modulestreamname_streamname))) | 1518 | + log.debug("StreamName = {0}".format(modulestreamname_streamname)) |
| 1519 | streamname_unicode = modulestreamname_streamname.decode(vba_codec) | 1519 | streamname_unicode = modulestreamname_streamname.decode(vba_codec) |
| 1520 | log.debug("StreamName.decode('%s') = %s" % (vba_codec, uni_out(streamname_unicode))) | 1520 | log.debug("StreamName.decode('%s') = %s" % (vba_codec, uni_out(streamname_unicode))) |
| 1521 | log.debug("StreamNameUnicode = {0}".format(uni_out(modulestreamname_streamname_unicode))) | 1521 | log.debug("StreamNameUnicode = {0}".format(uni_out(modulestreamname_streamname_unicode))) |
| @@ -1526,13 +1526,15 @@ def _extract_vba(ole, vba_root, project_path, dir_path, relaxed=False): | @@ -1526,13 +1526,15 @@ def _extract_vba(ole, vba_root, project_path, dir_path, relaxed=False): | ||
| 1526 | modulename_unicode_modulename_unicode, \ | 1526 | modulename_unicode_modulename_unicode, \ |
| 1527 | modulestreamname_streamname_unicode | 1527 | modulestreamname_streamname_unicode |
| 1528 | for stream_name in try_names: | 1528 | for stream_name in try_names: |
| 1529 | + # TODO: if olefile._find were less private, could replace this | ||
| 1530 | + # try-except with calls to it | ||
| 1529 | try: | 1531 | try: |
| 1530 | code_path = vba_root + u'VBA/' + stream_name | 1532 | code_path = vba_root + u'VBA/' + stream_name |
| 1531 | log.debug('opening VBA code stream %s' % uni_out(code_path)) | 1533 | log.debug('opening VBA code stream %s' % uni_out(code_path)) |
| 1532 | code_data = ole.openstream(code_path).read() | 1534 | code_data = ole.openstream(code_path).read() |
| 1533 | break | 1535 | break |
| 1534 | except IOError as ioe: | 1536 | except IOError as ioe: |
| 1535 | - log.debug('failed to open stream {} ({}), try other name' | 1537 | + log.debug('failed to open stream VBA/{} ({}), try other name' |
| 1536 | .format(uni_out(stream_name), ioe)) | 1538 | .format(uni_out(stream_name), ioe)) |
| 1537 | 1539 | ||
| 1538 | if code_data is None: | 1540 | if code_data is None: |
| @@ -2507,7 +2509,11 @@ class VBA_Parser(object): | @@ -2507,7 +2509,11 @@ class VBA_Parser(object): | ||
| 2507 | try: | 2509 | try: |
| 2508 | data = ole._open(d.isectStart, d.size).read() | 2510 | data = ole._open(d.isectStart, d.size).read() |
| 2509 | log.debug('Read %d bytes' % len(data)) | 2511 | log.debug('Read %d bytes' % len(data)) |
| 2510 | - log.debug(repr(data)) | 2512 | + if len(data) > 200: |
| 2513 | + log.debug('{}...[much more data]...{}' | ||
| 2514 | + .format(repr(data[:100]), repr(data[-50:]))) | ||
| 2515 | + else: | ||
| 2516 | + log.debug(repr(data)) | ||
| 2511 | if 'Attribut' in data: | 2517 | if 'Attribut' in data: |
| 2512 | log.debug('Found VBA compressed code') | 2518 | log.debug('Found VBA compressed code') |
| 2513 | self.contains_macros = True | 2519 | self.contains_macros = True |