Skip to content

YARA · CAPE Sandbox (CAPEv2)

CAPE_Zloader2024

Zloader Payload

GenericCAPE Sandbox (CAPEv2)GNU General Public License v3.0Compiles with YARA-X (with warnings)
Author
enzok
Date
2020-04-04
Modified
2025-12-09
Score / Quality
75 / 70

What this rule detects

Zloader Payload

Targets: Windows PE.

It defines 4 patterns (0 text, 4 hex, 0 regex).

YARA-X says: warning[consecutive_jumps]: consecutive jumps in hex pattern `$conf_1`

Summary generated from the rule's metadata and condition.

Rule source

zloader2024.yarGNU General Public License v3.0
rule CAPE_Zloader2024 : FILE
{
	meta:
		description = "Zloader Payload"
		author = "enzok"
		id = "f99d0994-d4a4-577b-916d-7eaa98e7c331"
		date = "2020-04-04"
		modified = "2025-12-09"
		reference = "https://github.com/kevoreilly/CAPEv2"
		source_url = "https://github.com/kevoreilly/CAPEv2/blob/6b15e76f28cd83fd1187da6c9aaaad2174255356/data/yara/CAPE/Zloader.yar#L20-L34"
		license_url = "https://github.com/kevoreilly/CAPEv2/blob/6b15e76f28cd83fd1187da6c9aaaad2174255356/LICENSE"
		hash = "49405370a33abbf131c5d550cebe00780cc3fd3cbe888220686582ae88f16af7"
		logic_hash = "27d883f6d6cab07e602f97a0a032a152386693f79dabf1bb87b0a8a053a38b03"
		score = 75
		quality = 70
		tags = "FILE"
		cape_type = "Zloader Payload"

	strings:
		$conf_1 = {48 01 ?? 48 8D 15 [4] 41 B8 ?? 04 00 00 E8 [4] [0-5] C7 [1-2] 00 00 00 00}
		$confkey_1 = {48 8D 15 [4] 48 89 ?? 49 89 ?? E8 [4] [0-5] C7 [1-2] 00 00 00 00}
		$confkey_2 = {48 01 ?? 48 8D 15 [4] 41 B8 10 00 00 00 E8 [4] [0-5] C7 [1-2] 00 00 00 00 (48 8B|8B)}
		$confkey_3 = {48 01 ?? 48 8D 15 [4] 41 B8 10 00 00 00 E8 [4] [0-5] C7 [1-2] 00 00 00 00 48 83 C4}

	condition:
		uint16( 0 ) == 0x5A4D and $conf_1 and 2 of ( $confkey_* )
}

Strings (4 patterns)

IdentifierTypeValueModifiers
$conf_1hex{48 01 ?? 48 8D 15 [4] 41 B8 ?? 04 00 00 E8 [4] [0-5] C7 [1-2] 00 00 00 00}
$confkey_1hex{48 8D 15 [4] 48 89 ?? 49 89 ?? E8 [4] [0-5] C7 [1-2] 00 00 00 00}
$confkey_2hex{48 01 ?? 48 8D 15 [4] 41 B8 10 00 00 00 E8 [4] [0-5] C7 [1-2] 00 00 00 00 (48 8B|8B)}
$confkey_3hex{48 01 ?? 48 8D 15 [4] 41 B8 10 00 00 00 E8 [4] [0-5] C7 [1-2] 00 00 00 00 48 83 C4}

Condition

uint16( 0 ) == 0x5A4D and $conf_1 and 2 of ( $confkey_* )

In plain words (Heuristic)

  • The file must start with “MZ” — a Windows executable (PE).
  • At least 2 patterns in ( $confkey_* ) must match.
  • Pattern $conf_1 must be present.

Test this rule in your browser

Drop a file to scan it with this rule using YARA-X compiled to WebAssembly. Nothing is uploaded.

Drop a file here or click to chooseScanned locally with YARA-X. Files up to 200 MB.

Open in editor

References

Sample hashes

Hashes of samples the author lists in the rule's meta (look them up in your threat-intelligence platform).

  • 49405370a33abbf131c5d550cebe00780cc3fd3cbe888220686582ae88f16af7

Licence & attribution

Author: enzok

Source repository: CAPE Sandbox (CAPEv2) @ 6b15e76f28

Licence: GNU General Public License v3.0 (repository licence)

Copyright notice: Cuckoo Sandbox is copyrighted by the Cuckoo Foundation.

Original rule

Mirrored via YARA Forge 20260927, which prefixes rule names with the source and adds normalised meta fields.

Rule id: f99d0994-d4a4-577b-916d-7eaa98e7c331

Metadata

cape_typeZloader Payload

Tags:FILE