XenArmor is a suite of password recovery tools for various applications that have been observed to be abused in attacks alongside malware.
rule win_xenarmor_auto { meta: author = "Felix Bilstein - yara-signator at cocacoding dot com" date = "2026-09-17" version = "1" description = "Detects win.xenarmor." 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.xenarmor" 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 = { e8???????? 8b5c2424 ba25000000 53 8bce e8???????? 83c414 } // n = 7, score = 100 // e8???????? | // 8b5c2424 | mov ebx, dword ptr [esp + 0x24] // ba25000000 | mov edx, 0x25 // 53 | push ebx // 8bce | mov ecx, esi // e8???????? | // 83c414 | add esp, 0x14 $sequence_1 = { e8???????? 83c410 83f804 0f85adfdffff ffb5ccd4ffff 8d58fd 33ff } // n = 7, score = 100 // e8???????? | // 83c410 | add esp, 0x10 // 83f804 | cmp eax, 4 // 0f85adfdffff | jne 0xfffffdb3 // ffb5ccd4ffff | push dword ptr [ebp - 0x2b34] // 8d58fd | lea ebx, [eax - 3] // 33ff | xor edi, edi $sequence_2 = { c70000000000 83beccb6050000 755b 6a02 6aff 680c100000 ffb6b8ba0500 } // n = 7, score = 100 // c70000000000 | mov dword ptr [eax], 0 // 83beccb6050000 | cmp dword ptr [esi + 0x5b6cc], 0 // 755b | jne 0x5d // 6a02 | push 2 // 6aff | push -1 // 680c100000 | push 0x100c // ffb6b8ba0500 | push dword ptr [esi + 0x5bab8] $sequence_3 = { 8b5708 8b5c241c 85d2 0f84cf010000 8b02 8bcb 89442438 } // n = 7, score = 100 // 8b5708 | mov edx, dword ptr [edi + 8] // 8b5c241c | mov ebx, dword ptr [esp + 0x1c] // 85d2 | test edx, edx // 0f84cf010000 | je 0x1d5 // 8b02 | mov eax, dword ptr [edx] // 8bcb | mov ecx, ebx // 89442438 | mov dword ptr [esp + 0x38], eax $sequence_4 = { e8???????? c706???????? 8db730a40500 c645fc11 8bce 8975ec e8???????? } // n = 7, score = 100 // e8???????? | // c706???????? | // 8db730a40500 | lea esi, [edi + 0x5a430] // c645fc11 | mov byte ptr [ebp - 4], 0x11 // 8bce | mov ecx, esi // 8975ec | mov dword ptr [ebp - 0x14], esi // e8???????? | $sequence_5 = { e8???????? 83c414 8d9584e8ffff 8d8d6cecffff e8???????? 85c0 0f843cfcffff } // n = 7, score = 100 // e8???????? | // 83c414 | add esp, 0x14 // 8d9584e8ffff | lea edx, [ebp - 0x177c] // 8d8d6cecffff | lea ecx, [ebp - 0x1394] // e8???????? | // 85c0 | test eax, eax // 0f843cfcffff | je 0xfffffc42 $sequence_6 = { c744880c00000000 c744881000000000 8b0f 6a01 e8???????? 89442428 83c404 } // n = 7, score = 100 // c744880c00000000 | mov dword ptr [eax + ecx*4 + 0xc], 0 // c744881000000000 | mov dword ptr [eax + ecx*4 + 0x10], 0 // 8b0f | mov ecx, dword ptr [edi] // 6a01 | push 1 // e8???????? | // 89442428 | mov dword ptr [esp + 0x28], eax // 83c404 | add esp, 4 $sequence_7 = { e8???????? 83c40c 85c0 750e 3945fc 7419 80be806c6c0001 } // n = 7, score = 100 // e8???????? | // 83c40c | add esp, 0xc // 85c0 | test eax, eax // 750e | jne 0x10 // 3945fc | cmp dword ptr [ebp - 4], eax // 7419 | je 0x1b // 80be806c6c0001 | cmp byte ptr [esi + 0x6c6c80], 1 $sequence_8 = { e8???????? 85c0 7928 46 83c748 3bf3 7cea } // n = 7, score = 100 // e8???????? | // 85c0 | test eax, eax // 7928 | jns 0x2a // 46 | inc esi // 83c748 | add edi, 0x48 // 3bf3 | cmp esi, ebx // 7cea | jl 0xffffffec $sequence_9 = { ff30 8b44241c ff74246c f6400204 b812000000 0f45c1 50 } // n = 7, score = 100 // ff30 | push dword ptr [eax] // 8b44241c | mov eax, dword ptr [esp + 0x1c] // ff74246c | push dword ptr [esp + 0x6c] // f6400204 | test byte ptr [eax + 2], 4 // b812000000 | mov eax, 0x12 // 0f45c1 | cmovne eax, ecx // 50 | push eax condition: 7 of them and filesize < 10894336 }
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