win_highnote_auto

YARA-2024-0462 High general Active

Detects win.highnote.

win_highnote_auto.yar Valid Syntax
rule win_highnote_auto {

    meta:
        author = "Felix Bilstein - yara-signator at cocacoding dot com"
        date = "2024-10-31"
        version = "1"
        description = "Detects win.highnote."
        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.highnote"
        malpedia_rule_date = "20241030"
        malpedia_hash = "26e26953c49c8efafbf72a38076855d578e0a2e4"
        malpedia_version = "20241030"
        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 = { 3c7b bc9e36398f 8027e9 82ad42476080cd e009 }
            // n = 5, score = 200
            //   3c7b                 | cmp                 al, 0x7b
            //   bc9e36398f           | mov                 esp, 0x8f39369e
            //   8027e9               | and                 byte ptr [edi], 0xe9
            //   82ad42476080cd       | sub                 byte ptr [ebp - 0x7f9fb8be], 0xcd
            //   e009                 | loopne              0xb

        $sequence_1 = { 47 365e 3007 7bae 97 9d 884d13 }
            // n = 7, score = 200
            //   47                   | inc                 edi
            //   365e                 | pop                 esi
            //   3007                 | xor                 byte ptr [edi], al
            //   7bae                 | jnp                 0xffffffb0
            //   97                   | xchg                eax, edi
            //   9d                   | popfd               
            //   884d13               | mov                 byte ptr [ebp + 0x13], cl

        $sequence_2 = { a8b9 a1???????? 9c 6857414608 d4dc 59 93 }
            // n = 7, score = 200
            //   a8b9                 | test                al, 0xb9
            //   a1????????           |                     
            //   9c                   | pushfd              
            //   6857414608           | push                0x8464157
            //   d4dc                 | aam                 0xdc
            //   59                   | pop                 ecx
            //   93                   | xchg                eax, ebx

        $sequence_3 = { 33c5 8945fc 8b4508 53 6808090000 8945e4 e8???????? }
            // n = 7, score = 200
            //   33c5                 | xor                 eax, ebp
            //   8945fc               | mov                 dword ptr [ebp - 4], eax
            //   8b4508               | mov                 eax, dword ptr [ebp + 8]
            //   53                   | push                ebx
            //   6808090000           | push                0x908
            //   8945e4               | mov                 dword ptr [ebp - 0x1c], eax
            //   e8????????           |                     

        $sequence_4 = { 4f 59 7def 889de81be9ec b96b0b724f 262415 3a1f }
            // n = 7, score = 200
            //   4f                   | dec                 edi
            //   59                   | pop                 ecx
            //   7def                 | jge                 0xfffffff1
            //   889de81be9ec         | mov                 byte ptr [ebp - 0x1316e418], bl
            //   b96b0b724f           | mov                 ecx, 0x4f720b6b
            //   262415               | and                 al, 0x15
            //   3a1f                 | cmp                 bl, byte ptr [edi]

        $sequence_5 = { 0e ed 47 6908b79d84b8 6935????????3e1f20f8 4a d14529 }
            // n = 7, score = 200
            //   0e                   | push                cs
            //   ed                   | in                  eax, dx
            //   47                   | inc                 edi
            //   6908b79d84b8         | imul                ecx, dword ptr [eax], 0xb8849db7
            //   6935????????3e1f20f8     |     
            //   4a                   | dec                 edx
            //   d14529               | rol                 dword ptr [ebp + 0x29], 1

        $sequence_6 = { e76e a9a4fec7f3 1b90bff8ccdd b1e4 f7f4 }
            // n = 5, score = 200
            //   e76e                 | out                 0x6e, eax
            //   a9a4fec7f3           | test                eax, 0xf3c7fea4
            //   1b90bff8ccdd         | sbb                 edx, dword ptr [eax - 0x22330741]
            //   b1e4                 | mov                 cl, 0xe4
            //   f7f4                 | div                 esp

        $sequence_7 = { 3b3f a3???????? 0c16 49 3852fc d938 6e }
            // n = 7, score = 200
            //   3b3f                 | cmp                 edi, dword ptr [edi]
            //   a3????????           |                     
            //   0c16                 | or                  al, 0x16
            //   49                   | dec                 ecx
            //   3852fc               | cmp                 byte ptr [edx - 4], dl
            //   d938                 | fnstcw              word ptr [eax]
            //   6e                   | outsb               dx, byte ptr [esi]

        $sequence_8 = { 1cfe 5f 3d4b9c06b4 12a4c5ea7849d5 ba7ab47152 1c98 d24cdca8 }
            // n = 7, score = 200
            //   1cfe                 | sbb                 al, 0xfe
            //   5f                   | pop                 edi
            //   3d4b9c06b4           | cmp                 eax, 0xb4069c4b
            //   12a4c5ea7849d5       | adc                 ah, byte ptr [ebp + eax*8 - 0x2ab68716]
            //   ba7ab47152           | mov                 edx, 0x5271b47a
            //   1c98                 | sbb                 al, 0x98
            //   d24cdca8             | ror                 byte ptr [esp + ebx*8 - 0x58], cl

        $sequence_9 = { 3cff 145d 853e 235ee7 }
            // n = 4, score = 200
            //   3cff                 | cmp                 al, 0xff
            //   145d                 | adc                 al, 0x5d
            //   853e                 | test                dword ptr [esi], edi
            //   235ee7               | and                 ebx, dword ptr [esi - 0x19]

    condition:
        7 of them and filesize < 321536
}

Rule Metadata

author
Felix Bilstein - yara-signator at cocacoding dot com
date
2024-10-31
version
1
description
Detects win.highnote.
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.highnote
malpedia_rule_date
20241030
malpedia_hash
26e26953c49c8efafbf72a38076855d578e0a2e4
malpedia_version
20241030
malpedia_license
CC BY-SA 4.0
malpedia_sharing
TLP:WHITE

String Definitions

{"name":"$sequence_0","value":"{ 3c7b bc9e36398f 8027e9 82ad42476080cd e009 }\n \/\/ n = 5, score = 200\n \/\/ 3c7b | cmp al, 0x7b\n \/\/ bc9e36398f | mov esp, 0x8f39369e\n \/\/ 8027e9 | and byte ptr [edi], 0xe9\n \/\/ 82ad42476080cd | sub byte ptr [ebp - 0x7f9fb8be], 0xcd\n \/\/ e009 | loopne 0xb"}
{"name":"$sequence_1","value":"{ 47 365e 3007 7bae 97 9d 884d13 }\n \/\/ n = 7, score = 200\n \/\/ 47 | inc edi\n \/\/ 365e | pop esi\n \/\/ 3007 | xor byte ptr [edi], al\n \/\/ 7bae | jnp 0xffffffb0\n \/\/ 97 | xchg eax, edi\n \/\/ 9d | popfd \n \/\/ 884d13 | mov byte ptr [ebp + 0x13], cl"}
{"name":"$sequence_2","value":"{ a8b9 a1???????? 9c 6857414608 d4dc 59 93 }\n \/\/ n = 7, score = 200\n \/\/ a8b9 | test al, 0xb9\n \/\/ a1???????? | \n \/\/ 9c | pushfd \n \/\/ 6857414608 | push 0x8464157\n \/\/ d4dc | aam 0xdc\n \/\/ 59 | pop ecx\n \/\/ 93 | xchg eax, ebx"}
{"name":"$sequence_3","value":"{ 33c5 8945fc 8b4508 53 6808090000 8945e4 e8???????? }\n \/\/ n = 7, score = 200\n \/\/ 33c5 | xor eax, ebp\n \/\/ 8945fc | mov dword ptr [ebp - 4], eax\n \/\/ 8b4508 | mov eax, dword ptr [ebp + 8]\n \/\/ 53 | push ebx\n \/\/ 6808090000 | push 0x908\n \/\/ 8945e4 | mov dword ptr [ebp - 0x1c], eax\n \/\/ e8???????? |"}
{"name":"$sequence_4","value":"{ 4f 59 7def 889de81be9ec b96b0b724f 262415 3a1f }\n \/\/ n = 7, score = 200\n \/\/ 4f | dec edi\n \/\/ 59 | pop ecx\n \/\/ 7def | jge 0xfffffff1\n \/\/ 889de81be9ec | mov byte ptr [ebp - 0x1316e418], bl\n \/\/ b96b0b724f | mov ecx, 0x4f720b6b\n \/\/ 262415 | and al, 0x15\n \/\/ 3a1f | cmp bl, byte ptr [edi]"}
{"name":"$sequence_5","value":"{ 0e ed 47 6908b79d84b8 6935????????3e1f20f8 4a d14529 }\n \/\/ n = 7, score = 200\n \/\/ 0e | push cs\n \/\/ ed | in eax, dx\n \/\/ 47 | inc edi\n \/\/ 6908b79d84b8 | imul ecx, dword ptr [eax], 0xb8849db7\n \/\/ 6935????????3e1f20f8 | \n \/\/ 4a | dec edx\n \/\/ d14529 | rol dword ptr [ebp + 0x29], 1"}
{"name":"$sequence_6","value":"{ e76e a9a4fec7f3 1b90bff8ccdd b1e4 f7f4 }\n \/\/ n = 5, score = 200\n \/\/ e76e | out 0x6e, eax\n \/\/ a9a4fec7f3 | test eax, 0xf3c7fea4\n \/\/ 1b90bff8ccdd | sbb edx, dword ptr [eax - 0x22330741]\n \/\/ b1e4 | mov cl, 0xe4\n \/\/ f7f4 | div esp"}
{"name":"$sequence_7","value":"{ 3b3f a3???????? 0c16 49 3852fc d938 6e }\n \/\/ n = 7, score = 200\n \/\/ 3b3f | cmp edi, dword ptr [edi]\n \/\/ a3???????? | \n \/\/ 0c16 | or al, 0x16\n \/\/ 49 | dec ecx\n \/\/ 3852fc | cmp byte ptr [edx - 4], dl\n \/\/ d938 | fnstcw word ptr [eax]\n \/\/ 6e | outsb dx, byte ptr [esi]"}
{"name":"$sequence_8","value":"{ 1cfe 5f 3d4b9c06b4 12a4c5ea7849d5 ba7ab47152 1c98 d24cdca8 }\n \/\/ n = 7, score = 200\n \/\/ 1cfe | sbb al, 0xfe\n \/\/ 5f | pop edi\n \/\/ 3d4b9c06b4 | cmp eax, 0xb4069c4b\n \/\/ 12a4c5ea7849d5 | adc ah, byte ptr [ebp + eax*8 - 0x2ab68716]\n \/\/ ba7ab47152 | mov edx, 0x5271b47a\n \/\/ 1c98 | sbb al, 0x98\n \/\/ d24cdca8 | ror byte ptr [esp + ebx*8 - 0x58], cl"}
{"name":"$sequence_9","value":"{ 3cff 145d 853e 235ee7 }\n \/\/ n = 4, score = 200\n \/\/ 3cff | cmp al, 0xff\n \/\/ 145d | adc al, 0x5d\n \/\/ 853e | test dword ptr [esi], edi\n \/\/ 235ee7 | and ebx, dword ptr [esi - 0x19]"}

Threat Analysis

This YARA rule is designed to detect general threats.

Severity Level: High

The rule uses pattern matching to identify specific byte sequences, strings, or behavioral patterns associated with malicious activity.

Detection Capabilities

  • File-based detection for executables and documents
  • Memory scanning for running processes
  • Network traffic analysis support

Command Line Usage

# Scan a single file
yara win_highnote_auto.yar /path/to/suspicious/file

# Scan a directory recursively
yara -r win_highnote_auto.yar /path/to/directory/

# Scan with metadata output
yara -m win_highnote_auto.yar target_file

# Scan process memory (Linux)
yara win_highnote_auto.yar /proc/[pid]/exe

Integration Examples

Python (yara-python)

import yara
rules = yara.compile(filepath='win_highnote_auto.yar')
matches = rules.match('/path/to/file')

ClamAV Integration

clamscan --yara-rules=win_highnote_auto.yar /path/to/scan

Rule Information

YARA ID
YARA-2024-0462
Created
August 19, 2025
Last Updated
August 19, 2025
Last Imported
Never

Threat Intelligence

Risk Level High
Category general
Detection Confidence Analysis Pending
False Positive Rate Not Available
Last Seen in Wild No Data

Export Options