kevmap

TechniquesT1620 › AN0838

AN0838 Analytic 0838

Windows · attack.mitre.org · ATT&CK Enterprise v19.2

<p>Detect anomalous chains of memory allocation and execution inside the same process (e.g., VirtualAlloc → memcpy → VirtualProtect → CreateThread). Unlike process injection, reflective code loading does not perform cross-process memory writes — the suspicious activity occurs entirely within the process’s own PID context.</p>
Detects
T1620 Reflective Code Loading
Part of
DET0300 Detection Strategy for Reflective Code Loading

Log sources and channels

Exactly as MITRE states them in x_mitre_log_source_references. Where a channel is vague, it is vague in the source; kevmap does not tidy it.

Log sourceChannelData component
WinEventLog:SysmonEventCode=1DC0032 Process Creation
WinEventLog:SysmonEventCode=7DC0016 Module Load
etw:Microsoft-Windows-DotNETRuntimeAssemblyLoad/ModuleLoad (Loader keyword) from Microsoft-Windows-DotNETRuntimeDC0021 OS API Execution
etw:Microsoft-Antimalware-Scan-InterfaceAmsi/Script content + API verdicts during in-memory stagingDC0029 Script Execution
WinEventLog:SysmonEventCode=10DC0035 Process Access

Mutable elements

Parameters MITRE marks as environment-specific. These are the knobs you are expected to tune; they are why an analytic is not a rule.

FieldDescription
ParentProcessWhitelistCertain processes may legitimately use Assembly.Load(); defenders may whitelist known developer/admin tools.
MemoryRegionPermissionsDetection logic can tune for RWX memory allocations; some legitimate tools may allocate with RW permissions only.