SYMBOLCOMMON_NAMEaka. SYNONYMS
win.xorist (Back to overview)

Xorist

VTCollection    

According to PCrisk, Xorist is a family of ransomware-type malware. After stealth system infiltration, ransomware from this family encrypts various files stored on the computer. After encrypting the files, this ransomware creates a 'How to Decrypt Files.txt text file on the victim's desktop. The file contains a message stating that the files can only be restored by paying a ransom.

References
2022-11-10FortinetJames Slaughter, Shunichi Imano
Ransomware Roundup: New Inlock and Xorist Variants
Inlock Xorist
Yara Rules
[TLP:WHITE] win_xorist_auto (20260504 | Detects win.xorist.)
rule win_xorist_auto {

    meta:
        author = "Felix Bilstein - yara-signator at cocacoding dot com"
        date = "2026-05-04"
        version = "1"
        description = "Detects win.xorist."
        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.xorist"
        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 = { 59 3bc6 0f832c080000 0fb707 6a5c 59 83f82e }
            // n = 7, score = 100
            //   59                   | pop                 ecx
            //   3bc6                 | cmp                 eax, esi
            //   0f832c080000         | jae                 0x832
            //   0fb707               | movzx               eax, word ptr [edi]
            //   6a5c                 | push                0x5c
            //   59                   | pop                 ecx
            //   83f82e               | cmp                 eax, 0x2e

        $sequence_1 = { 03c1 8b4c2414 81c1a1ebd96e c1cd02 03c8 896c2418 8d4203 }
            // n = 7, score = 100
            //   03c1                 | add                 eax, ecx
            //   8b4c2414             | mov                 ecx, dword ptr [esp + 0x14]
            //   81c1a1ebd96e         | add                 ecx, 0x6ed9eba1
            //   c1cd02               | ror                 ebp, 2
            //   03c8                 | add                 ecx, eax
            //   896c2418             | mov                 dword ptr [esp + 0x18], ebp
            //   8d4203               | lea                 eax, [edx + 3]

        $sequence_2 = { 57 8bbc246c120000 83cbff bd00080000 50 3bf3 7570 }
            // n = 7, score = 100
            //   57                   | push                edi
            //   8bbc246c120000       | mov                 edi, dword ptr [esp + 0x126c]
            //   83cbff               | or                  ebx, 0xffffffff
            //   bd00080000           | mov                 ebp, 0x800
            //   50                   | push                eax
            //   3bf3                 | cmp                 esi, ebx
            //   7570                 | jne                 0x72

        $sequence_3 = { 8b11 8b7208 8bce ff15???????? ffd6 5e }
            // n = 6, score = 100
            //   8b11                 | mov                 edx, dword ptr [ecx]
            //   8b7208               | mov                 esi, dword ptr [edx + 8]
            //   8bce                 | mov                 ecx, esi
            //   ff15????????         |                     
            //   ffd6                 | call                esi
            //   5e                   | pop                 esi

        $sequence_4 = { 50 6a39 e8???????? 8b07 8b7008 8bce ff15???????? }
            // n = 7, score = 100
            //   50                   | push                eax
            //   6a39                 | push                0x39
            //   e8????????           |                     
            //   8b07                 | mov                 eax, dword ptr [edi]
            //   8b7008               | mov                 esi, dword ptr [eax + 8]
            //   8bce                 | mov                 ecx, esi
            //   ff15????????         |                     

        $sequence_5 = { 8a040a 345c 46 8801 3bf3 72ee 83fb40 }
            // n = 7, score = 100
            //   8a040a               | mov                 al, byte ptr [edx + ecx]
            //   345c                 | xor                 al, 0x5c
            //   46                   | inc                 esi
            //   8801                 | mov                 byte ptr [ecx], al
            //   3bf3                 | cmp                 esi, ebx
            //   72ee                 | jb                  0xfffffff0
            //   83fb40               | cmp                 ebx, 0x40

        $sequence_6 = { 895c0802 83c106 81f900060000 7ccd 8d86700a0000 8bfb 89442410 }
            // n = 7, score = 100
            //   895c0802             | mov                 dword ptr [eax + ecx + 2], ebx
            //   83c106               | add                 ecx, 6
            //   81f900060000         | cmp                 ecx, 0x600
            //   7ccd                 | jl                  0xffffffcf
            //   8d86700a0000         | lea                 eax, [esi + 0xa70]
            //   8bfb                 | mov                 edi, ebx
            //   89442410             | mov                 dword ptr [esp + 0x10], eax

        $sequence_7 = { 7427 53 e8???????? 8b7d14 8b5518 035500 53 }
            // n = 7, score = 100
            //   7427                 | je                  0x29
            //   53                   | push                ebx
            //   e8????????           |                     
            //   8b7d14               | mov                 edi, dword ptr [ebp + 0x14]
            //   8b5518               | mov                 edx, dword ptr [ebp + 0x18]
            //   035500               | add                 edx, dword ptr [ebp]
            //   53                   | push                ebx

        $sequence_8 = { 837d1401 8b7510 8945fc 751d 8d4601 50 }
            // n = 6, score = 100
            //   837d1401             | cmp                 dword ptr [ebp + 0x14], 1
            //   8b7510               | mov                 esi, dword ptr [ebp + 0x10]
            //   8945fc               | mov                 dword ptr [ebp - 4], eax
            //   751d                 | jne                 0x1f
            //   8d4601               | lea                 eax, [esi + 1]
            //   50                   | push                eax

        $sequence_9 = { 6a10 59 2bc8 d3ea 0fb68c3214100000 034d04 8bc1 }
            // n = 7, score = 100
            //   6a10                 | push                0x10
            //   59                   | pop                 ecx
            //   2bc8                 | sub                 ecx, eax
            //   d3ea                 | shr                 edx, cl
            //   0fb68c3214100000     | movzx               ecx, byte ptr [edx + esi + 0x1014]
            //   034d04               | add                 ecx, dword ptr [ebp + 4]
            //   8bc1                 | mov                 eax, ecx

    condition:
        7 of them and filesize < 1402880
}
Download all Yara Rules