Aether

Indicators of Suspicion (IoS)

Aether adopts the following list of indicators of suspicious (IoS), with accurate scoring and severity.

Modified-code pipeline (L1–L5)

LabelSeverityMeaning
MODIFIED_CODE_HIGHHIGHExecutable IMAGE pages with hook prologue, on-disk diff, OR ≥ 25 % private-page ratio
MODIFIED_CODE_MEDMEDIUMCorroborated by another signal, OR ≥ 5 % ratio, OR ≥ 8 private pages
HOOK_PROLOGUEMEDIUMTrampoline byte pattern found at the start of a private code page
DISK_MEM_DIFFHIGHFirst bytes of an executable private page differ from the on-disk image
MISSING_PEBHIGHMEM_IMAGE allocation not present in the PEB module list (DLL hollowing)
PRIVATE_RWXHIGHPrivate memory with executable protection
CLR_INITINFOTarget process hosts the .NET CLR (filtering hint, not a finding)

Thread Start-Address Validation (L8)

LabelSeverityMeaning
TSAV_SHELLCODE_PRIVATECRITICALThread starts in MEM_PRIVATE + PAGE_EXECUTE_* (classic shellcode thread)
TSAV_SUSPENDED_RIPCRITICALSuspended thread’s Rip / Eip resolves to a suspicious region disagreeing with Win32StartAddress
TSAV_HOLLOWED_HOSTHIGHThread starts inside a MEM_IMAGE allocation missing from the PEB
TSAV_MODIFIED_HOSTHIGHThread starts inside an allocation already flagged by L1–L5
TSAV_STAGED_PRIVATE_RWHIGHThread starts in MEM_PRIVATE + PAGE_READWRITE (pre-VirtualProtect staging)
TSAV_MAPPED_NONPEMEDIUMThread starts in MEM_MAPPED non-PE section
TSAV_SPOOF_TRAMPOLINEMEDIUMThread Win32StartAddress equals a denylisted trampoline (LoadLibraryWRtlExitUserThread, etc.)
THREAD_START_ANOMALYHIGHAggregate count of suspicious threads (one per scan)

Encrypted Payload Detection

LabelSeverityMeaning
XOR_PE_HEADERCRITICALPE header found under single- or multi-byte XOR; DOS-stub anchor + MZ / e_lfanew / PE\0\0 consistency check all pass (Donut, CS sleep_mask, Sliver, sRDI)