Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Avoid repeated string join()s in analyze_macros() #750

Open
wants to merge 1 commit into
base: master
Choose a base branch
from

Commits on Mar 1, 2022

  1. Avoid repeated string join()s in analyze_macros()

    When an input file has on the order of ~100,000s of strings, `analyze_macros()` becomes very slow. Let's change this behavior to instead store extracted strings in their own structure, and add them to the module source afterwards instead of incrementally.
    
    Example with input file 4a87ee5ecd46a3fab735656b77d0e4fea8d3d72f3a6e0fb791999a2dfe8d59d2 (available on VirusTotal), using Python 3.9.10 on macOS:
    Time performance without this patch: `python3 ./oletools/olevba.py  > /dev/null  929.50s user 1896.56s system 58% cpu 1:20:32.49 total`
    Time performance with this patch: `python3 ./oletools/olevba.py  > /dev/null  5.81s user 2.43s system 95% cpu 8.605 total`
    Blacksyke committed Mar 1, 2022
    Configuration menu
    Copy the full SHA
    c8e2466 View commit details
    Browse the repository at this point in the history