Aller au contenu

YARA · elceef yara-rulz

ELCEEF_EICAR_Encrypted_ZIP

Detects EICAR file in any encrypted ZIP archive

Génériqueelceef yara-rulzMIT LicenseCompile avec YARA-X (avertissements)
Auteur
marcin@ulikowski.pl
Date
2022-12-13
Modifiée
2022-12-16
Score / Qualité
75 / 75

Ce que détecte cette règle

Detects EICAR file in any encrypted ZIP archive

Elle définit 1 motifs (0 texte, 1 hex, 0 regex).

YARA-X indique : warning[potentially_slow_loop]: potentially slow loop

Résumé généré à partir des métadonnées et de la condition de la règle.

Source de la règle

eicar-encrypted-zip.yarMIT License
rule ELCEEF_EICAR_Encrypted_ZIP
{
	meta:
		description = "Detects EICAR file in any encrypted ZIP archive"
		author = "marcin@ulikowski.pl"
		id = "c12d42de-356a-584b-9c48-71e65940f1cf"
		date = "2022-12-13"
		modified = "2022-12-16"
		reference = "https://github.com/elceef/yara-rulz"
		source_url = "https://github.com/elceef/yara-rulz/blob/5683b294a12cf0c875b624933586029ae43a852f/rules/EICAR_Encrypted_ZIP.yara#L14-L44"
		license_url = "https://github.com/elceef/yara-rulz/blob/5683b294a12cf0c875b624933586029ae43a852f/LICENSE"
		logic_hash = "56851056671bde38338bd200d9fde59c042f35a2cd84ac9401e716f376c9502c"
		score = 75
		quality = 75
		tags = ""

	strings:
		$local = {
			50 4b 03 04 // local file header signature (PK)
			?? 00 // minimum version
			?? 00 // flags (bit 0 and 6 indicate encryption)
			?? 00 // compression method
			?? ?? // last modification time
			?? ?? // last modification date
			?? ?? ?? ?? // CRC-32 of uncompressed and unencrypted data
			?? ?? ?? ?? // compressed size
			?? ?? ?? ?? // uncompressed size
			}

	condition:
		for any i in ( 1 .. #local ) : ( ( uint8( @local [ i ] + 6 ) & 0x01 or uint8( @local [ i ] + 6 ) & 0x40 ) and uint32( @local [ i ] + 14 ) == 0x6851cf3c and uint32( @local [ i ] + 22 ) == 68 )
}

Chaînes (1 motifs)

IdentifiantTypeValeurModificateurs
$localhex{ 50 4b 03 04 // local file header signature (PK) ?? 00 // minimum version ?? 00 // flags (bit 0 and 6 indicate encryption) ?? 00 // compression met …

Condition

for any i in ( 1 .. #local ) : ( ( uint8( @local [ i ] + 6 ) & 0x01 or uint8( @local [ i ] + 6 ) & 0x40 ) and uint32( @local [ i ] + 14 ) == 0x6851cf3c and uint32( @local [ i ] + 22 ) == 68 )

En clair (Heuristique)

  • Une boucle for vérifie une propriété sur plusieurs occurrences ou éléments.

Tester cette règle dans votre navigateur

Déposez un fichier pour le scanner avec cette règle grâce à YARA-X compilé en WebAssembly. Rien n’est envoyé.

Déposez un fichier ici ou cliquez pour choisirScanné localement avec YARA-X. Fichiers jusqu’à 200 Mo.

Ouvrir dans l’éditeur

Références

Licence et attribution

Auteur : marcin@ulikowski.pl

Dépôt source : elceef yara-rulz @ 5683b294a1

Licence : MIT License (licence du dépôt)

Mention de copyright : Copyright (c) 2022 Marcin Ulikowski

Règle d’origine

Reprise via YARA Forge 20260927, qui préfixe les noms de règles par la source et ajoute des champs meta normalisés.

Identifiant de règle: c12d42de-356a-584b-9c48-71e65940f1cf