mace 0.1.4

Automated extration of malware configuration, focusing on C2 communication
Documentation
pub static RULE_SEED: &str = r#"
rule seed {
    meta:
        author = "Frondorf, Niklas"

    strings:
        $seed = {
            (
                68 ?? ?? ?? ??        // push       value
                89 85 ?? ?? ?? ??     // mov        dword ptr [ebp + localc], eax
                8d 85 ?? ?? ?? ??     // lea        eax => local, [ebp + offset]
                68 ?? ?? ?? ??        // push       seed
                |
                8d 85 ?? ?? ?? ??     // lea        eax => local, [ebp + offset]
                68 ?? ?? ?? ??        // push       value
                68 ?? ?? ?? ??        // push       seed
                |
                8d 85 ?? ?? ?? ??     // lea        eax => local, [ebp + offset]
                89 85 ?? ?? ?? ??     // mov        dword ptr [ebp + localc], eax
                68 ?? ?? ?? ??        // push       value
                68 ?? ?? ?? ??        // push       seed
                |
                8d 96 ?? ?? ?? ??     // lea        edx => local, [esi + value]
                c7 86 [8]             // mov        dword ptr [esi + local], value
                68 ?? ?? ?? ??        // push       value
                68 ?? ?? ?? ??        // push       seed
                |
                c7 86 [8]             // mov        dword ptr [esi + local], value
                68 ?? ?? ?? ??        // push       value
                68 ?? ?? ?? ??        // push       seed
                |
                c7 86 [8]             // mov        dword ptr [esi + local], value
                68 ?? ?? ?? ??        // push       value
                68 ?? ?? ?? ??        // push       seed
                8d 86 ?? ?? ?? ??     // lea        eax => local, [esi + value]
            )

            (
                50                    // push       eax
                |
                52                    // push       edx
            )

            (
                89 bd ?? ?? ?? ??     // mov        dword ptr [ebp + local], edi
                c7 45 fc 00 00 00 00  // mov        dword ptr [ebp + local], 0x0
                e8 ?? ?? ?? ??        // call       dga
                |
                89 b5 ?? ?? ?? ??     // mov        dword ptr [ebp + local], esi
                89 bd ?? ?? ?? ??     // mov        dword ptr [ebp + local], edi
                c7 45 fc 00 00 00 00  // mov        dword ptr [ebp + local], 0x0
                e8 ?? ?? ?? ??        // call       dga
                |
                c5 f8 77              // vzeroupper
                e8 ?? ?? ?? ??        // call       dga
                |
                e8 ?? ?? ?? ??        // call       dga
            )
        }

    condition:
        all of them
}"#;