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-05-04" 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 = "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 = { 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 = { 8b00 3bd0 7416 83c018 7411 ff750c } // n = 6, score = 100 // 8b00 | mov eax, dword ptr [eax] // 3bd0 | cmp edx, eax // 7416 | je 0x18 // 83c018 | add eax, 0x18 // 7411 | je 0x13 // ff750c | push dword ptr [ebp + 0xc] $sequence_2 = { 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_3 = { 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_4 = { 2bc1 3bd0 746e 668932 83c202 3bd0 75f6 } // n = 7, score = 100 // 2bc1 | sub eax, ecx // 3bd0 | cmp edx, eax // 746e | je 0x70 // 668932 | mov word ptr [edx], si // 83c202 | add edx, 2 // 3bd0 | cmp edx, eax // 75f6 | jne 0xfffffff8 $sequence_5 = { 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] $sequence_6 = { eb1a 81f977665500 7504 8918 eb10 81f988776600 } // n = 6, score = 100 // eb1a | jmp 0x1c // 81f977665500 | cmp ecx, 0x556677 // 7504 | jne 6 // 8918 | mov dword ptr [eax], ebx // eb10 | jmp 0x12 // 81f988776600 | cmp ecx, 0x667788 $sequence_7 = { 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_8 = { 75f9 2bce 51 52 eb57 } // n = 5, score = 100 // 75f9 | jne 0xfffffffb // 2bce | sub ecx, esi // 51 | push ecx // 52 | push edx // eb57 | jmp 0x59 $sequence_9 = { 57 8bca bf???????? 33db } // n = 4, score = 100 // 57 | push edi // 8bca | mov ecx, edx // bf???????? | // 33db | xor ebx, ebx $sequence_10 = { 56 57 68ff1f0000 8d85d9deffff } // n = 4, score = 100 // 56 | push esi // 57 | push edi // 68ff1f0000 | push 0x1fff // 8d85d9deffff | lea eax, [ebp - 0x2127] $sequence_11 = { 80a0c065001000 40 3bc6 72be 5e c9 } // n = 6, score = 100 // 80a0c065001000 | and byte ptr [eax + 0x100065c0], 0 // 40 | inc eax // 3bc6 | cmp eax, esi // 72be | jb 0xffffffc0 // 5e | pop esi // c9 | leave $sequence_12 = { 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_13 = { 50 ffd6 53 ff15???????? 50 e8???????? 83c404 } // n = 7, score = 100 // 50 | push eax // ffd6 | call esi // 53 | push ebx // ff15???????? | // 50 | push eax // e8???????? | // 83c404 | add esp, 4 $sequence_14 = { c784246001000004000000 ff15???????? 85c0 0f8c89010000 8b4c2410 } // n = 5, score = 100 // c784246001000004000000 | mov dword ptr [esp + 0x160], 4 // ff15???????? | // 85c0 | test eax, eax // 0f8c89010000 | jl 0x18f // 8b4c2410 | mov ecx, dword ptr [esp + 0x10] $sequence_15 = { c20400 8d85d8fdffff 50 53 57 } // n = 5, score = 100 // c20400 | ret 4 // 8d85d8fdffff | lea eax, [ebp - 0x228] // 50 | push eax // 53 | push ebx // 57 | push edi $sequence_16 = { e8???????? 68???????? e8???????? 83c404 c745fcffffffff 8d4508 } // n = 6, score = 100 // e8???????? | // 68???????? | // e8???????? | // 83c404 | add esp, 4 // c745fcffffffff | mov dword ptr [ebp - 4], 0xffffffff // 8d4508 | lea eax, [ebp + 8] $sequence_17 = { c64424336c c644243400 ffd7 83c408 } // n = 4, score = 100 // c64424336c | mov byte ptr [esp + 0x33], 0x6c // c644243400 | mov byte ptr [esp + 0x34], 0 // ffd7 | call edi // 83c408 | add esp, 8 $sequence_18 = { 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_19 = { 894dec 837dec0e 7d13 8b55ec 837c959800 7507 } // n = 6, score = 100 // 894dec | mov dword ptr [ebp - 0x14], ecx // 837dec0e | cmp dword ptr [ebp - 0x14], 0xe // 7d13 | jge 0x15 // 8b55ec | mov edx, dword ptr [ebp - 0x14] // 837c959800 | cmp dword ptr [ebp + edx*4 - 0x68], 0 // 7507 | jne 9 $sequence_20 = { ba44000000 6a00 6689542478 66899424a2000000 66899424b0000000 66899424b2000000 8d54246c } // n = 7, score = 100 // ba44000000 | mov edx, 0x44 // 6a00 | push 0 // 6689542478 | mov word ptr [esp + 0x78], dx // 66899424a2000000 | mov word ptr [esp + 0xa2], dx // 66899424b0000000 | mov word ptr [esp + 0xb0], dx // 66899424b2000000 | mov word ptr [esp + 0xb2], dx // 8d54246c | lea edx, [esp + 0x6c] $sequence_21 = { 85c0 7417 8d7d9c 4f 8bff 8a4701 } // n = 6, score = 100 // 85c0 | test eax, eax // 7417 | je 0x19 // 8d7d9c | lea edi, [ebp - 0x64] // 4f | dec edi // 8bff | mov edi, edi // 8a4701 | mov al, byte ptr [edi + 1] $sequence_22 = { 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_23 = { 0f86eb000000 8b30 8b6c2420 03f3 } // n = 4, score = 100 // 0f86eb000000 | jbe 0xf1 // 8b30 | mov esi, dword ptr [eax] // 8b6c2420 | mov ebp, dword ptr [esp + 0x20] // 03f3 | add esi, ebx $sequence_24 = { 83e203 83f908 7229 f3a5 ff249518310010 8bc7 } // n = 6, score = 100 // 83e203 | and edx, 3 // 83f908 | cmp ecx, 8 // 7229 | jb 0x2b // f3a5 | rep movsd dword ptr es:[edi], dword ptr [esi] // ff249518310010 | jmp dword ptr [edx*4 + 0x10003118] // 8bc7 | mov eax, edi $sequence_25 = { 6a08 ff15???????? 6a40 6800300000 } // n = 4, score = 100 // 6a08 | push 8 // ff15???????? | // 6a40 | push 0x40 // 6800300000 | push 0x3000 $sequence_26 = { 8a10 8816 46 eb0f 0fb6d2 f682c166001004 } // n = 6, score = 100 // 8a10 | mov dl, byte ptr [eax] // 8816 | mov byte ptr [esi], dl // 46 | inc esi // eb0f | jmp 0x11 // 0fb6d2 | movzx edx, dl // f682c166001004 | test byte ptr [edx + 0x100066c1], 4 $sequence_27 = { b86e000000 b969000000 66898424c4000000 66898424d0000000 66898424e4000000 } // n = 5, score = 100 // b86e000000 | mov eax, 0x6e // b969000000 | mov ecx, 0x69 // 66898424c4000000 | mov word ptr [esp + 0xc4], ax // 66898424d0000000 | mov word ptr [esp + 0xd0], ax // 66898424e4000000 | mov word ptr [esp + 0xe4], ax $sequence_28 = { 8bf0 85db 742e 85ff 742a } // n = 5, score = 100 // 8bf0 | mov esi, eax // 85db | test ebx, ebx // 742e | je 0x30 // 85ff | test edi, edi // 742a | je 0x2c $sequence_29 = { 035128 8955f8 837df800 7502 eb38 6a00 } // n = 6, score = 100 // 035128 | add edx, dword ptr [ecx + 0x28] // 8955f8 | mov dword ptr [ebp - 8], edx // 837df800 | cmp dword ptr [ebp - 8], 0 // 7502 | jne 4 // eb38 | jmp 0x3a // 6a00 | push 0 $sequence_30 = { 8b4d08 034878 894dfc 8b55fc 8b4508 034220 8945ec } // n = 7, score = 100 // 8b4d08 | mov ecx, dword ptr [ebp + 8] // 034878 | add ecx, dword ptr [eax + 0x78] // 894dfc | mov dword ptr [ebp - 4], ecx // 8b55fc | mov edx, dword ptr [ebp - 4] // 8b4508 | mov eax, dword ptr [ebp + 8] // 034220 | add eax, dword ptr [edx + 0x20] // 8945ec | mov dword ptr [ebp - 0x14], eax 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