Reverse Engineering Deep Dive
Note: If it wasn't obvious, this knowledge base was created as an LLM-driven experiment — the documentation, slide decks, and structural analysis were generated with significant AI assistance. The content will be iterated on and improved over time as findings are validated and refined through hands-on reverse engineering.
When Windows Defender scans a file, it passes through 13 distinct stages inside a single monolithic DLL. Each stage can detect threats, collect attributes, or recursively invoke the entire pipeline on extracted content.
The pipeline is sequential but has three recursive feedback loops: PE emulation unpacking, container extraction, and script deobfuscation. A single ZIP containing a macro-enabled Word doc could trigger hundreds of recursive scans.
Every address and string cited comes from reverse engineering the actual mpengine.dll binary.
How scan requests enter mpengine.dll — 90 exports, 2 primary dispatchers
Every stage a file passes through, from entry to verdict
Three stages can trigger re-scanning through the entire pipeline
After emulation, modified PE sections and VFS-dropped files are fed back through the full pipeline.
Each child file from ZIP, OLE2, PDF, etc. gets a full recursive scan. Depth-limited by DBVAR.
Each deobfuscated layer is scanned through Stages 3-10. Up to 32 passes per script.
What triggers each major pipeline branch?
pea_force_unpacking, pea_disable_static_unpacking
What passes between pipeline stages
All data from reverse engineering mpengine.dll v1.1.24120.x
Reverse engineering of mpengine.dll — Windows Defender scan pipeline internals