Pipeline Stage 6
Engine.Scan.Unpacker @ 0x109C6068 — HandleUnpacker @ 0x10C92DC8
After PE emulation, two categories of content are extracted for recursive scanning
During emulation, the malware decrypts or decompresses its payload by overwriting its own PE sections. The engine detects these modifications by comparing each section's current state against the original image.
Dropper malware writes payloads to disk via CreateFileW/WriteFile. The emulator intercepts these calls and stores the data in a Virtual File System.
Static unpackers run first, then emulation-based unpacking, then VFS extraction
Format-specific unpackers recognized via RTTI in the binary
The most complex static unpacker, with dedicated decrypter classes for each encryption variant
Attributes and NID tokens that configure unpacking behavior
VDM database-level controls for the unpacking subsystem
The main dispatch function for Stage 6, revealed through RTTI analysis
Specialized decompression path for XZ-compressed payloads
When the emulator or static analysis detects an XZ-compressed stream, the dedicated XZ decompression path handles it separately from the general emulation-based unpacking.
The Canceler class provides timeout support, and the VfoWrapper wraps virtual file objects for decompressed output.
All data from reverse engineering mpengine.dll v1.1.24120.x