Ransomware.
rule win_xiaoba_auto { meta: author = "Felix Bilstein - yara-signator at cocacoding dot com" date = "2026-05-04" version = "1" description = "Detects win.xiaoba." 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.xiaoba" 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 = { bd00ffffff c1e109 c1e008 80e100 03c1 8bc8 b8abaaaa2a } // n = 7, score = 100 // bd00ffffff | mov ebp, 0xffffff00 // c1e109 | shl ecx, 9 // c1e008 | shl eax, 8 // 80e100 | and cl, 0 // 03c1 | add eax, ecx // 8bc8 | mov ecx, eax // b8abaaaa2a | mov eax, 0x2aaaaaab $sequence_1 = { 03f7 89542438 33ff eb04 8b742440 85c9 0f8e64010000 } // n = 7, score = 100 // 03f7 | add esi, edi // 89542438 | mov dword ptr [esp + 0x38], edx // 33ff | xor edi, edi // eb04 | jmp 6 // 8b742440 | mov esi, dword ptr [esp + 0x40] // 85c9 | test ecx, ecx // 0f8e64010000 | jle 0x16a $sequence_2 = { 8b39 3937 740b 40 83c104 3bc2 7cf2 } // n = 7, score = 100 // 8b39 | mov edi, dword ptr [ecx] // 3937 | cmp dword ptr [edi], esi // 740b | je 0xd // 40 | inc eax // 83c104 | add ecx, 4 // 3bc2 | cmp eax, edx // 7cf2 | jl 0xfffffff4 $sequence_3 = { 8b542410 894840 8b4c2414 c7403c01000000 894844 8b4c240c 895048 } // n = 7, score = 100 // 8b542410 | mov edx, dword ptr [esp + 0x10] // 894840 | mov dword ptr [eax + 0x40], ecx // 8b4c2414 | mov ecx, dword ptr [esp + 0x14] // c7403c01000000 | mov dword ptr [eax + 0x3c], 1 // 894844 | mov dword ptr [eax + 0x44], ecx // 8b4c240c | mov ecx, dword ptr [esp + 0xc] // 895048 | mov dword ptr [eax + 0x48], edx $sequence_4 = { 8b542424 898150010000 8b442428 899154010000 8b54242c 898158010000 8b442430 } // n = 7, score = 100 // 8b542424 | mov edx, dword ptr [esp + 0x24] // 898150010000 | mov dword ptr [ecx + 0x150], eax // 8b442428 | mov eax, dword ptr [esp + 0x28] // 899154010000 | mov dword ptr [ecx + 0x154], edx // 8b54242c | mov edx, dword ptr [esp + 0x2c] // 898158010000 | mov dword ptr [ecx + 0x158], eax // 8b442430 | mov eax, dword ptr [esp + 0x30] $sequence_5 = { 8d542448 51 52 897c2430 895c2434 89742440 ff15???????? } // n = 7, score = 100 // 8d542448 | lea edx, [esp + 0x48] // 51 | push ecx // 52 | push edx // 897c2430 | mov dword ptr [esp + 0x30], edi // 895c2434 | mov dword ptr [esp + 0x34], ebx // 89742440 | mov dword ptr [esp + 0x40], esi // ff15???????? | $sequence_6 = { 7470 8b542418 8b442410 8d8c2484000000 51 56 57 } // n = 7, score = 100 // 7470 | je 0x72 // 8b542418 | mov edx, dword ptr [esp + 0x18] // 8b442410 | mov eax, dword ptr [esp + 0x10] // 8d8c2484000000 | lea ecx, [esp + 0x84] // 51 | push ecx // 56 | push esi // 57 | push edi $sequence_7 = { 83f8ff 0f8536ffffff 5f 5e 5d b802000000 5b } // n = 7, score = 100 // 83f8ff | cmp eax, -1 // 0f8536ffffff | jne 0xffffff3c // 5f | pop edi // 5e | pop esi // 5d | pop ebp // b802000000 | mov eax, 2 // 5b | pop ebx $sequence_8 = { 8b10 52 e8???????? 83c404 8b4c2474 8901 8d4c2414 } // n = 7, score = 100 // 8b10 | mov edx, dword ptr [eax] // 52 | push edx // e8???????? | // 83c404 | add esp, 4 // 8b4c2474 | mov ecx, dword ptr [esp + 0x74] // 8901 | mov dword ptr [ecx], eax // 8d4c2414 | lea ecx, [esp + 0x14] $sequence_9 = { 5f 8bc5 5e 5d 5b 83c45c c20400 } // n = 7, score = 100 // 5f | pop edi // 8bc5 | mov eax, ebp // 5e | pop esi // 5d | pop ebp // 5b | pop ebx // 83c45c | add esp, 0x5c // c20400 | ret 4 condition: 7 of them and filesize < 5177344 }
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