Cisco Talos compared this RAT to Cobalt Strike and Sliver. Written in Rust.
rule win_manjusaka_auto { meta: author = "Felix Bilstein - yara-signator at cocacoding dot com" date = "2026-09-17" version = "1" description = "Detects win.manjusaka." 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.manjusaka" 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 = { f348a5 488b5068 488b4070 4889442458 488dbc24b0000000 b90d000000 4c89c6 } // n = 7, score = 100 // f348a5 | cmp edx, ebx // 488b5068 | je 0x539 // 488b4070 | dec eax // 4889442458 | mov esi, ebx // 488dbc24b0000000 | xor ebx, ebx // b90d000000 | mov edi, 8 // 4c89c6 | mov esi, 8 $sequence_1 = { b8b4000000 8902 418bc1 e9???????? c70235000000 498bc0 8079013d } // n = 7, score = 100 // b8b4000000 | inc ecx // 8902 | add edx, ebx // 418bc1 | mov dword ptr [esp + 0x20], edx // e9???????? | // c70235000000 | mov dword ptr [ebp + 0x24], edx // 498bc0 | dec eax // 8079013d | cmp esi, 0x10 $sequence_2 = { 8b942434010000 894e19 89561c b902000000 4c8dac2488030000 49894d00 410f117508 } // n = 7, score = 100 // 8b942434010000 | dec ebp // 894e19 | mov ecx, dword ptr [ebp + 8] // 89561c | jmp 0xe74 // b902000000 | dec esp // 4c8dac2488030000 | mov ebp, dword ptr [esp + 0x50] // 49894d00 | test byte ptr [ebx + 4], 0x20 // 410f117508 | je 0xede $sequence_3 = { e8???????? 8b06 83f804 0f85a1000000 41807f6800 742a 4d8b4f50 } // n = 7, score = 100 // e8???????? | // 8b06 | ret // 83f804 | mov ecx, ecx // 0f85a1000000 | dec eax // 41807f6800 | mov eax, 0x79746573 // 742a | bound esp, qword ptr [ebp + 0x70] // 4d8b4f50 | dec eax $sequence_4 = { ba3a000000 41ffd7 84c0 0f85f5000000 4c896dd0 488d05c6050000 488945d8 } // n = 7, score = 100 // ba3a000000 | mov eax, dword ptr [ebp - 0x40] // 41ffd7 | inc ebp // 84c0 | add ebp, edx // 0f85f5000000 | inc ebp // 4c896dd0 | xor ebx, ebx // 488d05c6050000 | dec eax // 488945d8 | mov dword ptr [ebp + ebx*8 + 0x90], edi $sequence_5 = { e8???????? c646f80e 0f10442460 0f104c2470 0f298424b0000000 0f298c24c0000000 410f114f10 } // n = 7, score = 100 // e8???????? | // c646f80e | cmp esi, dword ptr [ebx + 0x1f4] // 0f10442460 | jl 0x820 // 0f104c2470 | dec eax // 0f298424b0000000 | mov edx, edi // 0f298c24c0000000 | dec eax // 410f114f10 | mov ecx, ebx $sequence_6 = { 4d85ff 751f 4c8bef 83cbff 488b4dd8 44394908 0f8587000000 } // n = 7, score = 100 // 4d85ff | dec eax // 751f | lea eax, [0x19bd09] // 4c8bef | dec eax // 83cbff | mov dword ptr [ebp], eax // 488b4dd8 | dec eax // 44394908 | lea eax, [0xffff93b6] // 0f8587000000 | dec eax $sequence_7 = { e8???????? 0f1005???????? 0f1100 8b0d???????? 89480f 49c7042410000000 4989442408 } // n = 7, score = 100 // e8???????? | // 0f1005???????? | // 0f1100 | mov dword ptr [esp + 0x60], edx // 8b0d???????? | // 89480f | dec eax // 49c7042410000000 | mov dword ptr [esp + 0x68], 0 // 4989442408 | mov dl, 0x30 $sequence_8 = { eb2b 4c8d05dc2f1900 ba20010000 4889c1 eb1a 4c8d05e32f1900 ba11000000 } // n = 7, score = 100 // eb2b | jne 0x4cc // 4c8d05dc2f1900 | xor ebx, ebx // ba20010000 | jmp 0x4e8 // 4889c1 | test eax, eax // eb1a | jne 0x942 // 4c8d05e32f1900 | inc ebp // ba11000000 | xor eax, eax $sequence_9 = { e8???????? 488bce 488be8 e8???????? 4c8be8 4885db 0f845b010000 } // n = 7, score = 100 // e8???????? | // 488bce | lea ecx, [0x1435b1] // 488be8 | dec eax // e8???????? | // 4c8be8 | mov dword ptr [eax + 0x10], ecx // 4885db | mov byte ptr [eax], 0xa // 0f845b010000 | ret condition: 7 of them and filesize < 4772864 }
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