SYMBOLCOMMON_NAMEaka. SYNONYMS
win.r77 (Back to overview)

r77

aka: r77 Rootkit
VTCollection    

According to the author, r77 is a ring 3 rootkit that hides everything:
* Files, directories
* Processes & CPU usage
* Registry keys & values
* Services
* TCP & UDP connections
* Junctions, named pipes, scheduled tasks

References
2025-03-13 ⋅ Securonix ⋅ Den Iyzvyk, Tim Peck
Analyzing OBSCURE#BAT Threat Actors Lure Victims into Executing Malicious Batch Scripts to Deploy Stealthy Rootkits
Quasar RAT r77
2024-09-04 ⋅ HarfangLab ⋅ Alice Climent-Pommeret
Unpacking the unpleasant FIN7 gift: PackXOR
r77 xmrig
2022-05-08 ⋅ Twitter (@malmoeb) ⋅ Stephan Berger
Twitter Thread on popularity and detection of r77
r77
2017-12-17 ⋅ Github (bytecode77) ⋅ Martin Fischer
r77 Rootkit
r77
Yara Rules
[TLP:WHITE] win_r77_auto (20260917 | Detects win.r77.)
rule win_r77_auto {

    meta:
        author = "Felix Bilstein - yara-signator at cocacoding dot com"
        date = "2026-09-17"
        version = "1"
        description = "Detects win.r77."
        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.r77"
        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 = { 740b 8b0f e8???????? 85c0 }
            // n = 4, score = 200
            //   740b                 | je                  0xd
            //   8b0f                 | mov                 ecx, dword ptr [edi]
            //   e8????????           |                     
            //   85c0                 | test                eax, eax

        $sequence_1 = { 740c 8b4f0c e8???????? 85c0 }
            // n = 4, score = 200
            //   740c                 | je                  0xe
            //   8b4f0c               | mov                 ecx, dword ptr [edi + 0xc]
            //   e8????????           |                     
            //   85c0                 | test                eax, eax

        $sequence_2 = { 4c8d052ff40000 83e23f 488bcf 48c1f906 }
            // n = 4, score = 100
            //   4c8d052ff40000       | dec                 eax
            //   83e23f               | mov                 edx, dword ptr [edi + 0x30]
            //   488bcf               | dec                 eax
            //   48c1f906             | mov                 ecx, dword ptr [ebx + 0x30]

        $sequence_3 = { 6802000080 ffd3 85c0 0f8559010000 8d45f8 50 6819000200 }
            // n = 7, score = 100
            //   6802000080           | push                0x80000002
            //   ffd3                 | call                ebx
            //   85c0                 | test                eax, eax
            //   0f8559010000         | jne                 0x15f
            //   8d45f8               | lea                 eax, [ebp - 8]
            //   50                   | push                eax
            //   6819000200           | push                0x20019

        $sequence_4 = { 4885c0 7432 488b5028 418bcb 448b02 4585c0 }
            // n = 6, score = 100
            //   4885c0               | mov                 ebx, dword ptr [esi + esi*8 + 0x22670]
            //   7432                 | dec                 eax
            //   488b5028             | test                ebx, ebx
            //   418bcb               | dec                 eax
            //   448b02               | test                eax, eax
            //   4585c0               | je                  0x34

        $sequence_5 = { 8945f4 eb0f 8b4dfc 51 e8???????? 83c404 8945f8 }
            // n = 7, score = 100
            //   8945f4               | mov                 dword ptr [ebp - 0xc], eax
            //   eb0f                 | jmp                 0x11
            //   8b4dfc               | mov                 ecx, dword ptr [ebp - 4]
            //   51                   | push                ecx
            //   e8????????           |                     
            //   83c404               | add                 esp, 4
            //   8945f8               | mov                 dword ptr [ebp - 8], eax

        $sequence_6 = { 8945fc 3938 7667 53 8d5e2c 8b0e e8???????? }
            // n = 7, score = 100
            //   8945fc               | mov                 dword ptr [ebp - 4], eax
            //   3938                 | cmp                 dword ptr [eax], edi
            //   7667                 | jbe                 0x69
            //   53                   | push                ebx
            //   8d5e2c               | lea                 ebx, [esi + 0x2c]
            //   8b0e                 | mov                 ecx, dword ptr [esi]
            //   e8????????           |                     

        $sequence_7 = { 488b5730 488b4b30 e8???????? 85c0 }
            // n = 4, score = 100
            //   488b5730             | inc                 esp
            //   488b4b30             | mov                 eax, dword ptr [edx]
            //   e8????????           |                     
            //   85c0                 | inc                 ebp

        $sequence_8 = { 488b55c8 4c8d054efd0000 85c0 0f8417010000 }
            // n = 4, score = 100
            //   488b55c8             | dec                 eax
            //   4c8d054efd0000       | mov                 edx, dword ptr [eax + 0x28]
            //   85c0                 | inc                 ecx
            //   0f8417010000         | mov                 ecx, ebx

        $sequence_9 = { 0f8593000000 b801000000 c1e000 8b4d08 0fb61401 83fa1f }
            // n = 6, score = 100
            //   0f8593000000         | jne                 0x99
            //   b801000000           | mov                 eax, 1
            //   c1e000               | shl                 eax, 0
            //   8b4d08               | mov                 ecx, dword ptr [ebp + 8]
            //   0fb61401             | movzx               edx, byte ptr [ecx + eax]
            //   83fa1f               | cmp                 edx, 0x1f

        $sequence_10 = { 394508 7c1f 3934bdf8a00110 7531 }
            // n = 4, score = 100
            //   394508               | cmp                 dword ptr [ebp + 8], eax
            //   7c1f                 | jl                  0x21
            //   3934bdf8a00110       | cmp                 dword ptr [edi*4 + 0x1001a0f8], esi
            //   7531                 | jne                 0x33

        $sequence_11 = { e9???????? 493bec 0f84b9000000 8b7500 498b9cf670260200 4885db }
            // n = 6, score = 100
            //   e9????????           |                     
            //   493bec               | dec                 ecx
            //   0f84b9000000         | cmp                 ebp, esp
            //   8b7500               | je                  0xbf
            //   498b9cf670260200     | mov                 esi, dword ptr [ebp]
            //   4885db               | dec                 ecx

        $sequence_12 = { 488d0541d70000 0f1000 4c8bd9 488d4c2430 0f104810 0f1101 0f104020 }
            // n = 7, score = 100
            //   488d0541d70000       | test                eax, eax
            //   0f1000               | dec                 eax
            //   4c8bd9               | mov                 edx, dword ptr [ebp - 0x38]
            //   488d4c2430           | dec                 esp
            //   0f104810             | lea                 eax, [0xfd4e]
            //   0f1101               | test                eax, eax
            //   0f104020             | je                  0x126

        $sequence_13 = { a1???????? 898528fdffff 83bd28fdffff00 7448 8b8d28fdffff 8b5104 }
            // n = 6, score = 100
            //   a1????????           |                     
            //   898528fdffff         | mov                 dword ptr [ebp - 0x2d8], eax
            //   83bd28fdffff00       | cmp                 dword ptr [ebp - 0x2d8], 0
            //   7448                 | je                  0x4a
            //   8b8d28fdffff         | mov                 ecx, dword ptr [ebp - 0x2d8]
            //   8b5104               | mov                 edx, dword ptr [ecx + 4]

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