Skip to content

Eimeria: five layers from RAR5 to RunPE

Kirk
8 min read
malwareratloaderdarkgateautoitreverse-engineering
On this page

Eimeria wraps five layers of obfuscation around a skeleton crew: one RAT, one C2 endpoint, and enough staging to make a DarkGate loader jealous. The delivery chain starts as a RAR5 archive on Dedik Services Ltd infrastructure (UK-registered ASN, host geolocated to Frankfurt). It unfolds through a signed carrier DLL side-load, a hidden AES engine inside a fake zlib DLL, an IExpress self-extracting archive, AutoIt process hollowing, and a final .NET C2 beacon.

No existing YARA rules covered this chain. Triage assigned the family label Eimeria on May 8, 2026.


Sample overview

FieldValue
Archive SHA256c872cd101d9c2a773f08558dde7b716161cf977d4aa99c2347c0269423434f8c
Archive typeRAR5
Submission2026-05-08 on Triage (260508-n6jeqagv2w)
Triage score10/10 (dsclock.exe, zlibwapi.dll)
VirusTotal1/74 (TrendMicro-HouseCall: Trojan.Win32.Gen.TL0101DN26ZN)
Family labeleimeria (Triage-assigned)
C2 endpointws://94.26.90.139:3006
ProviderDedik Services Ltd (AS207043)
C2 VT11/92 malicious
IPinfo geoFrankfurt am Main, Hesse, DE (50.1155, 8.6842)
LivenessConfirmed at intake (nc -vz succeeded)

Individual file VT hits:

  • dsclock.exe (signed carrier): 0/70
  • zlibwapi.dll (hidden loader): 4/68 (Bkav, APEX, TrendMicro, Cynet)
  • msbuilder64.dll (encrypted payload): 0/61

Layer 0: the RAR5 bundle

The original submission is a RAR5 archive. bsdtar extracted four files under jjez/:

FileSizeTypeTriage score
dsclock.exe1,679,312PE32 GUI x86, signed10
libcurl.dll362,496PE32 DLL x863
msbuilder64.dll4,652,720Data (max-entropy)1
zlibwapi.dll93,696PE32 DLL x8610

RAR entry timestamps are 2026-04-20 17:37. The .exe + .dll layout under a generic jjez/ directory signals DLL side-loading. libcurl.dll is a legitimate dependency for dsclock.exe network functions. Not malicious, but necessary for the carrier to look real.

Layer 1: the signed carrier and the zlib DLL that was not

dsclock.exe is the carrier. It has been on VirusTotal since 2022 with 0/70 detections and shows no malicious behaviour on its own. It is Authenticode-signed by Duality Software Co. Ltd. (Saint Petersburg, Russia) -- a legitimate Russian software certificate with 0% detection across 143 known files -- and was compiled with a PDB path of O:\Projects\dsclock\Release\DSClock.x86.pdb. It imports libcurl functions like a normal clock utility would.

The attack vector is DLL side-loading. Both files sit together in jjez/. When dsclock.exe runs, Windows loads zlibwapi.dll from the same directory before checking system paths. Same technique as dropping a malicious version.dll next to a signed executable.

zlibwapi.dll is the first surprise. It exports the usual zlib and minizip entry points, but hidden in its .text section is an AES-CBC decryption engine with its own SBOX table at offset 0xdf80 and RCON values at 0xe080. Static capability triage reports PE header parsing, PE section enumeration, CreateProcess, BCryptGenRandom, file I/O, and Base64. None of that belongs in a zlib wrapper. It is not a compression library. It is a deception library.

The AES decrypts the third file in the bundle: msbuilder64.dll.

AES detailValue
AlgorithmAES-128-CBC
IVFirst 16 bytes of msbuilder64.dll
SBOX location0xdf80 (confirmation: starts 637c777b)
RCON location0xe080
Key materialNot stored as plaintext; runtime-derived or obfuscated

Layer 2: AES-CBC and the IExpress surprise

msbuilder64.dll is 4,652,720 bytes of what the file command calls data. The byte distribution is flat: every value 0x00-0xFF appears with roughly equal frequency. The first 16 bytes are the AES-CBC IV, prepended to the ciphertext.

Decryption (cross-referenced against Triage execution trace) reveals a PE32+ executable of the same size. The decrypted file matches an IExpress self-extracting archive. Capsule summary: the big encrypted blob was hiding a setup executable.

The embedded CAB file sits at IExpress stub offset 0x2a830: 4,478,592 bytes containing 26 files.

Layer 3: IExpress spills 26 decoy files

The IExpress archive extracts 19 .potm decoys and seven extensionless binary blobs:

Decoys: Bus, Centre, Code, Conference, Cost, Development, Dream, Fuel, Plant, Process, Reference, Relationship, Sight, Speed, St, Station, Supply, Technology, Unit

Blobs: Beach, Election, Light, Name, Owner, Prince, Resistance

These are PowerPoint-shaped rocks. There are no slides, no macros, no presentations -- all 26 are encrypted binary blobs dressed in a .potm costume. The names appear to be randomly chosen dictionary words.

At runtime, two additional files appear on disk: Deal.exe (1,107,552 bytes) and bMgXiqSim (3,967,774 bytes). Deal.exe is the AutoIt-compiled RunPE loader. bMgXiqSim is a concatenated bundle of the IExpress contents, repackaged in the same encrypted format.

Layer 4: AutoIt, RC4, LZNT1, and process hollowing

Deal.exe is the business end. Compiled with AutoIt3, it embeds both the AutoIt runtime and a 24,773-line compiled pcode script. Static capability output flags AutoIt and warns that detected capabilities may be runtime noise. The pcode disagrees.

The AutoIt script implements a full RunPE (process hollowing) loader:

  1. Restore ntdll -- loads a clean copy of ntdll.dll from the filesystem, overwriting userland EDR hooks before any injection runs.

  2. RC4 decrypt -- decrypts a 2,398,823-byte hex blob using key wNDRKtWS12MEvmD4jr3ZyvqQTviBYboE5Ce.

  3. LZNT1 decompress -- decompresses the RC4 output via ntdll!RtlDecompressBuffer (LZNT1 format 2, big-endian block headers with 2-bit signature).

  4. Select injection target -- enumerates running processes and selects from explorer.exe, svchost.exe, or taskhostw.exe.

  5. Hollow and inject -- CreateProcess suspended, NtUnmapViewOfSection, VirtualAllocEx, WriteProcessMemory, fix imports, apply relocations, SetThreadContext, ResumeThread.

  6. Architecture detection -- handles x86 and x64 targets differently, and detects .NET assemblies for alternate handling.

The final injected payload is an 8,355-byte PE with MZ and PE headers present. The section table needs fixup, but the content is a .NET assembly that connects to ws://94.26.90.139:3006.

Anti-analysis

The AutoIt loader runs ntdll restoration (detailed in Layer 4 step 1) alongside these additional checks:

CheckMechanism
Natural delay28-second delay before any malicious behaviour
Anti-emulationPi calculation: 1,048,576 iterations of sum(1/n^2), checks sqrt(sum*6) > 3.1415.
Sleep checkCompares real vs emulated sleep duration
Stress testCPU/memory stress test to detect thin VPS
Memory purgeCalls EmptyWorkingSet to reduce memory scanning surface
Secure zeroingRtlZeroMemory on sensitive buffers after use

Persistence

MechanismDetail
Run keyHKCU\...\Run\ReportFootballHost_EXX
File copyAutoIt runtime -> AppData\Local\Material\ReportFootballHost\KitchenTaylor.exe
Script copyPcode -> AppData\Local\Material\ReportFootballHost\HorseLiterature.a3x
Task SchedulerMaterial_ReportFootballHost_Startup (logon trigger)
DirectoryAppData\Local\Material\ReportFootballHost (hidden + system attributes)

C2 protocol

DetailValue
Endpointws://94.26.90.139:3006
ProviderDedik Services Ltd (AS207043)
TransportTCP, WebSocket (ws:// schema from config extraction)
LivenessConfirmed at intake, retry pattern in sandbox (6+ flows, 260 bytes TX, 0 RX)
DNSNone observed -- hardcoded IP

The C2 was live on 2026-05-12 20:19 UTC via nc -vz 94.26.90.139 3006. Triage sandbox reached it but received no response bytes.

Lineage

Eimeria is a Triage-assigned label, not a known public family. The closest comparable family is DarkGate, which also uses AutoIt + RC4 + RunPE hollowing with ntdll restoration. The architectural differences are significant:

  • Eimeria uses five delivery layers (RAR5 -> signed EXE -> zlib DLL -> IExpress -> AutoIt). DarkGate typically ships as a single AutoIt script.
  • The signed carrier uses a legitimate Russian software certificate (Duality Software Co. Ltd.).
  • The zlibwapi.dll disguise (AES hidden inside a legitimate zlib DLL) is novel.
  • WebSocket C2 instead of DarkGate HTTP/HTTPS.
  • RAR5 initial container is uncommon for this style of loader.

Someone built this. They knew DarkGate's playbook but wrote their own. The signed certificate, multi-layer staging, and WebSocket C2 point to a deliberate build, not a commodity toolkit.


IOC summary

Network

TypeValueContext
IP:Port94.26.90.139:3006C2 WebSocket endpoint

Hashes

FileSHA256
RAR5 archivec872cd101d9c2a773f08558dde7b716161cf977d4aa99c2347c0269423434f8c
dsclock.exe62fdad7df8fd7bc2b211c2de06c002831b36987b48a943758432f25006661578
zlibwapi.dll53abc3c2f3e919ecd84724439b4d4fb679857316c6af91987e6db1dde9e8a198
msbuilder64.dlle155acf50ab0dad1a80f0a67d396d0ad5691fc9e314e4efd1da1dd3180c9632f
GxNWZFTx.exe (IExpress)84fdf804149920cb474a030479fda1d5c9a5939388353054169ec692b8f75d3a
Deal.exe (AutoIt)5d69a932a077fee044b193c28e84564143f5c7e51079ab48e88fef74ab0b77b7

Host

IndicatorValue
Persistence path%LOCALAPPDATA%\Material\ReportFootballHost\KitchenTaylor.exe
Pcode path%LOCALAPPDATA%\Material\ReportFootballHost\HorseLiterature.a3x
Run keyHKCU\...\Run\ReportFootballHost_EXX
Scheduled taskMaterial_ReportFootballHost_Startup
RC4 keywNDRKtWS12MEvmD4jr3ZyvqQTviBYboE5Ce
CompressionLZNT1 (ntdll!RtlDecompressBuffer, format 2)
AES modeAES-128-CBC with prepended IV

Behavioural

TechniqueDetail
Initial accessRAR5 archive with DLL side-load bundle
Defence evasionNtdll restoration from disk (EDR hook bypass)
Anti-analysisPi calculation, 28s delay, sleep check, stress test, memory purge
ExecutionIExpress -> AutoIt compiled pcode
Defense evasion / executionProcess hollowing via RunPE
PersistenceRun key + Task Scheduler + shortcut
C2WebSocket to bare IP on port 3006
Injection targetsexplorer.exe, svchost.exe, taskhostw.exe
Payload.NET assembly (8,355-byte C2 beacon)

YARA rule: github.com/kirkderp/yara/tree/main/eimeria_multi_stage_loader (opens in new tab)

If you operate a threat intelligence platform with sample access or have seen similar delivery chains, reach out. Multi-stage loader chains like this are harder to track than single-stage payloads, and every sample helps.

Share this article