Actor(s): Aoqin Dragon
There is no description at this point.
rule win_heyoka_auto { meta: author = "Felix Bilstein - yara-signator at cocacoding dot com" date = "2026-05-04" version = "1" description = "Detects win.heyoka." 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.heyoka" malpedia_rule_date = "20260422" malpedia_hash = "a182e35da64e6d71cb55f125c4d4225196523f14" malpedia_version = "20260504" 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 = { 8b85e4fbffff c6403500 8b8ddcfbffff 83c106 8b95e4fbffff 894a30 c785e0fbffff00000000 } // n = 7, score = 100 // 8b85e4fbffff | mov eax, dword ptr [ebp - 0x41c] // c6403500 | mov byte ptr [eax + 0x35], 0 // 8b8ddcfbffff | mov ecx, dword ptr [ebp - 0x424] // 83c106 | add ecx, 6 // 8b95e4fbffff | mov edx, dword ptr [ebp - 0x41c] // 894a30 | mov dword ptr [edx + 0x30], ecx // c785e0fbffff00000000 | mov dword ptr [ebp - 0x420], 0 $sequence_1 = { 8b45f8 81bc906050000000100000 75dd 8b4dfc 8b55f8 8b848a64940000 8b4df8 } // n = 7, score = 100 // 8b45f8 | mov eax, dword ptr [ebp - 8] // 81bc906050000000100000 | cmp dword ptr [eax + edx*4 + 0x5060], 0x1000 // 75dd | jne 0xffffffdf // 8b4dfc | mov ecx, dword ptr [ebp - 4] // 8b55f8 | mov edx, dword ptr [ebp - 8] // 8b848a64940000 | mov eax, dword ptr [edx + ecx*4 + 0x9464] // 8b4df8 | mov ecx, dword ptr [ebp - 8] $sequence_2 = { 83e030 c1f804 8d0c88 8b55f8 0355f0 880a } // n = 6, score = 100 // 83e030 | and eax, 0x30 // c1f804 | sar eax, 4 // 8d0c88 | lea ecx, [eax + ecx*4] // 8b55f8 | mov edx, dword ptr [ebp - 8] // 0355f0 | add edx, dword ptr [ebp - 0x10] // 880a | mov byte ptr [edx], cl $sequence_3 = { 740c 8b55fc 52 8b4de0 e8???????? eba7 837de800 } // n = 7, score = 100 // 740c | je 0xe // 8b55fc | mov edx, dword ptr [ebp - 4] // 52 | push edx // 8b4de0 | mov ecx, dword ptr [ebp - 0x20] // e8???????? | // eba7 | jmp 0xffffffa9 // 837de800 | cmp dword ptr [ebp - 0x18], 0 $sequence_4 = { 52 ff15???????? 25ffff0000 8b4df4 8d54010c 8955f4 8b450c } // n = 7, score = 100 // 52 | push edx // ff15???????? | // 25ffff0000 | and eax, 0xffff // 8b4df4 | mov ecx, dword ptr [ebp - 0xc] // 8d54010c | lea edx, [ecx + eax + 0xc] // 8955f4 | mov dword ptr [ebp - 0xc], edx // 8b450c | mov eax, dword ptr [ebp + 0xc] $sequence_5 = { 894508 8b4508 c600ff 8b4d08 c78181000000ffffffff 8b5508 c6420100 } // n = 7, score = 100 // 894508 | mov dword ptr [ebp + 8], eax // 8b4508 | mov eax, dword ptr [ebp + 8] // c600ff | mov byte ptr [eax], 0xff // 8b4d08 | mov ecx, dword ptr [ebp + 8] // c78181000000ffffffff | mov dword ptr [ecx + 0x81], 0xffffffff // 8b5508 | mov edx, dword ptr [ebp + 8] // c6420100 | mov byte ptr [edx + 1], 0 $sequence_6 = { 8b4d08 51 8b55f8 8b4210 50 e8???????? 83c40c } // n = 7, score = 100 // 8b4d08 | mov ecx, dword ptr [ebp + 8] // 51 | push ecx // 8b55f8 | mov edx, dword ptr [ebp - 8] // 8b4210 | mov eax, dword ptr [edx + 0x10] // 50 | push eax // e8???????? | // 83c40c | add esp, 0xc $sequence_7 = { 0fbe45ed c1f802 83e007 0bd0 8855f4 0fbe4ded 83e103 } // n = 7, score = 100 // 0fbe45ed | movsx eax, byte ptr [ebp - 0x13] // c1f802 | sar eax, 2 // 83e007 | and eax, 7 // 0bd0 | or edx, eax // 8855f4 | mov byte ptr [ebp - 0xc], dl // 0fbe4ded | movsx ecx, byte ptr [ebp - 0x13] // 83e103 | and ecx, 3 $sequence_8 = { 8b55dc 83c204 52 e8???????? 83c408 8b4514 50 } // n = 7, score = 100 // 8b55dc | mov edx, dword ptr [ebp - 0x24] // 83c204 | add edx, 4 // 52 | push edx // e8???????? | // 83c408 | add esp, 8 // 8b4514 | mov eax, dword ptr [ebp + 0x14] // 50 | push eax $sequence_9 = { c1e007 0fbe4df1 83e11f c1e102 0bc1 0fbe55f2 c1fa03 } // n = 7, score = 100 // c1e007 | shl eax, 7 // 0fbe4df1 | movsx ecx, byte ptr [ebp - 0xf] // 83e11f | and ecx, 0x1f // c1e102 | shl ecx, 2 // 0bc1 | or eax, ecx // 0fbe55f2 | movsx edx, byte ptr [ebp - 0xe] // c1fa03 | sar edx, 3 condition: 7 of them and filesize < 270336 }
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