Based on the leaked Conti source code.
rule win_scarecrow_auto { meta: author = "Felix Bilstein - yara-signator at cocacoding dot com" date = "2026-09-17" version = "1" description = "Detects win.scarecrow." info = "autogenerated rule brought to you by yara-signator" tool = "yara-signator v0.6.0" signator_config = "callsandjumps;datarefs;binvalue" malpedia_reference = "https://malpedia.caad.fkie.fraunhofer.de/details/win.scarecrow" malpedia_rule_date = "20260916" malpedia_hash = "53a643781c18e08f4a50949af60172d837a0b6f6" malpedia_version = "20260917" malpedia_license = "CC BY-SA 4.0" malpedia_sharing = "TLP:WHITE" /* DISCLAIMER * The strings used in this rule have been automatically selected from the * disassembly of memory dumps and unpacked files, using YARA-Signator. * The code and documentation is published here: * https://github.com/fxb-cocacoding/yara-signator * As Malpedia is used as data source, please note that for a given * number of families, only single samples are documented. * This likely impacts the degree of generalization these rules will offer. * Take the described generation method also into consideration when you * apply the rules in your use cases and assign them confidence levels. */ strings: $sequence_0 = { c685adfdffff37 c685aefdffff37 8a85a5fdffff 80bda4fdffff00 753a 33f6 } // n = 6, score = 100 // c685adfdffff37 | mov byte ptr [ebp - 0x253], 0x37 // c685aefdffff37 | mov byte ptr [ebp - 0x252], 0x37 // 8a85a5fdffff | mov al, byte ptr [ebp - 0x25b] // 80bda4fdffff00 | cmp byte ptr [ebp - 0x25c], 0 // 753a | jne 0x3c // 33f6 | xor esi, esi $sequence_1 = { 83c8fc 40 7445 8b4df4 8d4303 83c102 0fafc8 } // n = 7, score = 100 // 83c8fc | or eax, 0xfffffffc // 40 | inc eax // 7445 | je 0x47 // 8b4df4 | mov ecx, dword ptr [ebp - 0xc] // 8d4303 | lea eax, [ebx + 3] // 83c102 | add ecx, 2 // 0fafc8 | imul ecx, eax $sequence_2 = { 752c 33c9 0f1f4000 8a840d79ffffff 0fb6c0 6bc025 83e825 } // n = 7, score = 100 // 752c | jne 0x2e // 33c9 | xor ecx, ecx // 0f1f4000 | nop dword ptr [eax] // 8a840d79ffffff | mov al, byte ptr [ebp + ecx - 0x87] // 0fb6c0 | movzx eax, al // 6bc025 | imul eax, eax, 0x25 // 83e825 | sub eax, 0x25 $sequence_3 = { 8d8565faffff 898550f5ffff c68540feffff00 c68541feffff11 c68542feffff13 c68543feffff72 c68544feffff13 } // n = 7, score = 100 // 8d8565faffff | lea eax, [ebp - 0x59b] // 898550f5ffff | mov dword ptr [ebp - 0xab0], eax // c68540feffff00 | mov byte ptr [ebp - 0x1c0], 0 // c68541feffff11 | mov byte ptr [ebp - 0x1bf], 0x11 // c68542feffff13 | mov byte ptr [ebp - 0x1be], 0x13 // c68543feffff72 | mov byte ptr [ebp - 0x1bd], 0x72 // c68544feffff13 | mov byte ptr [ebp - 0x1bc], 0x13 $sequence_4 = { 51 ff5010 8bf0 c7858cf7ffff05f26700 8b858cf7ffff 99 f7fb } // n = 7, score = 100 // 51 | push ecx // ff5010 | call dword ptr [eax + 0x10] // 8bf0 | mov esi, eax // c7858cf7ffff05f26700 | mov dword ptr [ebp - 0x874], 0x67f205 // 8b858cf7ffff | mov eax, dword ptr [ebp - 0x874] // 99 | cdq // f7fb | idiv ebx $sequence_5 = { c3 833b00 c785e4feffff00000000 0f8695020000 8d4314 8985e0feffff 8b30 } // n = 7, score = 100 // c3 | ret // 833b00 | cmp dword ptr [ebx], 0 // c785e4feffff00000000 | mov dword ptr [ebp - 0x11c], 0 // 0f8695020000 | jbe 0x29b // 8d4314 | lea eax, [ebx + 0x14] // 8985e0feffff | mov dword ptr [ebp - 0x120], eax // 8b30 | mov esi, dword ptr [eax] $sequence_6 = { c645c305 c645c405 8a8565ffffff 80bd64ffffff00 7534 33db be05000000 } // n = 7, score = 100 // c645c305 | mov byte ptr [ebp - 0x3d], 5 // c645c405 | mov byte ptr [ebp - 0x3c], 5 // 8a8565ffffff | mov al, byte ptr [ebp - 0x9b] // 80bd64ffffff00 | cmp byte ptr [ebp - 0x9c], 0 // 7534 | jne 0x36 // 33db | xor ebx, ebx // be05000000 | mov esi, 5 $sequence_7 = { 83e956 8bc1 c1e004 03c1 03c0 99 } // n = 6, score = 100 // 83e956 | sub ecx, 0x56 // 8bc1 | mov eax, ecx // c1e004 | shl eax, 4 // 03c1 | add eax, ecx // 03c0 | add eax, eax // 99 | cdq $sequence_8 = { c685ecfdffff00 c685edfdffff55 c685eefdffff64 c685effdffff06 c685f0fdffff64 c685f1fdffff45 c685f2fdffff64 } // n = 7, score = 100 // c685ecfdffff00 | mov byte ptr [ebp - 0x214], 0 // c685edfdffff55 | mov byte ptr [ebp - 0x213], 0x55 // c685eefdffff64 | mov byte ptr [ebp - 0x212], 0x64 // c685effdffff06 | mov byte ptr [ebp - 0x211], 6 // c685f0fdffff64 | mov byte ptr [ebp - 0x210], 0x64 // c685f1fdffff45 | mov byte ptr [ebp - 0x20f], 0x45 // c685f2fdffff64 | mov byte ptr [ebp - 0x20e], 0x64 $sequence_9 = { 8985f8feffff c645a800 c645a94c c645aa41 c645ab34 c645ac41 c645ad03 } // n = 7, score = 100 // 8985f8feffff | mov dword ptr [ebp - 0x108], eax // c645a800 | mov byte ptr [ebp - 0x58], 0 // c645a94c | mov byte ptr [ebp - 0x57], 0x4c // c645aa41 | mov byte ptr [ebp - 0x56], 0x41 // c645ab34 | mov byte ptr [ebp - 0x55], 0x34 // c645ac41 | mov byte ptr [ebp - 0x54], 0x41 // c645ad03 | mov byte ptr [ebp - 0x53], 3 condition: 7 of them and filesize < 501760 }
If your designated proposal does not fit in any other category, feel free to write a free-text in the comment field below. Changes regarding references should be proposed on the Malpedia library page.
Your suggestion will be reviewed before being published. Thank you for contributing!
YYYY-MM-DD
YYYY-MM
YYYY