Python-oletools Changelog ========================= - **2024-07-02 v0.60.2**: - olevba: - fixed a bug in open_slk (issue #797, PR #769) - fixed a bug due to new PROJECTCOMPATVERSION record in dir stream (PR #723, issues #700, #701, #725, #791, #808, #811, #833) - oleobj: fixed SyntaxError with Python 3.12 (PR #855), SyntaxWarning (PR #774) - rtfobj: fixed SyntaxError with Python 3.12 (PR #854) - clsid: added CLSIDs for MSI, Zed - ftguess: added MSI, PNG and OneNote formats - pyxswf: fixed python 3.12 compatibility (PR #841, issue #813) - setup/requirements: allow pyparsing 3 to solve install issues (PR #812, issue #762) - **2022-05-09 v0.60.1**: - olevba: - fixed a bug when calling XLMMacroDeobfuscator (PR #737) - removed keyword "sample" causing false positives - oleid: fixed OleID init issue (issue #695, PR #696) - oleobj: - added simple detection of CVE-2021-40444 initial stage - added detection for customUI onLoad - improved handling of incorrect filenames in OLE package (PR #451) - rtfobj: fixed code to find URLs in OLE2Link objects for Py3 (issue #692) - ftguess: - added PowerPoint and XPS formats (PR #716) - fixed issue with XPS and malformed documents (issue #711) - added XLSB format (issue #758) - improved logging with common module log_helper (PR #449) - **2021-06-02 v0.60**: - ftguess: new tool to identify file formats and containers (issue #680) - oleid: (issue #679) - each indicator now has a risk level - calls ftguess to identify file formats - calls olevba+mraptor to detect and analyse VBA+XLM macros - olevba: - when XLMMacroDeobfuscator is available, use it to extract and deobfuscate XLM macros - rtfobj: - use ftguess to identify file type of OLE Package (issue #682) - fixed bug in re_executable_extensions - crypto: added PowerPoint transparent password '/01Hannes Ruescher/01' (issue #627) - setup: XLMMacroDeobfuscator, xlrd2 and pyxlsb2 added as optional dependencies - **2021-05-07 v0.56.2**: - olevba: - updated plugin_biff to v0.0.22 to fix a bug (issues #647, #674) - olevba, mraptor: - added detection of Workbook_BeforeClose (issue #518) - rtfobj: - fixed bug when OLE package class name ends with null characters (issue #507, PR #648) - oleid: - fixed bug in check_excel (issue #584, PR #585) - clsid: - added several CLSIDs related to MS Office click-to-run issue CVE-2021-27058 - added checks to ensure that all CLSIDs are uppercase (PR #678) - **2021-04-02 v0.56.1**: - olevba: - fixed bug when parsing some malformed files (issue #629) - oleobj: - fixed bug preventing detection of links 'externalReference', 'frame', 'hyperlink' (issue #641, PR #670) - setup: - avoid installing msoffcrypto-tool when platform is PyPy+Windows (issue #473) - PyPI version is now a wheel package to improve installation and avoid antivirus false positives due to test files (issues #215, #398) - **2020-09-28 v0.56**: - olevba/mraptor: - added detection of trigger _OnConnecting - olevba: - updated plugin_biff to v0.0.17 to improve Excel 4/XLM macros parsing - added simple analysis of Excel 4/XLM macros in XLSM files (PR #569) - added detection of template injection (PR #569) - added detection of many suspicious keywords (PR #591 and #569, see https://www.certego.net/en/news/advanced-vba-macros/) - improved MHT detection (PR #532) - added --no-xlm option to disable Excel 4/XLM macros parsing (PR #532) - fixed bug when decompressing raw chunks in VBA (issue #575) - fixed bug with email package due to monkeypatch for MHT parsing (issue #602, PR #604) - fixed option --relaxed (issue #596, PR #595) - enabled relaxed mode by default (issues #477, #593) - fixed detect_vba_macros to always return VBA code as unicode on Python 3 (issues #455, #477, #587, #593) - replaced option --pcode by --show-pcode and --no-pcode, replaced optparse by argparse (PR #479) - oleform: improved form parsing (PR #532) - oleobj: "Ole10Native" is now case insensitive (issue #541) - clsid: added PDF (issue #552), Microsoft Word Picture (issue #571) - ppt_parser: fixed bug on Python 3 (issues #177, #607, PR #450) - **2019-12-16 v0.55.2**: - rtfobj: - removed "\rtf" from the list of destination control words (issue #522) - fixed process_file to detect Equation class (issue #525) - **2019-12-03 v0.55**: - olevba: - added support for SLK files and XLM macro extraction from SLK - VBA Stomping detection - integrated pcodedmp to extract and disassemble P-code - detection of suspicious keywords and IOCs in P-code - new option --pcode to display P-code disassembly - improved detection of auto execution triggers - rtfobj: added URL carver for CVE-2017-0199 - better handling of unicode for systems with locale that does not support UTF-8, e.g. LANG=C (PR #365) - tests: - test files can now be encrypted, to avoid antivirus alerts (PR #217, issue #215) - tests that trigger antivirus alerts have been temporarily disabled (issue #215) - **2019-05-22 v0.54.2**: - msoffcrypto-tool is now a required dependency (simplified install) - plugin_biff: fixed issues #428, #434 and #444, improved Python 3 support - olevba, msodde, crypto: improved handling of encrypted files (PR #441) - olevba: initialize VBA_Parser.xlm_macros (fixes #433) - various fixes (PR #446) - olevba and msodde now handle documents encrypted with common passwords such as 123, 1234, 4321, 12345, 123456, VelvetSweatShop automatically. - **2019-04-09 v0.54.1**: - olevba: decompress_stream now accepts both bytes and bytearray (fixes #422) - **2019-04-04 v0.54**: - olevba, msodde: added support for encrypted MS Office files - olevba: added detection and extraction of XLM/XLF Excel 4 macros (thanks to plugin_biff from Didier Stevens' oledump) - olevba, mraptor: added detection of VBA running Excel 4 macros - olevba: detect and display special characters such as backspace - olevba: colorized output showing suspicious keywords in the VBA code - olevba, mraptor: full Python 3 compatibility, no separate olevba3/mraptor3 anymore - olevba: improved handling of code pages and unicode - olevba: fixed a false-positive in VBA macro detection - rtfobj: improved OLE Package handling, improved Equation object detection - oleobj: added detection of external links to objects in OpenXML - replaced third party packages by PyPI dependencies - **2018-06-13 v0.53.1**: - rtfobj: fixed issue #316, whitespace after \bin on Python 3 - olevba3: fixed #320, chr instead of unichr on python 3 - olevba3: fixed #322, import reduce from functools - **2018-05-30 v0.53**: - olevba and mraptor can now parse Word/PowerPoint 2007+ pure XML files (aka Flat OPC format) - improved support for VBA forms in olevba (oleform) - rtfobj now displays the CLSID of OLE objects, which is the best way to identify them. Known-bad CLSIDs such as MS Equation Editor are highlighted in red. - Updated rtfobj to handle obfuscated RTF samples. - rtfobj now handles the "\\'" obfuscation trick seen in recent samples such as https://twitter.com/buffaloverflow/status/989798880295444480, by emulating the MS Word bug described in https://securelist.com/disappearing-bytes/84017/ - msodde: improved detection of DDE formulas in CSV files - oledir now displays the tree of storage/streams, along with CLSIDs and their meaning. - common.clsid contains the list of known CLSIDs, and their links to CVE vulnerabilities when relevant. - oleid now detects encrypted OpenXML files - fixed bugs in oleobj, rtfobj, oleid, olevba - **2018-03-11 v0.52.2**: - Fixed issue #265 (error when installing on Python 3) - **2018-02-18 v0.52**: - New tool [msodde](https://github.com/decalage2/oletools/wiki/msodde) to detect and extract DDE links from MS Office files, RTF and CSV; - Fixed bugs in olevba, rtfobj and olefile, to better handle malformed/obfuscated files; - Performance improvements in olevba and rtfobj; - VBA form parsing in olevba; - Office 2007+ support in oleobj. - 2017-06-29 v0.51: - added the [oletools cheatsheet](https://github.com/decalage2/oletools/blob/master/cheatsheet/oletools_cheatsheet.pdf) - improved [rtfobj](https://github.com/decalage2/oletools/wiki/rtfobj) to handle malformed RTF files, detect vulnerability CVE-2017-0199 - olevba: improved deobfuscation and Mac files support - [mraptor](https://github.com/decalage2/oletools/wiki/mraptor): added more ActiveX macro triggers - added [DocVarDump.vba](https://github.com/decalage2/oletools/blob/master/oletools/DocVarDump.vba) to dump document variables using Word - olemap: can now detect and extract [extra data at end of file](http://decalage.info/en/ole_extradata), improved display - oledir, olemeta, oletimes: added support for zip files and wildcards - many [bugfixes](https://github.com/decalage2/oletools/milestone/3?closed=1) in all the tools - improved Python 2+3 support - 2016-11-01 v0.50: all oletools now support python 2 and 3. - olevba: several bugfixes and improvements. - mraptor: improved detection, added mraptor_milter for Sendmail/Postfix integration. - rtfobj: brand new RTF parser, obfuscation-aware, improved display, detect executable files in OLE Package objects. - setup: now creates handy command-line scripts to run oletools from any directory. - 2016-06-10 v0.47: [olevba](https://github.com/decalage2/oletools/wiki/olevba) added PPT97 macros support, improved handling of malformed/incomplete documents, improved error handling and JSON output, now returns an exit code based on analysis results, new --relaxed option. [rtfobj](https://github.com/decalage2/oletools/wiki/rtfobj): improved parsing to handle obfuscated RTF documents, added -d option to set output dir. Moved repository and documentation to GitHub. - 2016-04-19 v0.46: [olevba](https://github.com/decalage2/oletools/wiki/olevba) does not deobfuscate VBA expressions by default (much faster), new option --deobf to enable it. Fixed color display bug on Windows for several tools. - 2016-04-12 v0.45: improved [rtfobj](https://github.com/decalage2/oletools/wiki/rtfobj) to handle several [anti-analysis tricks](http://www.decalage.info/rtf_tricks), improved [olevba](https://github.com/decalage2/oletools/wiki/olevba) to export results in JSON format. - 2016-03-11 v0.44: improved [olevba](https://github.com/decalage2/oletools/wiki/olevba) to extract and analyse strings from VBA Forms. - 2016-03-04 v0.43: added new tool [MacroRaptor](https://github.com/decalage2/oletools/wiki/mraptor) (mraptor) to detect malicious macros, bugfix and slight improvements in [olevba](https://github.com/decalage2/oletools/wiki/olevba). - 2016-02-07 v0.42: added two new tools oledir and olemap, better handling of malformed files and several bugfixes in [olevba](https://github.com/decalage2/oletools/wiki/olevba), improved display for [olemeta](https://github.com/decalage2/oletools/wiki/olemeta). - 2015-09-22 v0.41: added new --reveal option to [olevba](https://github.com/decalage2/oletools/wiki/olevba), to show the macro code with VBA strings deobfuscated. - 2015-09-17 v0.40: Improved macro deobfuscation in [olevba](https://github.com/decalage2/oletools/wiki/olevba), to decode Hex and Base64 within VBA expressions. Display printable deobfuscated strings by default. Improved the VBA_Parser API. Improved performance. Fixed [issue #23](https://github.com/decalage2/oletools/issues/23) with sys.stderr. - 2015-06-19 v0.12: [olevba](https://github.com/decalage2/oletools/wiki/olevba) can now deobfuscate VBA expressions with any combination of Chr, Asc, Val, StrReverse, Environ, +, &, using a VBA parser built with [pyparsing](http://pyparsing.wikispaces.com). New options to display only the analysis results or only the macros source code. The analysis is now done on all the VBA modules at once. - 2015-05-29 v0.11: Improved parsing of MHTML and ActiveMime/MSO files in [olevba](https://github.com/decalage2/oletools/wiki/olevba), added several suspicious keywords to VBA scanner (thanks to @ozhermit and Davy Douhine for the suggestions) - 2015-05-06 v0.10: [olevba](https://github.com/decalage2/oletools/wiki/olevba) now supports Word MHTML files with macros, aka "Single File Web Page" (.mht) - see [issue #10](https://github.com/decalage2/oletools/issues/10) for more info - 2015-03-23 v0.09: [olevba](https://github.com/decalage2/oletools/wiki/olevba) now supports Word 2003 XML files, added anti-sandboxing/VM detection - 2015-02-08 v0.08: [olevba](https://github.com/decalage2/oletools/wiki/olevba) can now decode strings obfuscated with Hex/StrReverse/Base64/Dridex and extract IOCs. Added new triage mode, support for non-western codepages with olefile 0.42, improved API and display, several bugfixes. - 2015-01-05 v0.07: improved [olevba](https://github.com/decalage2/oletools/wiki/olevba) to detect suspicious keywords and IOCs in VBA macros, can now scan several files and open password-protected zip archives, added a Python API, upgraded OleFileIO_PL to olefile v0.41 - 2014-08-28 v0.06: added [olevba](https://github.com/decalage2/oletools/wiki/olevba), a new tool to extract VBA Macro source code from MS Office documents (97-2003 and 2007+). Improved [documentation](https://github.com/decalage2/oletools/wiki) - 2013-07-24 v0.05: added new tools [olemeta](https://github.com/decalage2/oletools/wiki/olemeta) and [oletimes](https://github.com/decalage2/oletools/wiki/oletimes) - 2013-04-18 v0.04: fixed bug in rtfobj, added documentation for [rtfobj](https://github.com/decalage2/oletools/wiki/rtfobj) - 2012-11-09 v0.03: Improved [pyxswf](https://github.com/decalage2/oletools/wiki/pyxswf) to extract Flash objects from RTF - 2012-10-29 v0.02: Added [oleid](https://github.com/decalage2/oletools/wiki/oleid) - 2012-10-09 v0.01: Initial version of [olebrowse](https://github.com/decalage2/oletools/wiki/olebrowse) and pyxswf See also the changelog in each source file for more details.
Memory