rule olympic_destroyer_service_manipulator { meta: description = "Service manipulator functionality" author = "Joe Slowik, Dragos Inc" sha256 = "ae9a4e244a9b3c77d489dee8aeaf35a7c3ba31b210e76d81ef2e91790f052c85" reference = "https://troopers.de/downloads/troopers18/TR18_DM_Mind-The-Gap.pdf" strings: $a = { 55 8B EC 83 EC 28 56 68 00 00 00 80 68 ?? ?? ?? 00 33 F6 56 FF 15 ?? ?? 40 00 89 ?? ?? 3B C6 0F ?? ?? ?? ?? 00 53 8B ?? ?? ?? ?? 00 57 8D ?? ?? 51 8D ?? ?? 51 8D ?? ?? 51 56 56 6A 03 68 3F 01 00 00 50 89 ?? ?? 89 ?? ?? 89 ?? ?? FF ?? FF ?? ?? 8B ?? ?? ?? ?? 00 6A 08 FF ?? 50 FF ?? ?? ?? 40 00 8D ?? ?? 51 8D ?? ?? 51 8D ?? ?? 51 FF ?? ?? 89 ?? ?? 50 6A 03 68 3F 01 00 00 } $b = { 8B ?? ?? 68 00 00 00 10 FF ?? FF ?? ?? FF ?? ?? ?? 40 00 89 ?? ?? 3B C6 74 ?? 8D ?? ?? 51 56 56 50 89 ?? ?? FF ?? FF ?? ?? 6A 08 FF ?? 50 FF ?? ?? ?? 40 00 56 56 56 56 56 56 56 6A FF 6A 04 6A FF FF ?? ?? 89 ?? ?? FF ?? ?? ?? 40 00 8D ?? ?? 50 FF ?? ?? FF ?? ?? FF ?? ?? FF D3 85 C0 } condition: uint16(0) == 0x5a4d and all of them }