A variant of CryptoMix is win.clop.
rule win_cryptomix_auto { meta: author = "Felix Bilstein - yara-signator at cocacoding dot com" date = "2023-07-11" version = "1" description = "Detects win.cryptomix." 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.cryptomix" malpedia_rule_date = "20230705" malpedia_hash = "42d0574f4405bd7d2b154d321d345acb18834a41" malpedia_version = "20230715" 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 = { 0fb7c9 8bff c1c007 0fb7c9 8d5202 33c1 0fb70a } // n = 7, score = 200 // 0fb7c9 | movzx ecx, cx // 8bff | mov edi, edi // c1c007 | rol eax, 7 // 0fb7c9 | movzx ecx, cx // 8d5202 | lea edx, [edx + 2] // 33c1 | xor eax, ecx // 0fb70a | movzx ecx, word ptr [edx] $sequence_1 = { c3 68e6b8402d 6a01 e8???????? 59 59 ff742404 } // n = 7, score = 200 // c3 | ret // 68e6b8402d | push 0x2d40b8e6 // 6a01 | push 1 // e8???????? | // 59 | pop ecx // 59 | pop ecx // ff742404 | push dword ptr [esp + 4] $sequence_2 = { 53 ffd0 56 57 e8???????? 59 } // n = 6, score = 200 // 53 | push ebx // ffd0 | call eax // 56 | push esi // 57 | push edi // e8???????? | // 59 | pop ecx $sequence_3 = { 56 68???????? ffd7 8b1d???????? } // n = 4, score = 200 // 56 | push esi // 68???????? | // ffd7 | call edi // 8b1d???????? | $sequence_4 = { 7311 f30f7e0e 83e908 8d7608 660fd60f 8d7f08 8b048d48134000 } // n = 7, score = 200 // 7311 | jae 0x13 // f30f7e0e | movq xmm1, qword ptr [esi] // 83e908 | sub ecx, 8 // 8d7608 | lea esi, [esi + 8] // 660fd60f | movq qword ptr [edi], xmm1 // 8d7f08 | lea edi, [edi + 8] // 8b048d48134000 | mov eax, dword ptr [ecx*4 + 0x401348] $sequence_5 = { ffd0 c3 55 8bec 6859c7ecd4 } // n = 5, score = 200 // ffd0 | call eax // c3 | ret // 55 | push ebp // 8bec | mov ebp, esp // 6859c7ecd4 | push 0xd4ecc759 $sequence_6 = { 7723 74e4 3d3444babe 74dd } // n = 4, score = 200 // 7723 | ja 0x25 // 74e4 | je 0xffffffe6 // 3d3444babe | cmp eax, 0xbeba4434 // 74dd | je 0xffffffdf $sequence_7 = { 83f804 7414 83f806 740f 83f807 740a 83f808 } // n = 7, score = 200 // 83f804 | cmp eax, 4 // 7414 | je 0x16 // 83f806 | cmp eax, 6 // 740f | je 0x11 // 83f807 | cmp eax, 7 // 740a | je 0xc // 83f808 | cmp eax, 8 $sequence_8 = { 8bcb e8???????? 83c408 56 ff15???????? } // n = 5, score = 200 // 8bcb | mov ecx, ebx // e8???????? | // 83c408 | add esp, 8 // 56 | push esi // ff15???????? | $sequence_9 = { 6a50 ffd0 ff7508 668945f2 e8???????? 59 ff7508 } // n = 7, score = 200 // 6a50 | push 0x50 // ffd0 | call eax // ff7508 | push dword ptr [ebp + 8] // 668945f2 | mov word ptr [ebp - 0xe], ax // e8???????? | // 59 | pop ecx // ff7508 | push dword ptr [ebp + 8] $sequence_10 = { 32ff 894dfc 66c787000100000000 33c0 8bd7 be00010000 8802 } // n = 7, score = 200 // 32ff | xor bh, bh // 894dfc | mov dword ptr [ebp - 4], ecx // 66c787000100000000 | mov word ptr [edi + 0x100], 0 // 33c0 | xor eax, eax // 8bd7 | mov edx, edi // be00010000 | mov esi, 0x100 // 8802 | mov byte ptr [edx], al $sequence_11 = { 55 8bec 686a85139f 6a06 e8???????? } // n = 5, score = 200 // 55 | push ebp // 8bec | mov ebp, esp // 686a85139f | push 0x9f13856a // 6a06 | push 6 // e8???????? | $sequence_12 = { ff75f8 ffd0 8945fc 3bc7 0f848c000000 } // n = 5, score = 200 // ff75f8 | push dword ptr [ebp - 8] // ffd0 | call eax // 8945fc | mov dword ptr [ebp - 4], eax // 3bc7 | cmp eax, edi // 0f848c000000 | je 0x92 $sequence_13 = { 33c0 33ff 6805ad890d 47 57 } // n = 5, score = 200 // 33c0 | xor eax, eax // 33ff | xor edi, edi // 6805ad890d | push 0xd89ad05 // 47 | inc edi // 57 | push edi $sequence_14 = { 8d85e4fbffff 50 56 ff15???????? 8d85e8fbffff 50 } // n = 6, score = 200 // 8d85e4fbffff | lea eax, [ebp - 0x41c] // 50 | push eax // 56 | push esi // ff15???????? | // 8d85e8fbffff | lea eax, [ebp - 0x418] // 50 | push eax $sequence_15 = { 837d0c01 8b9db8f9ffff a1???????? 68???????? 7507 } // n = 5, score = 200 // 837d0c01 | cmp dword ptr [ebp + 0xc], 1 // 8b9db8f9ffff | mov ebx, dword ptr [ebp - 0x648] // a1???????? | // 68???????? | // 7507 | jne 9 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.
Please propose all changes regarding references on the Malpedia library page
Your suggestion will be reviewed before being published. Thank you for contributing!
YYYY-MM-DD
YYYY-MM
YYYY