Actor(s): Blackwood
There is no description at this point.
rule win_nspx30_auto { meta: author = "Felix Bilstein - yara-signator at cocacoding dot com" date = "2026-09-17" version = "1" description = "Detects win.nspx30." 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.nspx30" 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 = { f3ab 66ab aa b06c } // n = 4, score = 200 // f3ab | rep stosd dword ptr es:[edi], eax // 66ab | stosw word ptr es:[edi], ax // aa | stosb byte ptr es:[edi], al // b06c | mov al, 0x6c $sequence_1 = { 8b55e8 52 e8???????? 837d9400 } // n = 4, score = 100 // 8b55e8 | mov edx, dword ptr [ebp - 0x18] // 52 | push edx // e8???????? | // 837d9400 | cmp dword ptr [ebp - 0x6c], 0 $sequence_2 = { 8d8594fdffff 50 ff15???????? 8d8d94fdffff 49 } // n = 5, score = 100 // 8d8594fdffff | lea eax, [ebp - 0x26c] // 50 | push eax // ff15???????? | // 8d8d94fdffff | lea ecx, [ebp - 0x26c] // 49 | dec ecx $sequence_3 = { 1bc0 2500001000 83bb4c01000000 898350010000 745b } // n = 5, score = 100 // 1bc0 | sbb eax, eax // 2500001000 | and eax, 0x100000 // 83bb4c01000000 | cmp dword ptr [ebx + 0x14c], 0 // 898350010000 | mov dword ptr [ebx + 0x150], eax // 745b | je 0x5d $sequence_4 = { 8b8308010000 03c1 8945f0 33d2 8bc7 } // n = 5, score = 100 // 8b8308010000 | mov eax, dword ptr [ebx + 0x108] // 03c1 | add eax, ecx // 8945f0 | mov dword ptr [ebp - 0x10], eax // 33d2 | xor edx, edx // 8bc7 | mov eax, edi $sequence_5 = { 57 8bca bf???????? 33db } // n = 4, score = 100 // 57 | push edi // 8bca | mov ecx, edx // bf???????? | // 33db | xor ebx, ebx $sequence_6 = { 683d270000 ff15???????? 83c8ff 5e c21400 6879270000 ff15???????? } // n = 7, score = 100 // 683d270000 | push 0x273d // ff15???????? | // 83c8ff | or eax, 0xffffffff // 5e | pop esi // c21400 | ret 0x14 // 6879270000 | push 0x2779 // ff15???????? | $sequence_7 = { 68c1000000 ff15???????? c745cc00000000 c745fcfeffffff 8b45cc e9???????? 8b45e4 } // n = 7, score = 100 // 68c1000000 | push 0xc1 // ff15???????? | // c745cc00000000 | mov dword ptr [ebp - 0x34], 0 // c745fcfeffffff | mov dword ptr [ebp - 4], 0xfffffffe // 8b45cc | mov eax, dword ptr [ebp - 0x34] // e9???????? | // 8b45e4 | mov eax, dword ptr [ebp - 0x1c] $sequence_8 = { 83c404 3bc3 89442410 0f8445010000 } // n = 4, score = 100 // 83c404 | add esp, 4 // 3bc3 | cmp eax, ebx // 89442410 | mov dword ptr [esp + 0x10], eax // 0f8445010000 | je 0x14b $sequence_9 = { 751e 8b442408 6804010000 68???????? 50 ff15???????? 85f6 } // n = 7, score = 100 // 751e | jne 0x20 // 8b442408 | mov eax, dword ptr [esp + 8] // 6804010000 | push 0x104 // 68???????? | // 50 | push eax // ff15???????? | // 85f6 | test esi, esi $sequence_10 = { 837de000 7519 6a04 6800200000 8b55f0 8b4250 50 } // n = 7, score = 100 // 837de000 | cmp dword ptr [ebp - 0x20], 0 // 7519 | jne 0x1b // 6a04 | push 4 // 6800200000 | push 0x2000 // 8b55f0 | mov edx, dword ptr [ebp - 0x10] // 8b4250 | mov eax, dword ptr [edx + 0x50] // 50 | push eax $sequence_11 = { c644240975 50 52 c64424126e c644241364 c644241633 c644241732 } // n = 7, score = 100 // c644240975 | mov byte ptr [esp + 9], 0x75 // 50 | push eax // 52 | push edx // c64424126e | mov byte ptr [esp + 0x12], 0x6e // c644241364 | mov byte ptr [esp + 0x13], 0x64 // c644241633 | mov byte ptr [esp + 0x16], 0x33 // c644241732 | mov byte ptr [esp + 0x17], 0x32 $sequence_12 = { 7502 eb20 8b4dfc c7411001000000 8b45fc eb17 } // n = 6, score = 100 // 7502 | jne 4 // eb20 | jmp 0x22 // 8b4dfc | mov ecx, dword ptr [ebp - 4] // c7411001000000 | mov dword ptr [ecx + 0x10], 1 // 8b45fc | mov eax, dword ptr [ebp - 4] // eb17 | jmp 0x19 $sequence_13 = { 0f8547ffffff 8bc6 8088c166001008 40 3dff000000 } // n = 5, score = 100 // 0f8547ffffff | jne 0xffffff4d // 8bc6 | mov eax, esi // 8088c166001008 | or byte ptr [eax + 0x100066c1], 8 // 40 | inc eax // 3dff000000 | cmp eax, 0xff $sequence_14 = { 7577 8b35???????? 8d94241c010000 68???????? 52 ffd6 } // n = 6, score = 100 // 7577 | jne 0x79 // 8b35???????? | // 8d94241c010000 | lea edx, [esp + 0x11c] // 68???????? | // 52 | push edx // ffd6 | call esi $sequence_15 = { 6a14 56 8974241c ff5510 85c0 0f85dd000000 8b460c } // n = 7, score = 100 // 6a14 | push 0x14 // 56 | push esi // 8974241c | mov dword ptr [esp + 0x1c], esi // ff5510 | call dword ptr [ebp + 0x10] // 85c0 | test eax, eax // 0f85dd000000 | jne 0xe3 // 8b460c | mov eax, dword ptr [esi + 0xc] $sequence_16 = { aa 8d442404 50 51 e8???????? 83c408 85c0 } // n = 7, score = 100 // aa | stosb byte ptr es:[edi], al // 8d442404 | lea eax, [esp + 4] // 50 | push eax // 51 | push ecx // e8???????? | // 83c408 | add esp, 8 // 85c0 | test eax, eax $sequence_17 = { 8b7a38 85ff 7e4e 8b46fc 6a04 6800100000 } // n = 6, score = 100 // 8b7a38 | mov edi, dword ptr [edx + 0x38] // 85ff | test edi, edi // 7e4e | jle 0x50 // 8b46fc | mov eax, dword ptr [esi - 4] // 6a04 | push 4 // 6800100000 | push 0x1000 $sequence_18 = { 8d84241c010000 68ff000000 50 53 ff15???????? 8d8c241c010000 51 } // n = 7, score = 100 // 8d84241c010000 | lea eax, [esp + 0x11c] // 68ff000000 | push 0xff // 50 | push eax // 53 | push ebx // ff15???????? | // 8d8c241c010000 | lea ecx, [esp + 0x11c] // 51 | push ecx $sequence_19 = { 53 50 8b4610 03461c } // n = 4, score = 100 // 53 | push ebx // 50 | push eax // 8b4610 | mov eax, dword ptr [esi + 0x10] // 03461c | add eax, dword ptr [esi + 0x1c] $sequence_20 = { 40 0fb6da f683c166001004 740c ff01 85f6 } // n = 6, score = 100 // 40 | inc eax // 0fb6da | movzx ebx, dl // f683c166001004 | test byte ptr [ebx + 0x100066c1], 4 // 740c | je 0xe // ff01 | inc dword ptr [ecx] // 85f6 | test esi, esi $sequence_21 = { 8d8c2440010000 50 8d9424bc000000 51 52 } // n = 5, score = 100 // 8d8c2440010000 | lea ecx, [esp + 0x140] // 50 | push eax // 8d9424bc000000 | lea edx, [esp + 0xbc] // 51 | push ecx // 52 | push edx $sequence_22 = { 5b 754a c7002c000000 895004 895008 } // n = 5, score = 100 // 5b | pop ebx // 754a | jne 0x4c // c7002c000000 | mov dword ptr [eax], 0x2c // 895004 | mov dword ptr [eax + 4], edx // 895008 | mov dword ptr [eax + 8], edx $sequence_23 = { 83c004 83c504 89442410 8b4500 } // n = 4, score = 100 // 83c004 | add eax, 4 // 83c504 | add ebp, 4 // 89442410 | mov dword ptr [esp + 0x10], eax // 8b4500 | mov eax, dword ptr [ebp] $sequence_24 = { 6689bc242a010000 668984242c010000 66c784242e0100003200 6689842430010000 6689bc2432010000 66c78424340100003500 } // n = 6, score = 100 // 6689bc242a010000 | mov word ptr [esp + 0x12a], di // 668984242c010000 | mov word ptr [esp + 0x12c], ax // 66c784242e0100003200 | mov word ptr [esp + 0x12e], 0x32 // 6689842430010000 | mov word ptr [esp + 0x130], ax // 6689bc2432010000 | mov word ptr [esp + 0x132], di // 66c78424340100003500 | mov word ptr [esp + 0x134], 0x35 $sequence_25 = { 668b0410 6689444ffe 3bcb 72e8 ff15???????? 50 8b442420 } // n = 7, score = 100 // 668b0410 | mov ax, word ptr [eax + edx] // 6689444ffe | mov word ptr [edi + ecx*2 - 2], ax // 3bcb | cmp ecx, ebx // 72e8 | jb 0xffffffea // ff15???????? | // 50 | push eax // 8b442420 | mov eax, dword ptr [esp + 0x20] $sequence_26 = { 7304 33c0 eb2a 8b4dfc 890d???????? } // n = 5, score = 100 // 7304 | jae 6 // 33c0 | xor eax, eax // eb2a | jmp 0x2c // 8b4dfc | mov ecx, dword ptr [ebp - 4] // 890d???????? | $sequence_27 = { 80780d00 7523 8d4900 397010 } // n = 4, score = 100 // 80780d00 | cmp byte ptr [eax + 0xd], 0 // 7523 | jne 0x25 // 8d4900 | lea ecx, [ecx] // 397010 | cmp dword ptr [eax + 0x10], esi $sequence_28 = { 8dbc241e010000 66899c241c010000 f3ab 8d84241c010000 68ff000000 } // n = 5, score = 100 // 8dbc241e010000 | lea edi, [esp + 0x11e] // 66899c241c010000 | mov word ptr [esp + 0x11c], bx // f3ab | rep stosd dword ptr es:[edi], eax // 8d84241c010000 | lea eax, [esp + 0x11c] // 68ff000000 | push 0xff $sequence_29 = { 56 57 33db b97f000000 33c0 8dbc241e010000 } // n = 6, score = 100 // 56 | push esi // 57 | push edi // 33db | xor ebx, ebx // b97f000000 | mov ecx, 0x7f // 33c0 | xor eax, eax // 8dbc241e010000 | lea edi, [esp + 0x11e] condition: 7 of them and filesize < 3789824 }
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