Techniques › T1620 › 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 source | Channel | Data component |
|---|---|---|
| WinEventLog:Sysmon | EventCode=1 | DC0032 Process Creation |
| WinEventLog:Sysmon | EventCode=7 | DC0016 Module Load |
| etw:Microsoft-Windows-DotNETRuntime | AssemblyLoad/ModuleLoad (Loader keyword) from Microsoft-Windows-DotNETRuntime | DC0021 OS API Execution |
| etw:Microsoft-Antimalware-Scan-Interface | Amsi/Script content + API verdicts during in-memory staging | DC0029 Script Execution |
| WinEventLog:Sysmon | EventCode=10 | DC0035 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.
| Field | Description |
|---|---|
ParentProcessWhitelist | Certain processes may legitimately use Assembly.Load(); defenders may whitelist known developer/admin tools. |
MemoryRegionPermissions | Detection logic can tune for RWX memory allocations; some legitimate tools may allocate with RW permissions only. |