Actor(s): Lazarus Group
Malware observed in the SnatchCrypto campaign, attributed by Kaspersky Labs to BlueNoroff with high confidence.
rule win_snatchcrypto_auto { meta: author = "Felix Bilstein - yara-signator at cocacoding dot com" date = "2026-05-04" version = "1" description = "Detects win.snatchcrypto." 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.snatchcrypto" 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 = { 0f842e010000 488b542460 448d4301 488d4c2470 ff15???????? b920040000 41b806020000 } // n = 7, score = 200 // 0f842e010000 | xor ecx, esp // 488b542460 | dec eax // 448d4301 | add esp, 0x578 // 488d4c2470 | inc ecx // ff15???????? | // b920040000 | pop esi // 41b806020000 | inc ecx $sequence_1 = { 4c8b8fb0000000 488bcf 448bc0 4883feff 741b 488d155a570100 4889742420 } // n = 7, score = 200 // 4c8b8fb0000000 | add ecx, dword ptr [ebx + 0x168] // 488bcf | lea ebp, [ecx + eax + 6] // 448bc0 | mov edx, 0x4000 // 4883feff | xor ebx, ebx // 741b | mov eax, dword ptr [edi + 0x270] // 488d155a570100 | mov dword ptr [esp + 0xa0], ebx // 4889742420 | inc esp $sequence_2 = { 4885d2 750f 488d0d98ff0200 ff15???????? eb18 803a3c 488d0d2a5f0300 } // n = 7, score = 200 // 4885d2 | inc ecx // 750f | push esp // 488d0d98ff0200 | inc ecx // ff15???????? | // eb18 | push ebp // 803a3c | dec eax // 488d0d2a5f0300 | lea ebp, [esp - 0x648] $sequence_3 = { 4053 4883ec20 488bd9 4881c128050000 488d15b1000300 4c8b4170 c7818c00000000000000 } // n = 7, score = 200 // 4053 | je 0x136d // 4883ec20 | dec eax // 488bd9 | lea ecx, [0x2ba4b] // 4881c128050000 | dec eax // 488d15b1000300 | mov edi, eax // 4c8b4170 | dec eax // c7818c00000000000000 | test eax, eax $sequence_4 = { 488d159afe0200 e8???????? eb38 488d1574fe0200 4d8bcc e8???????? eb27 } // n = 7, score = 200 // 488d159afe0200 | je 0x852 // e8???????? | // eb38 | mov dword ptr [ebx + 0x58], ebp // 488d1574fe0200 | dec eax // 4d8bcc | lea edx, [esp + 0x70] // e8???????? | // eb27 | dec eax $sequence_5 = { 33db 4585e4 7467 0f1f4000 488b0d???????? 488bd6 e8???????? } // n = 7, score = 200 // 33db | cmp ecx, eax // 4585e4 | je 0x18b5 // 7467 | mov edi, 0xd // 0f1f4000 | mov ecx, edi // 488b0d???????? | // 488bd6 | dec eax // e8???????? | $sequence_6 = { 4883ec10 8bb1f0000000 4d8bf0 488bf9 d1ee 83fe07 0f87a6050000 } // n = 7, score = 200 // 4883ec10 | mov eax, 0xffffff74 // 8bb1f0000000 | dec eax // 4d8bf0 | add esp, 0x20 // 488bf9 | dec esp // d1ee | lea eax, [esp + 0x40] // 83fe07 | jne 0x102b // 0f87a6050000 | dec eax $sequence_7 = { 4885c0 0f8411ffffff 488b5348 488bc8 c743680a000000 e8???????? 8bf8 } // n = 7, score = 200 // 4885c0 | inc ecx // 0f8411ffffff | test byte ptr [eax + 0x38], 0x7f // 488b5348 | jne 0x476 // 488bc8 | dec ebp // c743680a000000 | add eax, ecx // e8???????? | // 8bf8 | inc ecx $sequence_8 = { 0f86d9000000 418bad90000000 418d5613 4803e8 488bcd ff5640 85c0 } // n = 7, score = 200 // 0f86d9000000 | dec eax // 418bad90000000 | mov ecx, ebx // 418d5613 | test eax, eax // 4803e8 | jne 0xe72 // 488bcd | dec eax // ff5640 | mov ecx, ebx // 85c0 | dec eax $sequence_9 = { 4889542420 488d15eaef0100 488bcf e8???????? 8bc3 488b5c2450 488b742460 } // n = 7, score = 200 // 4889542420 | jne 0x150f // 488d15eaef0100 | nop word ptr [eax + eax] // 488bcf | mov byte ptr [ecx], 0 // e8???????? | // 8bc3 | dec eax // 488b5c2450 | inc ecx // 488b742460 | dec eax condition: 7 of them and filesize < 1400832 }
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