Part of Mythic C2, written in Nim. Considered deprecated, as it is only compatible with Mythic 2.1.
rule win_nimplant_auto { meta: author = "Felix Bilstein - yara-signator at cocacoding dot com" date = "2026-09-17" version = "1" description = "Detects win.nimplant." 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.nimplant" 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???????? 488b00 4885c0 7409 4889f9 ffd0 84c0 } // n = 7, score = 100 // e8???????? | // 488b00 | dec eax // 4885c0 | mov dword ptr [esp + 0x160], esi // 7409 | dec ebp // 4889f9 | test ecx, ecx // ffd0 | je 0x247 // 84c0 | dec eax $sequence_1 = { 84c0 79d7 4189c1 41c0e905 4180f906 744a 4189c1 } // n = 7, score = 100 // 84c0 | dec ecx // 79d7 | mov dword ptr [eax], 0 // 4189c1 | dec ecx // 41c0e905 | mov edx, ebx // 4180f906 | cmp dl, 0x5f // 744a | je 0x30b // 4189c1 | mulsd xmm0, xmm0 $sequence_2 = { e8???????? e9???????? 49b8ffffffffffffff7f 31d2 4889d9 e8???????? e9???????? } // n = 7, score = 100 // e8???????? | // e9???????? | // 49b8ffffffffffffff7f | cmp eax, dword ptr [eax] // 31d2 | dec esp // 4889d9 | mov esp, dword ptr [esp + 0x40] // e8???????? | // e9???????? | $sequence_3 = { e8???????? 488b542438 4c8b542428 85c0 4c8b4c2430 7464 0f1f4000 } // n = 7, score = 100 // e8???????? | // 488b542438 | jne 0xc17 // 4c8b542428 | inc eax // 85c0 | movzx ecx, bh // 4c8b4c2430 | dec eax // 7464 | cmp ecx, 2 // 0f1f4000 | cmp byte ptr [eax], 0 $sequence_4 = { 75a6 48b80000000000000040 49850424 7412 4883c428 5b 5e } // n = 7, score = 100 // 75a6 | mov dword ptr [esp + 0x38], edx // 48b80000000000000040 | dec esp // 49850424 | mov dword ptr [esp + 0x30], ecx // 7412 | dec eax // 4883c428 | mov dword ptr [esp + 0x20], ecx // 5b | dec eax // 5e | mov edx, dword ptr [esp + 0x58] $sequence_5 = { 4c8b8c2440010000 4d8d543908 4885db 7e4b 4989d8 4983c001 0f80f5110000 } // n = 7, score = 100 // 4c8b8c2440010000 | dec esp // 4d8d543908 | lea esi, [esp + 0x80] // 4885db | dec eax // 7e4b | mov dword ptr [edx + 8], 0 // 4989d8 | dec esp // 4983c001 | mov ecx, esi // 0f80f5110000 | dec esp $sequence_6 = { 0f88f4040000 4c89ca 4c89e1 4c894c2440 4c895c2448 e8???????? f30f6f5c2470 } // n = 7, score = 100 // 0f88f4040000 | jne 0x40a // 4c89ca | dec eax // 4c89e1 | mov esi, dword ptr [esp + 0x128] // 4c894c2440 | dec eax // 4c895c2448 | mov dword ptr [esp + 0x88], 0 // e8???????? | // f30f6f5c2470 | dec eax $sequence_7 = { 4c89e9 e8???????? 488b442420 4885c0 0f8e40010000 488b542428 4885d2 } // n = 7, score = 100 // 4c89e9 | mov ecx, ebp // e8???????? | // 488b442420 | dec eax // 4885c0 | mov dword ptr [esp + 0x48], eax // 0f8e40010000 | dec eax // 488b542428 | mov dword ptr [esp + 0x40], eax // 4885d2 | dec esp $sequence_8 = { 7415 488d8c2400010000 e8???????? 4c8b8c2408010000 488b4c2478 4c8b8424c0000000 488d5608 } // n = 7, score = 100 // 7415 | dec eax // 488d8c2400010000 | test edx, edx // e8???????? | // 4c8b8c2408010000 | jo 0xfb // 488b4c2478 | dec ecx // 4c8b8424c0000000 | mov dword ptr [esp + 0x10], eax // 488d5608 | dec ecx $sequence_9 = { 81e3ff0f0000 4c89f1 89da e8???????? 807d0000 488b5c2430 4c8b6c2438 } // n = 7, score = 100 // 81e3ff0f0000 | add byte ptr [eax - 0x48], cl // 4c89f1 | sahf // 89da | jg 0x11 // e8???????? | // 807d0000 | test byte ptr [ecx], dl // 488b5c2430 | or byte ptr [eax], al // 4c8b6c2438 | add byte ptr [ebp + ecx*4 + 0x70], al condition: 7 of them and filesize < 1811456 }
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