Actor(s): RomCom
According to Proofpoint, RustyClaw is a downloader written in Rust
rule win_rusty_claw_auto { meta: author = "Felix Bilstein - yara-signator at cocacoding dot com" date = "2026-05-04" version = "1" description = "Detects win.rusty_claw." 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.rusty_claw" 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 = { 8b942494000000 8b8c24a0000000 89542418 894c241c 8b542458 8b4c246c 891424 } // n = 7, score = 100 // 8b942494000000 | mov edx, dword ptr [esp + 0x94] // 8b8c24a0000000 | mov ecx, dword ptr [esp + 0xa0] // 89542418 | mov dword ptr [esp + 0x18], edx // 894c241c | mov dword ptr [esp + 0x1c], ecx // 8b542458 | mov edx, dword ptr [esp + 0x58] // 8b4c246c | mov ecx, dword ptr [esp + 0x6c] // 891424 | mov dword ptr [esp], edx $sequence_1 = { 89cf 891424 f7db 31ed 4d 8d042b } // n = 6, score = 100 // 89cf | mov edi, ecx // 891424 | mov dword ptr [esp], edx // f7db | neg ebx // 31ed | xor ebp, ebp // 4d | dec ebp // 8d042b | lea eax, [ebx + ebp] $sequence_2 = { 8a18 0fb6d3 84db 0f899b000000 8d7002 83e21f 897104 } // n = 7, score = 100 // 8a18 | mov bl, byte ptr [eax] // 0fb6d3 | movzx edx, bl // 84db | test bl, bl // 0f899b000000 | jns 0xa1 // 8d7002 | lea esi, [eax + 2] // 83e21f | and edx, 0x1f // 897104 | mov dword ptr [ecx + 4], esi $sequence_3 = { 31d2 8d4d9c 42 e8???????? 58 8b45a4 8b4ddc } // n = 7, score = 100 // 31d2 | xor edx, edx // 8d4d9c | lea ecx, [ebp - 0x64] // 42 | inc edx // e8???????? | // 58 | pop eax // 8b45a4 | mov eax, dword ptr [ebp - 0x5c] // 8b4ddc | mov ecx, dword ptr [ebp - 0x24] $sequence_4 = { 83610c00 e8???????? 89c8 89d1 89c2 e8???????? 53 } // n = 7, score = 100 // 83610c00 | and dword ptr [ecx + 0xc], 0 // e8???????? | // 89c8 | mov eax, ecx // 89d1 | mov ecx, edx // 89c2 | mov edx, eax // e8???????? | // 53 | push ebx $sequence_5 = { eb31 8d5630 89461c 897e10 c786d804000007000000 8d8ec8000000 832200 } // n = 7, score = 100 // eb31 | jmp 0x33 // 8d5630 | lea edx, [esi + 0x30] // 89461c | mov dword ptr [esi + 0x1c], eax // 897e10 | mov dword ptr [esi + 0x10], edi // c786d804000007000000 | mov dword ptr [esi + 0x4d8], 7 // 8d8ec8000000 | lea ecx, [esi + 0xc8] // 832200 | and dword ptr [edx], 0 $sequence_6 = { 89442420 894c2424 89542428 894c2444 89442434 8974242c 89e9 } // n = 7, score = 100 // 89442420 | mov dword ptr [esp + 0x20], eax // 894c2424 | mov dword ptr [esp + 0x24], ecx // 89542428 | mov dword ptr [esp + 0x28], edx // 894c2444 | mov dword ptr [esp + 0x44], ecx // 89442434 | mov dword ptr [esp + 0x34], eax // 8974242c | mov dword ptr [esp + 0x2c], esi // 89e9 | mov ecx, ebp $sequence_7 = { 0f299424b0020000 0f298c24a0020000 0f284c2450 0f298c24c0020000 50 8d8424c4020000 50 } // n = 7, score = 100 // 0f299424b0020000 | movaps xmmword ptr [esp + 0x2b0], xmm2 // 0f298c24a0020000 | movaps xmmword ptr [esp + 0x2a0], xmm1 // 0f284c2450 | movaps xmm1, xmmword ptr [esp + 0x50] // 0f298c24c0020000 | movaps xmmword ptr [esp + 0x2c0], xmm1 // 50 | push eax // 8d8424c4020000 | lea eax, [esp + 0x2c4] // 50 | push eax $sequence_8 = { 85c0 0f45da 0f45f8 89da 85ed 7445 8b5e04 } // n = 7, score = 100 // 85c0 | test eax, eax // 0f45da | cmovne ebx, edx // 0f45f8 | cmovne edi, eax // 89da | mov edx, ebx // 85ed | test ebp, ebp // 7445 | je 0x47 // 8b5e04 | mov ebx, dword ptr [esi + 4] $sequence_9 = { e8???????? a801 7458 89d1 80c1d0 80f90a 721a } // n = 7, score = 100 // e8???????? | // a801 | test al, 1 // 7458 | je 0x5a // 89d1 | mov ecx, edx // 80c1d0 | add cl, 0xd0 // 80f90a | cmp cl, 0xa // 721a | jb 0x1c condition: 7 of them and filesize < 518144 }
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