oletools
v0.60.1 open-sourceThe section your link pointed to isn't on oletools's page any more, so we've brought you to the top.
oletools is a package of Python tools to analyze Microsoft OLE2 files, such as MS Office documents, mainly for malware analysis, forensics and debugging.
olevba --show-pcode example.xlsm olevba --pcode malicious.xla msodde -r malware.docx oledir -r 'documents/*.zip' olevba --relaxed legacy_file.ppt olevba --deobf suspicious.doc
Summary
oletools is an open-source Python package for analyzing Microsoft OLE2 and OOXMLOOXMLAn ISO-standardized file format family for Office documents (Word, Excel, PowerPoint), maintained by Microsoft, that stores content as XML inside a ZIP archive, giving cyber tools a parseable, scriptable structure for document analysis. files — Office documents, MSI files, Outlook messages, RTF and XPS — mainly for malware analysis and forensics, and it is free to use. It runs as a set of command-line tools, most notably olevba, which extracts and deobfuscates VBA and Excel 4 (XLM) macros, alongside utilities for OLE objects, DDE links and file-format identification. It is aimed at malware analysts and forensic investigators who need to triage suspicious documents without opening them in Office, and it fills a niche category peer tools don't cover as directly: static analysis of the compound-file formats malicious documents are built on. Started in 2012 and maintained by 67 contributors, the project has slowed markedly, with just 6 commits and one release in the past year, that release now 780 days old.
oletools is a package of Python tools to analyze Microsoft OLE2 files, such as MS Office documents, mainly for malware analysis, forensics and debugging.
How oletools helps
Does this Office document contain macros, and are they hiding anything malicious?
extracts VBA and Excel 4 (XLM) code from the file, deobfuscates strings and expressions, and flags suspicious keywords like auto-exec triggers, shell calls or file-drop behavior, without opening the document in Office
Is this attachment actually the file type it claims to be?
identifies the underlying compound-file or OOXML structure and container format, catching mismatches between an extension and what the bytes actually contain
Could opening this spreadsheet or document leak data or fetch something over the network without a macro?
looks for DDE links embedded in the file that would trigger an external command or connection when opened
Is this suspicious document password-protected in a way that's hiding its payload?
detects standard Office encryption, applies known default passwords where applicable, and reports the password it found so the underlying content can be examined
How risky is this batch of documents before an analyst opens any of them?
runs a combined risk assessment per file, scoring indicators like macro presence, obfuscation, and object embedding so triage can be prioritized across many samples at once
Languages
Command line
No command matches.
| option | found in | since | description |
|---|
Values are placeholders taken from each option’s declared default. Nothing is executed here — the output shown is a recording of a run that already happened.
Score card
-
Shipping velocity releases a month, last 12 months
-
Documentation quality release-notes rubric, 0–100
-
Breaking-change discipline how rarely a release breaks users, and notice given
-
Maintenance risk quiet time against its own cadence, maintainers
-
Innovation & surface new capabilities, API and MCP surface
- Community health
-
Contributor trend distinct committers, this year against last
-
Maintainer concentration bus factor now against a year ago
-
Issue backlog trend issues closed per issue opened, 12 months
-
Responsiveness median time to a maintainer’s first reply
Nine scores for oletools, each built from the releases, notes and API history this site tracks — and, on Researcher and Business, where it stands among every measured tool in its category and how that has moved.
Score cards are part of every paid plan.
See plans → Already subscribed? Sign in →Trajectory
Blank means never measured; nothing here is a filled-in zero.
Peer standings are included with Researcher and Business. See how this tool ranks against its competitors, using data we don't publish anywhere else.
See plans →Each score is 0–100 on a published rubric, derived from data this site already shows. A dimension we cannot measure says so — it is never scored 0 and never enters a rank.
How this is scored
- Shipping velocity — releases a month over the last 12 months, on a log scale where 16 a month scores 100. Needs 3 releases in the window.
- Documentation quality — the release-notes rubric published on the analytics page, unchanged.
- Breaking-change discipline — the share of releases carrying a breaking change (none scores 100, half or more scores 0). Only projects that label breaking changes are measured: a clean record cannot be told from an unlabelled one.
- Maintenance risk — quiet time measured against the tool's own release cadence (quiet longer than 90 days and three typical gaps scores 0), plus the number of active maintainers and whether contributors are growing, where known. Higher is lower risk.
- Innovation & surface — new capabilities in the feature ledger this year, API and MCP operations added, and the share of commits that are features: the mean of whichever we hold.
- Community health (open-source tools only) — each is a direction, not a size: contributors this year against last, the bus factor now against a year ago, and issues closed per issue opened, where steady scores 50, doubled 100 and halved 0; plus the median time to a maintainer's first reply (an hour scores about 100, a month or more 0). A commercial card has no repository and carries none of the four.
- Documented delivery (commercial tools) — when a vendor's documented new capabilities have slowed against its own baseline, that counts against the overall standing as heavily as two low dimensions. Steady delivery, or too little history to judge, leaves the standing alone; it is never a sixth score.
- Open-source tools are scored on repository signals; commercial tools on their published changelog. Ranks compare tools within one category and one profile and need at least five measured peers; the overall standing needs three ranked dimensions. Best-in-breed or consolidator is a shape, not a quality, and is never scored.
Release-note detail over time
See how much detail oletools puts in its release notes, quarter by quarter, and compare it with tracked tools in the same category. This history uses up to ten retained, reviewed notes per tool; sparse or blank older quarters may reflect that limit.
Checking release-note history…
Releases
26 entries
No entries match these filters.
- May 20221
- June 20211
- May 20211
- October 20201
- December 20191
- May 20192
- April 20191
- June 20181
- February 20181
- June 20171
- November 20161
- June 20161
- May 20161
- April 20161
- March 20161
- September 20152
- June 20151
- May 20151
- March 20151
- February 20151
- January 20151
- August 20141
- November 20121
- October 20121
Project health
Issue, contributor and maintainer activity in decalage2/oletools, 2023-12 – 2026-11, as of 2026-11-03. Twelve-month figures first; the trend lines run the whole window.
- Contributors 1 −3 vs prior 12 months
- Maintainers 0 +0 joined · −1 left, last 12 months
- Bus factor 0 committers behind half the commits
- Community-filed 33% of issues opened, last 12 months
- Median time to close not measured issues closed, last 12 months
- Open backlog 468 of 664 issues ever filed
- Issues opened / month 0 · 0 communitymaintainers
- Open backlog 468
- Contributors / month 0
- Commits / month 0
- Stars 3,425
- features 67%
- other 33%
Counts from the project's public repository and git history; no individuals are identified. Maintainers are the committers covering 80% of the last year's commits. how we measure this
Libraries its release ships
What its latest release locks, checked against known advisories.None of its release's images build from a lockfile we can read.
Add the badge to your README
Maintain this project? The badge links readers straight to this page, so they can follow every release here.