Actor(s): Thrip
There is no description at this point.
rule win_spedear_auto { meta: author = "Felix Bilstein - yara-signator at cocacoding dot com" date = "2026-09-17" version = "1" description = "Detects win.spedear." 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.spedear" 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 = { 83e207 03c2 c1f803 83c40c 85c0 } // n = 5, score = 600 // 83e207 | and edx, 7 // 03c2 | add eax, edx // c1f803 | sar eax, 3 // 83c40c | add esp, 0xc // 85c0 | test eax, eax $sequence_1 = { 50 e8???????? 8b7e0c 895e10 } // n = 4, score = 500 // 50 | push eax // e8???????? | // 8b7e0c | mov edi, dword ptr [esi + 0xc] // 895e10 | mov dword ptr [esi + 0x10], ebx $sequence_2 = { 8a5f06 50 894608 e8???????? } // n = 4, score = 500 // 8a5f06 | mov bl, byte ptr [edi + 6] // 50 | push eax // 894608 | mov dword ptr [esi + 8], eax // e8???????? | $sequence_3 = { 57 8bf0 8bfa 8bc7 2507000080 7905 48 } // n = 7, score = 400 // 57 | sar eax, 3 // 8bf0 | add esp, 0xc // 8bfa | test eax, eax // 8bc7 | add eax, edx // 2507000080 | sar eax, 3 // 7905 | add esp, 0xc // 48 | test eax, eax $sequence_4 = { 33ce 836c241001 8bf3 75ad 8b4244 8b74241c 8b5240 } // n = 7, score = 400 // 33ce | xor ecx, esi // 836c241001 | sub dword ptr [esp + 0x10], 1 // 8bf3 | mov esi, ebx // 75ad | jne 0xffffffaf // 8b4244 | mov eax, dword ptr [edx + 0x44] // 8b74241c | mov esi, dword ptr [esp + 0x1c] // 8b5240 | mov edx, dword ptr [edx + 0x40] $sequence_5 = { 50 8bde e8???????? 5b } // n = 4, score = 400 // 50 | push eax // 8bde | mov ebx, esi // e8???????? | // 5b | pop ebx $sequence_6 = { 8d5304 8d4f06 52 e8???????? 8b4718 } // n = 5, score = 400 // 8d5304 | and edx, 7 // 8d4f06 | add eax, edx // 52 | sar eax, 3 // e8???????? | // 8b4718 | add esp, 0xc $sequence_7 = { 6a00 68???????? e8???????? 83c40c 68d0070000 } // n = 5, score = 400 // 6a00 | push 0 // 68???????? | // e8???????? | // 83c40c | add esp, 0xc // 68d0070000 | push 0x7d0 $sequence_8 = { 50 e8???????? 83c420 33c0 396f1c } // n = 5, score = 400 // 50 | push eax // e8???????? | // 83c420 | add esp, 0x20 // 33c0 | xor eax, eax // 396f1c | cmp dword ptr [edi + 0x1c], ebp $sequence_9 = { 894618 ffd7 89461c 5f } // n = 4, score = 400 // 894618 | mov dword ptr [esi + 0x18], eax // ffd7 | call edi // 89461c | mov dword ptr [esi + 0x1c], eax // 5f | pop edi $sequence_10 = { 8bc7 5e 5f 5b 5d c3 6a08 } // n = 7, score = 300 // 8bc7 | mov eax, edi // 5e | pop esi // 5f | pop edi // 5b | pop ebx // 5d | pop ebp // c3 | ret // 6a08 | push 8 $sequence_11 = { 833e00 741a 6a00 6a00 ff7608 ff5604 } // n = 6, score = 300 // 833e00 | cmp dword ptr [esi], 0 // 741a | je 0x1c // 6a00 | push 0 // 6a00 | push 0 // ff7608 | push dword ptr [esi + 8] // ff5604 | call dword ptr [esi + 4] $sequence_12 = { 6a00 ff7608 ff5604 6800800000 6a00 ff7608 } // n = 6, score = 300 // 6a00 | push 0 // ff7608 | push dword ptr [esi + 8] // ff5604 | call dword ptr [esi + 4] // 6800800000 | push 0x8000 // 6a00 | push 0 // ff7608 | push dword ptr [esi + 8] $sequence_13 = { 394878 7456 39487c 7451 } // n = 4, score = 300 // 394878 | cmp dword ptr [eax + 0x78], ecx // 7456 | je 0x58 // 39487c | cmp dword ptr [eax + 0x7c], ecx // 7451 | je 0x53 $sequence_14 = { c3 6820040000 b8???????? e8???????? 8b7d08 33db be03010000 } // n = 7, score = 200 // c3 | ret // 6820040000 | push 0x420 // b8???????? | // e8???????? | // 8b7d08 | mov edi, dword ptr [ebp + 8] // 33db | xor ebx, ebx // be03010000 | mov esi, 0x103 $sequence_15 = { 418b0c86 413bcc 7608 428d0422 3bc8 72a8 488bc1 } // n = 7, score = 100 // 418b0c86 | sub esp, ebx // 413bcc | nop dword ptr [eax] // 7608 | inc esp // 428d0422 | mov eax, edx // 3bc8 | dec ebp // 72a8 | mov ecx, esi // 488bc1 | nop word ptr [eax + eax] $sequence_16 = { 41be04000000 4d2be3 0f1f00 448bc2 4d8bce 66660f1f840000000000 0fb60431 } // n = 7, score = 100 // 41be04000000 | dec eax // 4d2be3 | lea edx, [esp + 0x30] // 0f1f00 | dec eax // 448bc2 | lea eax, [esp + 0x40] // 4d8bce | inc ecx // 66660f1f840000000000 | mov esi, 4 // 0fb60431 | dec ebp $sequence_17 = { 6a02 68e8000000 ff15???????? 50 } // n = 4, score = 100 // 6a02 | push dword ptr [esi + 8] // 68e8000000 | call dword ptr [esi + 4] // ff15???????? | // 50 | push 0x8000 $sequence_18 = { 8bd9 7418 488d0d2bf00000 e8???????? 85c0 7408 } // n = 6, score = 100 // 8bd9 | mov eax, ecx // 7418 | inc esp // 488d0d2bf00000 | mov esp, dword ptr [eax + 0x88] // e8???????? | // 85c0 | dec eax // 7408 | mov eax, dword ptr [ecx + 0x10] $sequence_19 = { ff2485916d2300 838de8fdffffff 89b588fdffff 89b5bcfdffff 89b5c8fdffff 89b5ccfdffff } // n = 6, score = 100 // ff2485916d2300 | push 0 // 838de8fdffffff | push 0 // 89b588fdffff | push dword ptr [esi + 8] // 89b5bcfdffff | call dword ptr [esi + 4] // 89b5c8fdffff | push dword ptr [esi + 8] // 89b5ccfdffff | call dword ptr [esi + 4] $sequence_20 = { e8???????? 448b5e18 44895f10 8b4e1c e8???????? } // n = 5, score = 100 // e8???????? | // 448b5e18 | dec esp // 44895f10 | mov dword ptr [esp + 0x10], ebp // 8b4e1c | dec esp // e8???????? | $sequence_21 = { e8???????? 4c8d1d738c0000 4c891b 488bc3 4883c420 } // n = 5, score = 100 // e8???????? | // 4c8d1d738c0000 | mov dword ptr [esp + 8], esi // 4c891b | inc esi // 488bc3 | mov esi, dword ptr [eax + 0x1c] // 4883c420 | inc esi $sequence_22 = { 33ff 8bf3 e8???????? 83bdd0f7ffff10 } // n = 4, score = 100 // 33ff | push 0 // 8bf3 | push dword ptr [esi + 8] // e8???????? | // 83bdd0f7ffff10 | je 0x1c $sequence_23 = { 448ba088000000 488b4110 4c896c2410 4c89742408 468b74201c 468b6c2024 } // n = 6, score = 100 // 448ba088000000 | movzx eax, byte ptr [ecx + esi] // 488b4110 | inc ecx // 4c896c2410 | mov ecx, dword ptr [esi + eax*4] // 4c89742408 | inc ecx // 468b74201c | cmp ecx, esp // 468b6c2024 | jbe 0xd $sequence_24 = { 41b804010000 c744243004010000 e8???????? 488b4c2438 488d542430 488d442440 } // n = 6, score = 100 // 41b804010000 | inc ecx // c744243004010000 | mov eax, 0x104 // e8???????? | // 488b4c2438 | mov dword ptr [esp + 0x30], 0x104 // 488d542430 | dec eax // 488d442440 | mov ecx, dword ptr [esp + 0x38] $sequence_25 = { 488bfa 488bd9 488d058d760000 488981a0000000 c7411c01000000 } // n = 5, score = 100 // 488bfa | inc edx // 488bd9 | lea eax, [edx] // 488d058d760000 | cmp ecx, eax // 488981a0000000 | jb 0xffffffb5 // c7411c01000000 | dec eax $sequence_26 = { 890d???????? 33d2 a3???????? 890d???????? } // n = 4, score = 100 // 890d???????? | // 33d2 | push 0x8000 // a3???????? | // 890d???????? | condition: 7 of them and filesize < 188416 }
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