Commit 450782767774a1db8700d89f8707b33f57072f21
1 parent
2f9505d9
olevba: fixed issue #148 for option --reveal
Showing
1 changed file
with
6 additions
and
3 deletions
oletools/olevba.py
| @@ -191,8 +191,9 @@ from __future__ import print_function | @@ -191,8 +191,9 @@ from __future__ import print_function | ||
| 191 | # 2017-02-07 PL: - temporary fix for issue #132 | 191 | # 2017-02-07 PL: - temporary fix for issue #132 |
| 192 | # - added keywords for Mac-specific macros (issue #130) | 192 | # - added keywords for Mac-specific macros (issue #130) |
| 193 | # 2017-03-08 PL: - fixed absolute imports | 193 | # 2017-03-08 PL: - fixed absolute imports |
| 194 | +# 2017-03-16 PL: - fixed issue #148 for option --reveal | ||
| 194 | 195 | ||
| 195 | -__version__ = '0.51dev2' | 196 | +__version__ = '0.51dev3' |
| 196 | 197 | ||
| 197 | #------------------------------------------------------------------------------ | 198 | #------------------------------------------------------------------------------ |
| 198 | # TODO: | 199 | # TODO: |
| @@ -1902,7 +1903,8 @@ def detect_dridex_strings(vba_code): | @@ -1902,7 +1903,8 @@ def detect_dridex_strings(vba_code): | ||
| 1902 | :param vba_code: str, VBA source code | 1903 | :param vba_code: str, VBA source code |
| 1903 | :return: list of str tuples (encoded string, decoded string) | 1904 | :return: list of str tuples (encoded string, decoded string) |
| 1904 | """ | 1905 | """ |
| 1905 | - from .thirdparty.DridexUrlDecoder.DridexUrlDecoder import DridexUrlDecode | 1906 | + # TODO: move this at the beginning of script |
| 1907 | + from oletools.thirdparty.DridexUrlDecoder.DridexUrlDecoder import DridexUrlDecode | ||
| 1906 | 1908 | ||
| 1907 | results = [] | 1909 | results = [] |
| 1908 | found = set() | 1910 | found = set() |
| @@ -2837,7 +2839,8 @@ class VBA_Parser(object): | @@ -2837,7 +2839,8 @@ class VBA_Parser(object): | ||
| 2837 | # based on the length of the encoded string, in reverse order: | 2839 | # based on the length of the encoded string, in reverse order: |
| 2838 | analysis = sorted(analysis, key=lambda type_decoded_encoded: len(type_decoded_encoded[2]), reverse=True) | 2840 | analysis = sorted(analysis, key=lambda type_decoded_encoded: len(type_decoded_encoded[2]), reverse=True) |
| 2839 | # normally now self.vba_code_all_modules contains source code from all modules | 2841 | # normally now self.vba_code_all_modules contains source code from all modules |
| 2840 | - deobf_code = self.vba_code_all_modules | 2842 | + # Need to collapse long lines: |
| 2843 | + deobf_code = vba_collapse_long_lines(self.vba_code_all_modules) | ||
| 2841 | for kw_type, decoded, encoded in analysis: | 2844 | for kw_type, decoded, encoded in analysis: |
| 2842 | if kw_type == 'VBA string': | 2845 | if kw_type == 'VBA string': |
| 2843 | #print '%3d occurences: %r => %r' % (deobf_code.count(encoded), encoded, decoded) | 2846 | #print '%3d occurences: %r => %r' % (deobf_code.count(encoded), encoded, decoded) |