diff --git a/BLUESPAWN-win-client/external/CustomBackdoor.yar b/BLUESPAWN-win-client/external/CustomBackdoor.yar new file mode 100644 index 00000000..c0ac42d3 --- /dev/null +++ b/BLUESPAWN-win-client/external/CustomBackdoor.yar @@ -0,0 +1,10 @@ +rule Joe_Sandbox_Rule_Id_871884_6FBB1657 +{ + meta: + author = "Joe Sandbox Cloud Basic 37.1.0 Beryl" + description = "Opcode Rule for Process IMG001.exe, Function 6FBB1657" + strings: + $opcodes = {558B??83????83??????53568B??????????57FF??????????6A??5B53FF??FF??????????89????53FF??FF??????????8B??5389????FF??FF??????????89????53FF??FF??????????8B??6A??89????FF??33??8B??5233??52FF??????????89????FF??????????89????89????8B????89????89????A1????????89????8B????68????????C7????????????89????????????89????89????89????89????89????89????89????FF??????????8B??89????85??0F84????????83??????8D????508D????506A??53C7????????????FF??????????8B??????????33??4185??74??F6??????74??83??????6A??8D????506A??5389????FF??83????????????76??6A??68????????6A??53FF??89????83????????????76??6A??68????????6A??53FF??68????????FF??????????85??0F84????????68????????50FF??????????A3????????E9????????68????????FF??????????FF??????????85??0F84????????68????????E8????????85??0F85????????68????????FF??????????FF??????????85??0F84????????8B????8B????33??33??4289??????????88??8B????88??5188??8B????5288??68????????FF????88??89??????????89??????????FF??????????83????????????75??8A??????????33??33??84??0F95??525283????5052BA????????84??6A??B8????????0F45??5068????????FF??????????8B??89????83????75??C7??????????????????E9????????8B????80????????????A1????????89????89????89????89????89????74??6A??51FF??????????A3????????8D????506A??6A??FF??????????FF??????????85??0F84????????80????74??8B????80????74??505668????????68????????FF??????????83????B8????????68????????5050FF??????????50E8????????83????C6????????????FF????57FF??????????FF??????????A3????????80????????????8B????74??83????75??83????????????74??33??505050FF????A3????????FF??????????8B????A1????????89????33??6A??83????BA????????0F44??5033??6A??42583B??0F44??50FF????C7??????????????????FF??????????33??85??0F4F????5156FF??????????33??85??0F4F??51FF????FF????53FF??????????8B??85??0F84????????33??40C7??????????????????5739????75??53E8????????5959EB??FF????53E8????????83????83????????????8B??74??85??0F84????????56FF??????????33??85??0F84????????80????????????0F84????????6A??8D????5068????????6A??56C7????????????FF??????????85??74??8B??????????85??74??8B??????????33??3B??????????73??3B????73??8A??????????88????8B??????????424189??????????3B??????????73??8B??????????EB??6A??8D????50FF????68????????FF????FF??????????83????????????E9????????68????????FF????FF??????????6A??6A??68????????68????????FF????8B??FF??????????83????????????B8????????B9????????0F45??5168????????FF????FF??????????50FF??????????83????????????B9????????B8????????0F45??5068????????FF????FF??????????50FF??????????83????????????6A??5775??FF??????????83????EB??FF??????????83????506A??57FF??????????33??83????????????6A??0F94??5068????????68????????FF????FF??????????56FF????E8????????80????????????595974??33??4039????74??33??50505056FF??????????5689????E8????????5956FF??????????8B????53FF??????????8B????33??43E9????????33??43C7??????????????????39????75??8D????5068????????8D????50C7????????????FF??????????85??74??68????????68????????E8????????595985??74??68????????68????????E8????????59596A??50A1????????C1????05????????50FF??????????EB??FF??????????89????3D????????74??3D????????75??0FB6??????????80????????????0F44??A2????????80????????????74??39????75??A1????????3B????76??A1????????83????75??8B??????????6A??68????????FF??85??75??5068????????C7??????????????????FF??8B????85??0F84????????A1????????80????????????0F84????????85??0F84????????83????0F84????????83????0F84????????8B??????????6A??FF????FF??83????74??80????????????6A??B9????????B8????????0F44??5068????????FF????FF??????????50FF??????????83????75??6A??5833??38??????????A3????????0F45??50FF????FF??85??75??5068????????FF??????????8B????85??0F84????????EB??C7??????????????????EB??8B????FF????FF??????????80????????????75??83????????????74??83????????????74??FF??????????E8????????85??0F84????????EB??68????????FF??????????89????53FF??????????68????????FF??????????FF??????????85??75??FF??????????E8????????EB??C7??????????????????FF????8B??????????FF??57FF??FF????FF??FF????FF??FF????FF??FF????FF??????????5F5E5B85??74??6A??68????????68????????FF????FF??????????A1????????C9C2????} + condition: + any of them +} \ No newline at end of file diff --git a/BLUESPAWN-win-client/external/DridexLoader.yar b/BLUESPAWN-win-client/external/DridexLoader.yar new file mode 100644 index 00000000..b44ef85e --- /dev/null +++ b/BLUESPAWN-win-client/external/DridexLoader.yar @@ -0,0 +1,11 @@ +rule DridexLoader +{ + meta: + author = "kevoreilly" + description = "DridexLoader API Spam Bypass" + cape_options = "bp0=$trap-13,action0=ret,count=0" + strings: + $trap = {6A 50 6A 14 6A 03 5A 8D 4C 24 ?? E8 [4] 68 [4] 68 [4] E8 [4] 85 C0 74 05} + condition: + uint16(0) == 0x5A4D and $trap +} \ No newline at end of file diff --git a/BLUESPAWN-win-client/external/DridexLoader_C2Parse.yar b/BLUESPAWN-win-client/external/DridexLoader_C2Parse.yar new file mode 100644 index 00000000..63ee2416 --- /dev/null +++ b/BLUESPAWN-win-client/external/DridexLoader_C2Parse.yar @@ -0,0 +1,17 @@ +rule DridexLoader +{ + meta: + author = "kevoreilly" + description = "Dridex v4 dropper C2 parsing function" + cape_type = "DridexLoader Payload" + + strings: + $c2parse_1 = {57 0F 95 C0 89 35 [4] 88 46 04 33 FF 80 3D [4] 00 76 54 8B 04 FD [4] 8D 4D EC 83 65 F4 00 89 45 EC 66 8B 04 FD [4] 66 89 45 F0 8D 45 F8 50} + $c2parse_2 = {89 45 00 0F B7 53 04 89 10 0F B6 4B 0C 83 F9 0A 7F 03 8A 53 0C 0F B6 53 0C 85 D2 7E B7 8D 74 24 0C C7 44 24 08 00 00 00 00 8D 04 7F 8D 8C 00} + $c2parse_3 = {89 08 66 39 1D [4] A1 [4] 0F 95 C1 88 48 04 80 3D [4] 0A 77 05 A0 [4] 80 3D [4] 00 56 8B F3 76 4E 66 8B 04 F5} + $c2parse_4 = {0F B7 C0 89 01 A0 [4] 3C 0A 77 ?? A0 [4] A0 [4] 57 33 FF 84 C0 74 ?? 56 BE} + $c2parse_5 = {0F B7 05 [4] 89 02 89 15 [4] 0F B6 15 [4] 83 FA 0A 7F 07 0F B6 05 [4] 0F B6 05 [4] 85 C0} + $c2parse_6 = {0F B7 53 ?? 89 10 0F B6 4B ?? 83 F9 0A 7F 03 8A 53 ?? 0F B6 53 ?? 85 D2 7E B9} + condition: + uint16(0) == 0x5A4D and any of them +} \ No newline at end of file diff --git a/BLUESPAWN-win-client/external/Dridex_Native_Dropper.yar b/BLUESPAWN-win-client/external/Dridex_Native_Dropper.yar new file mode 100644 index 00000000..ae208196 --- /dev/null +++ b/BLUESPAWN-win-client/external/Dridex_Native_Dropper.yar @@ -0,0 +1,10 @@ +rule Joe_Sandbox_Rule_Id_575240_00007FF679F910D0 +{ + meta: + author = "Joe Sandbox Cloud Basic 34.0.0 Boulder Opal" + description = "Opcode Rule for Process consent.exe, Function 00007FF679F910D0" + strings: + $opcodes = {??????????????????????????????55????????????????????????????????????????????????????????????????????????????????33????????????????????????????????????????33????????????????????????????????89??????????????8B??89??????????????????????????????????????????????????88??????88??????88??????88??????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????FF??????????????????????75????????8D??????????33??FF??????????????????????????????33????????????????FF??????????????????????????????????????E8????????????????85??0F85????????33????????????????????????????????????????89??????FF????????????????????????????????????FF??????????8B??85??0F88??????????????????????????????FF????????????????????????????????????FF??????????8B??85??78??8B????????????????????????????????????????????????????????????????????????C7????????????????????????????????????????????????????????????C7??????????????????FF??????????8B??85??78??8B????????????????????????74??FF??????????85??0F88????????33????????????????????????????E8??????????????????????????????????????????????????????????83????C7??????????????33??FF????????????????84??74??F7??????????????????0F85??????????????FF??????????????????????????FF??????????????????????0F84????????83????????0F8C??????????????????????????????????????FF??????????8B????85??0F84????????A8??0F85??????????????????????????????????????FF??????????39????0F84??????????????????????????????????????FF??????????????????0F84??????????????FF??????????85??0F88????????8B????????????0F57????????????????????????C7??????????????????BA??????????????????????????????????????????????????????????????????????????FF??????????85??0F88????????????????????????8B????????????E8????????85??0F88????????????????????????FF??????????85??74????????????C7????????????????????????????B9??????????????????FF??????????8B??FF??????????85??74????????????B9??????????????????????FF??????????8B????8D????83????0F86????????8D????83????0F86????????BA????????33??FF??????????85??0F85??????????????C6????????????????????????8D??????????????????FF??????????85??0F84????????????????????????????????????????????????????????????????????????????????????????????????????????????????33??????????????????????????????????????????????????????????????????????????????????FF??????????FF??????????8B??83????0F85????????8B??????33??FF??????????8B??????33????????????????FF??????????8B??????????33????????FF??????????8B????33????????FF??????????8B????33????????FF??????????????????????0F84??????????????0F84??????????????0F84??????????????0F84??????????????0F84????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????FF??????????85??0F84????????33????????????????????????89??????83????????????????????C7??????????????C7??????????????FF??????????85??0F88????????33????????FF????????????????FF????????????????FF????????????????FF??????????????????FF??????????????????????????????????????????FF??????????85??0F85????????????????E8????????85??0F85??????????????????????33??????????????????E8??????????????????????????????????????E8????????8B??85??0F85????????C6????????????????????????????74??F6??????0F85????????F7????????????0F85????????83??????0F84????????????????????????C7????????????????????????????????????????????????????74??F6??????0F85????????83??????0F85??????????????FF??????????83????33??8B??89??????FF??????????????????????0F84??????????????????????????????????????????FF????????????????????????????????????????????BA??????????????????FF??????????85??0F84??????????????33??FF??????????81??????????72??F6??????0F85??????????????FF??????????????????????????????74??F6??????0F85????????85??0F85??????????????74??F6??????0F85??????????????0F85????????F6??????0F85??????????????????????74??????????????????????????????????????????FF????????????????0F85????????????????????????????????????????????????????????????????????????E8????????????????????????0F84????????????????????????????????????????????????FF??????????8B????BB????????85??0F85????????????????????????74??????????C7??????????????????????????????FF??????????85??78??F6??????0F85????????????????????????????????????????????????????????????????????????BB??????????????????????????????????????????????????????????????????????????????????????FF??????????8B????83????83????0F86????????83??????0F85????????8B????????????BA??????????????????????????8D????????????FF??????????????????????74??C7??????????????????0F10??????????C6????????????C7??????????33??0F11????33????????89??????????????FF????????????????FF????????????????????????????????????????????????????????????????????????????????????????????????E8????????83??????8B??0F84????????85??0F85??????????????????????0F84????????33????????????33??????????????????????????????????????8D????FF??????????85??0F88????????39??????75??????????????????????????????????????????????8D????FF??????????85??0F88????????????????FF??????????????????????????85??0F85????????????????????????????????????????????????FF????????????????????????E8????????????????????????????????????????????????8B??FF??????????85??0F85??????????????????????????????????????????74??F6??????0F85????????83??????74????????????????????????????????????????????????C7??????????????????????????????????FF??????????????????8B??FF??????????????????85??0F88??????????????????????????????????????????????????????????????????FF??????????85??0F88????????33????????????????????????????????????????89??????FF????????????????????????????????????FF??????????85??78????????????????????????FF????????????????????????????????????FF??????????85??78??8B??????????????????????????????????????????????????????????????????????C7??????????????????????????????????????????????C6????????????C7??????????????????FF????????????????????????74??FF??????????????????????BA????????8D????FF????????????????????????????74??C7??????????????????0F10????????????????????????33??C7????????????????????????0F11??????????????FF????????????????FF????????????????????????0F85??????????????????????74??FF????????????????????????74??????????????74??BA????????FF??????????8B??85??0F85??????????????FF????????????????????????74??FF????????????????????????74??FF????????????????FF??????????80????????0F85????????80????????0F85??????????????74????????????????74??FF????????????????????????????????74??FF????????????????????????FF????????????????????????0F85????????33????????0F84??????????????????????0F85????????????????FF??????????????????????????FF??????????????????????????FF????????????????????????????????74??FF??????????????????????????FF??????????33????????????????????????????????E8????????????????C7??????????????????C7??????????????????C7??????????????????C7????????????????????????74????????????????C7??????????????????????????????????????????????????????????????C7????????????????????????????????C7????????????????????????????????FF??????????????????????????????????????74??FF??????????80????????74??FF??????????????????????????????74????????74????????????????74??FF??????????????????????????????75????????????????8B??????????????????????E8??????????????????????????????????????????????????????????????????????5DC380????????0F85????????E9??????????????????????????????????????????0F84????????F6??????0F84????????E9????????FF??????????????????E9??????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????BE??????????????????????E9????????8B??FF??????????8B????????????????????????????????????0F84????????F6??????0F84??????????????????????????????BA??????????????E8????????90E9??????????????????????????????????????????????????????????????C7??????????????????????????????????????????????????????????????????????????FF??????????85??0F85????????83????????0F85????????BE????????E9????????BE????????E9????????BE????????E9????????8B??FF??????????8B????????????????????????????????????0F84????????F6??????0F84????????BA????????EB??BA??????????????EB????????????????????????????????????????E8????????90E9????????8B??FF??????????8B????????????????????????????????????0F84????????F6??????0F84????????BA????????EB??8B??FF??????????8B????????????????????????????????????74??F6??????74????????????????????????BA??????????????E8????????????????E9????????F6??????0F84????????E8????????8B??85??0F84??????????????????????????????????????????0F84????????F6??????0F84????????BA????????E9??????????????????????0F84????????FF??????????85??0F84????????????????E9????????FF??????????8B??E9????????BE????????E9????????BE????????E9????????FF??????????8B??E9??????????????????????????????????????????0F84????????F6??????0F84????????BA??????????????E9??????????????????????????????????????????0F84????????F6??????0F84??????????????????????????????BA??????????????E8????????90E9????????????????????????????74??F6??????74????????????????????????BA??????????????E8??????????????????????????????E9????????80??????????????????????????????????????????????????????????????????????????BA??????????????????E8??????????????????????E9????????????????8B????83????74??83????0F85????????C7??????????????????????????E9????????8B????BA????????????????????????89??????8B????89??????8B????89??????E8??????????????????????E9????????BE????????E9????????FF??????????EB??????????????????????????E8??????????????????8B??E9????????8B??????????????????89????????????????E8??????????????????????E9????????????????BA??????????????E8??????????????????????E9????????C7??????????????????????????E9????????BE??????????????0F84????????F6??????0F84??????????????????????????????BA????????E8????????E9????????????????????E9????????C7????????????C7????????????E9????????2B??74??2B??74??2B??74??83????0F85??????????????????????E9??????????????????????E9??????????????????????E9??????????????????????E9??????????????????????E9????????F6??????0F84????????FF????????????????BA????????FF??????????85??75??FF????????????????????????????????????????????74??F6??????74????????????????????????BA??????????????E8????????????????????????????????????????????????FF??????????????????????????????????????????????????????????E8????????????????????????????????????????????????8B??FF??????????85??74??81??????????0F84??????????????????????????????????????????0F84????????F6??????0F84????????BA??????????????E9????????C6????????E9????????B8????????E9????????83??????0F84????????E9????????8B??FF??????????8B??E9????????3D????????75??BE????????????????FF??????????????????????????E9????????81??????????74????????????????????????????????????0F84????????F6??????0F84????????BA??????????????E9??????????????????????????????????????????0F84????????F6??????0F84????????BA??????????????E9????????????????BA????????????????E8????????90E9????????8B??FF??????????8B??????????????????????0F84????????F6??????0F84????????BA????????E9????????8B??FF??????????8B??????????????????????0F84????????F6??????0F84????????BA????????E9????????BE??????????????????????????????????????????0F84????????F6??????0F84????????E9????????FF??????????????????E9????????????????????????????74??F6??????74??????????????????????????????BA????????E8??????????????????????E8????????????????83????76??????????????????????E8????????84??74????????????C7??????????????????????????????????????????????????????????????????????????89??????????????????????????????????????????????????????????????????C7??????????????E8??????????????33??FF????????????????BA????????FF??????????8B??85??0F84??????????????????????E8????????????????83????0F86????????????????????????????E8????????84??0F84??????????????????89????????????????????????????????????????????????????????????????????????????????C7??????????????E8????????90E9????????????????????????????????????????????????FF??????????E8????????????????????????????????????????????????FF??????????90E9????????FF??????????90E9????????BA????????FF??????????85??74??????????????????????74??F6??????74??FF????????????????????????????????????????????BA????????????????E8????????????????FF??????????33??????????E9????????} + condition: + any of them +} diff --git a/BLUESPAWN-win-client/external/Dridex_thread_inject_routine.yar b/BLUESPAWN-win-client/external/Dridex_thread_inject_routine.yar new file mode 100644 index 00000000..196cc8ac --- /dev/null +++ b/BLUESPAWN-win-client/external/Dridex_thread_inject_routine.yar @@ -0,0 +1,10 @@ +rule Joe_Sandbox_Rule_Id_595302_00007FFFEF98BAE0 +{ + meta: + author = "Joe Sandbox Cloud Basic 34.0.0 Boulder Opal" + description = "Opcode Rule for Process msra.exe, Function 00007FFFEF98BAE0" + strings: + $opcodes = {????????????????????555657??????????????????????????????????????????????????????????????????????????BA????????B9????????????????????????????E8??????????????????33??E8??????????????????33????????????????????E8????????????????????????????E8??????????????????????85??0F8E????????33????????908B????????E8????????????????????????E8??????????????????8D????E8??????????????????????????E8??????????????????8D????E8????????8B??????????????E8??????????????????8B??E8??????????????????8D????E8??????????????????E8??????????????????8D????E8????????83??????????89??0F85????????8B??????????????????33??E8??????????????????33??E8??????????????????????????????????????????E8??????????????????????E8??????????????????????E8????????????????E8??????????????????8B??E8??????????????????33??E8????????????????33????????E8????????????????????E8??????????????????E8????????B9????????8D????89??????????E8??????????????A8??74????????????????75??BA????????B9????????E8??????????????A8??74????????????????75????????0F84??????????????0F84????????????????33??????????????E8??????????????????????33??89??????????E8??????????????????????????????????????????????????????E8????????????????????????????????????E8??????????????89????????????????????????????????E8????????BA????????89??????????????????B9??????????????????????E8????????BA????????B9??????????????E8??????????????74????????????????????????????????????????????????????????????????FF??BA????????B9??????????????????????E8????????BA????????B9????????????????E8????????BA????????B9????????????????E8????????BA????????B9????????????????E8????????BA????????B9????????????????E8????????BA????????B9????????????????E8????????BA????????B9????????????????E8????????BA????????B9????????????????E8??????????????BA??????????????????????E8??????????????????????????????33??E8????????????????????75??0F1F??????83????74??B9????????E8????????????????????????FF??E8????????????????????74??EB??????????????????0F84??????????????0F85????????????????????E8??????????????BA??????????????E8??????????????75??90????????????????33??E8????????????????????75??83????74??B9????????E8????????????????????????FF??E8????????????????????74??EB??????????????????0F84????????????????????E8??????????????BA??????????????E8??????????????74??0F1F??BA????????B9????????E8????????BA????????B9??????????????E8??????????????0F84??????????????????????????????????????????????????FF??85??0F84????????????????????????33??E8????????????????????75??83????74??B9????????E8????????????????????????FF??E8????????????????????74??EB??????????????????0F85????????????????E8????????????????E8??????????????????E8????????????????E8??????????????????E8??????????????????E8????????32????????????????????????????????????????????????5F5E5DC3??????????????????????????C7??????????????E8????????84??75??????????????????????????????33??E8????????????????????75??83????74??B9????????E8????????????????????????FF??E8????????????????????74??EB??????????????????0F84??????????????????????????????????C7??????????????E8????????84??74????????????????BA????????B9????????C7??????????????????????????????E8??????????????74????????????????????????????????????????????????????????FF??85??0F85????????0F1F??????BA????????B9????????E8????????BA????????B9??????????????E8??????????????74????????????????????????????????????FF??85??74??????????????????33??E8????????????????????75??83????74??B9????????E8????????????????????????FF??E8????????????????????74??EB??????????????????0F85????????E9??????????????????E8??????????????????33??8B??E8????????????????????????????????89??????E8??????????????84??0F85????????????????????????????????????????????????????E8????????????????????75??83????74??B9????????E8????????????????????????FF??E8????????????????????74??EB??????????????????0F84??????????????????E8??????????????????33??8B??E8????????????????????????????????89??????E8????????84??74??BA????????B9????????E8??????????????74??????????????????????????????????????????????????????FF??85??0F85????????????????33??E8??????????????????????????????????????????C6????????????E8??????????????????????????????????????????????????????????????????????E8????????BA????????B9????????????????????????????????E8??????????????74????????????????????????????????????????????????????????FF??????????E8????????????????33??8B??E8????????????????????????????????89??????E8????????84??0F85????????????????????????????????????????????????????????E8????????????????????75??83????74??B9????????E8????????????????????????FF??E8????????????????????74??EB??????????????????????????0F84????????E8????????????????33??8B??E8????????????????????????????????89??????E8????????84??74??0F1F??BA????????B9????????E8??????????????74????????????????????????????????????FF??85??74????????????????????????E8????????????????????75??83????74??B9????????E8????????????????????????FF??E8????????????????????74??EB??????????????????75??????????E8????????E9??????????????????????????????BA????????E8????????????????85??0F94??E8????????????????E8????????????????E8??????????????????E8????????????????E8??????????????????E8??????????????????E8????????0FB6??E9????????} + condition: + any of them +} diff --git a/BLUESPAWN-win-client/external/EternalRomance.yar b/BLUESPAWN-win-client/external/EternalRomance.yar new file mode 100644 index 00000000..54ebf09a --- /dev/null +++ b/BLUESPAWN-win-client/external/EternalRomance.yar @@ -0,0 +1,33 @@ +rule EternalRomance +{ + meta: + author = "kevoreilly" + description = "EternalRomance Exploit" + cape_type = "EternalRomance Exploit" + strings: + $SMB1 = "Frag" + $SMB2 = "Free" + $session7_32_1 = {2A 02 1C 00} + $session7_64_1 = {2A 02 28 00} + $session8_32_1 = {2A 02 24 00} + $session8_64_1 = {2A 02 38 00} + $session7_32_2 = {D5 FD E3 FF} + $session7_64_2 = {D5 FD D7 FF} + $session8_32_2 = {D5 FD DB FF} + $session8_64_2 = {D5 FD C7 FF} + $ipc = "IPC$" + $pipe1 = "atsvc" + $pipe2 = "browser" + $pipe3 = "eventlog" + $pipe4 = "lsarpc" + $pipe5 = "netlogon" + $pipe6 = "ntsvcs" + $pipe7 = "spoolss" + $pipe8 = "samr" + $pipe9 = "srvsvc" + $pipe10 = "scerpc" + $pipe11 = "svcctl" + $pipe12 = "wkssvc" + condition: + uint16(0) == 0x5A4D and (all of ($SMB*)) and $ipc and (any of ($session*)) and (any of ($pipe*)) +} \ No newline at end of file diff --git a/BLUESPAWN-win-client/external/HeavensGate.yar b/BLUESPAWN-win-client/external/HeavensGate.yar new file mode 100644 index 00000000..72909680 --- /dev/null +++ b/BLUESPAWN-win-client/external/HeavensGate.yar @@ -0,0 +1,15 @@ +rule HeavensGate +{ + meta: + author = "kevoreilly" + description = "Heaven's Gate: Switch from 32-bit to 64-mode" + cape_type = "Heaven's Gate" + + strings: + $gate_v1 = {6A 33 E8 00 00 00 00 83 04 24 05 CB} + $gate_v2 = {9A 00 00 00 00 33 00 89 EC 5D C3 48 83 EC 20 E8 00 00 00 00 48 83 C4 20 CB} + $gate_v3 = {5A 66 BB 33 00 66 53 50 89 E0 83 C4 06 FF 28} + + condition: + ($gate_v1 or $gate_v2 or $gate_v3) +} \ No newline at end of file diff --git a/BLUESPAWN-win-client/external/IcedID.yar b/BLUESPAWN-win-client/external/IcedID.yar new file mode 100644 index 00000000..8110cb21 --- /dev/null +++ b/BLUESPAWN-win-client/external/IcedID.yar @@ -0,0 +1,18 @@ +rule IcedID +{ + meta: + author = "kevoreilly, threathive" + description = "IcedID Payload" + cape_type = "IcedID Payload" + strings: + $crypt1 = {8A 04 ?? D1 C? F7 D? D1 C? 81 E? 20 01 00 00 D1 C? F7 D? 81 E? 01 91 00 00 32 C? 88} + $crypt2 = {8B 44 24 04 D1 C8 F7 D0 D1 C8 2D 20 01 00 00 D1 C0 F7 D0 2D 01 91 00 00 C3} + $crypt3 = {41 00 8B C8 C1 E1 08 0F B6 C4 66 33 C8 66 89 4? 24 A1 ?? ?? 41 00 89 4? 20 A0 ?? ?? 41 00 D0 E8 32 4? 32} + $download1 = {8D 44 24 40 50 8D 84 24 44 03 00 00 68 04 21 40 00 50 FF D5 8D 84 24 4C 01 00 00 C7 44 24 28 01 00 00 00 89 44 24 1C 8D 4C 24 1C 8D 84 24 4C 03 00 00 83 C4 0C 89 44 24 14 8B D3 B8 BB 01 00 00 66 89 44 24 18 57} + $download2 = {8B 75 ?? 8D 4D ?? 8B 7D ?? 8B D6 57 89 1E 89 1F E8 [4] 59 3D C8 00 00 00 75 05 33 C0 40 EB} + $major_ver = {0F B6 05 ?? ?? ?? ?? 6A ?? 6A 72 FF 75 0C 6A 70 50 FF 35 ?? ?? ?? ?? 8D 45 80 FF 35 ?? ?? ?? ?? 6A 63 FF 75 08 6A 67 50 FF 75 10 FF 15 ?? ?? ?? ?? 83 C4 38 8B E5 5D C3} + $stage_2_request_binary = "id=" + $stage_2_request_img = ".png" + condition: + any of ($crypt*, $download*, $major_ver) and all of ($stage_2_request_*) +} \ No newline at end of file diff --git a/BLUESPAWN-win-client/external/MALW_emotet.yar b/BLUESPAWN-win-client/external/MALW_emotet.yar new file mode 100644 index 00000000..fdf4d13f --- /dev/null +++ b/BLUESPAWN-win-client/external/MALW_emotet.yar @@ -0,0 +1,32 @@ +rule MALW_emotet +{ + meta: + + description = "Rule to detect unpacked Emotet" + author = "Marc Rivero | McAfee ATR Team" + date = "2020-07-21" + rule_version = "v1" + malware_type = "financial" + malware_family = "Backdoor:W32/Emotet" + actor_type = "Cybercrime" + hash1 = "a6621c093047446e0e8ae104769af93a5a8ed147ab8865afaafbbd22adbd052d" + actor_type = "Cybercrime" + actor_group = "Unknown" + + strings: + + $pattern_0 = { 8b45fc 8be5 5d c3 55 8bec } + $pattern_1 = { 3c39 7e13 3c61 7c04 3c7a 7e0b 3c41 } + $pattern_2 = { 7c04 3c39 7e13 3c61 7c04 3c7a 7e0b } + $pattern_3 = { 5f 8bc6 5e 5b 8be5 } + $pattern_4 = { 5f 668906 5e 5b } + $pattern_5 = { 3c30 7c04 3c39 7e13 3c61 7c04 } + $pattern_6 = { 53 56 57 8bfa 8bf1 } + $pattern_7 = { 3c39 7e13 3c61 7c04 3c7a 7e0b } + $pattern_8 = { 55 8bec 83ec14 53 } + $pattern_9 = { 5e 8be5 5d c3 55 8bec } + + condition: + + 7 of them and filesize < 180224 +} \ No newline at end of file diff --git a/BLUESPAWN-win-client/external/Qakbot_Payload.yar b/BLUESPAWN-win-client/external/Qakbot_Payload.yar new file mode 100644 index 00000000..7584d4f3 --- /dev/null +++ b/BLUESPAWN-win-client/external/Qakbot_Payload.yar @@ -0,0 +1,20 @@ +rule QakBot +{ + meta: + author = "kevoreilly" + description = "QakBot Payload" + cape_type = "QakBot Payload" + + strings: + $crypto1 = {8B 5D 08 0F B6 C2 8A 16 0F B6 1C 18 88 55 13 0F B6 D2 03 CB 03 CA 81 E1 FF 00 00 80 79 08 49 81 C9 00 FF FF FF 41} + $sha1_1 = {5? 33 F? [0-9] 89 7? 24 ?? 89 7? 24 ?? 8? [1-3] 24 [1-4] C7 44 24 ?0 01 23 45 67 C7 44 24 ?4 89 AB CD EF C7 44 24 ?8 FE DC BA 98 C7 44 24 ?C 76 54 32 10 C7 44 24 ?0 F0 E1 D2 C3} + $sha1_2 = {33 C0 C7 01 01 23 45 67 89 41 14 89 41 18 89 41 5C C7 41 04 89 AB CD EF C7 41 08 FE DC BA 98 C7 41 0C 76 54 32 10 C7 41 10 F0 E1 D2 C3 89 41 60 89 41 64 C3} + $anti_sandbox1 = {8D 4? FC [0-1] E8 [4-7] E8 [4] 85 C0 7E (04|07) [4-7] 33 (C0|D2) 74 02 EB FA} + $anti_sandbox2 = {8D 45 ?? 50 E8 [2] 00 00 59 68 [4] FF 15 [4] 89 45 ?? 83 7D ?? 0F 76 0C} + $decrypt_config1 = {FF 37 83 C3 EC 53 8B 5D 0C 8D 43 14 50 6A 14 53 E8 ?? ?? ?? ?? 83 C4 14 85 C0 ?? 26 ?? ?? 86 20 02 00 00 66 85 C0 ?? ?? FF 37 FF 75 10 53} + $decrypt_config2 = {8B 45 08 8B 88 24 04 00 00 51 8B 55 10 83 EA 14 52 8B 45 0C 83 C0 14 50 6A 14 8B 4D 0C 51 E8 6C 08 00 00} + $decrypt_config3 = {6A 13 8B CE 8B C3 5A 8A 18 3A 19 75 05 40 41 4A 75 F5 0F B6 00 0F B6 09 2B C1 74 05 83 C8 FF EB 0E} + $call_decrypt = {83 7D ?? 00 56 74 0B FF 75 10 8B F3 E8 [4] 59 8B 45 0C 83 F8 28 72 19 8B 55 08 8B 37 8D 48 EC 6A 14 8D 42 14 52 E8} + condition: + uint16(0) == 0x5A4D and any of ($*) +} diff --git a/BLUESPAWN-win-client/external/RussianAPT.yar b/BLUESPAWN-win-client/external/RussianAPT.yar new file mode 100644 index 00000000..6bca9f7d --- /dev/null +++ b/BLUESPAWN-win-client/external/RussianAPT.yar @@ -0,0 +1,7633 @@ +import "hash" + +rule Karagany { + meta: + Author = "Intezer Analyze" + Reference = "https://apt-ecosystem.com" + + strings: + $block_0 = { 89 ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? 8D ?? ?? 68 ?? ?? ?? ?? 6A ?? 8D ?? ?? 5? FF 7? ?? FF 1? ?? ?? ?? ?? 83 ?? ?? 0F 84 } + $block_1 = { 5? 89 ?? 83 ?? ?? 60 8B ?? ?? 29 ?? 66 ?? ?? ?? 89 ?? ?? 83 ?? ?? 8B ?? ?? 89 ?? ?? 8D ?? ?? 8B ?? ?? BA ?? ?? ?? ?? F7 ?? 01 ?? 89 ?? ?? B8 ?? ?? ?? ?? 8B ?? ?? F7 ?? 03 ?? ?? 8B ?? ?? 29 ?? 89 ?? ?? 8B ?? ?? 8D ?? ?? 5? 6A ?? FF 7? ?? FF 7? ?? FF 5? ?? 85 ?? 74 } + $block_2 = { 5? 89 ?? 83 ?? ?? B8 ?? ?? ?? ?? 60 C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? 8D ?? ?? 8D ?? ?? 5? FF 1? ?? ?? ?? ?? 83 ?? ?? 0F 84 } + $block_3 = { 5? 89 ?? 83 ?? ?? 60 8B ?? ?? 29 ?? 66 ?? ?? ?? 89 ?? ?? 83 ?? ?? 8B ?? ?? 89 ?? ?? 8B ?? ?? 89 ?? ?? 8D ?? ?? 8B ?? ?? 5? 6A ?? 5? FF 7? ?? FF 5? ?? 85 ?? 74 } + $block_4 = { 5? 89 ?? 83 ?? ?? 60 8B ?? ?? 8B ?? ?? 01 ?? 83 ?? ?? 83 ?? ?? 8D ?? ?? 83 ?? ?? 8B ?? 01 ?? 89 ?? ?? 8D ?? ?? 85 ?? 74 } + $block_5 = { 8D ?? ?? 83 ?? ?? 8B ?? ?? 6A ?? 68 ?? ?? ?? ?? 68 ?? ?? ?? ?? 6A ?? FF 5? ?? 85 ?? 0F 84 } + $block_6 = { 5? 89 ?? 83 ?? ?? 60 8B ?? ?? 83 ?? ?? 68 ?? ?? ?? ?? 5? E8 ?? ?? ?? ?? 85 ?? 89 ?? ?? 74 } + $block_7 = { 5? 89 ?? 60 8B ?? ?? 8B ?? 83 ?? ?? 8B ?? ?? 83 ?? ?? 29 } + $block_8 = { 5? 89 ?? 83 ?? ?? 60 8B ?? ?? 66 ?? ?? 66 ?? ?? ?? 75 } + $block_9 = { 8B ?? ?? 8B ?? ?? 03 ?? ?? 89 ?? 8D ?? ?? 85 ?? 0F 84 } + + condition: + hash.sha256(0, filesize) == "fcf7bfe68ff302869475b73e4c605a099ed2e1074e79c7b3acb2a451cd2ea915" or + hash.sha256(0, filesize) == "568e05c51259597cf79b633a041ad090588846b95c85f19a847d731c90a11122" or + hash.sha256(0, filesize) == "28143c7638f22342bff8edcd0bedd708e265948a5fcca750c302e2dca95ed9f0" or + 10 of them +} + +rule Havex { + meta: + Author = "Intezer Analyze" + Reference = "https://apt-ecosystem.com" + + strings: + $block_0 = { 8B ?? ?? 03 ?? 0F AF ?? 5? 5? 8D ?? ?? E8 ?? ?? ?? ?? 83 ?? ?? ?? 8B ?? ?? 89 ?? ?? 8B ?? ?? 72 } + $block_1 = { 5? 8D ?? ?? 5? E8 ?? ?? ?? ?? 8A ?? 5? F6 ?? 5? 1A ?? 8D ?? ?? FE ?? E8 ?? ?? ?? ?? 84 ?? 0F 84 } + $block_2 = { 8D ?? ?? C6 ?? ?? ?? E8 ?? ?? ?? ?? 8B ?? ?? 2B ?? ?? 6A ?? 99 5? F7 ?? 4? 83 ?? ?? 3B ?? 0F 82 } + $block_3 = { 8D ?? ?? 5? 8B ?? E8 ?? ?? ?? ?? 8B ?? E8 ?? ?? ?? ?? 0F B7 ?? 5? E8 ?? ?? ?? ?? 5? 84 ?? 75 } + $block_4 = { 6A ?? 8D ?? ?? 5? 5? E8 ?? ?? ?? ?? 83 ?? ?? 6A ?? 8D ?? ?? 5? FF 1? ?? ?? ?? ?? 85 ?? 0F 85 } + $block_5 = { 07 E8 ?? ?? ?? ?? 5? 89 ?? ?? E8 ?? ?? ?? ?? 89 ?? ?? 8D ?? ?? 5? E8 ?? ?? ?? ?? 5? 3B ?? 74 } + $block_6 = { 8D ?? ?? E8 ?? ?? ?? ?? 0F B6 ?? 8B ?? ?? 5? 6A ?? E8 ?? ?? ?? ?? 8D ?? ?? E8 ?? ?? ?? ?? EB } + $block_7 = { 8B ?? ?? 03 ?? 0F AF ?? 8D ?? ?? E8 ?? ?? ?? ?? 83 ?? ?? ?? 8B ?? ?? 89 ?? ?? 8B ?? ?? 72 } + $block_8 = { 8B ?? ?? 33 ?? 66 ?? ?? ?? 8B ?? ?? 0F B6 ?? ?? C1 ?? ?? C1 ?? ?? 0B ?? FF 0? ?? 4? 79 } + $block_9 = { 66 ?? ?? 66 ?? ?? ?? 66 ?? 33 ?? 4? 5? 0F B7 ?? 8B ?? 66 ?? ?? 0F B7 ?? 4? 83 ?? ?? 7D } + $block_10 = { 5? 8D ?? ?? ?? 5? E8 ?? ?? ?? ?? 33 ?? 89 ?? ?? ?? ?? ?? ?? 39 ?? ?? ?? ?? ?? ?? 0F 84 } + $block_11 = { 8B ?? ?? 8D ?? ?? 8B ?? 2B ?? D1 ?? 5? 5? 5? E8 ?? ?? ?? ?? 83 ?? ?? 5? 8B ?? 5? C9 C3 } + $block_12 = { 80 B? ?? ?? ?? ?? ?? 8D ?? ?? 0F 94 ?? 0F B6 ?? 5? 5? E8 ?? ?? ?? ?? 33 ?? 8B ?? 4? EB } + $block_13 = { 8B ?? ?? 2B ?? ?? 89 ?? ?? 8B ?? ?? 8B ?? ?? 8B ?? 2B ?? 89 ?? ?? 89 ?? ?? 3B ?? 0F 83 } + $block_14 = { 5? 8B ?? 0F B7 ?? ?? 83 ?? ?? 33 ?? 4? 5? 8B ?? 66 ?? ?? 0F B7 ?? 4? 83 ?? ?? 7D } + $block_15 = { E8 ?? ?? ?? ?? 2B ?? ?? 8B ?? C1 ?? ?? 89 ?? ?? 8B ?? ?? 89 ?? ?? 83 ?? ?? 0F 83 } + $block_16 = { 33 ?? 6A ?? 5? 8B ?? F7 ?? 0F 90 ?? F7 ?? 0B ?? 5? E8 ?? ?? ?? ?? 5? 89 ?? 8B } + $block_17 = { 8D ?? ?? 83 ?? ?? ?? 5? 33 ?? 8B ?? AB AB AB AB 33 ?? 8D ?? ?? AB AB AB AB 5? } + $block_18 = { 6A ?? B8 ?? ?? ?? ?? E8 ?? ?? ?? ?? 8B ?? ?? 89 ?? ?? 83 ?? ?? ?? 0F B7 ?? 72 } + $block_19 = { 8B ?? ?? BB ?? ?? ?? ?? BE ?? ?? ?? ?? 5? 8D ?? ?? E8 ?? ?? ?? ?? 85 ?? 0F 84 } + $block_20 = { 8B ?? ?? 33 ?? 89 ?? ?? 89 ?? ?? 89 ?? ?? 89 ?? ?? ?? ?? ?? 38 ?? ?? 0F 84 } + $block_21 = { 8B ?? ?? 8D ?? ?? A5 A5 A5 A5 FF 1? ?? ?? ?? ?? 8B ?? ?? E8 ?? ?? ?? ?? C3 } + $block_22 = { 5? FF 7? ?? 5? E8 ?? ?? ?? ?? 5? E8 ?? ?? ?? ?? BB ?? ?? ?? ?? 3B ?? 0F 84 } + $block_23 = { 33 ?? 66 ?? ?? 0F B7 ?? ?? ?? 4? 5? 8B ?? 66 ?? ?? 0F B7 ?? 4? 83 ?? ?? 7D } + $block_24 = { 6A ?? E8 ?? ?? ?? ?? CC 8B ?? ?? ?? 0F AF ?? ?? ?? 5? E8 ?? ?? ?? ?? 5? C3 } + $block_25 = { 8A ?? ?? 88 ?? ?? 8A ?? ?? 88 ?? ?? 8A ?? ?? 88 ?? ?? 8B ?? ?? 5? 5? C9 C3 } + $block_26 = { E8 ?? ?? ?? ?? 8B ?? ?? 2B ?? ?? 6A ?? 99 5? F7 ?? FF 7? ?? 3B ?? 0F 83 } + $block_27 = { 8D ?? ?? 5? 8B ?? E8 ?? ?? ?? ?? 0F B7 ?? 5? E8 ?? ?? ?? ?? 5? 84 ?? 74 } + $block_28 = { 80 B? ?? ?? ?? ?? ?? 8D ?? ?? 0F 94 ?? 0F B6 ?? 5? 5? E8 ?? ?? ?? ?? EB } + $block_29 = { 8D ?? ?? ?? ?? ?? 5? 5? FF 1? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 3B ?? 0F 84 } + $block_30 = { E8 ?? ?? ?? ?? 8B ?? 2B ?? ?? 6A ?? 99 5? F7 ?? FF 7? ?? 83 ?? ?? 0F 83 } + $block_31 = { 66 ?? ?? ?? 8B ?? ?? ?? ?? ?? 66 ?? ?? ?? 4? 83 ?? ?? 0F B7 ?? 0F 8C } + $block_32 = { 8B ?? ?? ?? ?? ?? 5? 33 ?? 5? E8 ?? ?? ?? ?? 81 C? ?? ?? ?? ?? C9 C3 } + $block_33 = { 5? FF 7? ?? 5? E8 ?? ?? ?? ?? 5? E8 ?? ?? ?? ?? 3D ?? ?? ?? ?? 0F 84 } + $block_34 = { FF 8? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 8B ?? ?? C1 ?? ?? 39 ?? ?? 0F 85 } + $block_35 = { 5? FF B? ?? ?? ?? ?? 8D ?? ?? ?? ?? ?? 5? E8 ?? ?? ?? ?? 3B ?? 0F 85 } + $block_36 = { 8B ?? ?? 8B ?? ?? 8D ?? ?? A5 A5 A5 6A ?? A5 0F B6 ?? ?? 5? 2B ?? 5? } + $block_37 = { 5? 8B ?? 83 ?? ?? 83 ?? ?? 8A ?? ?? 5? 5? 5? 89 ?? ?? ?? 84 ?? 0F 85 } + $block_38 = { 8A ?? 88 ?? 8A ?? ?? 88 ?? ?? 8A ?? ?? 88 ?? ?? 8B ?? ?? 5? 5? C9 C3 } + $block_39 = { 6A ?? 8B ?? E8 ?? ?? ?? ?? 0F B7 ?? 5? E8 ?? ?? ?? ?? 5? 84 ?? 74 } + $block_40 = { 2B ?? ?? 8B ?? C1 ?? ?? 89 ?? ?? 8B ?? ?? 89 ?? ?? 83 ?? ?? 0F 83 } + $block_41 = { 0F BE ?? ?? ?? FF 7? ?? 5? 5? E8 ?? ?? ?? ?? 83 ?? ?? 85 ?? 0F 84 } + $block_42 = { 8B ?? ?? BE ?? ?? ?? ?? 5? 8D ?? ?? E8 ?? ?? ?? ?? 85 ?? 0F 84 } + $block_43 = { 68 ?? ?? ?? ?? FF 1? ?? ?? ?? ?? 8A ?? ?? ?? ?? ?? 3C ?? 0F 84 } + $block_44 = { 68 ?? ?? ?? ?? 8D ?? ?? ?? ?? ?? ?? E8 ?? ?? ?? ?? 85 ?? 0F 85 } + $block_45 = { 8B ?? ?? 4? 4? 83 ?? ?? 89 ?? ?? 8A ?? ?? 8A ?? ?? 3A ?? 0F 85 } + $block_46 = { 8A ?? ?? ?? ?? ?? 8D ?? ?? ?? 30 ?? 0F B6 ?? 4? 83 ?? ?? 72 } + $block_47 = { 0F B6 ?? ?? 33 ?? 8A ?? ?? ?? ?? ?? 30 ?? 0F B6 ?? 4? 4? 75 } + $block_48 = { 33 ?? 83 ?? ?? ?? 0F 95 ?? 4? 83 ?? ?? 83 ?? ?? 89 ?? ?? EB } + $block_49 = { 8B ?? ?? 0F B6 ?? ?? 8D ?? ?? ?? ?? ?? ?? FF 0? 4? 3B ?? 7C } + $block_50 = { 8B ?? ?? C1 ?? ?? ?? 83 ?? ?? 83 ?? ?? 89 ?? ?? 3B ?? 0F 84 } + $block_51 = { 8B ?? ?? 2B ?? ?? 6A ?? 99 5? F7 ?? FF 7? ?? 3B ?? 0F 83 } + $block_52 = { 6A ?? FF 1? ?? ?? ?? ?? 8B ?? ?? ?? 8A ?? ?? 84 ?? 0F 84 } + $block_53 = { 8B ?? E8 ?? ?? ?? ?? 0F B7 ?? 0F B7 ?? 83 ?? ?? 3B ?? 7F } + $block_54 = { 8A ?? ?? 88 ?? ?? 8A ?? ?? 88 ?? ?? 8B ?? ?? 5? 5? C9 C3 } + $block_55 = { 8B ?? 2B ?? ?? 6A ?? 99 5? F7 ?? FF 7? ?? 83 ?? ?? 0F 83 } + $block_56 = { BE ?? ?? ?? ?? 5? 8D ?? ?? E8 ?? ?? ?? ?? 85 ?? 0F 84 } + $block_57 = { 5? 5? E8 ?? ?? ?? ?? 83 ?? ?? 0F 94 ?? 5? 5? 3C ?? 74 } + $block_58 = { 8B ?? ?? ?? ?? ?? 68 ?? ?? ?? ?? 5? FF D? 85 ?? 0F 84 } + $block_59 = { FF 7? ?? 6A ?? 5? E8 ?? ?? ?? ?? 83 ?? ?? 85 ?? 0F 84 } + $block_60 = { 8B ?? ?? 2B ?? ?? 6A ?? 99 5? F7 ?? 39 ?? ?? 0F 83 } + $block_61 = { 0F B6 ?? 8B ?? ?? ?? ?? ?? C1 ?? ?? 4? 83 ?? ?? 7C } + $block_62 = { 8B ?? ?? 5? 33 ?? 5? E8 ?? ?? ?? ?? 83 ?? ?? C9 C3 } + $block_63 = { 8A ?? 88 ?? 8A ?? ?? 88 ?? ?? 8B ?? ?? 5? 5? C9 C3 } + $block_64 = { 5? 8B ?? 83 ?? ?? 5? 5? 8B ?? 8B ?? 3B ?? 0F 84 } + $block_65 = { 8D ?? ?? 5? FF 1? ?? ?? ?? ?? 8B ?? 3B ?? 0F 84 } + $block_66 = { 6A ?? 5? 5? E8 ?? ?? ?? ?? 83 ?? ?? 5? 5? C9 C3 } + + condition: + hash.sha256(0, filesize) == "2221c2323fb6e30b9c10ee68d60b7d7be823911540bb115f75b2747d015e35f9" or + hash.sha256(0, filesize) == "358da2c5bb5fbd9c9cf791536054bbb387ce37253c31555f5afa544f38de2a3f" or + hash.sha256(0, filesize) == "61969cd978cd2de3a13a10510d0dea5d0d3b212209804563ed3d42033a9d0f54" or + hash.sha256(0, filesize) == "224e8349ba128f0ab57bdebef5287f4b84b9dccbc2d8503f53f6333efd5f9265" or + hash.sha256(0, filesize) == "778568b44e13751800bf66c17606dfdfe35bebbb94c8e6e2a2549c7482c33f7a" or + hash.sha256(0, filesize) == "ce99e5f64f2d1e58454f23b4c1de33d71ee0b9fcd52c9eb69569f1c420332235" or + hash.sha256(0, filesize) == "4f3ceab96fb55d0b05380a1d95bb494ca44d7a9d7f10ded02d5b6fc27c92cb05" or + hash.sha256(0, filesize) == "85d3f636b515f0729c47f66e3fc0c9a0aacf3ec09c4acf8bf20a1411edcdc40a" or + hash.sha256(0, filesize) == "cb58396d40e69d5c831f46aed93231ed0b7d41fee95f8da7c594c9dbd06ee111" or + hash.sha256(0, filesize) == "2f24c7ccbd7a9e830ed3f9b3b7be7856e0cc8c1580082433cbe9bf33c86193c6" or + hash.sha256(0, filesize) == "d5687b5c5cec11c851e84a1d40af3ef52607575487a70224f63458c24481076c" or + hash.sha256(0, filesize) == "ec48b131612ef5637b387d9c2b0907d68a080fb77c6168e779fb7f3a0efa04dc" or + hash.sha256(0, filesize) == "4cf75059f2655ca95b4eba11f1ce952d8e08bb4dbcb12905f6f37cf8145a538d" or + hash.sha256(0, filesize) == "e3a7fa8636d040c9c3a8c928137d24daa15fc6982c002c5dd8f1c552f11cbcad" or + hash.sha256(0, filesize) == "7c1136d6f5b10c22698f7e049dbc493be6e0ce03316a86c422ca9b670cb133aa" or + hash.sha256(0, filesize) == "b139829440aabe33071aa34604f739d70f9a0a3b06051f3190aabf839df2d408" or + hash.sha256(0, filesize) == "c43ce82560cea125f65c7701c733c61ae3faa782c8b00efcb44fd7dbd32a5c4b" or + hash.sha256(0, filesize) == "43608e60883304c1ea389c7bad244b86ff5ecf169c3b5bca517a6e7125325c7b" or + hash.sha256(0, filesize) == "6b2a438e0233fe8e7ba8774e2e5c59bf0b7c12679d52d6783a0010ecad11978c" or + hash.sha256(0, filesize) == "6e92c2d298e25bcff17326f69882b636150d2a1af494ef8186565544f0d04d3d" or + hash.sha256(0, filesize) == "0c20ffcdf2492ccad2e53777a0885c579811f91c05d076ff160684082681fe68" or + hash.sha256(0, filesize) == "269ea4b883de65f235a04441144519cf6cac80ef666eccf073eedd5f9319be0f" or + hash.sha256(0, filesize) == "0e34262813677090938983039ba9ff3ade0748a3aba25e28d19e2831c036b095" or + hash.sha256(0, filesize) == "ee53e509d0f2a3c888232f2232b603463b421b9c08fe7f44ed4eead0643135d3" or + hash.sha256(0, filesize) == "a3a6f0dc5558eb93afa98434020a8642f7b29c41d35fa34809d6801d99d8c4f3" or + hash.sha256(0, filesize) == "2efd5355651db8e07613e74b1bf85b50273c1f3bce5e4edbedea0ccdff023754" or + hash.sha256(0, filesize) == "9517a412633b8ebeac875a2da7fe119b72efad62859dc1719b84d561792a9033" or + hash.sha256(0, filesize) == "94d4e4a8f2d53426154c41120b4f3cf8105328c0cc5d4bd9126a54c14b296093" or + hash.sha256(0, filesize) == "0c9b20f4cb0b3206f81c2afbb2ee4d995c28f74f38216f7d35454af624af8876" or + hash.sha256(0, filesize) == "abdb2da30435430f808b229f8b6856fafc154a386ef4f7c5e8de4a746e350e0c" or + hash.sha256(0, filesize) == "8d343be0ea83597f041f9cbc6ea5b63773affc267c6ad99d31badee16d2c86e5" or + hash.sha256(0, filesize) == "f1d6e8b07ac486469e09c876c3e267db2b2d651299c87557cbf4eafb861cf79c" or + hash.sha256(0, filesize) == "101e70a5455212b40406fe70361995a3a346264eabd4029200356565d2bacd6a" or + hash.sha256(0, filesize) == "c25c1455dcab2f17fd6a25f8af2f09ca31c8d3773de1cb2a55acd7aeaa6963c8" or + hash.sha256(0, filesize) == "0ea750a8545252b73f08fe87db08376f789fe7e58a69f5017afa2806046380a5" or + hash.sha256(0, filesize) == "b3b01b36b6437c624da4b28c4c8f773ae8133fca9dd10dc17742e956117f5759" or + hash.sha256(0, filesize) == "698ec413986dc7fc761b1a17624ffffb1590902020b9d0cd5d9a6013c67d9100" or + hash.sha256(0, filesize) == "02e5191078497be1e6ea8bac93b6cfb9b3ee36a58e4f7dd343ac1762e7f9301e" or + hash.sha256(0, filesize) == "f6aab09e1c52925fe599246dfdb4c1d06bea5c380c4c3e9c33661c869d41a23a" or + hash.sha256(0, filesize) == "439e5617d57360f76f24daed3fe0b59f20fc9dade3008fd482260ba58b739a23" or + hash.sha256(0, filesize) == "4ff5f102f0f1284a189485fc4c387c977dd92f0bc6a30c4d837e864aed257129" or + hash.sha256(0, filesize) == "e38aa99eff1f9fedd99cf541c3255e99f3276839a883cadb6e916649522729e3" or + hash.sha256(0, filesize) == "c987f8433c663c9e8600a7016cdf63cd14590a019118c52238c24c39c9ec02ad" or + hash.sha256(0, filesize) == "066346170856972f6769705bc6ff4ad21e88d2658b4cacea6f94564f1856ed18" or + hash.sha256(0, filesize) == "b647f883911ff20f776e0a42564b13ef961fa584ebd5cfce9dd2990bca5df24e" or + hash.sha256(0, filesize) == "5a13d0c954280b4c65af409376de86ac43eb966f25b85973a20d330a34cdd9a6" or + hash.sha256(0, filesize) == "4b547b3992838cfb3b61cb25f059c0b56c2f7caaa3b894dbc20bf7b33dadc5a1" or + hash.sha256(0, filesize) == "2dc296eb532097ac1808df7a16f7740ef8771afda3ac339d144d710f9cefceb4" or + hash.sha256(0, filesize) == "bb3529aa5312abbee0cfbd00f10c3f2786f452a2ca807f0acbd336602a13ac79" or + hash.sha256(0, filesize) == "dc612882987fab581155466810f87fd8f0f2da5c61ad8fc618cef903c9650fcd" or + hash.sha256(0, filesize) == "b0faba6156c7b0cd59b94eeded37d8c1041d4b8dfa6aacd6520a6d28c3f02a5e" or + hash.sha256(0, filesize) == "a2fe7a346b39a062c60c50167be7dd4f6a8175df054faa67bff33ec42b1072d9" or + hash.sha256(0, filesize) == "bcdcb4b5e9aaaee2c46d5b0ed16aca629de9faa5e787c672191e0bdf64619a95" or + hash.sha256(0, filesize) == "9d530e2254580842574a740698d2348b68b46fd88312c9325321ad0d986f523d" or + hash.sha256(0, filesize) == "aef82593822a934b77b81ebc461c496c4610474727539b0b6e1499ca836f0dee" or + hash.sha256(0, filesize) == "e42badd8fb20f1bc72b1cec65c42a96ee60a4b52d19e8f5a7248afee03646ace" or + hash.sha256(0, filesize) == "edb7caa3dce3543d65f29e047ea789a9e429e46bed5c29c4748e656285a08050" or + hash.sha256(0, filesize) == "6296d95b49d795fa10ae6e9c4e4272ea4e1444105bddbf45b34ee067b2603b38" or + hash.sha256(0, filesize) == "13da3fe28302a8543dd527d9e09723caeed98006c3064c5ed7b059d6d7f36554" or + hash.sha256(0, filesize) == "d3ee530abe41705a819ee9220aebb3ba01531e16df7cded050ba2cf051940e46" or + hash.sha256(0, filesize) == "2f593c22a8fd0de3bbb57d26320446a9c7eed755ae354957c260908c93d8cf79" or + hash.sha256(0, filesize) == "da3c1a7b63a6a7cce0c9ef01cf95fd4a53ba913bab88a085c6b4b8e4ed40d916" or + hash.sha256(0, filesize) == "170596e88b26f04d349f6014d17a88026ec55eab44888e2a9bb4dd90a79f6878" or + hash.sha256(0, filesize) == "d71da8a59f3e474c3bcd3f2f00fae0b235c4e01cd9f465180dd0ab19d6af5526" or + hash.sha256(0, filesize) == "ecb097f3367f0155887dde9f891ff823ff54ddfe5217cdbb391ea5b10c5a08dc" or + hash.sha256(0, filesize) == "59af70f71cdf933f117ab97d6f1c1bab82fd15dbe654ba1b27212d7bc20cec8c" or + hash.sha256(0, filesize) == "f65d767afd198039d044b17b96ebad54390549c6e18ead7e19e342d60b70a2c3" or + hash.sha256(0, filesize) == "d588e789f0b5914bd6f127950c5daf6519c78b527b0ed7b323e42b0613f6566f" or + hash.sha256(0, filesize) == "69b555a37e919c3e6c24cfe183952cdb695255f9458b25d00d15e204d96c737b" or + hash.sha256(0, filesize) == "022da314d1439f779364aba958d51b119ac5fda07aac8f5ced77146dbf40c8ac" or + hash.sha256(0, filesize) == "8e222cb1a831c407a3f6c7863f3faa6358b424e70a041c196e91fb7989735b68" or + hash.sha256(0, filesize) == "31db22caf480c471205a7608545370c1b3c0c9be5285a9ef2264e856052b66b4" or + hash.sha256(0, filesize) == "0850c39a7fcaa7091aaea333d33c71902b263935df5321edcd5089d10e4bbebb" or + hash.sha256(0, filesize) == "b8514bff04e8f4e77430202db61ec5c206d3ec0f087a65ee72c9bb94a058b685" or + hash.sha256(0, filesize) == "2c37e0504b98413e0308e44fd84f98e968f6f62399ea06bc38d3f314ee94b368" or + hash.sha256(0, filesize) == "56a1513bcf959d5df3ff01476ddb4b158ce533658ab7d8dd439324b16f193ac2" or + hash.sha256(0, filesize) == "aafbf4bba99c47e7d05c951ad964ce09493db091ba5945e89df916c6fa95d101" or + hash.sha256(0, filesize) == "8da93bc4d20e5f38d599ac89db26fc2f1eecbf36c14209302978d46fc4ce5412" or + hash.sha256(0, filesize) == "c66525285707daff30fce5d79eb1bdf30519586dfec4edf73e4a0845fd3d0e1c" or + hash.sha256(0, filesize) == "49c1c5e8a71f488a7b560c6751752363389f6272d8c310fee78307dc9dcd3ee2" or + hash.sha256(0, filesize) == "6122db2cdac0373cc8513c57786088a5548721d01e7674e78082774044e92980" or + hash.sha256(0, filesize) == "bee9f2a01e0049d4cf94016284b16849136233366d1509489797084672e5448f" or + hash.sha256(0, filesize) == "684ea2083f2f7099f0a611c81f26f30127ad297fcac8988cabb60fcf56979dfc" or + hash.sha256(0, filesize) == "92c959c36617445a35e6f4f2ee2733861aa1b3baf8728d19a4fd5176f3c80401" or + hash.sha256(0, filesize) == "593849098bd288b7bed9646e877fa0448dcb25ef5b4482291fdf7123de867911" or + hash.sha256(0, filesize) == "66ec58b4bdcb30d1889972c1ee30af7ff213deece335f798e57ff51fe28752e3" or + hash.sha256(0, filesize) == "b8f2fdddf7a9d0b813931e0efe4e6473199688320d5e8289928fe87ce4b1d068" or + hash.sha256(0, filesize) == "d755904743d48c31bdff791bfa440e79cfe1c3fc9458eb708cf8bb78f117dd07" or + hash.sha256(0, filesize) == "98bd5e8353bc9b70f8a52786365bcdb28bd3aef164d62c38dae8df33e04ac11a" or + hash.sha256(0, filesize) == "6606dd9a5d5182280c12d009a03b8ed6179872fcb08be9aa16f098250cc5b7a7" or + hash.sha256(0, filesize) == "bacac71fcc61db9b55234d1ccf45d5fffd9392c430cdd25ee7a5cea4b24c7128" or + hash.sha256(0, filesize) == "e73f8b394e51348ef3b6cea7c5e5ecc2ee06bb395c5ac30f6babb091080c1e74" or + hash.sha256(0, filesize) == "83e57d8f3810a72a772742d4b786204471a7607e02fa445c3cd083f164cc4af3" or + hash.sha256(0, filesize) == "60f86898506f0fdf6d997f31deff5b6200a6969b457511cc00446bd22dd1f0a4" or + hash.sha256(0, filesize) == "1d768ebfbdf97ad5282e7f85da089e174b1db760f1cbdca1a815e8e6245f155a" or + hash.sha256(0, filesize) == "fd689fcdcef0f1198b9c778b4d93adfbf6e80118733c94e61a450aeb701750b4" or + hash.sha256(0, filesize) == "7081455301e756d6459ea7f03cd55f7e490622d36a5a019861e6b17141f69bd0" or + hash.sha256(0, filesize) == "e029db63346c513be42242e268559174f6b00d818e00d93c14bd443314f65fe5" or + hash.sha256(0, filesize) == "6e5f4296bffa7128b6e8fa72ad1924d2ff19b9d64775bd1e0a9ce9c5944bd419" or + hash.sha256(0, filesize) == "d89a80a3fbb0a4a40157c6752bd978bc113b0c413e3f73eb922d4e424edeb8a7" or + hash.sha256(0, filesize) == "487eaf5cc52528b5f3bb27ba53afffb6d534068b364a41fc887b8c1e1485795a" or + hash.sha256(0, filesize) == "24be375f0e11d88210e53f15cc08d72ab6c6287676c3fe3c6f70b513e5f442ed" or + hash.sha256(0, filesize) == "fb30c3bb1b25b3d4cca975f2e0c45b95f3eb57a765267271a9689dd526658b43" or + hash.sha256(0, filesize) == "65a4332dfe474a8bb9b5fa35495aade453da7a03eb0049211e57b5660d08d75c" or + hash.sha256(0, filesize) == "59c4cba96dbab5d8aa7779eac18b67b2e6f8b03066eb092415d50dff55e43b72" or + hash.sha256(0, filesize) == "6367cb0663c2898aff64440176b409c1389ca7834e752b350a87748bef3a878b" or + hash.sha256(0, filesize) == "0a0a5b68a8a7e4ed4b6d6881f57c6a9ac55b1a50097588e462fe8d3c486158bf" or + hash.sha256(0, filesize) == "ebb16c9536e6387e7f6988448a3142d17ab695b2894624f33bd591ceb3e46633" or + hash.sha256(0, filesize) == "3a88ff66f4eb675f0c3e6c5f947c012945c4e15b77a2cd195de8a8aba23ccb29" or + hash.sha256(0, filesize) == "0f4046be5de15727e8ac786e54ad7230807d26ef86c3e8c0e997ea76ab3de255" or + hash.sha256(0, filesize) == "646c94a0194ca70fbe68c444a0c9b444e195280f9a0d19f12393421311653552" or + hash.sha256(0, filesize) == "a05b53260c2855829226dffd814022b7ff4750d278d6c46f2e8e0dc58a36a1f9" or + hash.sha256(0, filesize) == "837e68be35c2f0ab9e2b3137d6f9f7d16cc387f3062a21dd98f436a4bcceb327" or + hash.sha256(0, filesize) == "7e0dafedd01d09e66524f2345d652b29d3f634361c0a69e8d466dcbdfd0e3001" or + hash.sha256(0, filesize) == "45abd87da6a584ab2a66a06b40d3c84650f2a33f5f55c5c2630263bc17ec4139" or + hash.sha256(0, filesize) == "cd019e717779e2d2b1f4c27f75e940b5f98d4ebb48de604a6cf2ab911220ae50" or + hash.sha256(0, filesize) == "2c109406998723885cf04c3ced7af8010665236459d6fe610e678065994154d4" or + hash.sha256(0, filesize) == "170e5eb004357dfce6b41de8637e1dbeb87fa58e8b54a2031aac33afb930f3c8" or + hash.sha256(0, filesize) == "72ff91b3f36ccf07e3daf6709db441d2328cecab366fd5ff81fc70dd9eb45db8" or + hash.sha256(0, filesize) == "c4e2e341689799281eaef47de75f59edceaba281398b41fe7616436f247ab93d" or + hash.sha256(0, filesize) == "1ef47da67f783f8cc8cda7481769647b754874c91e0c666f741611decd878c19" or + 12 of them +} + +rule HavexModuleOPC { + meta: + Author = "Intezer Analyze" + Reference = "https://apt-ecosystem.com" + + strings: + $block_0 = { 8B ?? ?? 03 ?? 0F AF ?? 8D ?? ?? E8 ?? ?? ?? ?? 83 ?? ?? ?? 8B ?? ?? 89 ?? ?? 8B ?? ?? 72 } + $block_1 = { 8B ?? ?? 33 ?? 66 ?? ?? ?? 8B ?? ?? 0F B6 ?? ?? C1 ?? ?? C1 ?? ?? 0B ?? FF 0? ?? 4? 79 } + $block_2 = { 8D ?? ?? 5? 89 ?? ?? 8B ?? ?? 6A ?? E8 ?? ?? ?? ?? 83 ?? ?? ?? 89 ?? ?? 3B ?? 0F 85 } + $block_3 = { 89 ?? ?? ?? ?? ?? 8B ?? ?? 8D ?? ?? E8 ?? ?? ?? ?? 83 ?? ?? ?? FF 4? ?? 0F 85 } + $block_4 = { 8B ?? ?? 33 ?? 89 ?? ?? 89 ?? ?? 89 ?? ?? 89 ?? ?? ?? ?? ?? 38 ?? ?? 0F 84 } + $block_5 = { 8B ?? ?? ?? ?? ?? 5? 33 ?? 5? E8 ?? ?? ?? ?? 81 C? ?? ?? ?? ?? C9 C3 } + $block_6 = { 66 ?? ?? ?? 8B ?? ?? ?? ?? ?? 66 ?? ?? ?? 4? 83 ?? ?? 0F B7 ?? 0F 8C } + $block_7 = { 5? 8B ?? 83 ?? ?? 5? 5? 33 ?? 8D ?? ?? AB AB AB AB 83 ?? ?? ?? C7 } + $block_8 = { 8D ?? ?? 5? FF 1? ?? ?? ?? ?? 8B ?? E8 ?? ?? ?? ?? 84 ?? 0F 84 } + $block_9 = { 0F B7 ?? 8B ?? C1 ?? ?? 0B ?? D1 ?? 8D ?? ?? F3 ?? 13 ?? 66 } + $block_10 = { 33 ?? 83 ?? ?? ?? 0F 95 ?? 4? 83 ?? ?? 83 ?? ?? 89 ?? ?? EB } + $block_11 = { 83 ?? ?? ?? 8B ?? ?? 89 ?? ?? 8B ?? A5 A5 A5 A5 5? 5? 74 } + $block_12 = { 8D ?? ?? 8B ?? E8 ?? ?? ?? ?? 83 ?? ?? FF 4? ?? 0F 85 } + $block_13 = { 5? 8B ?? 83 ?? ?? 5? 8B ?? ?? 5? 8B ?? 85 ?? 0F 84 } + $block_14 = { 0F B6 ?? 8B ?? ?? ?? ?? ?? C1 ?? ?? 4? 83 ?? ?? 7C } + $block_15 = { 8B ?? ?? 8B ?? ?? 33 ?? 5? E8 ?? ?? ?? ?? C9 C3 } + + condition: + hash.sha256(0, filesize) == "004c99be0c355e1265b783aae557c198bcc92ee84ed49df70db927a726c842f3" or + hash.sha256(0, filesize) == "7933809aecb1a9d2110a6fd8a18009f2d9c58b3c7dbda770251096d4fcc18849" or + hash.sha256(0, filesize) == "6aca45bb78452cd78386b8fa78dbdf2dda7fba6cc06482251e2a6820849c9e82" or + 12 of them +} + +rule KaraganyModuleScreenshot { + meta: + Author = "Intezer Analyze" + Reference = "https://apt-ecosystem.com" + + strings: + $block_0 = { 5? 8B ?? 81 E? ?? ?? ?? ?? A1 ?? ?? ?? ?? 33 ?? 89 ?? ?? 5? 5? 5? 68 ?? ?? ?? ?? 8D ?? ?? ?? ?? ?? 6A ?? 5? C6 ?? ?? ?? ?? ?? ?? E8 ?? ?? ?? ?? 83 ?? ?? 68 ?? ?? ?? ?? BB ?? ?? ?? ?? 5? 68 ?? ?? ?? ?? FF 1? ?? ?? ?? ?? BE ?? ?? ?? ?? 8D ?? ?? A5 A5 A5 A5 A4 BE ?? ?? ?? ?? 8D ?? ?? A5 A5 8D ?? ?? A4 8B ?? ?? ?? ?? ?? 5? FF D? 5? 8D ?? ?? 6A ?? 5? E8 ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 83 ?? ?? 8D ?? ?? 5? 5? FF D? 6A ?? 5? FF 1? ?? ?? ?? ?? 8D ?? ?? 5? FF D? 5? 8D ?? ?? 6A ?? 5? E8 ?? ?? ?? ?? 83 ?? ?? 8D ?? ?? 5? 5? FF D? 68 ?? ?? ?? ?? 8D ?? ?? ?? ?? ?? 5? 6A ?? FF 1? ?? ?? ?? ?? 8D ?? ?? ?? ?? ?? 68 ?? ?? ?? ?? 5? E8 ?? ?? ?? ?? 8B ?? 5? 5? 85 ?? 75 } + $block_1 = { 5? 8B ?? 81 E? ?? ?? ?? ?? A1 ?? ?? ?? ?? 33 ?? 89 ?? ?? 5? 5? BE ?? ?? ?? ?? 5? 8D ?? ?? ?? ?? ?? 5? 33 ?? 5? FF 1? ?? ?? ?? ?? 85 ?? 0F 84 } + $block_2 = { 8D ?? ?? ?? 68 ?? ?? ?? ?? 5? E8 ?? ?? ?? ?? 5? 5? 85 ?? 0F 84 } + $block_3 = { 5? 8D ?? ?? ?? ?? ?? 5? 5? FF 1? ?? ?? ?? ?? 85 ?? 0F 84 } + $block_4 = { 8D ?? ?? ?? 5? FF 7? ?? ?? FF 1? ?? ?? ?? ?? 85 ?? 0F 85 } + + condition: + hash.sha256(0, filesize) == "05fb04474a3785995508101eca7affd8c89c658f7f9555de6d6d4db40583ac53" or + 5 of them +} + +rule Listrix { + meta: + Author = "Intezer Analyze" + Reference = "https://apt-ecosystem.com" + + strings: + $block_0 = { 5? 8B ?? 83 ?? ?? 81 E? ?? ?? ?? ?? A1 ?? ?? ?? ?? 33 ?? 89 ?? ?? ?? ?? ?? ?? 5? 8B ?? ?? ?? ?? ?? 68 ?? ?? ?? ?? FF D? 68 ?? ?? ?? ?? FF D? 68 ?? ?? ?? ?? FF D? 68 ?? ?? ?? ?? 68 ?? ?? ?? ?? 68 ?? ?? ?? ?? FF 1? ?? ?? ?? ?? 68 ?? ?? ?? ?? 68 ?? ?? ?? ?? FF 1? ?? ?? ?? ?? 68 ?? ?? ?? ?? FF D? 68 ?? ?? ?? ?? FF D? E8 ?? ?? ?? ?? FF 1? ?? ?? ?? ?? C1 ?? ?? 89 ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? ?? 85 ?? 0F 84 } + $block_1 = { 0F B7 ?? ?? ?? ?? ?? 0F B7 ?? ?? ?? ?? ?? 0F B7 ?? ?? ?? ?? ?? 5? 0F B7 ?? ?? ?? ?? ?? 5? 0F B7 ?? ?? ?? ?? ?? 5? 8B ?? ?? ?? ?? ?? 5? 5? 5? 8D ?? ?? ?? ?? ?? 5? 5? 8D ?? ?? ?? ?? ?? 68 ?? ?? ?? ?? 5? FF 1? ?? ?? ?? ?? 83 ?? ?? 8D ?? ?? ?? ?? ?? 5? FF 1? ?? ?? ?? ?? 6A ?? 68 ?? ?? ?? ?? 6A ?? 6A ?? 6A ?? 6A ?? 68 ?? ?? ?? ?? 8B ?? FF 1? ?? ?? ?? ?? 8B ?? 83 ?? ?? 74 } + $block_2 = { 0F B7 ?? ?? ?? ?? ?? 0F B7 ?? ?? ?? ?? ?? 0F B7 ?? ?? ?? ?? ?? 5? 0F B7 ?? ?? ?? ?? ?? 5? 0F B7 ?? ?? ?? ?? ?? 5? 5? 5? 8D ?? ?? ?? ?? ?? 5? 5? 8D ?? ?? ?? ?? ?? 68 ?? ?? ?? ?? 5? FF 1? ?? ?? ?? ?? 83 ?? ?? 8D ?? ?? ?? ?? ?? 5? FF 1? ?? ?? ?? ?? 6A ?? 68 ?? ?? ?? ?? 6A ?? 6A ?? 6A ?? 6A ?? 68 ?? ?? ?? ?? 8B ?? FF 1? ?? ?? ?? ?? 8B ?? 83 ?? ?? 0F 84 } + $block_3 = { 5? 8B ?? 81 E? ?? ?? ?? ?? A1 ?? ?? ?? ?? 33 ?? 89 ?? ?? 33 ?? 68 ?? ?? ?? ?? 5? 8D ?? ?? ?? ?? ?? 5? 66 ?? ?? ?? ?? ?? ?? E8 ?? ?? ?? ?? 33 ?? 68 ?? ?? ?? ?? 5? 8D ?? ?? ?? ?? ?? 5? 66 ?? ?? ?? ?? ?? ?? E8 ?? ?? ?? ?? 83 ?? ?? 8D ?? ?? ?? ?? ?? 5? 68 ?? ?? ?? ?? FF 1? ?? ?? ?? ?? 85 ?? 0F 84 } + $block_4 = { 5? 8B ?? 81 E? ?? ?? ?? ?? A1 ?? ?? ?? ?? 33 ?? 89 ?? ?? 68 ?? ?? ?? ?? 8D ?? ?? ?? ?? ?? 5? 6A ?? FF 1? ?? ?? ?? ?? 85 ?? 0F 84 } + $block_5 = { 6A ?? 68 ?? ?? ?? ?? 6A ?? 6A ?? 6A ?? 68 ?? ?? ?? ?? 68 ?? ?? ?? ?? FF 1? ?? ?? ?? ?? A3 ?? ?? ?? ?? 83 ?? ?? 0F 84 } + $block_6 = { 8D ?? ?? ?? ?? ?? 5? 8D ?? ?? ?? ?? ?? 5? FF 1? ?? ?? ?? ?? 8B ?? 89 ?? ?? ?? ?? ?? 83 ?? ?? 0F 84 } + $block_7 = { 8B ?? ?? ?? 8D ?? ?? ?? 83 ?? ?? 5? 66 ?? ?? ?? ?? FF 1? ?? ?? ?? ?? 83 ?? ?? 0F 85 } + $block_8 = { 68 ?? ?? ?? ?? 6A ?? 6A ?? 8D ?? ?? ?? ?? ?? 5? FF 1? ?? ?? ?? ?? 85 ?? 0F 84 } + $block_9 = { 68 ?? ?? ?? ?? 8D ?? ?? ?? ?? ?? 5? 8B ?? 5? FF 1? ?? ?? ?? ?? 85 ?? 0F 84 } + + condition: + hash.sha256(0, filesize) == "fc54d8afd2ce5cb6cc53c46783bf91d0dd19de604308d536827320826bc36ed9" or + 10 of them +} + +rule KaraganyModuleFileListing { + meta: + Author = "Intezer Analyze" + Reference = "https://apt-ecosystem.com" + + strings: + $block_0 = { 0F B7 ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 66 ?? ?? ?? A1 ?? ?? ?? ?? 89 ?? ?? 0F B7 ?? ?? ?? ?? ?? 89 ?? ?? 0F B7 ?? ?? ?? ?? ?? 89 ?? ?? 0F B7 ?? ?? ?? ?? ?? 66 ?? ?? ?? 8B ?? ?? ?? ?? ?? 66 ?? ?? ?? 8B ?? ?? ?? ?? ?? 66 ?? ?? ?? 0F B6 ?? ?? ?? ?? ?? 89 ?? ?? 8B ?? ?? ?? ?? ?? 89 ?? ?? 8B ?? ?? ?? ?? ?? 89 ?? ?? 0F B7 ?? ?? ?? ?? ?? 88 ?? ?? A1 ?? ?? ?? ?? 89 ?? ?? 0F B7 ?? ?? ?? ?? ?? 89 ?? ?? 0F B7 ?? ?? ?? ?? ?? 66 ?? ?? ?? 8B ?? ?? ?? ?? ?? 66 ?? ?? ?? 8B ?? ?? ?? ?? ?? 89 ?? ?? 8B ?? ?? ?? ?? ?? 66 ?? ?? ?? 0F B7 ?? ?? ?? ?? ?? 89 ?? ?? 0F B6 ?? ?? ?? ?? ?? 89 ?? ?? 8B ?? ?? ?? ?? ?? 66 ?? ?? ?? 0F B7 ?? ?? ?? ?? ?? 88 ?? ?? 0F B6 ?? ?? ?? ?? ?? 89 ?? ?? 8B ?? ?? ?? ?? ?? 66 ?? ?? ?? 0F B6 ?? ?? ?? ?? ?? 89 ?? ?? 0F B7 ?? ?? ?? ?? ?? 88 ?? ?? 8B ?? ?? ?? ?? ?? 88 ?? ?? 89 ?? ?? 66 ?? ?? ?? 8D ?? ?? 8D ?? ?? 8D ?? ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 8D ?? ?? 8D ?? ?? 8D ?? ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 8D ?? ?? 8D ?? ?? 8D ?? ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? 8D ?? ?? 8D ?? ?? 8D ?? ?? 89 ?? ?? 89 ?? ?? 89 ?? ?? C7 ?? ?? ?? ?? ?? ?? 8D } + $block_1 = { 8D ?? ?? ?? ?? ?? 5? 8D ?? ?? ?? ?? ?? 5? 68 ?? ?? ?? ?? 68 ?? ?? ?? ?? FF 1? ?? ?? ?? ?? 83 ?? ?? 68 ?? ?? ?? ?? FF D? 68 ?? ?? ?? ?? FF D? 68 ?? ?? ?? ?? FF D? 68 ?? ?? ?? ?? FF D? 68 ?? ?? ?? ?? FF D? 68 ?? ?? ?? ?? FF D? 68 ?? ?? ?? ?? FF D? 68 ?? ?? ?? ?? E8 ?? ?? ?? ?? 83 ?? ?? FF 1? ?? ?? ?? ?? C1 ?? ?? 89 ?? ?? C7 ?? ?? ?? ?? ?? ?? 85 ?? 0F 84 } + $block_2 = { 0F B7 ?? ?? 0F B7 ?? ?? 0F B7 ?? ?? 5? 0F B7 ?? ?? 5? 0F B7 ?? ?? 5? 8B ?? ?? ?? ?? ?? 5? 5? 5? 8D ?? ?? ?? ?? ?? 5? 5? 8D ?? ?? ?? ?? ?? 68 ?? ?? ?? ?? 5? FF 1? ?? ?? ?? ?? 83 ?? ?? 8D ?? ?? ?? ?? ?? 5? FF 1? ?? ?? ?? ?? 6A ?? 68 ?? ?? ?? ?? 6A ?? 6A ?? 6A ?? 6A ?? 68 ?? ?? ?? ?? 8B ?? FF 1? ?? ?? ?? ?? 8B ?? 83 ?? ?? 74 } + $block_3 = { 0F B7 ?? ?? 0F B7 ?? ?? 0F B7 ?? ?? 5? 0F B7 ?? ?? 5? 0F B7 ?? ?? 5? 5? 5? 8D ?? ?? ?? ?? ?? 5? 5? 8D ?? ?? ?? ?? ?? 68 ?? ?? ?? ?? 5? FF 1? ?? ?? ?? ?? 83 ?? ?? 8D ?? ?? ?? ?? ?? 5? FF 1? ?? ?? ?? ?? 6A ?? 68 ?? ?? ?? ?? 6A ?? 6A ?? 6A ?? 6A ?? 68 ?? ?? ?? ?? 8B ?? FF 1? ?? ?? ?? ?? 8B ?? 83 ?? ?? 0F 84 } + $block_4 = { 8A ?? ?? 8D ?? ?? ?? ?? ?? 04 ?? 5? 88 ?? ?? ?? ?? ?? FF 1? ?? ?? ?? ?? 83 ?? ?? 0F 85 } + $block_5 = { 68 ?? ?? ?? ?? 8D ?? ?? ?? ?? ?? 5? FF 1? ?? ?? ?? ?? F6 ?? ?? ?? 0F 84 } + $block_6 = { 8B ?? ?? 8D ?? ?? ?? ?? ?? 5? 5? FF 1? ?? ?? ?? ?? 85 ?? 0F 85 } + $block_7 = { 68 ?? ?? ?? ?? 8D ?? ?? ?? ?? ?? 5? FF D? 85 ?? 0F 84 } + + condition: + hash.sha256(0, filesize) == "07bd08b07de611b2940e886f453872aa8d9b01f9d3c61d872d6cfe8cde3b50d4" or + 8 of them +} + +rule Ddex_loader { + meta: + Author = "Intezer Analyze" + Reference = "https://apt-ecosystem.com" + + strings: + $block_0 = { 5? 5? 68 ?? ?? ?? ?? 6A ?? 5? FF 1? ?? ?? ?? ?? 8B ?? FF 1? ?? ?? ?? ?? 8B ?? 8D ?? ?? 5? FF 1? ?? ?? ?? ?? 0F B7 ?? ?? 5? 0F B7 ?? ?? 5? 0F B7 ?? ?? 5? 0F B7 ?? ?? 5? 0F B7 ?? ?? 5? 0F B7 ?? ?? 5? 5? 68 ?? ?? ?? ?? 5? FF 1? ?? ?? ?? ?? 83 ?? ?? 5? E8 ?? ?? ?? ?? 5? 5? FF 7? ?? E8 ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 85 ?? 75 } + $block_1 = { FF 3? ?? ?? ?? ?? FF 7? ?? FF 7? ?? FF 3? ?? ?? ?? ?? FF 7? ?? 68 ?? ?? ?? ?? FF 3? FF 1? ?? ?? ?? ?? 83 ?? ?? FF 3? E8 ?? ?? ?? ?? FF 7? ?? 8B ?? ?? 5? FF 7? ?? 89 ?? FF D? FF 7? ?? 5? FF 7? ?? FF D? 5? 33 ?? 5? 4? 5? C9 C2 } + $block_2 = { 0F B7 ?? ?? 5? 0F B7 ?? ?? 5? 0F B7 ?? ?? 5? 0F B7 ?? ?? 5? 0F B7 ?? ?? 5? 68 ?? ?? ?? ?? FF 7? ?? FF 1? ?? ?? ?? ?? 83 ?? ?? FF 7? ?? E8 ?? ?? ?? ?? 8D ?? ?? 5? 5? FF 7? ?? 89 ?? ?? 89 ?? ?? E8 ?? ?? ?? ?? 8B ?? 3B ?? 74 } + $block_3 = { 5? 8B ?? 83 ?? ?? 5? 5? 5? FF 1? ?? ?? ?? ?? 89 ?? ?? E8 ?? ?? ?? ?? BB ?? ?? ?? ?? 5? 89 ?? ?? E8 ?? ?? ?? ?? 8D ?? ?? 5? E8 ?? ?? ?? ?? 8B ?? 8D ?? ?? A5 A5 68 ?? ?? ?? ?? A5 E8 ?? ?? ?? ?? 85 ?? 75 } + $block_4 = { 83 ?? ?? ?? ?? 5? E8 ?? ?? ?? ?? 8D ?? ?? ?? 5? 5? 5? E8 ?? ?? ?? ?? 5? 33 ?? 5? 5? 8B ?? FF D? 39 ?? ?? ?? 0F 86 } + $block_5 = { 5? 5? 83 ?? ?? ?? ?? 5? 5? 5? 8B ?? ?? ?? ?? ?? 5? 8B ?? ?? ?? 68 ?? ?? ?? ?? 5? FF D? 5? 5? 85 ?? 0F 84 } + $block_6 = { 6A ?? 5? E8 ?? ?? ?? ?? 5? 5? 8D ?? ?? 5? E8 ?? ?? ?? ?? 8B ?? 8D ?? ?? A5 A5 A5 83 ?? ?? ?? 74 } + $block_7 = { 0F B7 ?? ?? 5? 5? 6A ?? 5? 5? 5? FF 3? 5? FF 1? ?? ?? ?? ?? 89 ?? ?? ?? 3B ?? 75 } + $block_8 = { 5? E8 ?? ?? ?? ?? 3B ?? 8B ?? ?? ?? ?? ?? 89 ?? ?? ?? 0F 84 } + $block_9 = { 5? 68 ?? ?? ?? ?? 89 ?? ?? E8 ?? ?? ?? ?? 85 ?? 0F 85 } + + condition: + hash.sha256(0, filesize) == "7a115335c971ad4f15af10ea54e2d3a6db08c73815861db4526335b81ebde253" or + hash.sha256(0, filesize) == "76b272828c68b5c6d3693809330555b5a1a6a8bda73228c8edc37afca78a21d6" or + hash.sha256(0, filesize) == "377a9c610cc17bbf19470b1a3f847b74e0f56d4f4fd57a3298c630dab403acea" or + hash.sha256(0, filesize) == "3094ac9d2eeb17d4cda19542f816d15619b4c3fec52b87fdfcd923f4602d827b" or + 10 of them +} + +rule HavexLoader { + meta: + Author = "Intezer Analyze" + Reference = "https://apt-ecosystem.com" + + strings: + $block_0 = { 8B ?? ?? 03 ?? 0F AF ?? 8D ?? ?? E8 ?? ?? ?? ?? 83 ?? ?? ?? 8B ?? ?? 89 ?? ?? 8B ?? ?? 72 } + $block_1 = { 66 ?? ?? 66 ?? ?? ?? 66 ?? 33 ?? 4? 5? 0F B7 ?? 8B ?? 66 ?? ?? 0F B7 ?? 4? 83 ?? ?? 7D } + $block_2 = { 8B ?? ?? 33 ?? 66 ?? ?? ?? 8B ?? ?? 0F B6 ?? ?? C1 ?? ?? C1 ?? ?? 0B ?? FF 0? ?? 4? 79 } + $block_3 = { E8 ?? ?? ?? ?? 2B ?? ?? 8B ?? C1 ?? ?? 89 ?? ?? 8B ?? ?? 89 ?? ?? 83 ?? ?? 0F 83 } + $block_4 = { 5? 8B ?? 0F B7 ?? ?? 83 ?? ?? 33 ?? 4? 5? 8B ?? 66 ?? ?? 0F B7 ?? 4? 83 ?? ?? 7D } + $block_5 = { 6A ?? B8 ?? ?? ?? ?? E8 ?? ?? ?? ?? 8B ?? ?? 89 ?? ?? 83 ?? ?? ?? 0F B7 ?? 72 } + $block_6 = { 8D ?? ?? 83 ?? ?? ?? 5? 33 ?? 8B ?? AB AB AB AB 33 ?? 8D ?? ?? AB AB AB AB 5? } + $block_7 = { 8B ?? ?? 33 ?? 89 ?? ?? 89 ?? ?? 89 ?? ?? 89 ?? ?? ?? ?? ?? 38 ?? ?? 0F 84 } + $block_8 = { 8B ?? ?? 8D ?? ?? A5 A5 A5 A5 FF 1? ?? ?? ?? ?? 8B ?? ?? E8 ?? ?? ?? ?? C3 } + $block_9 = { 8D ?? ?? ?? ?? ?? 5? 5? FF 1? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 3B ?? 0F 84 } + $block_10 = { 80 B? ?? ?? ?? ?? ?? 8D ?? ?? 0F 94 ?? 0F B6 ?? 5? 5? E8 ?? ?? ?? ?? EB } + $block_11 = { E8 ?? ?? ?? ?? 8B ?? ?? 2B ?? ?? 6A ?? 99 5? F7 ?? FF 7? ?? 3B ?? 0F 83 } + $block_12 = { 66 ?? ?? ?? 8B ?? ?? ?? ?? ?? 66 ?? ?? ?? 4? 83 ?? ?? 0F B7 ?? 0F 8C } + $block_13 = { 5? FF 7? ?? 5? E8 ?? ?? ?? ?? 5? E8 ?? ?? ?? ?? 3D ?? ?? ?? ?? 0F 84 } + $block_14 = { 8B ?? ?? ?? ?? ?? 5? 33 ?? 5? E8 ?? ?? ?? ?? 81 C? ?? ?? ?? ?? C9 C3 } + $block_15 = { 8B ?? ?? 8B ?? ?? 8D ?? ?? A5 A5 A5 6A ?? A5 0F B6 ?? ?? 5? 2B ?? 5? } + $block_16 = { 5? 8B ?? 83 ?? ?? 83 ?? ?? 8A ?? ?? 5? 5? 5? 89 ?? ?? ?? 84 ?? 0F 85 } + $block_17 = { 2B ?? ?? 8B ?? C1 ?? ?? 89 ?? ?? 8B ?? ?? 89 ?? ?? 83 ?? ?? 0F 83 } + $block_18 = { 68 ?? ?? ?? ?? FF 1? ?? ?? ?? ?? 8A ?? ?? ?? ?? ?? 3C ?? 0F 84 } + $block_19 = { 33 ?? 83 ?? ?? ?? 0F 95 ?? 4? 83 ?? ?? 83 ?? ?? 89 ?? ?? EB } + $block_20 = { 0F B6 ?? ?? 33 ?? 8A ?? ?? ?? ?? ?? 30 ?? 0F B6 ?? 4? 4? 75 } + $block_21 = { 8A ?? ?? ?? ?? ?? 8D ?? ?? ?? 30 ?? 0F B6 ?? 4? 83 ?? ?? 72 } + $block_22 = { 8B ?? ?? 2B ?? ?? 6A ?? 99 5? F7 ?? FF 7? ?? 3B ?? 0F 83 } + $block_23 = { 8B ?? E8 ?? ?? ?? ?? 0F B7 ?? 0F B7 ?? 83 ?? ?? 3B ?? 7F } + $block_24 = { 6A ?? FF 1? ?? ?? ?? ?? 8B ?? ?? ?? 8A ?? ?? 84 ?? 0F 84 } + $block_25 = { 8B ?? ?? 2B ?? ?? 6A ?? 99 5? F7 ?? 39 ?? ?? 0F 83 } + $block_26 = { 0F B6 ?? 8B ?? ?? ?? ?? ?? C1 ?? ?? 4? 83 ?? ?? 7C } + $block_27 = { 8B ?? ?? 5? 33 ?? 5? E8 ?? ?? ?? ?? 83 ?? ?? C9 C3 } + $block_28 = { 6A ?? 5? 5? E8 ?? ?? ?? ?? 83 ?? ?? 5? 5? C9 C3 } + + condition: + hash.sha256(0, filesize) == "401215e6ae0b80cb845c7e2910dddf08af84c249034d76e0cf1aa31f0cf2ea67" or + 12 of them +} + +rule HavexModuleOutlook { + meta: + Author = "Intezer Analyze" + Reference = "https://apt-ecosystem.com" + + strings: + $block_0 = { 8B ?? ?? 03 ?? 0F AF ?? 8D ?? ?? E8 ?? ?? ?? ?? 83 ?? ?? ?? 8B ?? ?? 89 ?? ?? 8B ?? ?? 72 } + $block_1 = { 8B ?? ?? 33 ?? 66 ?? ?? ?? 8B ?? ?? 0F B6 ?? ?? C1 ?? ?? C1 ?? ?? 0B ?? FF 0? ?? 4? 79 } + $block_2 = { 89 ?? ?? ?? ?? ?? 8B ?? ?? 8D ?? ?? E8 ?? ?? ?? ?? 83 ?? ?? ?? FF 4? ?? 0F 85 } + $block_3 = { 8B ?? ?? 33 ?? 89 ?? ?? 89 ?? ?? 89 ?? ?? 89 ?? ?? ?? ?? ?? 38 ?? ?? 0F 84 } + $block_4 = { E8 ?? ?? ?? ?? 8B ?? ?? 2B ?? ?? 6A ?? 99 5? F7 ?? FF 7? ?? 3B ?? 0F 83 } + $block_5 = { 8B ?? ?? ?? ?? ?? 5? 33 ?? 5? E8 ?? ?? ?? ?? 81 C? ?? ?? ?? ?? C9 C3 } + $block_6 = { 66 ?? ?? ?? 8B ?? ?? ?? ?? ?? 66 ?? ?? ?? 4? 83 ?? ?? 0F B7 ?? 0F 8C } + $block_7 = { 5? 8B ?? 83 ?? ?? 5? 5? 33 ?? 8D ?? ?? AB AB AB AB 83 ?? ?? ?? C7 } + $block_8 = { 33 ?? 83 ?? ?? ?? 0F 95 ?? 4? 83 ?? ?? 83 ?? ?? 89 ?? ?? EB } + $block_9 = { 8B ?? ?? 2B ?? ?? 6A ?? 99 5? F7 ?? FF 7? ?? 3B ?? 0F 83 } + $block_10 = { 8B ?? E8 ?? ?? ?? ?? 0F B7 ?? 0F B7 ?? 83 ?? ?? 3B ?? 7F } + $block_11 = { 8D ?? ?? 8B ?? E8 ?? ?? ?? ?? 83 ?? ?? FF 4? ?? 0F 85 } + $block_12 = { 0F B6 ?? 8B ?? ?? ?? ?? ?? C1 ?? ?? 4? 83 ?? ?? 7C } + $block_13 = { 8B ?? ?? 8B ?? ?? 33 ?? 5? E8 ?? ?? ?? ?? C9 C3 } + + condition: + hash.sha256(0, filesize) == "0859cb511a12f285063ffa8cb2a5f9b0b3c6364f8192589a7247533fda7a878e" or + 12 of them +} + +rule HavexModuleNetworkScanner { + meta: + Author = "Intezer Analyze" + Reference = "https://apt-ecosystem.com" + + strings: + $block_0 = { 8D ?? ?? ?? ?? ?? 5? FF 7? ?? E8 ?? ?? ?? ?? 8B ?? ?? 8B ?? 5? 89 ?? ?? 8B ?? D1 ?? 5? 8B ?? ?? ?? ?? ?? 0F B6 ?? ?? 0F B6 ?? 80 E? ?? C0 ?? ?? D3 ?? 8B ?? ?? ?? ?? ?? 0F B7 ?? ?? 83 ?? ?? C1 ?? ?? 0B ?? 33 ?? 4? 89 ?? ?? 89 ?? ?? ?? ?? ?? A1 ?? ?? ?? ?? 89 ?? ?? FF 4? ?? 8B ?? ?? 33 ?? 3B ?? 0F 94 ?? 89 ?? ?? 33 ?? 89 } + $block_1 = { 8B ?? ?? 03 ?? 8D ?? ?? E8 ?? ?? ?? ?? 8D ?? ?? 8B ?? E8 ?? ?? ?? ?? FF 7? ?? 8B ?? ?? FF 7? ?? 8B ?? FF 7? ?? FF 3? FF 7? ?? FF 7? ?? E8 ?? ?? ?? ?? 5? 5? B0 ?? 5? C9 C3 } + $block_2 = { FF 7? ?? 33 ?? 4? 8D ?? ?? E8 ?? ?? ?? ?? 8B ?? ?? 8B ?? ?? 8B ?? ?? 83 ?? ?? 33 ?? C6 ?? ?? ?? 89 ?? ?? 89 ?? ?? E8 ?? ?? ?? ?? 84 ?? 0F 85 } + $block_3 = { 8B ?? ?? E8 ?? ?? ?? ?? 8B ?? ?? FF 7? ?? 88 ?? 0F BE ?? 5? 68 ?? ?? ?? ?? E8 ?? ?? ?? ?? 83 ?? ?? 85 ?? 74 } + $block_4 = { 8B ?? ?? 03 ?? 0F AF ?? 8D ?? ?? E8 ?? ?? ?? ?? 83 ?? ?? ?? 8B ?? ?? 89 ?? ?? 8B ?? ?? 72 } + $block_5 = { 8B ?? ?? 33 ?? 89 ?? ?? 89 ?? ?? 89 ?? ?? 89 ?? ?? ?? ?? ?? 38 ?? ?? 0F 84 } + $block_6 = { 33 ?? 83 ?? ?? ?? 0F 95 ?? 4? 83 ?? ?? 83 ?? ?? 89 ?? ?? EB } + + condition: + hash.sha256(0, filesize) == "2120c3a30870921ab5e03146a1a1a865dd24a2b5e6f0138bf9f2ebf02d490850" or + hash.sha256(0, filesize) == "9a2a8cb8a0f4c29a7c2c63ee58e55aada0a3895382abe7470de4822a4d868ee6" or + 7 of them +} + +rule Sysmain { + meta: + Author = "Intezer Analyze" + Reference = "https://apt-ecosystem.com" + + strings: + $block_0 = { 8B ?? ?? ?? 33 ?? AB AB AB 8B ?? ?? ?? 8B ?? E8 ?? ?? ?? ?? FF 7? ?? ?? E8 ?? ?? ?? ?? 85 ?? 75 } + $block_1 = { FF 1? ?? ?? ?? ?? 83 ?? ?? ?? 8D ?? ?? 5? 6A ?? 5? 89 ?? ?? FF 1? ?? ?? ?? ?? 8B ?? 85 ?? 0F 84 } + $block_2 = { 5? 8B ?? 81 E? ?? ?? ?? ?? 8B ?? ?? 0F B7 ?? 5? 83 ?? ?? 6A ?? 99 5? F7 ?? 8B ?? 39 ?? ?? 77 } + $block_3 = { 6A ?? 8D ?? ?? ?? ?? ?? 5? 68 ?? ?? ?? ?? 5? FF B? ?? ?? ?? ?? 5? E8 ?? ?? ?? ?? 85 ?? 0F 84 } + $block_4 = { 8B ?? ?? ?? ?? ?? 68 ?? ?? ?? ?? FF 3? FF D? FF 7? ?? ?? FF 1? ?? ?? ?? ?? 83 ?? ?? ?? 0F 84 } + $block_5 = { 89 ?? ?? 8D ?? ?? E8 ?? ?? ?? ?? 68 ?? ?? ?? ?? 5? 8D ?? ?? E8 ?? ?? ?? ?? 5? 85 ?? 0F 84 } + $block_6 = { 8B ?? ?? ?? ?? ?? 8B ?? 8B ?? ?? 8B ?? D3 ?? 83 ?? ?? 0F B7 ?? 8B ?? ?? 66 ?? ?? ?? 7D } + $block_7 = { 8D ?? ?? 8D ?? ?? A5 A5 A5 8D ?? ?? 5? A5 FF 1? ?? ?? ?? ?? 66 ?? ?? ?? 66 ?? ?? ?? 75 } + $block_8 = { FF 3? E8 ?? ?? ?? ?? 5? E8 ?? ?? ?? ?? 83 ?? ?? ?? 81 7? ?? ?? ?? ?? ?? 5? 5? 0F 8E } + $block_9 = { 8D ?? ?? ?? ?? ?? ?? 0F B6 ?? 5? E8 ?? ?? ?? ?? 4? 5? 88 ?? 3B ?? ?? ?? ?? ?? 72 } + $block_10 = { FF 4? ?? ?? 8B ?? ?? ?? 8B ?? ?? ?? 8B ?? ?? C1 ?? ?? 89 ?? ?? ?? 39 ?? ?? 0F 85 } + $block_11 = { 8B ?? ?? ?? 33 ?? AB AB AB E8 ?? ?? ?? ?? E8 ?? ?? ?? ?? 89 ?? ?? ?? 85 ?? 0F 84 } + $block_12 = { 5? FF 1? ?? ?? ?? ?? 83 ?? ?? ?? 8D ?? ?? 89 ?? ?? E8 ?? ?? ?? ?? 85 ?? 0F 84 } + $block_13 = { 8B ?? ?? ?? ?? ?? 5? 5? 33 ?? 33 ?? 5? E8 ?? ?? ?? ?? 81 C? ?? ?? ?? ?? C9 C3 } + $block_14 = { 8B ?? 8B ?? ?? ?? ?? ?? 89 ?? ?? 8D ?? ?? ?? ?? ?? 89 ?? ?? 83 ?? ?? 0F 86 } + $block_15 = { BE ?? ?? ?? ?? 8D ?? ?? ?? A5 A5 A5 8D ?? ?? ?? A5 E8 ?? ?? ?? ?? 85 ?? 74 } + $block_16 = { 5? 5? 5? 5? 68 ?? ?? ?? ?? FF 9? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 3B ?? 0F 84 } + $block_17 = { 8B ?? ?? ?? ?? ?? 5? 33 ?? 33 ?? 5? E8 ?? ?? ?? ?? 81 C? ?? ?? ?? ?? C9 C2 } + $block_18 = { 8B ?? ?? ?? ?? ?? 8B ?? 5? 33 ?? 5? E8 ?? ?? ?? ?? 81 C? ?? ?? ?? ?? C9 C3 } + $block_19 = { BE ?? ?? ?? ?? 8D ?? ?? ?? ?? ?? 5? 5? E8 ?? ?? ?? ?? 5? 5? 85 ?? 0F 84 } + $block_20 = { 8B ?? ?? ?? ?? ?? BF ?? ?? ?? ?? 5? 5? E8 ?? ?? ?? ?? 5? 5? 85 ?? 0F 84 } + $block_21 = { 8B ?? ?? ?? ?? ?? 5? 5? 33 ?? 5? E8 ?? ?? ?? ?? 81 C? ?? ?? ?? ?? C9 C3 } + $block_22 = { 8B ?? ?? ?? ?? ?? 8B ?? 33 ?? 5? E8 ?? ?? ?? ?? 81 C? ?? ?? ?? ?? C9 C3 } + $block_23 = { FF 4? ?? ?? 8B ?? ?? ?? 8B ?? ?? ?? 8B ?? ?? C1 ?? ?? 83 ?? ?? ?? 0F 85 } + $block_24 = { 8B ?? ?? FF 3? E8 ?? ?? ?? ?? FF 3? E8 ?? ?? ?? ?? 89 ?? ?? 85 ?? 0F 84 } + $block_25 = { 6A ?? 8D ?? ?? 6A ?? 5? E8 ?? ?? ?? ?? 8B ?? ?? 83 ?? ?? 5? 5? C9 C3 } + $block_26 = { FF 4? ?? ?? 8B ?? ?? FF 4? ?? 83 ?? ?? ?? 88 ?? ?? ?? ?? ?? ?? 0F 85 } + $block_27 = { 68 ?? ?? ?? ?? 5? E8 ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 5? 5? 85 ?? 0F 84 } + $block_28 = { 8D ?? ?? ?? ?? ?? 5? FF B? ?? ?? ?? ?? FF 1? ?? ?? ?? ?? 85 ?? 0F 85 } + $block_29 = { 8B ?? ?? ?? ?? ?? 5? 33 ?? 5? E8 ?? ?? ?? ?? 81 C? ?? ?? ?? ?? C9 C3 } + $block_30 = { 8B ?? ?? ?? ?? ?? 5? 33 ?? 5? E8 ?? ?? ?? ?? 81 C? ?? ?? ?? ?? C9 C2 } + $block_31 = { FF 4? ?? 8B ?? ?? ?? ?? ?? FF 4? ?? 8D ?? ?? 3B ?? 89 ?? ?? 0F 8C } + $block_32 = { 6A ?? 8D ?? ?? 6A ?? 5? E8 ?? ?? ?? ?? 8B ?? ?? 83 ?? ?? 5? C9 C3 } + $block_33 = { 68 ?? ?? ?? ?? FF 7? ?? ?? 8D ?? ?? ?? E8 ?? ?? ?? ?? 85 ?? 0F 84 } + $block_34 = { FF 7? ?? ?? 5? 6A ?? 5? 5? E8 ?? ?? ?? ?? 83 ?? ?? 85 ?? 0F 84 } + $block_35 = { 8B ?? ?? ?? ?? ?? 33 ?? E8 ?? ?? ?? ?? 81 C? ?? ?? ?? ?? C9 C3 } + $block_36 = { 8D ?? ?? ?? 0F B6 ?? 5? E8 ?? ?? ?? ?? 4? 5? 88 ?? 3B ?? ?? 72 } + $block_37 = { 8B ?? ?? ?? ?? ?? 33 ?? E8 ?? ?? ?? ?? 81 C? ?? ?? ?? ?? C9 C2 } + $block_38 = { 8B ?? ?? 8B ?? ?? 8B ?? ?? 8D ?? ?? 0F B6 ?? ?? 2B ?? ?? 75 } + $block_39 = { 6A ?? E8 ?? ?? ?? ?? 8B ?? 5? 89 ?? ?? ?? ?? ?? 85 ?? 0F 84 } + $block_40 = { FF 3? E8 ?? ?? ?? ?? FF 3? E8 ?? ?? ?? ?? 8B ?? 85 ?? 0F 84 } + $block_41 = { 8B ?? ?? 8B ?? ?? ?? ?? ?? 33 ?? 5? E8 ?? ?? ?? ?? C9 C3 } + $block_42 = { 8D ?? ?? ?? 5? FF 7? ?? ?? FF 1? ?? ?? ?? ?? 85 ?? 0F 85 } + $block_43 = { FF 8? ?? ?? ?? ?? 81 B? ?? ?? ?? ?? ?? ?? ?? ?? 0F 8E } + $block_44 = { BE ?? ?? ?? ?? 5? E8 ?? ?? ?? ?? 5? 89 ?? 85 ?? 0F 84 } + $block_45 = { 8B ?? ?? 8B ?? ?? ?? ?? ?? 33 ?? E8 ?? ?? ?? ?? C9 C3 } + $block_46 = { 8B ?? ?? 8B ?? ?? 33 ?? E8 ?? ?? ?? ?? 83 ?? ?? C9 C3 } + $block_47 = { BF ?? ?? ?? ?? 5? E8 ?? ?? ?? ?? 5? 89 ?? 85 ?? 0F 84 } + $block_48 = { 68 ?? ?? ?? ?? 5? 8D ?? ?? E8 ?? ?? ?? ?? 85 ?? 0F 84 } + $block_49 = { 5? 5? 6A ?? 5? 5? E8 ?? ?? ?? ?? 83 ?? ?? 85 ?? 0F 84 } + $block_50 = { 0F B6 ?? 8B ?? ?? ?? ?? ?? C1 ?? ?? 4? 83 ?? ?? 7C } + $block_51 = { 8B ?? ?? 5? 5? 33 ?? 33 ?? 5? E8 ?? ?? ?? ?? C9 C3 } + $block_52 = { 6A ?? E8 ?? ?? ?? ?? 8B ?? 5? 89 ?? ?? 85 ?? 0F 84 } + $block_53 = { 8B ?? ?? 5? 5? 33 ?? 33 ?? 5? E8 ?? ?? ?? ?? C9 C2 } + $block_54 = { 8B ?? ?? 5? 33 ?? 33 ?? 5? E8 ?? ?? ?? ?? C9 C2 } + $block_55 = { 5? BB ?? ?? ?? ?? 5? E8 ?? ?? ?? ?? 85 ?? 0F 86 } + $block_56 = { FC 6B ?? ?? 64 ?? ?? ?? 8B ?? ?? 8B ?? ?? AD 8B } + + condition: + hash.sha256(0, filesize) == "387d4ea82c51ecda162a3ffd68a3aca5a21a20a46dc08a0ebe51b03b7984abe9" or + hash.sha256(0, filesize) == "d5e3122a263d3f66dcfa7c2fed25c2b8a3be725b2c934fa9d9ef4c5aefbc6cb9" or + hash.sha256(0, filesize) == "dc75404b6fc8cdb73258c2cc7bc758347ffb4237c8d18222f3489dc303daf989" or + hash.sha256(0, filesize) == "81e5e73452aa8b14f6c6371af2dccab720a32fadfc032b3c8d96f9cdaab9e9df" or + hash.sha256(0, filesize) == "a8e6abaa0ddc34b9db6bda17b502be7f802fb880941ce2bd0473fd9569113599" or + hash.sha256(0, filesize) == "53d2a3324f276f29c749727c20708a3421a5144046ce14a8e025a8133316e0ac" or + hash.sha256(0, filesize) == "31488f632f5f7d3ec0ea82eab1f9baba16826967c3a6fa141069ef5453b1eb95" or + 12 of them +} + +rule IndustroyerWiper { + meta: + Author = "Intezer Analyze" + Reference = "https://apt-ecosystem.com" + + strings: + $block_0 = { 5? 8B ?? 83 ?? ?? 83 ?? ?? 83 ?? ?? 5? 8B ?? ?? 89 ?? ?? ?? 8B ?? 81 E? ?? ?? ?? ?? A1 ?? ?? ?? ?? 33 ?? 89 ?? ?? 0F 10 ?? ?? ?? ?? ?? A1 ?? ?? ?? ?? 5? 0F 11 ?? ?? 5? 0F 10 ?? ?? ?? ?? ?? 89 ?? ?? 33 ?? 8D ?? ?? ?? ?? ?? 5? 0F 11 ?? ?? 68 ?? ?? ?? ?? 0F 10 ?? ?? ?? ?? ?? 5? 8D ?? ?? 0F 11 ?? ?? 5? 0F 10 ?? ?? ?? ?? ?? 68 ?? ?? ?? ?? 0F 11 ?? ?? FF 1? ?? ?? ?? ?? 85 ?? 0F 85 } + $block_1 = { 6A ?? 5? FF 1? ?? ?? ?? ?? 3D ?? ?? ?? ?? B9 ?? ?? ?? ?? BF ?? ?? ?? ?? 0F 46 ?? 3D ?? ?? ?? ?? B9 ?? ?? ?? ?? 0F 46 ?? 3D ?? ?? ?? ?? B9 ?? ?? ?? ?? 0F 46 ?? 3D ?? ?? ?? ?? B9 ?? ?? ?? ?? 0F 46 ?? 5? E8 ?? ?? ?? ?? 83 ?? ?? 8B ?? 8D ?? ?? 6A ?? 5? 5? 5? 5? FF 1? ?? ?? ?? ?? 5? E8 ?? ?? ?? ?? 83 ?? ?? 5? FF 1? } + $block_2 = { 5? FF 1? ?? ?? ?? ?? 8D ?? ?? ?? ?? ?? ?? 5? E8 ?? ?? ?? ?? 5? 8B ?? 5? 5? E8 ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 83 ?? ?? 81 F? ?? ?? ?? ?? 0F 83 } + $block_3 = { FF B? ?? ?? ?? ?? FF D? 68 ?? ?? ?? ?? 8D ?? ?? ?? ?? ?? 5? 5? FF B? ?? ?? ?? ?? FF 1? ?? ?? ?? ?? 85 ?? 0F 84 } + $block_4 = { 68 ?? ?? ?? ?? 8D ?? ?? ?? ?? ?? 5? 5? FF B? ?? ?? ?? ?? FF 1? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 85 ?? 0F 85 } + $block_5 = { FF B? ?? ?? ?? ?? 5? FF 1? ?? ?? ?? ?? 85 ?? 0F B6 ?? 8B ?? ?? ?? ?? ?? 0F 44 ?? 83 ?? ?? 83 ?? ?? 72 } + + condition: + hash.sha256(0, filesize) == "018eb62e174efdcdb3af011d34b0bf2284ed1a803718fba6edffe5bc0b446b81" or + hash.sha256(0, filesize) == "ad23c7930dae02de1ea3c6836091b5fb3c62a89bf2bcfb83b4b39ede15904910" or + 6 of them +} + +rule IndustroyerPortScanner { + meta: + Author = "Intezer Analyze" + Reference = "https://apt-ecosystem.com" + + strings: + $block_0 = { 83 ?? ?? ?? ?? ?? ?? 0F 43 ?? ?? ?? ?? ?? 5? E8 ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 33 ?? 5? 8B ?? 4? } + $block_1 = { 5? 8B ?? 5? 8B ?? ?? 83 ?? ?? 5? 8B ?? 5? 39 ?? ?? 8B ?? 0F 42 ?? ?? 8B ?? ?? 2B ?? 3B ?? 0F 86 } + $block_2 = { 83 ?? ?? ?? 8D ?? ?? 0F 43 ?? ?? 83 ?? ?? ?? 5? 0F 43 ?? ?? 5? 68 ?? ?? ?? ?? E8 ?? ?? ?? ?? 83 } + $block_3 = { 8B ?? ?? ?? 89 ?? ?? ?? 8B ?? ?? ?? 2B ?? 89 ?? ?? ?? 6A ?? 5? 99 F7 ?? 89 ?? ?? ?? 83 ?? ?? 7C } + $block_4 = { 39 ?? ?? ?? ?? ?? 8D ?? ?? ?? ?? ?? 0F 43 ?? ?? ?? ?? ?? 5? E8 ?? ?? ?? ?? 5? 83 ?? ?? 0F 8F } + $block_5 = { 83 ?? ?? ?? ?? ?? ?? 8D ?? ?? ?? ?? ?? 0F 43 ?? ?? ?? ?? ?? 5? E8 ?? ?? ?? ?? 5? 3B ?? 0F 87 } + $block_6 = { 5? 8B ?? 5? 5? 5? 33 ?? 89 ?? ?? 33 ?? 38 ?? ?? 5? 8B ?? ?? 0F 94 ?? 5? 8B ?? ?? 89 ?? ?? 89 } + $block_7 = { 39 ?? ?? ?? ?? ?? 8D ?? ?? ?? ?? ?? 0F 43 ?? ?? ?? ?? ?? 5? E8 ?? ?? ?? ?? 5? 83 ?? ?? 0F 8C } + $block_8 = { 8B ?? 33 ?? 8B ?? ?? 83 ?? ?? 8B ?? ?? 2B ?? 89 ?? ?? 4? D1 ?? 3B ?? ?? 0F 47 ?? 85 ?? 74 } + $block_9 = { 39 ?? ?? ?? ?? ?? 8D ?? ?? ?? ?? ?? 0F 43 ?? ?? ?? ?? ?? 5? E8 ?? ?? ?? ?? 5? 85 ?? 0F 88 } + $block_10 = { 8B ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 2B ?? 6A ?? 5? 99 F7 ?? 8D ?? ?? 8B ?? 83 ?? ?? 0F 86 } + $block_11 = { 39 ?? ?? ?? ?? ?? 8D ?? ?? ?? ?? ?? 0F 43 ?? ?? ?? ?? ?? 5? E8 ?? ?? ?? ?? 5? 3B ?? 0F 8F } + $block_12 = { 5? 8B ?? 5? F7 ?? ?? ?? ?? ?? ?? 5? 0F B7 ?? ?? 5? 0F B7 ?? ?? 5? 89 ?? ?? 89 ?? ?? 74 } + $block_13 = { 5? 8B ?? 83 ?? ?? 5? 6A ?? 8D ?? ?? 89 ?? ?? 89 ?? ?? 89 ?? ?? 5? 89 ?? ?? 3B ?? 0F 84 } + $block_14 = { 39 ?? ?? ?? ?? ?? 8D ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 0F 43 ?? ?? ?? ?? ?? 33 ?? 66 } + $block_15 = { 5? 5? 5? 5? 8D ?? ?? ?? ?? ?? 8D ?? ?? ?? ?? ?? E8 ?? ?? ?? ?? 83 ?? ?? 84 ?? 0F 84 } + $block_16 = { 68 ?? ?? ?? ?? E8 ?? ?? ?? ?? CC 5? 8B ?? 83 ?? ?? 5? 8B ?? 5? 80 7? ?? ?? 0F 85 } + $block_17 = { 8B ?? ?? 8B ?? ?? 8B ?? C1 ?? ?? 8B ?? 83 ?? ?? 0F B6 ?? ?? 0F AB ?? 88 ?? ?? EB } + $block_18 = { 39 ?? ?? 8D ?? ?? 0F 43 ?? ?? 5? E8 ?? ?? ?? ?? BB ?? ?? ?? ?? 5? 3B ?? 0F 8F } + $block_19 = { 39 ?? ?? ?? ?? ?? 8D ?? ?? ?? ?? ?? 0F 43 ?? ?? ?? ?? ?? 5? 68 ?? ?? ?? ?? EB } + $block_20 = { 39 ?? ?? ?? ?? ?? 8D ?? ?? ?? ?? ?? 0F 43 ?? ?? ?? ?? ?? 5? 68 ?? ?? ?? ?? E9 } + $block_21 = { 8B ?? ?? 0F B7 ?? 8B ?? 83 ?? ?? C1 ?? ?? 5? 0F B6 ?? ?? 0F AB ?? 88 ?? ?? EB } + $block_22 = { 8B ?? ?? 8B ?? ?? 2B ?? 6A ?? 5? 99 F7 ?? 8D ?? ?? 89 ?? ?? 83 ?? ?? 0F 86 } + $block_23 = { 8B ?? ?? 2B ?? 8B ?? ?? 3B ?? 89 ?? ?? 0F 42 ?? 83 ?? ?? 2B ?? 3B ?? 76 } + $block_24 = { 6A ?? 5? 8D ?? ?? ?? E8 ?? ?? ?? ?? 5? E8 ?? ?? ?? ?? CC 8B ?? 85 ?? 74 } + $block_25 = { 6A ?? 6A ?? 8D ?? ?? E8 ?? ?? ?? ?? 83 ?? ?? 89 ?? ?? 3B ?? ?? 0F 85 } + $block_26 = { 83 ?? ?? ?? 0F 43 ?? ?? 5? E8 ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 8B ?? 5? } + $block_27 = { 5? 8D ?? ?? E8 ?? ?? ?? ?? 8B ?? ?? 8B ?? ?? 89 ?? ?? 3B ?? 0F 84 } + $block_28 = { 39 ?? ?? 8D ?? ?? 0F 43 ?? ?? 5? E8 ?? ?? ?? ?? 5? 85 ?? 0F 88 } + $block_29 = { 39 ?? ?? 8D ?? ?? 0F 43 ?? ?? 5? E8 ?? ?? ?? ?? 5? 3B ?? 0F 8F } + $block_30 = { 83 ?? ?? ?? 8D ?? ?? 0F 43 ?? ?? 5? E8 ?? ?? ?? ?? 5? 3B ?? 77 } + $block_31 = { 8D ?? ?? 8D ?? ?? A5 A5 A5 A5 8B ?? ?? 83 ?? ?? ?? 75 } + $block_32 = { FF 4? ?? 8B ?? ?? 8B ?? ?? 0F B7 ?? ?? 8B ?? 5? E8 } + $block_33 = { 39 ?? ?? 8D ?? ?? 0F 43 ?? ?? 5? 68 ?? ?? ?? ?? EB } + $block_34 = { 8B ?? ?? 5? 5? E8 ?? ?? ?? ?? 0F B6 ?? 3B ?? ?? 75 } + $block_35 = { 5? 8B ?? 83 ?? ?? 5? 8B ?? 5? 80 7? ?? ?? 0F 85 } + $block_36 = { 2B ?? 99 F7 ?? ?? ?? 89 ?? ?? ?? 3B ?? ?? ?? 75 } + + condition: + hash.sha256(0, filesize) == "2dd7d880975dd90ea0d9d400319741c74b9491a0dc2b1c13ce3a850f37e03184" or + 12 of them +} + +rule IndustroyerPayloadOPC { + meta: + Author = "Intezer Analyze" + Reference = "https://apt-ecosystem.com" + + strings: + $block_0 = { 6A ?? 6A ?? FF 7? ?? C6 ?? ?? 5? 6A ?? 5? 6A ?? 6A ?? FF 1? ?? ?? ?? ?? 33 ?? 85 ?? 0F 44 ?? EB } + $block_1 = { 5? 5? 6A ?? FF 7? ?? 33 ?? 5? 6A ?? 66 ?? ?? FF 1? ?? ?? ?? ?? 33 ?? 85 ?? 0F 44 ?? EB } + $block_2 = { 5? 5? 6A ?? 33 ?? 5? 5? 6A ?? 66 ?? ?? FF 1? ?? ?? ?? ?? 33 ?? 85 ?? 0F 44 ?? EB } + $block_3 = { 83 ?? ?? 89 ?? ?? 8D ?? ?? 0F 43 ?? ?? C6 ?? ?? 8B ?? ?? 8B ?? ?? EB } + $block_4 = { 8B ?? ?? 8D ?? ?? 5? 8D ?? ?? 5? 8B ?? 6A ?? 5? FF 5? ?? 85 ?? 0F 85 } + $block_5 = { 8B ?? 8D ?? ?? 5? 8D ?? ?? 5? 8D ?? ?? 5? 5? FF 5? ?? 85 ?? 0F 88 } + $block_6 = { 89 ?? ?? 0F B6 ?? ?? C7 ?? ?? ?? ?? ?? ?? 89 ?? 3B ?? ?? 73 } + $block_7 = { 0F 57 ?? 0F 11 ?? ?? ?? ?? ?? 0F 11 ?? ?? ?? ?? ?? 66 } + $block_8 = { 8D ?? ?? 5? 8D ?? ?? 5? FF 1? ?? ?? ?? ?? 85 ?? 0F 88 } + $block_9 = { 0F B7 ?? 6A ?? 5? E8 ?? ?? ?? ?? 83 ?? ?? 85 ?? 74 } + + condition: + hash.sha256(0, filesize) == "156bd34d713d0c8419a5da040b3c2dd48c4c6b00d8a47698e412db16b1ffac0f" or + 10 of them +} + +rule IndustroyerBackdoor { + meta: + Author = "Intezer Analyze" + Reference = "https://apt-ecosystem.com" + + strings: + $block_0 = { 68 ?? ?? ?? ?? FF 1? ?? ?? ?? ?? 33 ?? 5? FF 7? ?? 5? 5? 5? 5? 5? FF 1? ?? ?? ?? ?? 85 ?? 0F 84 } + $block_1 = { 5? 8D ?? ?? ?? ?? ?? 33 ?? 5? 5? 8D ?? ?? 5? 8D ?? ?? ?? ?? ?? 5? FF 1? ?? ?? ?? ?? 85 ?? 0F 84 } + $block_2 = { 5? 8B ?? 8B ?? ?? 33 ?? 8B ?? ?? 5? 03 ?? 8B ?? 2B ?? 5? 33 ?? 3B ?? 0F 47 ?? 8B ?? ?? 85 ?? 74 } + $block_3 = { 89 ?? ?? 6A ?? 6A ?? 5? FF 1? ?? ?? ?? ?? FF 7? ?? FF 1? ?? ?? ?? ?? 9? 9? 3D ?? ?? ?? ?? 0F 84 } + $block_4 = { 83 ?? ?? 5? 8B ?? 83 ?? ?? 5? 5? 8D ?? ?? 33 ?? 5? 8B ?? ?? 89 ?? ?? 81 F? ?? ?? ?? ?? 0F 84 } + $block_5 = { 5? FF 7? ?? 33 ?? 4? 5? 5? E8 ?? ?? ?? ?? 6A ?? 6A ?? 5? E8 ?? ?? ?? ?? 83 ?? ?? 85 ?? 0F 84 } + $block_6 = { 33 ?? 5? 5? E8 ?? ?? ?? ?? 8D ?? ?? 6A ?? 5? E8 ?? ?? ?? ?? 8B ?? ?? 81 F? ?? ?? ?? ?? 0F 84 } + $block_7 = { 83 ?? ?? 5? 8B ?? 83 ?? ?? 5? 5? 8D ?? ?? 33 ?? 5? 8B ?? ?? 89 ?? ?? 3D ?? ?? ?? ?? 0F 84 } + $block_8 = { 8B ?? ?? 33 ?? 8B ?? ?? 5? 03 ?? 8B ?? 2B ?? 5? 33 ?? 3B ?? 0F 47 ?? 8B ?? ?? 85 ?? 74 } + $block_9 = { 5? 8B ?? 83 ?? ?? 5? 5? 8D ?? ?? 33 ?? 5? 8B ?? ?? 89 ?? ?? 81 F? ?? ?? ?? ?? 0F 84 } + $block_10 = { 5? FF 1? ?? ?? ?? ?? FF 1? ?? ?? ?? ?? 9? 9? 9? 9? FF 7? ?? 81 F? ?? ?? ?? ?? 0F 84 } + $block_11 = { 5? 8B ?? 83 ?? ?? 5? 5? 8D ?? ?? 33 ?? 5? 8B ?? ?? 89 ?? ?? 3D ?? ?? ?? ?? 0F 84 } + $block_12 = { 33 ?? 0F 94 ?? 89 ?? ?? 9? 9? 9? 9? 33 ?? E8 ?? ?? ?? ?? 81 F? ?? ?? ?? ?? 0F 84 } + $block_13 = { 33 ?? 5? 5? E8 ?? ?? ?? ?? 8D ?? ?? 6A ?? 5? E8 ?? ?? ?? ?? 3D ?? ?? ?? ?? 0F 84 } + $block_14 = { FF 1? ?? ?? ?? ?? 8B ?? 5? E8 ?? ?? ?? ?? 5? 6A ?? 8B ?? 81 F? ?? ?? ?? ?? 0F 84 } + $block_15 = { E8 ?? ?? ?? ?? FF 7? ?? 6A ?? 5? E8 ?? ?? ?? ?? 83 ?? ?? 89 ?? ?? 85 ?? 0F 84 } + $block_16 = { 5? 8B ?? 83 ?? ?? 5? 68 ?? ?? ?? ?? E8 ?? ?? ?? ?? 8B ?? 5? 85 ?? 0F 84 } + $block_17 = { 5? FF 1? ?? ?? ?? ?? 8D ?? ?? 5? E8 ?? ?? ?? ?? 5? 3D ?? ?? ?? ?? 0F 84 } + $block_18 = { 5? FF 7? ?? FF 7? ?? 5? FF 1? ?? ?? ?? ?? 8B ?? 89 ?? ?? 85 ?? 0F 84 } + $block_19 = { 8D ?? ?? 5? 5? 6A ?? FF 7? ?? 5? FF 3? FF 1? ?? ?? ?? ?? 85 ?? 0F 84 } + $block_20 = { 2B ?? ?? 03 ?? 5? 89 ?? ?? E8 ?? ?? ?? ?? 89 ?? ?? 5? 5? 85 ?? 0F 85 } + $block_21 = { 89 ?? ?? 33 ?? FF 3? 4? 6A ?? E8 ?? ?? ?? ?? 83 ?? ?? 3B ?? 0F 82 } + $block_22 = { FF 7? ?? 6A ?? 5? E8 ?? ?? ?? ?? 83 ?? ?? 89 ?? ?? 85 ?? 0F 84 } + $block_23 = { 5? 8D ?? ?? ?? ?? ?? BF ?? ?? ?? ?? 81 F? ?? ?? ?? ?? 0F 84 } + $block_24 = { FF 7? ?? E8 ?? ?? ?? ?? 8B ?? ?? 81 F? ?? ?? ?? ?? 0F 84 } + $block_25 = { E8 ?? ?? ?? ?? 83 ?? ?? 5? 8B ?? 81 F? ?? ?? ?? ?? 0F 84 } + $block_26 = { FF 7? ?? E8 ?? ?? ?? ?? 8B ?? 81 F? ?? ?? ?? ?? 0F 84 } + $block_27 = { 33 ?? 21 ?? ?? 66 ?? ?? ?? 81 F? ?? ?? ?? ?? 0F 84 } + $block_28 = { 5? 8B ?? 81 E? ?? ?? ?? ?? 81 F? ?? ?? ?? ?? 0F 84 } + $block_29 = { FF 3? E8 ?? ?? ?? ?? 8B ?? 81 F? ?? ?? ?? ?? 0F 84 } + $block_30 = { 5? E8 ?? ?? ?? ?? 8B ?? 81 F? ?? ?? ?? ?? 0F 84 } + $block_31 = { 33 ?? 5? 5? E8 ?? ?? ?? ?? 3D ?? ?? ?? ?? 0F 84 } + $block_32 = { 6A ?? 5? E8 ?? ?? ?? ?? 81 F? ?? ?? ?? ?? 0F 84 } + $block_33 = { 8D ?? ?? 5? 5? FF 7? ?? 5? 3D ?? ?? ?? ?? 0F 84 } + $block_34 = { 8D ?? ?? 5? 5? 6A ?? 5? 81 F? ?? ?? ?? ?? 0F 84 } + + condition: + hash.sha256(0, filesize) == "37d54e3d5e8b838f366b9c202f75fa264611a12444e62ae759c31a0d041aa6e4" or + hash.sha256(0, filesize) == "6d707e647427f1ff4a7a9420188a8831f433ad8c5325dc8b8cc6fc5e7f1f6f47" or + hash.sha256(0, filesize) == "ecaf150e087ddff0ec6463c92f7f6cca23cc4fd30fe34c10b3cb7c2a6d135c77" or + hash.sha256(0, filesize) == "3e3ab9674142dec46ce389e9e759b6484e847f5c1e1fc682fc638fc837c13571" or + 12 of them +} + +rule IndustroyerPayloadIEC104 { + meta: + Author = "Intezer Analyze" + Reference = "https://apt-ecosystem.com" + + strings: + $block_0 = { 8B ?? ?? 33 ?? 89 ?? 66 ?? ?? ?? 0F B6 ?? ?? 88 ?? 0F B6 ?? ?? 88 ?? ?? 0F B6 ?? ?? 83 ?? ?? 74 } + $block_1 = { B8 ?? ?? ?? ?? F7 ?? C1 ?? ?? 8B ?? C1 ?? ?? 03 ?? 8D ?? ?? 8B ?? C1 ?? ?? 2B ?? 0F 84 } + $block_2 = { 8B ?? ?? ?? ?? ?? 5? 6A ?? FF 3? ?? 5? 8B ?? E8 ?? ?? ?? ?? 83 ?? ?? 80 7? ?? ?? 0F 84 } + $block_3 = { 5? 8B ?? 5? 8B ?? ?? 8B ?? 0F B6 ?? 88 ?? ?? 0F B6 ?? ?? 88 ?? ?? 8A ?? ?? A8 ?? 74 } + $block_4 = { C6 ?? ?? ?? 0F B6 ?? ?? 0F BE ?? ?? D0 ?? 0F BE ?? C1 ?? ?? 03 ?? 89 ?? ?? 0F B6 } + $block_5 = { 8B ?? ?? ?? ?? ?? 33 ?? 2B ?? ?? ?? ?? ?? C1 ?? ?? 89 ?? ?? ?? 85 ?? 0F 84 } + $block_6 = { 8B ?? ?? ?? ?? ?? 4? 8B ?? ?? ?? 8B ?? ?? ?? 89 ?? ?? ?? 3B ?? ?? ?? 0F 86 } + $block_7 = { 0F B6 ?? ?? 83 ?? ?? 5? 8D ?? ?? ?? ?? ?? 5? 5? E8 ?? ?? ?? ?? 83 } + $block_8 = { 6A ?? FF 1? ?? ?? ?? ?? 89 ?? ?? BA ?? ?? ?? ?? 8B ?? 0F 1F } + $block_9 = { FF 3? ?? ?? ?? ?? FF 1? ?? ?? ?? ?? 80 7? ?? ?? 0F 85 } + + condition: + hash.sha256(0, filesize) == "7907dd95c1d36cf3dc842a1bd804f0db511a0f68f4b3d382c23a3c974a383cad" or + 10 of them +} + +rule Telebots { + meta: + Author = "Intezer Analyze" + Reference = "https://apt-ecosystem.com" + + strings: + $block_0 = { 5? 8B ?? 83 ?? ?? 8B ?? ?? ?? ?? ?? 8B ?? ?? 83 ?? ?? ?? 03 ?? 5? 8B ?? ?? ?? ?? ?? 03 ?? 0F 84 } + $block_1 = { 8D ?? ?? E8 ?? ?? ?? ?? 8B ?? ?? 0F B7 ?? ?? 8D ?? ?? E8 ?? ?? ?? ?? 33 ?? 83 ?? ?? 0F 94 ?? 4? } + $block_2 = { 0F B7 ?? ?? 5? 0F AF ?? ?? FF 7? ?? 03 ?? 5? E8 ?? ?? ?? ?? 83 ?? ?? 8D ?? ?? E8 ?? ?? ?? ?? 8B } + $block_3 = { 5? 5? 5? 6A ?? 5? 5? 68 ?? ?? ?? ?? 8D ?? ?? ?? ?? ?? 5? FF 1? ?? ?? ?? ?? 8B ?? 83 ?? ?? 0F 84 } + $block_4 = { 8B ?? ?? 6A ?? 5? 8B ?? F3 ?? 8B ?? ?? 8D ?? ?? A5 66 ?? A4 8D ?? ?? E8 ?? ?? ?? ?? 8D ?? ?? E8 } + $block_5 = { 80 3? ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? C6 ?? ?? ?? 8D ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? 0F B7 ?? 74 } + $block_6 = { 5? 5? 5? FF 7? ?? FF 7? ?? 5? FF 7? ?? FF 7? ?? FF 7? ?? 6A ?? 5? E8 ?? ?? ?? ?? 3B ?? 0F 85 } + $block_7 = { 8B ?? ?? 6A ?? 5? 8B ?? F3 ?? 8B ?? ?? 8D ?? ?? 66 ?? A4 8D ?? ?? E8 ?? ?? ?? ?? 8D ?? ?? E8 } + $block_8 = { 8B ?? ?? 05 ?? ?? ?? ?? 0F B7 ?? 89 ?? ?? 0F B7 ?? 5? E8 ?? ?? ?? ?? 8B ?? 89 ?? ?? 85 ?? 75 } + $block_9 = { 8B ?? ?? ?? ?? ?? A1 ?? ?? ?? ?? 8D ?? ?? ?? ?? ?? ?? 0F B7 ?? B9 ?? ?? ?? ?? 66 ?? ?? 77 } + $block_10 = { 5? 8B ?? 83 ?? ?? 5? FF 3? ?? ?? ?? ?? FF 1? ?? ?? ?? ?? 33 ?? A3 ?? ?? ?? ?? 3B ?? 0F 84 } + $block_11 = { 8B ?? ?? ?? ?? ?? A1 ?? ?? ?? ?? 8D ?? ?? ?? ?? ?? ?? 0F B7 ?? B9 ?? ?? ?? ?? 66 ?? ?? 76 } + $block_12 = { 0F B7 ?? 5? FF 7? ?? FF 7? ?? FF 7? ?? FF 7? ?? FF 7? ?? E8 ?? ?? ?? ?? 8D ?? ?? 85 ?? 74 } + $block_13 = { 6A ?? 5? 8B ?? F3 ?? 0F B7 ?? 5? FF 7? ?? 83 ?? ?? 5? E8 ?? ?? ?? ?? 8B ?? ?? 83 ?? ?? EB } + $block_14 = { 0F B6 ?? ?? 99 8B ?? 03 ?? ?? ?? ?? ?? 13 ?? ?? ?? ?? ?? 89 ?? ?? 39 ?? ?? ?? ?? ?? 75 } + $block_15 = { FF 7? ?? ?? 8D ?? ?? ?? FF 7? ?? ?? 5? 5? FF 7? ?? ?? 8B ?? E8 ?? ?? ?? ?? 85 ?? 0F 85 } + $block_16 = { 0F B7 ?? ?? 8B ?? ?? 01 ?? 68 ?? ?? ?? ?? E8 ?? ?? ?? ?? 8B ?? 89 ?? ?? 85 ?? 75 } + $block_17 = { 33 ?? 39 ?? ?? 6A ?? 0F 95 ?? 4? 5? FF 3? ?? ?? ?? ?? FF 1? ?? ?? ?? ?? 3B ?? 74 } + $block_18 = { 6A ?? C7 ?? ?? ?? ?? ?? ?? ?? ?? ?? E8 ?? ?? ?? ?? 89 ?? ?? 33 ?? 39 ?? ?? 0F 84 } + $block_19 = { 5? 8B ?? 83 ?? ?? 5? 68 ?? ?? ?? ?? 33 ?? FF 1? ?? ?? ?? ?? 89 ?? ?? 85 ?? 0F 84 } + $block_20 = { 8D ?? ?? E8 ?? ?? ?? ?? BE ?? ?? ?? ?? 5? E8 ?? ?? ?? ?? 89 ?? ?? 3B ?? 0F 84 } + $block_21 = { 33 ?? 4? 66 ?? ?? ?? 6A ?? C6 ?? ?? 5? 66 ?? ?? ?? 8B ?? 8D ?? ?? A5 A5 A5 8B } + $block_22 = { 8D ?? ?? 5? 8B ?? ?? 6A ?? FF 7? ?? 03 ?? 5? FF 1? ?? ?? ?? ?? 85 ?? 0F 84 } + $block_23 = { 8D ?? ?? 5? 8D ?? ?? ?? ?? ?? 5? E8 ?? ?? ?? ?? A3 ?? ?? ?? ?? 3B ?? 0F 8C } + $block_24 = { 5? FF 7? ?? FF 7? ?? 5? FF 1? ?? ?? ?? ?? 33 ?? 85 ?? 0F 9F ?? 8D ?? ?? EB } + $block_25 = { 0F B7 ?? ?? 83 ?? ?? ?? 5? 5? 0F B7 ?? ?? 8D ?? ?? ?? 89 ?? ?? 85 ?? 7E } + $block_26 = { 8D ?? ?? ?? 5? 5? C7 ?? ?? ?? ?? ?? ?? ?? FF 1? ?? ?? ?? ?? 85 ?? 0F 84 } + $block_27 = { 0F B7 ?? ?? 01 ?? ?? 81 4? ?? ?? ?? ?? ?? B8 ?? ?? ?? ?? 66 ?? ?? ?? 76 } + $block_28 = { 8B ?? ?? 83 ?? ?? 0F B7 ?? 5? E8 ?? ?? ?? ?? 8B ?? 89 ?? ?? 85 ?? 0F 84 } + $block_29 = { 8D ?? ?? 5? 8B ?? ?? 8B ?? ?? FF 3? ?? 5? FF 1? ?? ?? ?? ?? 85 ?? 0F 85 } + $block_30 = { 33 ?? 4? 6A ?? 89 ?? ?? ?? ?? ?? E8 ?? ?? ?? ?? 89 ?? ?? 85 ?? 0F 84 } + $block_31 = { 5? 5? FF 1? ?? ?? ?? ?? 5? FF 7? ?? 33 ?? E8 ?? ?? ?? ?? 85 ?? 0F 85 } + $block_32 = { 6A ?? 8D ?? ?? ?? ?? ?? 5? E8 ?? ?? ?? ?? A3 ?? ?? ?? ?? 85 ?? 0F 88 } + $block_33 = { 0F B7 ?? ?? 21 ?? ?? 21 ?? ?? 89 ?? ?? 8B ?? ?? 89 ?? ?? 8B ?? ?? 89 } + $block_34 = { 5? 8B ?? 5? 5? 5? 6A ?? E8 ?? ?? ?? ?? 8B ?? 89 ?? ?? 85 ?? 0F 84 } + $block_35 = { 68 ?? ?? ?? ?? 6A ?? 6A ?? 5? 5? 5? FF 1? ?? ?? ?? ?? 85 ?? 0F 85 } + $block_36 = { FF 7? ?? ?? 6A ?? FF 1? ?? ?? ?? ?? 8B ?? 89 ?? ?? ?? 3B ?? 0F 84 } + $block_37 = { FF 7? ?? 8B ?? ?? 8D ?? ?? ?? ?? ?? 5? E8 ?? ?? ?? ?? 85 ?? 0F 84 } + $block_38 = { 8D ?? ?? E8 ?? ?? ?? ?? 8D ?? ?? E8 ?? ?? ?? ?? 83 ?? ?? ?? 0F 85 } + $block_39 = { 8B ?? ?? 83 ?? ?? 0F B7 ?? 5? E8 ?? ?? ?? ?? 89 ?? ?? 85 ?? 75 } + $block_40 = { 80 3? ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 0F B7 ?? ?? ?? ?? ?? 74 } + $block_41 = { 5? FF 7? ?? 6A ?? FF 1? ?? ?? ?? ?? 8B ?? 89 ?? ?? 3B ?? 0F 84 } + $block_42 = { 8B ?? ?? 6A ?? 6A ?? 89 ?? FF D? 5? FF D? 89 ?? ?? 85 ?? 0F 84 } + $block_43 = { 5? 68 ?? ?? ?? ?? 89 ?? ?? E8 ?? ?? ?? ?? 89 ?? ?? 3B ?? 0F 84 } + $block_44 = { 8D ?? ?? 66 ?? ?? 0F B7 ?? 5? 5? E8 ?? ?? ?? ?? 8B ?? 85 ?? 74 } + $block_45 = { 0F B7 ?? 0F B7 ?? 5? FF 7? ?? 2B ?? 03 ?? 5? E8 ?? ?? ?? ?? 83 } + $block_46 = { 5? 5? 68 ?? ?? ?? ?? 5? FF 1? ?? ?? ?? ?? 8B ?? 85 ?? 0F 84 } + $block_47 = { 0F B7 ?? ?? 83 ?? ?? ?? 5? FF 7? ?? E8 ?? ?? ?? ?? 85 ?? 75 } + $block_48 = { 83 ?? ?? ?? 0F B7 ?? 8B ?? ?? 5? 5? E8 ?? ?? ?? ?? 85 ?? 75 } + $block_49 = { 6A ?? 5? 8B ?? F3 ?? 8B ?? 8D ?? ?? A5 A5 A5 A5 A4 8B ?? EB } + $block_50 = { 8B ?? ?? 8B ?? ?? 8D ?? ?? 5? E8 ?? ?? ?? ?? 85 ?? 0F 85 } + $block_51 = { 8B ?? ?? 5? E8 ?? ?? ?? ?? 33 ?? 89 ?? ?? 3B ?? 0F 84 } + $block_52 = { 8D ?? ?? 66 ?? ?? 0F B7 ?? 5? E8 ?? ?? ?? ?? 85 ?? 74 } + $block_53 = { 5? 5? BE ?? ?? ?? ?? 8B ?? A5 A5 66 ?? 6A ?? A4 5? } + $block_54 = { 8D ?? ?? 0F B7 ?? 5? E8 ?? ?? ?? ?? 8B ?? 85 ?? 75 } + $block_55 = { 0F B7 ?? 5? FF 7? ?? 8D ?? ?? 5? E8 ?? ?? ?? ?? 83 } + $block_56 = { FF 7? ?? ?? E8 ?? ?? ?? ?? 89 ?? ?? ?? 85 ?? 0F 84 } + $block_57 = { 5? 5? 6A ?? FF 7? ?? FF 1? ?? ?? ?? ?? 85 ?? 0F 84 } + $block_58 = { 8B ?? 8B ?? A5 A5 A5 83 ?? ?? 83 ?? ?? 4? A5 75 } + $block_59 = { 99 03 ?? ?? ?? ?? ?? 13 ?? 89 ?? ?? 89 ?? ?? EB } + $block_60 = { 0F B7 ?? 5? 5? E8 ?? ?? ?? ?? 8B ?? 85 ?? 0F 84 } + $block_61 = { FF 7? ?? FF 1? ?? ?? ?? ?? 5? 5? 8B ?? 5? C9 C2 } + $block_62 = { 6A ?? E8 ?? ?? ?? ?? 8B ?? 89 ?? ?? 85 ?? 0F 84 } + $block_63 = { 0F B7 ?? ?? 8D ?? ?? ?? 8D ?? ?? ?? 3B ?? 0F 83 } + + condition: + hash.sha256(0, filesize) == "027cc450ef5f8c5f653329641ec1fed91f694e0d229928963b30f6b0d7d3a745" or + 12 of them +} + +rule PotaoUSBSpreader { + meta: + Author = "Intezer Analyze" + Reference = "https://apt-ecosystem.com" + + strings: + $block_0 = { E8 ?? ?? ?? ?? 99 B9 ?? ?? ?? ?? F7 ?? 83 ?? ?? 5? E8 ?? ?? ?? ?? 99 B9 ?? ?? ?? ?? F7 ?? 83 ?? ?? 5? E8 ?? ?? ?? ?? 99 B9 ?? ?? ?? ?? F7 ?? 83 ?? ?? 5? E8 ?? ?? ?? ?? 99 B9 ?? ?? ?? ?? F7 ?? 83 ?? ?? 5? E8 ?? ?? ?? ?? 99 B9 ?? ?? ?? ?? F7 ?? 83 ?? ?? 5? 8D ?? ?? ?? ?? ?? 5? 68 ?? ?? ?? ?? 8B ?? 5? E8 ?? ?? ?? ?? 83 ?? ?? 6A ?? 8B ?? ?? 5? 8D ?? ?? ?? ?? ?? 5? FF 1? ?? ?? ?? ?? 6A ?? 6A ?? 6A ?? 6A ?? 6A ?? 68 ?? ?? ?? ?? 8D ?? ?? ?? ?? ?? 5? FF D? 89 ?? ?? 6A ?? 8B ?? ?? ?? ?? ?? 8D ?? ?? 5? E8 ?? ?? ?? ?? 89 ?? ?? 5? 68 ?? ?? ?? ?? 5? E8 ?? ?? ?? ?? 83 ?? ?? C7 ?? ?? ?? ?? ?? ?? 6A ?? 6A ?? 6A ?? 6A ?? 6A ?? 6A ?? 6A ?? 6A ?? 6A ?? 6A ?? 6A ?? 6A ?? 6A ?? 6A ?? 6A ?? 6A ?? 6A ?? FF 1? ?? ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? 33 ?? 8B ?? ?? 64 ?? ?? ?? ?? ?? ?? 5? 5? 5? 8B ?? 5? C3 } + $block_1 = { 5? 68 ?? ?? ?? ?? 8D ?? ?? ?? 6A ?? 5? 88 ?? ?? ?? E8 ?? ?? ?? ?? 83 ?? ?? 68 ?? ?? ?? ?? 8D ?? ?? ?? 5? 6A ?? FF 1? ?? ?? ?? ?? 6A ?? 68 ?? ?? ?? ?? E8 ?? ?? ?? ?? 83 ?? ?? 8B ?? E8 ?? ?? ?? ?? 99 B9 ?? ?? ?? ?? F7 ?? 83 ?? ?? 5? E8 ?? ?? ?? ?? 99 B9 ?? ?? ?? ?? F7 ?? 83 ?? ?? 5? E8 ?? ?? ?? ?? 99 B9 ?? ?? ?? ?? F7 ?? 83 ?? ?? 5? E8 ?? ?? ?? ?? 99 B9 ?? ?? ?? ?? F7 ?? 83 ?? ?? 5? E8 ?? ?? ?? ?? 99 B9 ?? ?? ?? ?? F7 ?? 83 ?? ?? 5? 68 ?? ?? ?? ?? E8 ?? ?? ?? ?? 83 ?? ?? 5? 68 ?? ?? ?? ?? 5? E8 ?? ?? ?? ?? 83 ?? ?? 6A ?? 5? 8D ?? ?? ?? 5? FF 1? ?? ?? ?? ?? 5? E8 ?? ?? ?? ?? 5? E8 ?? ?? ?? ?? 83 ?? ?? 5? } + $block_2 = { 81 E? ?? ?? ?? ?? 5? 5? 8B ?? 8B ?? ?? ?? ?? ?? 8D ?? ?? ?? 5? 8B ?? ?? 8D ?? ?? ?? ?? ?? 5? 68 ?? ?? ?? ?? FF D? A1 ?? ?? ?? ?? 8D ?? ?? ?? 5? 8D ?? ?? ?? ?? ?? ?? 5? 8B ?? ?? ?? 6A ?? 6A ?? 8D ?? ?? ?? ?? ?? 8B ?? ?? 5? 5? FF D? 8B ?? ?? ?? ?? ?? 6A ?? 8D ?? ?? ?? 5? 8B ?? ?? ?? 6A ?? 8B ?? 6A ?? 8D ?? ?? ?? ?? ?? 8B ?? ?? 5? 5? C7 ?? ?? ?? ?? ?? ?? ?? FF D? 8B ?? ?? ?? ?? ?? 6A ?? 8D ?? ?? ?? 5? 8B ?? ?? ?? 6A ?? 6A ?? 8D ?? ?? ?? ?? ?? 8B ?? ?? 5? 5? FF D? 8B ?? ?? ?? 8B ?? ?? 5? FF D? 85 ?? 0F 84 } + $block_3 = { 8B ?? ?? ?? ?? ?? ?? 8D ?? ?? ?? 5? 6A ?? 83 ?? ?? 8D ?? ?? ?? 5? 5? 89 ?? ?? ?? ?? ?? ?? 8B ?? ?? 5? FF D? 8B ?? ?? ?? ?? ?? ?? 8D ?? ?? ?? 5? 6A ?? 83 ?? ?? 8D ?? ?? ?? ?? ?? ?? 5? 5? 89 ?? ?? ?? ?? ?? ?? 8B ?? ?? 5? FF D? 8B ?? ?? 8D ?? ?? ?? 5? 5? 89 ?? ?? ?? ?? ?? ?? FF D? 85 ?? 0F 84 } + $block_4 = { 8B ?? ?? 8D ?? ?? ?? ?? ?? ?? 5? 68 ?? ?? ?? ?? FF D? 8B ?? ?? 8D ?? ?? ?? 5? 6A ?? 68 ?? ?? ?? ?? 8D ?? ?? ?? ?? ?? ?? 5? FF D? 8B ?? ?? 6A ?? 6A ?? 6A ?? 6A ?? 6A ?? 68 ?? ?? ?? ?? 8D ?? ?? ?? ?? ?? ?? 5? FF D? 8B ?? 89 ?? ?? ?? 83 ?? ?? 0F 84 } + $block_5 = { 8B ?? ?? ?? 8B ?? ?? ?? 8B ?? ?? ?? 5? 5? 89 ?? ?? ?? 8D ?? ?? ?? 5? 68 ?? ?? ?? ?? 5? 5? 89 ?? ?? ?? 89 ?? ?? ?? 89 ?? ?? ?? FF 5? ?? ?? 8B ?? 3B ?? 0F 84 } + $block_6 = { 83 ?? ?? 5? 8B ?? ?? ?? 8B ?? ?? ?? ?? ?? 8B ?? ?? 6A ?? 6A ?? 6A ?? 6A ?? 6A ?? 6A ?? 68 ?? ?? ?? ?? 8D ?? ?? ?? ?? ?? ?? 5? FF D? 83 ?? ?? 0F 84 } + $block_7 = { 8B ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 5? 5? 5? FF D? 8B ?? ?? 6A ?? FF D? 8B ?? 8B ?? ?? ?? ?? ?? 5? 5? FF D? 85 ?? 0F 84 } + $block_8 = { 8B ?? ?? ?? ?? ?? 8D ?? ?? ?? ?? ?? 5? FF 1? ?? ?? ?? ?? 85 ?? 0F 84 } + $block_9 = { 8B ?? ?? ?? 8B ?? ?? 8B ?? D3 ?? F6 ?? ?? 0F 84 } + + condition: + hash.sha256(0, filesize) == "12bb18fa9a12cb89dea3733b342940b80cd453886390079cb4c2ffcd664baeda" or + hash.sha256(0, filesize) == "4688afcc161603bfa1c997b6d71b9618be96f9ff980e5486c451b1cc2c5076cb" or + hash.sha256(0, filesize) == "339a5199e6d0b5f781b08b2ca0ad0495e75e52b8e2fd69e1d970388fbca7a0d6" or + hash.sha256(0, filesize) == "7492e84a30e890ebe3ca5140ad547965cc8c43f0a02f66be153b038a73ee5314" or + hash.sha256(0, filesize) == "1acae7c11fb559b81df5fc6d0df0fe502e87f674ca9f4aefc2d7d8f828ba7f5c" or + hash.sha256(0, filesize) == "e3892d2d9f87ea848477529458d025898b24a6802eb4df13e96b0314334635d0" or + hash.sha256(0, filesize) == "09c04206b57bb8582faffb37e4ebb6867a02492ffc08268bcbc717708d1a8919" or + hash.sha256(0, filesize) == "93accb71bf4e776955756c76990298decfebe4b1dd9fbf9d368e81dc1cb9532d" or + hash.sha256(0, filesize) == "90b20b1687909c2f76f750ba3fd4b14731ce736c08c3a8608d28eae3f4cd68f3" or + hash.sha256(0, filesize) == "340b09d661a6ac45af53c348a5c1846ad6323d34311e66454e46c1d38d53af8b" or + hash.sha256(0, filesize) == "7d15bd854c1dfef847cdd3caabdf4ab81f2410ee5c7f91d377cc72eb81135ff4" or + hash.sha256(0, filesize) == "3d78f52fa0c08d8bf3d42074bf76ee56aa233fb9a6bc76119998d085d94368ca" or + hash.sha256(0, filesize) == "e57eb9f7fdf3f0e90b1755d947f1fe7bb65e67308f1f4a8c25bc2946512934b7" or + hash.sha256(0, filesize) == "99a09ad92cc1a2564f3051057383cb6268893bc4a62903eabf3538c6bfb3aa9c" or + hash.sha256(0, filesize) == "34e6fb074284e58ca80961feda4fe651d6d658077914a528a4a6efa91ecc749d" or + hash.sha256(0, filesize) == "b8b02cc57e45bcf500b433806e6a4f8af7f0ac0c5fc9adfd11820eebf4eb5d79" or + hash.sha256(0, filesize) == "f1d7e36af4c30bf3d680c87bbc4430de282d00323bf8ae9e17b04862af286736" or + hash.sha256(0, filesize) == "461dd5a58ffcad9fffba9181e234f2e0149c8b8ba28c7ea53753c74fdfa0b0d5" or + hash.sha256(0, filesize) == "61862a55dcf8212ce9dd4a8f0c92447a6c7093681c592eb937a247e38c8109d4" or + hash.sha256(0, filesize) == "95631685006ac92b7eb0755274e2a36a3c9058cf462dd46f9f4f66e8d67b9db2" or + 10 of them +} + +rule PotaoDropper { + meta: + Author = "Intezer Analyze" + Reference = "https://apt-ecosystem.com" + + strings: + $block_0 = { B9 ?? ?? ?? ?? D1 ?? 8B ?? ?? 0F B6 ?? ?? 99 B1 ?? E8 ?? ?? ?? ?? 33 ?? ?? 33 ?? ?? 89 ?? ?? 89 } + $block_1 = { 8B ?? ?? 0F BE ?? ?? 33 ?? 8B ?? ?? 88 ?? ?? ?? ?? ?? 8B ?? ?? 0F BE ?? ?? ?? ?? ?? 85 ?? 75 } + $block_2 = { B9 ?? ?? ?? ?? 6B ?? ?? 8B ?? ?? 0F B6 ?? ?? 33 ?? ?? 89 ?? ?? 8B ?? ?? 69 ?? ?? ?? ?? ?? 89 } + $block_3 = { 5? 8B ?? 81 E? ?? ?? ?? ?? 6A ?? FF 1? ?? ?? ?? ?? 8B ?? E8 ?? ?? ?? ?? 0F B6 ?? 83 ?? ?? 74 } + $block_4 = { 8B ?? ?? 0F B6 ?? 89 ?? ?? 8B ?? ?? 89 ?? ?? 8B ?? ?? 83 ?? ?? 89 ?? ?? 83 ?? ?? ?? 7C } + $block_5 = { 8B ?? ?? 8D ?? ?? 0F B7 ?? ?? 8B ?? ?? 5? 8D ?? ?? 5? 8B ?? ?? 03 ?? 5? 8B ?? 5? C3 } + $block_6 = { 8B ?? ?? 0F B6 ?? ?? 8B ?? ?? 03 ?? ?? 0F B6 ?? 33 ?? 8B ?? ?? 03 ?? ?? 88 ?? EB } + $block_7 = { 5? 8B ?? 83 ?? ?? 89 ?? ?? 89 ?? ?? 8B ?? ?? 89 ?? ?? 8B ?? ?? 0F BE ?? 85 ?? 75 } + $block_8 = { 5? 8B ?? 83 ?? ?? 5? 5? 5? 89 ?? ?? FC 33 ?? 64 ?? ?? ?? ?? ?? ?? 8B ?? ?? 8B } + $block_9 = { 83 ?? ?? ?? ?? ?? ?? 60 0F 31 33 ?? 4? D1 ?? 23 ?? 89 ?? ?? 61 8B ?? ?? EB } + $block_10 = { 8B ?? ?? 83 ?? ?? 8B ?? ?? 83 ?? ?? 89 ?? ?? 89 ?? ?? 83 ?? ?? ?? 0F 87 } + $block_11 = { 5? 8B ?? 83 ?? ?? B8 ?? ?? ?? ?? 6B ?? ?? 0F BE ?? ?? ?? ?? ?? 85 ?? 74 } + $block_12 = { 8B ?? ?? 0F BE ?? ?? 8B ?? ?? 0F BE ?? ?? ?? ?? ?? 33 ?? 8B ?? ?? 88 } + $block_13 = { 8B ?? ?? 0F BE ?? 89 ?? ?? 8B ?? ?? 83 ?? ?? 89 ?? ?? 83 ?? ?? ?? 74 } + $block_14 = { 8B ?? ?? 0F BE ?? 89 ?? ?? 8B ?? ?? 83 ?? ?? 89 ?? ?? 83 ?? ?? ?? 75 } + $block_15 = { 8B ?? ?? 8B ?? ?? 8D ?? ?? 0F B7 ?? ?? 8D ?? ?? 8B ?? ?? 03 ?? EB } + $block_16 = { B9 ?? ?? ?? ?? C1 ?? ?? 8B ?? ?? 0F B6 ?? ?? C1 ?? ?? 33 ?? ?? 89 } + $block_17 = { 8B ?? ?? 8D ?? ?? 0F B7 ?? ?? 8B ?? ?? 8D ?? ?? 8B ?? ?? 03 ?? EB } + $block_18 = { 5? 8B ?? 5? 5? 5? 5? FC 33 ?? 64 ?? ?? ?? ?? ?? ?? 8B ?? ?? 8B } + $block_19 = { 8B ?? ?? 89 ?? ?? 8B ?? ?? 83 ?? ?? 89 ?? ?? 83 ?? ?? ?? 0F 87 } + $block_20 = { B9 ?? ?? ?? ?? D1 ?? 8B ?? ?? 0F B6 ?? ?? C1 ?? ?? 33 ?? ?? 89 } + $block_21 = { C7 ?? ?? ?? ?? ?? ?? 8B ?? ?? 0F BF ?? 81 F? ?? ?? ?? ?? 75 } + $block_22 = { B2 ?? B1 ?? E8 ?? ?? ?? ?? 0F B6 ?? ?? 88 ?? ?? ?? ?? ?? EB } + $block_23 = { 0F B6 ?? ?? C6 ?? ?? ?? ?? ?? ?? B8 ?? ?? ?? ?? 8B ?? 5? C3 } + $block_24 = { 8B ?? ?? 89 ?? 33 ?? 85 ?? 0F 94 ?? 5? 5? 5? 8B ?? C9 C3 } + $block_25 = { 8B ?? ?? 03 ?? ?? 0F BE ?? 8B ?? ?? 81 E? ?? ?? ?? ?? 79 } + $block_26 = { 5? 8B ?? 81 E? ?? ?? ?? ?? 83 ?? ?? ?? ?? ?? ?? 0F 85 } + $block_27 = { 83 ?? ?? ?? E8 ?? ?? ?? ?? 39 ?? ?? ?? ?? ?? 0F 85 } + $block_28 = { 89 ?? ?? 8B ?? ?? 5? 5? A3 ?? ?? ?? ?? 5? C9 C3 } + $block_29 = { 8B ?? ?? 89 ?? 33 ?? 85 ?? 0F 94 ?? 8B ?? C9 C3 } + $block_30 = { 83 ?? ?? ?? ?? ?? ?? 5? 8B ?? ?? ?? ?? ?? 0F 85 } + $block_31 = { 8B ?? ?? 03 ?? ?? ?? ?? ?? 0F B6 ?? 83 ?? ?? 75 } + $block_32 = { 5? 8B ?? 5? 89 ?? ?? 83 ?? ?? ?? ?? ?? ?? 0F 85 } + + condition: + hash.sha256(0, filesize) == "2de76a3c07344ce322151dbb42febdff97ade8176466a3af07e5280bd859a186" or + hash.sha256(0, filesize) == "793a8ce811f423dfde47a5f44ae50e19e7e41ad055e56c7345927eac951e966b" or + hash.sha256(0, filesize) == "f1f61a0f9488be3925665f8063006f90fab1bf0bd0b6ff5f7799f8995ff8960e" or + hash.sha256(0, filesize) == "904bb2efe661f654425e691b7748556e558a636d4f25c43af9d2d4dfbe83262e" or + hash.sha256(0, filesize) == "97afe4b12a9fed40ad20ab191ba0a577f5a46cbfb307e118a7ae69d04adc2e2d" or + hash.sha256(0, filesize) == "4e88b8b121d768c611fe16ae1f008502b2191edc6f2ee84fef7b12b4d86fe000" or + hash.sha256(0, filesize) == "29dfc81b400a1400782623c618cb1d507f5d17bb13de44f123a333093648048f" or + hash.sha256(0, filesize) == "b62589ee5ba94d15edcf8613e3d57255dd7a12fce6d2dbd660fd7281ce6234f4" or + hash.sha256(0, filesize) == "d2c11706736fda2b178ac388206472fd8d050e0f13568c84b37683423acd155d" or + 12 of them +} + +rule Potaov1Packed { + meta: + Author = "Intezer Analyze" + Reference = "https://apt-ecosystem.com" + + strings: + $block_0 = { FF 7? ?? FF 7? ?? E8 ?? ?? ?? ?? 5? 8D ?? ?? 5? FF 7? ?? FF 7? ?? FF 7? ?? FF 5? ?? 85 ?? 0F 84 } + $block_1 = { 6A ?? 68 ?? ?? ?? ?? FF 3? ?? ?? ?? ?? FF 3? ?? ?? ?? ?? FF 7? ?? FF 1? ?? ?? ?? ?? 85 ?? 0F 84 } + $block_2 = { 9? 9? 9? 9? 9? 9? 9? 9? 68 ?? ?? ?? ?? FF 3? ?? ?? ?? ?? FF 1? ?? ?? ?? ?? 89 ?? ?? 3B ?? 0F 84 } + $block_3 = { 9? 9? 9? 9? 9? 9? 9? 9? 68 ?? ?? ?? ?? FF 3? ?? ?? ?? ?? FF 1? ?? ?? ?? ?? 8B ?? 3B ?? 0F 84 } + $block_4 = { 5? 8B ?? 5? 5? 8B ?? ?? 8B ?? 0F B7 ?? ?? 83 ?? ?? ?? 33 ?? 8D ?? ?? ?? 66 ?? ?? ?? 0F 83 } + $block_5 = { FF 7? ?? 03 ?? FF 7? ?? FF 7? ?? 5? E8 ?? ?? ?? ?? 89 ?? ?? 89 ?? ?? ?? ?? ?? 3B ?? 0F 84 } + $block_6 = { 5? 8D ?? ?? 5? 5? 5? 5? 5? 5? 8D ?? ?? 5? 68 ?? ?? ?? ?? FF 1? ?? ?? ?? ?? 3B ?? 0F 85 } + $block_7 = { 9? 9? 9? 9? 9? 9? 9? 9? 68 ?? ?? ?? ?? FF 3? ?? ?? ?? ?? FF 1? ?? ?? ?? ?? 3B ?? 0F 84 } + $block_8 = { F3 ?? ?? ?? ?? 0F 57 ?? F3 ?? ?? ?? F2 ?? ?? ?? ?? ?? ?? ?? 66 ?? ?? ?? 0F 86 } + $block_9 = { 8D ?? ?? E8 ?? ?? ?? ?? 5? FF 1? ?? ?? ?? ?? 5? 0F B7 ?? ?? ?? ?? ?? 3B ?? 74 } + $block_10 = { 5? FF 1? ?? ?? ?? ?? 83 ?? ?? 8B ?? ?? 64 ?? ?? ?? ?? ?? ?? 5? 5? 5? C9 C2 } + $block_11 = { 6A ?? FF 1? ?? ?? ?? ?? 33 ?? 8B ?? ?? 64 ?? ?? ?? ?? ?? ?? 5? 5? 5? C9 C2 } + $block_12 = { 83 ?? ?? ?? ?? ?? ?? 60 0F 31 33 ?? 4? D1 ?? 23 ?? 89 ?? ?? 61 8B ?? ?? EB } + $block_13 = { 5? 8B ?? 81 E? ?? ?? ?? ?? 5? 33 ?? 5? 5? 89 ?? ?? 39 ?? ?? ?? ?? ?? 0F 84 } + $block_14 = { FF 7? ?? FF 7? ?? FF 7? ?? FF 7? ?? E8 ?? ?? ?? ?? 89 ?? ?? 3B ?? 0F 84 } + $block_15 = { D9 ?? ?? D9 ?? ?? DC ?? ?? ?? ?? ?? DF ?? F6 ?? ?? 0F 8A } + $block_16 = { 2B ?? 4? 89 ?? ?? ?? 60 9? 9? 9? 9? 9? 9? 61 33 ?? 33 } + $block_17 = { 2B ?? 4? 89 ?? ?? 60 9? 9? 9? 9? 9? 9? 61 33 ?? 33 } + $block_18 = { 6A ?? FF 1? ?? ?? ?? ?? 0C ?? 9E AD 9? B5 ?? CB } + + condition: + hash.sha256(0, filesize) == "ac73eb13779656a5692082c11733731ec4e177ca46f36abdffb28efa39c0940b" or + hash.sha256(0, filesize) == "ab8d308fd59a8db8a130fcfdb6db56c4f7717877c465be98f71284bdfccdfa25" or + hash.sha256(0, filesize) == "2ff0941fe3514abc12484ad2853d22fd7cb36469a313b5ecb6ef0c6391cf78ab" or + hash.sha256(0, filesize) == "945c594aee1b5bd0f3a72abe8f5a3df74fc6ca686887db5e40fe859e3fc90bb1" or + hash.sha256(0, filesize) == "54a76f5cd5a32ed7d5fa78e5d8311bafc0de57a475bc2fddc23ee4b3510b9d44" or + hash.sha256(0, filesize) == "20198aad15943b67fea8a0826d5b77f014de5691fd6b3bc3a7c0331ca4681ce1" or + hash.sha256(0, filesize) == "8a508924e46c9afadb6d8e863942bd33ce278b1cc1033dd3a8e2a77b8d3648a3" or + 12 of them +} + +rule PotaoDropperFakeExcel { + meta: + Author = "Intezer Analyze" + Reference = "https://apt-ecosystem.com" + + strings: + $block_0 = { 0F B6 ?? 33 ?? 69 ?? ?? ?? ?? ?? 8B ?? C1 ?? ?? 33 ?? 69 ?? ?? ?? ?? ?? 8B ?? C1 ?? ?? 5? 33 ?? 5? 5? C2 } + $block_1 = { 33 ?? 4? 6B ?? ?? 8B ?? ?? 0F B6 ?? ?? 8B ?? ?? 03 ?? ?? 0F B6 ?? 33 ?? 8B ?? ?? 03 ?? ?? 88 ?? EB } + $block_2 = { 8B ?? ?? 8D ?? ?? 0F B7 ?? ?? 8B ?? ?? 8D ?? ?? 8B ?? ?? 5? 03 ?? 5? 5? 8B ?? 5? C2 } + $block_3 = { 8B ?? ?? 8D ?? ?? 0F B7 ?? ?? 8B ?? ?? 5? 8D ?? ?? 5? 8B ?? ?? 03 ?? 5? 8B ?? 5? C3 } + $block_4 = { 8B ?? ?? 0F B6 ?? ?? 8B ?? ?? 03 ?? ?? 0F B6 ?? 33 ?? 8B ?? ?? 03 ?? ?? 88 ?? EB } + $block_5 = { 5? 8B ?? 81 E? ?? ?? ?? ?? 5? 5? E8 ?? ?? ?? ?? FF 1? ?? ?? ?? ?? 85 ?? 0F 84 } + $block_6 = { 8B ?? ?? 33 ?? 85 ?? 0F 94 ?? 5? 89 ?? 5? 5? 8B ?? 8B ?? 5? C3 } + $block_7 = { C7 ?? ?? ?? ?? ?? ?? E8 ?? ?? ?? ?? 83 ?? ?? ?? ?? ?? ?? 0F 85 } + $block_8 = { 8B ?? ?? 5? 33 ?? 89 ?? 85 ?? 5? 0F 94 ?? 5? C9 C2 } + $block_9 = { 1B ?? 83 ?? ?? 85 ?? 5? 0F 94 ?? 5? 8B ?? 5? C3 } + + condition: + hash.sha256(0, filesize) == "aa23a93d2fed81daacb93ea7ad633426e04fcd063ff2ea6c0af5649c6cfa0385" or + hash.sha256(0, filesize) == "c66955f667e9045ea5591ebf9b59246ad86227f174ea817d1398815a292b8c88" or + hash.sha256(0, filesize) == "048621ecf8f25133b2b09d512bb0fe15fc274ec7cb2ccc966aeb44d7a88beb5b" or + hash.sha256(0, filesize) == "8bc189dee0a71b3a8a1767e95cc726e13808ed7d2e9546a9d6b6843cea5eb3bd" or + hash.sha256(0, filesize) == "d6f126ab387f1d856672c730991573385c5746c7c84738ab97b13c897063ff4a" or + 10 of them +} + +rule PotaoDropperw { + meta: + Author = "Intezer Analyze" + Reference = "https://apt-ecosystem.com" + + strings: + $block_0 = { 8B ?? ?? 03 ?? ?? ?? ?? ?? 0F B6 ?? 8B ?? ?? 0F B6 ?? 33 ?? 8B ?? ?? 03 ?? ?? ?? ?? ?? 88 ?? EB } + $block_1 = { 5? 5? 8D ?? ?? 5? 5? 6A ?? 5? E8 ?? ?? ?? ?? 5? 5? 5? FF 1? ?? ?? ?? ?? 85 ?? 0F 84 } + $block_2 = { 5? 8B ?? 81 E? ?? ?? ?? ?? 8B ?? ?? 5? E8 ?? ?? ?? ?? 83 ?? ?? 0F B6 ?? 83 ?? ?? 74 } + $block_3 = { 8B ?? ?? 0F B6 ?? ?? 8B ?? ?? 03 ?? ?? 0F B6 ?? 33 ?? 8B ?? ?? 03 ?? ?? 88 ?? EB } + $block_4 = { 5? 8B ?? 83 ?? ?? 0F B6 ?? ?? 5? E8 ?? ?? ?? ?? 83 ?? ?? C7 ?? ?? ?? ?? ?? ?? C7 } + $block_5 = { 5? 68 ?? ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? E8 ?? ?? ?? ?? 8B ?? 5? 3B ?? 0F 84 } + $block_6 = { A1 ?? ?? ?? ?? 0F B6 ?? ?? 0F B6 ?? 33 ?? 88 ?? ?? FF 0? ?? ?? ?? ?? EB } + $block_7 = { FF 7? ?? FF 1? ?? ?? ?? ?? 8B ?? ?? 64 ?? ?? ?? ?? ?? ?? 5? 5? 5? C9 C3 } + $block_8 = { 8B ?? 8D ?? ?? A5 A5 66 ?? 8D ?? ?? 89 ?? ?? 83 ?? ?? ?? EB } + $block_9 = { 8B ?? ?? 5? FF 1? ?? ?? ?? ?? 9B 89 ?? ?? 83 ?? ?? ?? 75 } + $block_10 = { FF 7? ?? FF 1? ?? ?? ?? ?? 9B 89 ?? ?? 83 ?? ?? ?? 75 } + $block_11 = { 8B ?? ?? 4? 5? E8 ?? ?? ?? ?? 8B ?? 5? 3B ?? 0F 84 } + $block_12 = { 0F B6 ?? ?? ?? ?? ?? 83 ?? ?? 88 ?? ?? ?? ?? ?? EB } + $block_13 = { 8B ?? ?? 89 ?? 33 ?? 85 ?? 0F 94 ?? 8B ?? C9 C2 } + + condition: + hash.sha256(0, filesize) == "15760f0979f2ba1b4d991f19e8b59fc1e61632fcc88755a4d147c0f5d47965c5" or + hash.sha256(0, filesize) == "b9c285f485421177e616a148410ddc5b02e43f0af375d3141b7e829f7d487bfd" or + hash.sha256(0, filesize) == "cf3b0d8e9a7d0ad32351ade0c52de583b5ca2f72e5af4adbf638c81f4ad8fbcb" or + hash.sha256(0, filesize) == "dbc1b98b1df1d9c2dc8a5635682ed44a91df6359264ed63370724afa9f19c7ee" or + hash.sha256(0, filesize) == "4328b06093a4ad01f828dc837053cb058fe00f3a7fd5cfb9d1ff7feb7ebb8e32" or + hash.sha256(0, filesize) == "61dd8b60ac35e91771d9ed4f337cd63e0aa6d0a0c5a17bb28cac59b3c21c24a9" or + 12 of them +} + +rule PotaoDebugDropper { + meta: + Author = "Intezer Analyze" + Reference = "https://apt-ecosystem.com" + + strings: + $block_0 = { 8B ?? ?? 0F BE ?? ?? 33 ?? 8B ?? ?? 88 ?? ?? ?? ?? ?? 8B ?? ?? 0F BE ?? ?? ?? ?? ?? 85 ?? 75 } + $block_1 = { B9 ?? ?? ?? ?? 6B ?? ?? 8B ?? ?? 0F B6 ?? ?? 33 ?? ?? 89 ?? ?? 8B ?? ?? 69 ?? ?? ?? ?? ?? 89 } + $block_2 = { 8B ?? ?? 0F B6 ?? 89 ?? ?? 8B ?? ?? 89 ?? ?? 8B ?? ?? 83 ?? ?? 89 ?? ?? 83 ?? ?? ?? 7C } + $block_3 = { 5? 8B ?? 83 ?? ?? 89 ?? ?? 89 ?? ?? 8B ?? ?? 89 ?? ?? 8B ?? ?? 0F BE ?? 85 ?? 75 } + $block_4 = { 5? 8B ?? 83 ?? ?? 5? 5? 5? 89 ?? ?? FC 33 ?? 64 ?? ?? ?? ?? ?? ?? 8B ?? ?? 8B } + $block_5 = { 8B ?? ?? 83 ?? ?? 8B ?? ?? 83 ?? ?? 89 ?? ?? 89 ?? ?? 83 ?? ?? ?? 0F 87 } + $block_6 = { 5? 8B ?? 83 ?? ?? B8 ?? ?? ?? ?? 6B ?? ?? 0F BE ?? ?? ?? ?? ?? 85 ?? 74 } + $block_7 = { 6A ?? 6A ?? E8 ?? ?? ?? ?? 83 ?? ?? 0F B6 ?? ?? 88 ?? ?? ?? ?? ?? EB } + $block_8 = { 8B ?? ?? 0F BE ?? 89 ?? ?? 8B ?? ?? 83 ?? ?? 89 ?? ?? 83 ?? ?? ?? 74 } + $block_9 = { 8B ?? ?? 0F BE ?? ?? 8B ?? ?? 0F BE ?? ?? ?? ?? ?? 33 ?? 8B ?? ?? 88 } + $block_10 = { 8B ?? ?? 0F BE ?? 89 ?? ?? 8B ?? ?? 83 ?? ?? 89 ?? ?? 83 ?? ?? ?? 75 } + $block_11 = { B9 ?? ?? ?? ?? C1 ?? ?? 8B ?? ?? 0F B6 ?? ?? C1 ?? ?? 33 ?? ?? 89 } + $block_12 = { 8B ?? ?? 89 ?? ?? 8B ?? ?? 83 ?? ?? 89 ?? ?? 83 ?? ?? ?? 0F 87 } + $block_13 = { B9 ?? ?? ?? ?? D1 ?? 8B ?? ?? 0F B6 ?? ?? C1 ?? ?? 33 ?? ?? 89 } + $block_14 = { 0F B6 ?? ?? C6 ?? ?? ?? ?? ?? ?? B8 ?? ?? ?? ?? 8B ?? 5? C3 } + $block_15 = { C7 ?? ?? ?? ?? ?? ?? 8B ?? ?? 0F BF ?? 81 F? ?? ?? ?? ?? 75 } + $block_16 = { 8B ?? ?? 03 ?? ?? 0F BE ?? 8B ?? ?? 81 E? ?? ?? ?? ?? 79 } + $block_17 = { 5? 8B ?? 81 E? ?? ?? ?? ?? 83 ?? ?? ?? ?? ?? ?? 0F 85 } + $block_18 = { 5? 8B ?? 5? 89 ?? ?? 83 ?? ?? ?? ?? ?? ?? 0F 85 } + + condition: + hash.sha256(0, filesize) == "f845778c3f2e3272145621776a90f662ee9344e3ae550c76f65fd954e7277d19" or + hash.sha256(0, filesize) == "910f55e1c4e75696405e158e40b55238d767730c60119539b644ef3e6bc32a5d" or + hash.sha256(0, filesize) == "c821cb34c86ec259af37c389a8f6cd635d98753576c675882c9896025a1abc53" or + 12 of them +} + +rule WildNeutronJripbot { + meta: + Author = "Intezer Analyze" + Reference = "https://apt-ecosystem.com" + + strings: + $block_0 = { 5? 68 ?? ?? ?? ?? 6A ?? 5? 5? 68 ?? ?? ?? ?? 5? FF 1? ?? ?? ?? ?? 8B ?? 89 ?? ?? 83 ?? ?? 0F 84 } + $block_1 = { 8B ?? ?? ?? ?? ?? 6A ?? 8D ?? ?? ?? ?? ?? 5? 6A ?? 8D ?? ?? 5? 5? FF 1? ?? ?? ?? ?? 85 ?? 0F 84 } + $block_2 = { 0F B6 ?? ?? ?? 5? 68 ?? ?? ?? ?? 6A ?? 6A ?? 5? E8 ?? ?? ?? ?? 83 ?? ?? 4? 83 ?? ?? 83 ?? ?? 72 } + $block_3 = { 8B ?? ?? ?? ?? ?? 6A ?? 68 ?? ?? ?? ?? 5? E8 ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 83 ?? ?? 85 ?? 0F 85 } + $block_4 = { 5? 5? 8D ?? ?? ?? ?? ?? 5? 5? FF 1? ?? ?? ?? ?? 8B ?? ?? 8B ?? 83 ?? ?? 89 ?? ?? ?? ?? ?? 0F 84 } + $block_5 = { 8B ?? ?? ?? ?? ?? 8D ?? ?? ?? 89 ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? ?? ?? ?? 39 ?? ?? ?? ?? ?? 0F 85 } + $block_6 = { 8B ?? ?? ?? 0F B6 ?? ?? ?? 5? 5? 8D ?? ?? ?? E8 ?? ?? ?? ?? FF 4? ?? ?? 83 ?? ?? ?? ?? 5? 5? 72 } + $block_7 = { 6A ?? 68 ?? ?? ?? ?? 6A ?? 6A ?? 6A ?? 68 ?? ?? ?? ?? 5? FF 1? ?? ?? ?? ?? 8B ?? 83 ?? ?? 0F 84 } + $block_8 = { 8D ?? ?? ?? 5? BB ?? ?? ?? ?? 5? FF 7? ?? E8 ?? ?? ?? ?? 83 ?? ?? 3B ?? 8B ?? ?? ?? ?? ?? 0F 84 } + $block_9 = { 8D ?? ?? ?? 5? 68 ?? ?? ?? ?? FF D? 0F B7 ?? ?? ?? 6A ?? 6A ?? 8D ?? ?? ?? 89 ?? ?? ?? 5? E9 } + $block_10 = { 8B ?? ?? ?? ?? ?? 8B ?? 5? 8D ?? ?? ?? ?? ?? 5? 6A ?? FF B? ?? ?? ?? ?? FF 5? ?? 85 ?? 0F 85 } + $block_11 = { 5? 68 ?? ?? ?? ?? 6A ?? 5? 5? 68 ?? ?? ?? ?? 5? FF 1? ?? ?? ?? ?? 89 ?? ?? ?? 83 ?? ?? 0F 84 } + $block_12 = { 33 ?? 5? 5? 8D ?? ?? ?? ?? ?? 5? 5? 8D ?? ?? ?? ?? ?? 5? FF 3? FF 1? ?? ?? ?? ?? 85 ?? 0F 85 } + $block_13 = { 5? 8D ?? ?? ?? ?? ?? 5? 5? 8B ?? E8 ?? ?? ?? ?? 83 ?? ?? 33 ?? 8B ?? 39 ?? ?? ?? ?? ?? 0F 8E } + $block_14 = { 5? 8B ?? 83 ?? ?? 5? 5? 8B ?? 8B ?? ?? 8D ?? ?? ?? ?? ?? 89 ?? ?? 0F B7 ?? 5? 66 ?? ?? 0F 84 } + $block_15 = { 8A ?? ?? 0F B6 ?? 8B ?? ?? ?? ?? ?? ?? 5? 68 ?? ?? ?? ?? E8 ?? ?? ?? ?? 83 ?? ?? 85 ?? 0F 84 } + $block_16 = { 8B ?? ?? ?? ?? ?? 6A ?? 8D ?? ?? ?? ?? ?? 5? 68 ?? ?? ?? ?? 5? FF 1? ?? ?? ?? ?? 85 ?? 0F 84 } + $block_17 = { 0F B7 ?? 8B ?? ?? 33 ?? 8D ?? ?? ?? F7 ?? C7 ?? ?? ?? ?? ?? ?? ?? ?? ?? 0F B7 ?? 85 ?? 0F 84 } + $block_18 = { 8D ?? ?? ?? ?? ?? 89 ?? ?? 8B ?? ?? ?? ?? ?? 89 ?? ?? 0F B7 ?? 66 ?? ?? ?? ?? ?? ?? 0F 84 } + $block_19 = { 8D ?? ?? 5? 6A ?? FF D? 5? FF 1? ?? ?? ?? ?? 0F BF ?? ?? ?? ?? ?? 0F BF ?? ?? 4? 3B ?? 75 } + $block_20 = { 83 ?? ?? 5? 8D ?? ?? 8D ?? ?? ?? ?? ?? E8 ?? ?? ?? ?? 33 ?? 8D ?? ?? AB AA 8B ?? ?? 5? 8D } + $block_21 = { 8B ?? ?? ?? ?? ?? 8D ?? ?? ?? ?? ?? 5? 6A ?? 6A ?? 6A ?? 5? FF 1? ?? ?? ?? ?? 85 ?? 0F 85 } + $block_22 = { 0F BF ?? ?? ?? ?? ?? 2B ?? D1 ?? 03 ?? 0F B7 ?? 9? 99 F7 ?? 4? 89 ?? ?? ?? ?? ?? 3B ?? 75 } + $block_23 = { 33 ?? 66 ?? ?? 0F B7 ?? ?? 83 ?? ?? F7 ?? 1B ?? 23 ?? 5? 5? FF 1? ?? ?? ?? ?? 85 ?? 0F 85 } + $block_24 = { 0F B7 ?? ?? ?? ?? ?? 6A ?? 8D ?? ?? ?? ?? ?? 6A ?? 5? 89 ?? ?? ?? ?? ?? E8 ?? ?? ?? ?? 83 } + $block_25 = { 8A ?? ?? 0F B6 ?? 8B ?? ?? ?? ?? ?? ?? 5? 68 ?? ?? ?? ?? E8 ?? ?? ?? ?? 83 ?? ?? 85 ?? 74 } + $block_26 = { 5? 8B ?? B8 ?? ?? ?? ?? E8 ?? ?? ?? ?? A1 ?? ?? ?? ?? 33 ?? 89 ?? ?? 8B ?? ?? 85 ?? 0F 84 } + $block_27 = { 8D ?? ?? ?? 5? 5? 8B ?? 89 ?? ?? ?? ?? ?? E8 ?? ?? ?? ?? 83 ?? ?? 8B ?? 39 ?? ?? ?? 0F 8E } + $block_28 = { FF B? ?? ?? ?? ?? FF 1? ?? ?? ?? ?? FF 8? ?? ?? ?? ?? 81 B? ?? ?? ?? ?? ?? ?? ?? ?? 0F 85 } + $block_29 = { 5? 8B ?? E8 ?? ?? ?? ?? 8B ?? 8B ?? ?? ?? ?? ?? 0F B6 ?? ?? 83 ?? ?? 83 ?? ?? 83 ?? ?? 77 } + $block_30 = { 0F B7 ?? ?? 33 ?? 66 ?? ?? ?? 5? 0F 94 ?? 83 ?? ?? 33 ?? E8 ?? ?? ?? ?? 83 ?? ?? 85 ?? 75 } + $block_31 = { 8B ?? ?? 8D ?? ?? 5? 5? E8 ?? ?? ?? ?? 33 ?? 39 ?? ?? 5? 0F 94 ?? 8D ?? ?? 5? 89 ?? ?? 8D } + $block_32 = { 8B ?? ?? 8D ?? ?? ?? ?? ?? 5? 5? E8 ?? ?? ?? ?? 0F B7 ?? 83 ?? ?? 5? 68 ?? ?? ?? ?? EB } + $block_33 = { 8D ?? ?? ?? ?? ?? 68 ?? ?? ?? ?? 5? BE ?? ?? ?? ?? E8 ?? ?? ?? ?? 83 ?? ?? 85 ?? 0F 85 } + $block_34 = { 0F B7 ?? 5? E8 ?? ?? ?? ?? 0F B7 ?? 5? 68 ?? ?? ?? ?? E8 ?? ?? ?? ?? 83 ?? ?? 85 ?? 74 } + $block_35 = { 5? E8 ?? ?? ?? ?? 0F B7 ?? ?? 83 ?? ?? 5? 66 ?? ?? ?? E8 ?? ?? ?? ?? 83 ?? ?? 85 ?? 74 } + $block_36 = { 0F B7 ?? 33 ?? 83 ?? ?? 0F 94 ?? 83 ?? ?? 66 ?? ?? 0F B7 ?? 83 ?? ?? 33 ?? 66 ?? ?? 75 } + $block_37 = { 8B ?? 5? 5? 5? 89 ?? ?? ?? ?? ?? E8 ?? ?? ?? ?? 83 ?? ?? 89 ?? ?? ?? ?? ?? 85 ?? 0F 84 } + $block_38 = { 8B ?? ?? 03 ?? 8B ?? ?? 03 ?? 03 ?? D1 ?? 89 ?? ?? 89 ?? ?? C7 ?? ?? ?? ?? ?? ?? 0F 84 } + $block_39 = { 8D ?? ?? ?? 5? 6A ?? BA ?? ?? ?? ?? 8B ?? 8B ?? E8 ?? ?? ?? ?? 8B ?? 5? 5? 85 ?? 0F 84 } + $block_40 = { BF ?? ?? ?? ?? E8 ?? ?? ?? ?? 5? 8D ?? ?? ?? ?? ?? 5? E8 ?? ?? ?? ?? 5? 5? 85 ?? 0F 85 } + $block_41 = { 68 ?? ?? ?? ?? 5? FF 1? ?? ?? ?? ?? 5? 6A ?? FF 1? ?? ?? ?? ?? 89 ?? ?? ?? 3B ?? 0F 84 } + $block_42 = { 68 ?? ?? ?? ?? 8D ?? ?? ?? ?? ?? 5? 8D ?? ?? ?? ?? ?? 5? FF 1? ?? ?? ?? ?? 85 ?? 0F 84 } + $block_43 = { 8B ?? 6B ?? ?? 8D ?? ?? ?? ?? ?? ?? 5? E8 ?? ?? ?? ?? 5? 89 ?? ?? ?? ?? ?? 85 ?? 0F 85 } + $block_44 = { 68 ?? ?? ?? ?? 5? FF 1? ?? ?? ?? ?? 5? 6A ?? FF 1? ?? ?? ?? ?? 89 ?? ?? 3B ?? 0F 84 } + $block_45 = { 8B ?? ?? 2B ?? ?? D1 ?? 03 ?? 8D ?? ?? 5? E8 ?? ?? ?? ?? 8B ?? 83 ?? ?? 85 ?? 0F 84 } + $block_46 = { 0F B6 ?? ?? 5? 8D ?? ?? ?? 68 ?? ?? ?? ?? 5? E8 ?? ?? ?? ?? 8D ?? ?? ?? 83 ?? ?? 8D } + $block_47 = { BF ?? ?? ?? ?? E8 ?? ?? ?? ?? 5? 8D ?? ?? ?? ?? ?? 5? FF 1? ?? ?? ?? ?? 85 ?? 0F 85 } + $block_48 = { 0F B7 ?? ?? ?? 0F B7 ?? ?? ?? 5? 5? 5? 5? 0F B7 ?? ?? ?? 5? 6A ?? 68 ?? ?? ?? ?? EB } + $block_49 = { 8B ?? 5? E8 ?? ?? ?? ?? 03 ?? ?? 83 ?? ?? 8B ?? 89 ?? ?? E8 ?? ?? ?? ?? 85 ?? 0F 84 } + $block_50 = { 8B ?? ?? ?? ?? ?? 83 ?? ?? 66 ?? ?? ?? 0F B7 ?? ?? 66 ?? ?? ?? 8D ?? ?? ?? ?? ?? 8D } + $block_51 = { 8B ?? ?? ?? ?? ?? 5? B8 ?? ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? E8 ?? ?? ?? ?? 85 ?? 0F 84 } + $block_52 = { 8B ?? ?? ?? ?? ?? 6A ?? 8D ?? ?? ?? ?? ?? 5? 6A ?? 8D ?? ?? 5? 5? FF D? 85 ?? 0F 84 } + $block_53 = { 0F B7 ?? ?? 83 ?? ?? 5? E8 ?? ?? ?? ?? 0F B7 ?? 83 ?? ?? 83 ?? ?? 83 ?? ?? 0F 87 } + $block_54 = { 0F BF ?? 33 ?? 8B ?? F7 ?? 4? 89 ?? ?? ?? ?? ?? 0F B7 ?? 8B ?? 0F AF ?? 3B ?? 72 } + $block_55 = { 8B ?? 2B ?? D1 ?? 8D ?? ?? 8D ?? ?? 5? E8 ?? ?? ?? ?? 8B ?? 83 ?? ?? 85 ?? 0F 84 } + $block_56 = { 8B ?? ?? ?? ?? ?? 33 ?? 33 ?? 81 E? ?? ?? ?? ?? 1B ?? 89 ?? ?? ?? ?? ?? 0F 88 } + $block_57 = { 2B ?? 8D ?? ?? ?? 5? 6A ?? E8 ?? ?? ?? ?? 5? 5? 89 ?? ?? ?? ?? ?? 3B ?? 0F 84 } + $block_58 = { 8B ?? ?? ?? ?? ?? 8D ?? ?? ?? ?? ?? ?? 0F B6 ?? 5? FF 1? ?? ?? ?? ?? 85 ?? 75 } + $block_59 = { 68 ?? ?? ?? ?? 8D ?? ?? ?? 5? 8D ?? ?? ?? 5? 8D ?? ?? ?? 5? FF D? 85 ?? 0F 84 } + $block_60 = { 8B ?? ?? ?? 2B ?? D1 ?? 8D ?? ?? B9 ?? ?? ?? ?? 66 ?? ?? 83 ?? ?? 85 ?? 0F 85 } + $block_61 = { FF B? ?? ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? ?? ?? ?? FF 1? ?? ?? ?? ?? 85 ?? 0F 84 } + $block_62 = { 8B ?? ?? 5? 8B ?? ?? 5? 68 ?? ?? ?? ?? 5? E8 ?? ?? ?? ?? 83 ?? ?? 85 ?? 0F 84 } + $block_63 = { 83 ?? ?? 89 ?? ?? ?? ?? ?? 0F B7 ?? 33 ?? 89 ?? ?? ?? ?? ?? 66 ?? ?? 0F 84 } + $block_64 = { 0F B7 ?? ?? ?? 0F B7 ?? ?? ?? ?? ?? 0F B7 ?? ?? ?? 5? 6A ?? 5? 5? 5? 0F B7 } + $block_65 = { 68 ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? E8 ?? ?? ?? ?? 8B ?? 83 ?? ?? 3B ?? 0F 84 } + $block_66 = { 0F B7 ?? 33 ?? 83 ?? ?? 0F 94 ?? 66 ?? ?? ?? 83 ?? ?? 33 ?? 66 ?? ?? ?? 75 } + $block_67 = { 8B ?? ?? ?? 0F B7 ?? ?? 5? 68 ?? ?? ?? ?? E8 ?? ?? ?? ?? 83 ?? ?? 85 ?? 75 } + $block_68 = { 5? 8B ?? 5? 5? 83 ?? ?? ?? A1 ?? ?? ?? ?? 5? 8B ?? ?? 89 ?? ?? 85 ?? 0F 84 } + $block_69 = { 0F B7 ?? ?? 83 ?? ?? 8D ?? ?? ?? 5? 5? FF 5? ?? ?? 8B ?? 83 ?? ?? 85 ?? 75 } + $block_70 = { 6A ?? 8D ?? ?? ?? ?? ?? 5? 5? E8 ?? ?? ?? ?? 8B ?? 83 ?? ?? 83 ?? ?? 0F 8C } + $block_71 = { FF B? ?? ?? ?? ?? 6A ?? E8 ?? ?? ?? ?? 5? 5? 89 ?? ?? ?? ?? ?? 3B ?? 0F 84 } + $block_72 = { 8D ?? ?? ?? ?? ?? 5? 8D ?? ?? ?? ?? ?? E8 ?? ?? ?? ?? 83 ?? ?? 85 ?? 0F 84 } + $block_73 = { 8B ?? ?? 8B ?? E8 ?? ?? ?? ?? 8B ?? ?? 5? 5? 33 ?? 5? E8 ?? ?? ?? ?? C9 C3 } + $block_74 = { 8D ?? ?? ?? ?? ?? 5? 8B ?? E8 ?? ?? ?? ?? 5? 89 ?? ?? ?? ?? ?? 85 ?? 0F 85 } + $block_75 = { 8B ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? 33 ?? 8D ?? ?? ?? AB AB AB 66 ?? AA BB } + $block_76 = { 0F B7 ?? ?? 8D ?? ?? 5? E8 ?? ?? ?? ?? 0F B7 ?? 83 ?? ?? 83 ?? ?? 0F 84 } + $block_77 = { 8D ?? ?? 5? 68 ?? ?? ?? ?? 6A ?? E8 ?? ?? ?? ?? 5? 5? FF D? 85 ?? 0F 85 } + $block_78 = { 0F B7 ?? ?? 5? E8 ?? ?? ?? ?? 0F B7 ?? 83 ?? ?? 83 ?? ?? 83 ?? ?? 0F 87 } + $block_79 = { 8B ?? ?? ?? ?? ?? 8B ?? ?? 8B ?? ?? 23 ?? 23 ?? ?? ?? ?? ?? 3B ?? 0F 85 } + $block_80 = { 8D ?? ?? 66 ?? ?? ?? 0F BF ?? 4? 66 ?? ?? 89 ?? ?? 3B ?? ?? ?? ?? ?? 75 } + $block_81 = { 33 ?? 85 ?? 0F 94 ?? 5? 5? 5? 8B ?? ?? 33 ?? E8 ?? ?? ?? ?? 8B ?? 5? C3 } + $block_82 = { 6A ?? FF 1? ?? ?? ?? ?? 5? FF 1? ?? ?? ?? ?? 83 ?? ?? ?? ?? ?? ?? 0F 85 } + $block_83 = { 8B ?? ?? 2B ?? D1 ?? 8D ?? ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 85 ?? 0F 84 } + $block_84 = { 8B ?? ?? C7 ?? ?? ?? ?? ?? ?? 89 ?? ?? 89 ?? ?? 89 ?? ?? 39 ?? ?? 0F 86 } + $block_85 = { 6A ?? 6A ?? 8D ?? ?? ?? ?? ?? 5? 8D ?? ?? ?? ?? ?? 5? FF D? 84 ?? 0F 84 } + $block_86 = { 6A ?? 8D ?? ?? ?? ?? ?? E8 ?? ?? ?? ?? 5? 89 ?? ?? ?? ?? ?? 85 ?? 0F 85 } + $block_87 = { 0F B7 ?? 33 ?? 66 ?? ?? 66 ?? ?? ?? 89 ?? ?? ?? ?? ?? 8B ?? 8B ?? 74 } + $block_88 = { BB ?? ?? ?? ?? 5? 8D ?? ?? ?? ?? ?? 5? FF 1? ?? ?? ?? ?? 85 ?? 0F 84 } + $block_89 = { 8B ?? 2B ?? ?? 83 ?? ?? 89 ?? ?? 8B ?? ?? D1 ?? 89 ?? ?? 85 ?? 0F 8E } + $block_90 = { 0F B7 ?? ?? ?? ?? ?? ?? 66 ?? ?? ?? ?? ?? ?? ?? 83 ?? ?? 66 ?? ?? 75 } + $block_91 = { 0F BF ?? ?? 0F BF ?? ?? ?? ?? ?? 03 ?? B8 ?? ?? ?? ?? 2B ?? 3B ?? 75 } + $block_92 = { 68 ?? ?? ?? ?? E8 ?? ?? ?? ?? 83 ?? ?? 89 ?? ?? ?? ?? ?? 85 ?? 0F 84 } + $block_93 = { 5? 8D ?? ?? 5? 8D ?? ?? 5? 8D ?? ?? 5? FF 1? ?? ?? ?? ?? 85 ?? 0F 84 } + $block_94 = { 8B ?? ?? 8B ?? ?? 8B ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? F6 ?? ?? 0F 85 } + $block_95 = { C7 ?? ?? ?? ?? ?? 0F B7 ?? 5? 5? C7 ?? ?? ?? ?? ?? ?? 66 ?? ?? 0F 84 } + $block_96 = { 8D ?? ?? ?? ?? ?? 8B ?? E8 ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 85 ?? 0F 85 } + $block_97 = { 8B ?? ?? ?? ?? ?? 5? E8 ?? ?? ?? ?? 5? 89 ?? ?? ?? ?? ?? 85 ?? 0F 85 } + $block_98 = { BE ?? ?? ?? ?? 5? 8D ?? ?? ?? ?? ?? 5? FF 1? ?? ?? ?? ?? 85 ?? 0F 84 } + $block_99 = { 5? 8D ?? ?? ?? ?? ?? E8 ?? ?? ?? ?? 5? 89 ?? ?? ?? ?? ?? 85 ?? 0F 85 } + + condition: + hash.sha256(0, filesize) == "b4005530193bc523d3e0193c3c53e2737ae3bf9f76d12c827c0b5cd0dcbaae45" or + hash.sha256(0, filesize) == "ccc851cbd600592f1ed2c2969a30b87f0bf29046cdfa1590d8f09cfe454608a5" or + hash.sha256(0, filesize) == "683f5b476f8ffe87ec22b8bab57f74da4a13ecc3a5c2cbf951999953c2064fc9" or + hash.sha256(0, filesize) == "781eb1e17349009fbae46aea5c59d8e5b68ae0b42335cb035742f6b0f4e4087e" or + hash.sha256(0, filesize) == "758e6b519f6c0931ff93542b767524fc1eab589feb5cfc3854c77842f9785c92" or + hash.sha256(0, filesize) == "8ca7ed720babb32a6f381769ea00e16082a563704f8b672cb21cf11843f4da7a" or + 12 of them +} + +rule WildNeutronTunnel { + meta: + Author = "Intezer Analyze" + Reference = "https://apt-ecosystem.com" + + strings: + $block_0 = { 8B ?? ?? ?? ?? ?? 68 ?? ?? ?? ?? 6A ?? FF D? 5? FF 1? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 85 ?? 0F 84 } + $block_1 = { 8D ?? ?? C7 ?? ?? ?? ?? ?? 89 ?? ?? ?? 8D ?? ?? 89 ?? ?? ?? 89 ?? ?? E8 ?? ?? ?? ?? 85 ?? 0F 84 } + $block_2 = { 89 ?? ?? E8 ?? ?? ?? ?? C6 ?? ?? 89 ?? 8D ?? ?? 89 ?? ?? ?? 89 ?? ?? E8 ?? ?? ?? ?? 85 ?? 0F 88 } + $block_3 = { 89 ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? ?? 89 ?? ?? ?? 89 ?? ?? E8 ?? ?? ?? ?? 8B ?? ?? ?? 85 ?? 0F 84 } + $block_4 = { 5? 5? 5? 5? 83 ?? ?? 8B ?? ?? ?? A1 ?? ?? ?? ?? 89 ?? ?? ?? 31 ?? 8B ?? ?? ?? 8B ?? 85 ?? 0F 84 } + $block_5 = { 8B ?? ?? ?? 8B ?? ?? ?? 89 ?? ?? ?? 89 ?? ?? 89 ?? ?? ?? 89 ?? ?? ?? E8 ?? ?? ?? ?? 85 ?? 0F 84 } + $block_6 = { 83 ?? ?? C7 ?? ?? ?? ?? ?? ?? ?? 89 ?? ?? E8 ?? ?? ?? ?? 85 ?? 89 ?? 0F 95 ?? ?? ?? 39 ?? 0F 86 } + $block_7 = { 8D ?? ?? ?? 89 ?? ?? E8 ?? ?? ?? ?? 8B ?? ?? ?? 89 ?? ?? ?? 83 ?? ?? 83 ?? ?? 89 ?? ?? ?? 0F 85 } + $block_8 = { A1 ?? ?? ?? ?? 8B ?? 89 ?? ?? E8 ?? ?? ?? ?? 85 ?? 0F 44 ?? 89 ?? ?? ?? E8 ?? ?? ?? ?? 85 ?? 74 } + $block_9 = { E8 ?? ?? ?? ?? F6 ?? 0F BE ?? 83 ?? ?? 89 ?? ?? ?? ?? ?? E8 ?? ?? ?? ?? 89 ?? ?? ?? 3B ?? 75 } + $block_10 = { 5? 8B ?? 5? 5? 68 ?? ?? ?? ?? 6A ?? FF 1? ?? ?? ?? ?? 5? FF 1? ?? ?? ?? ?? 8B ?? 85 ?? 0F 84 } + $block_11 = { C7 ?? ?? ?? ?? ?? ?? E8 ?? ?? ?? ?? 8D ?? ?? ?? ?? ?? ?? 89 ?? ?? E8 ?? ?? ?? ?? 85 ?? 0F 84 } + $block_12 = { C7 ?? ?? ?? ?? ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? E8 ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 83 ?? ?? 0F 84 } + $block_13 = { A1 ?? ?? ?? ?? 8B ?? 89 ?? ?? E8 ?? ?? ?? ?? 85 ?? 0F 44 ?? 89 ?? ?? E8 ?? ?? ?? ?? 85 ?? 74 } + $block_14 = { 8B ?? ?? B9 ?? ?? ?? ?? BF ?? ?? ?? ?? F3 ?? C7 ?? ?? ?? ?? ?? ?? 0F 97 ?? 0F 92 ?? 38 ?? 74 } + $block_15 = { 0F B7 ?? 89 ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? E8 ?? ?? ?? ?? 31 ?? 8B ?? ?? 33 ?? ?? ?? ?? ?? 75 } + $block_16 = { 8B ?? ?? ?? 8B ?? ?? 8B ?? ?? 8B ?? ?? ?? 31 ?? 0F A4 ?? ?? C1 ?? ?? 01 ?? 11 ?? 39 ?? 0F 83 } + $block_17 = { 5? 5? 5? 5? 83 ?? ?? 8B ?? ?? ?? 8B ?? ?? ?? 8D ?? ?? 8B ?? ?? C6 ?? ?? ?? 4? 83 ?? ?? 0F 87 } + $block_18 = { E8 ?? ?? ?? ?? 8D ?? ?? ?? ?? ?? 89 ?? ?? ?? 89 ?? ?? ?? 89 ?? ?? E8 ?? ?? ?? ?? 85 ?? 0F 89 } + $block_19 = { E8 ?? ?? ?? ?? 9? 5? 5? 5? 83 ?? ?? 8B ?? ?? ?? A1 ?? ?? ?? ?? 89 ?? ?? ?? 31 ?? 85 ?? 0F 84 } + $block_20 = { 8B ?? ?? ?? B8 ?? ?? ?? ?? 8B ?? ?? 80 3? ?? 0F 45 ?? 83 ?? ?? ?? ?? ?? ?? 89 ?? ?? ?? 0F 84 } + $block_21 = { 8D ?? ?? ?? 89 ?? ?? ?? 89 ?? ?? E8 ?? ?? ?? ?? 8B ?? ?? ?? 89 ?? E8 ?? ?? ?? ?? 85 ?? 0F 84 } + $block_22 = { 89 ?? ?? E8 ?? ?? ?? ?? 89 ?? ?? E8 ?? ?? ?? ?? 89 ?? ?? E8 ?? ?? ?? ?? 3D ?? ?? ?? ?? 0F 85 } + $block_23 = { 5? 83 ?? ?? 8B ?? ?? ?? ?? ?? A1 ?? ?? ?? ?? 89 ?? ?? ?? 31 ?? 8B ?? ?? ?? ?? ?? 85 ?? 0F 85 } + $block_24 = { B8 ?? ?? ?? ?? 85 ?? BA ?? ?? ?? ?? 0F 44 ?? 89 ?? ?? ?? 89 ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? E8 } + $block_25 = { 8B ?? ?? 89 ?? ?? E8 ?? ?? ?? ?? 89 ?? ?? ?? 8B ?? ?? 89 ?? ?? E8 ?? ?? ?? ?? 83 ?? ?? 0F 84 } + $block_26 = { 83 ?? ?? 89 ?? ?? E8 ?? ?? ?? ?? 83 ?? ?? 89 ?? ?? E8 ?? ?? ?? ?? 0F B6 ?? ?? 84 ?? 89 ?? 74 } + $block_27 = { 8B ?? ?? ?? 8D ?? ?? ?? 89 ?? ?? ?? 89 ?? ?? 89 ?? ?? ?? E8 ?? ?? ?? ?? 83 ?? ?? 89 ?? 0F 84 } + $block_28 = { B8 ?? ?? ?? ?? 85 ?? BA ?? ?? ?? ?? 0F 45 ?? 89 ?? ?? ?? 89 ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? E8 } + $block_29 = { 8B ?? ?? ?? BF ?? ?? ?? ?? B9 ?? ?? ?? ?? B8 ?? ?? ?? ?? F3 ?? 0F 44 ?? ?? ?? 89 ?? ?? ?? E9 } + $block_30 = { 5? 5? 5? 5? 89 ?? 81 E? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? ?? 31 ?? 85 ?? 0F 84 } + $block_31 = { 8B ?? ?? 89 ?? ?? ?? 8B ?? ?? 89 ?? ?? ?? 8B ?? ?? 89 ?? ?? E8 ?? ?? ?? ?? 85 ?? 89 ?? 0F 88 } + $block_32 = { 83 ?? ?? BA ?? ?? ?? ?? B9 ?? ?? ?? ?? 0F 44 ?? 83 ?? ?? 19 ?? 83 ?? ?? 83 ?? ?? 19 ?? 83 } + $block_33 = { 8B ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 33 ?? 81 B? ?? ?? ?? ?? ?? ?? ?? ?? 0F 95 ?? 85 ?? 74 } + $block_34 = { E8 ?? ?? ?? ?? F6 ?? 0F BE ?? 83 ?? ?? 89 ?? ?? ?? ?? ?? E8 ?? ?? ?? ?? 89 ?? ?? 3B ?? 75 } + $block_35 = { 0F B6 ?? ?? ?? 5? 68 ?? ?? ?? ?? 6A ?? 5? E8 ?? ?? ?? ?? 4? 83 ?? ?? 83 ?? ?? 83 ?? ?? 72 } + $block_36 = { 8B ?? ?? 8B ?? ?? ?? 03 ?? ?? ?? 66 ?? ?? ?? 8B ?? ?? 0F B7 ?? 8D ?? ?? 8B ?? ?? 03 ?? EB } + $block_37 = { 5? 89 ?? 5? 5? 5? 83 ?? ?? 8B ?? ?? 8B ?? ?? ?? ?? ?? 89 ?? ?? 31 ?? 85 ?? 89 ?? ?? 0F 84 } + $block_38 = { C1 ?? ?? 03 ?? ?? ?? 89 ?? ?? ?? 8B ?? ?? ?? ?? ?? ?? 81 E? ?? ?? ?? ?? 89 ?? ?? ?? 0F 88 } + $block_39 = { 8B ?? ?? ?? ?? ?? ?? 83 ?? ?? 89 ?? ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? ?? 8B ?? 85 ?? 0F 85 } + $block_40 = { 8B ?? ?? ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? ?? 89 ?? ?? 89 ?? ?? ?? E8 ?? ?? ?? ?? 85 ?? 0F 84 } + $block_41 = { 89 ?? ?? 8D ?? ?? E8 ?? ?? ?? ?? 8D ?? ?? 83 ?? ?? 83 ?? ?? 8D ?? ?? ?? 31 ?? 39 ?? 0F 82 } + $block_42 = { 8B ?? ?? ?? 89 ?? ?? 89 ?? ?? ?? 8B ?? ?? ?? 89 ?? ?? ?? E8 ?? ?? ?? ?? 85 ?? 89 ?? 0F 88 } + $block_43 = { C7 ?? ?? ?? ?? ?? ?? ?? 89 ?? ?? 88 ?? ?? ?? E8 ?? ?? ?? ?? 0F B6 ?? ?? ?? 80 F? ?? 0F 84 } + $block_44 = { 8B ?? ?? 8D ?? ?? ?? ?? ?? ?? 89 ?? ?? ?? 89 ?? ?? 89 ?? ?? ?? E8 ?? ?? ?? ?? 85 ?? 0F 84 } + $block_45 = { 31 ?? 83 ?? ?? 0F 94 ?? 89 ?? 89 ?? ?? 8D ?? ?? ?? E8 ?? ?? ?? ?? 85 ?? 89 ?? ?? ?? 0F 84 } + $block_46 = { 8B ?? ?? B8 ?? ?? ?? ?? 89 ?? C1 ?? ?? D3 ?? 09 ?? ?? 8B ?? ?? ?? 33 ?? ?? ?? ?? ?? 0F 85 } + $block_47 = { 8B ?? ?? 83 ?? ?? 66 ?? ?? ?? ?? ?? 0F 94 ?? 83 ?? ?? ?? ?? 0F 94 ?? 20 ?? 88 ?? ?? ?? 74 } + $block_48 = { 8B ?? ?? C7 ?? ?? ?? ?? ?? ?? ?? 89 ?? ?? ?? 8D ?? ?? 89 ?? ?? E8 ?? ?? ?? ?? 85 ?? 0F 84 } + $block_49 = { 89 ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? E8 ?? ?? ?? ?? 89 ?? 8B ?? ?? ?? 33 ?? ?? ?? ?? ?? 0F 85 } + $block_50 = { 8B ?? ?? ?? 8B ?? ?? ?? 89 ?? ?? ?? 89 ?? ?? ?? 89 ?? ?? E8 ?? ?? ?? ?? 85 ?? 89 ?? 0F 88 } + $block_51 = { 8B ?? ?? ?? 89 ?? 89 ?? ?? ?? 89 ?? ?? ?? 89 ?? ?? 89 ?? ?? ?? E8 ?? ?? ?? ?? 85 ?? 0F 85 } + $block_52 = { 8D ?? ?? 8D ?? ?? 89 ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? ?? 89 ?? ?? E8 ?? ?? ?? ?? 85 ?? 0F 84 } + $block_53 = { 8B ?? ?? ?? 89 ?? ?? 89 ?? ?? ?? 89 ?? ?? ?? E8 ?? ?? ?? ?? 8B ?? ?? ?? 85 ?? 89 ?? 0F 84 } + $block_54 = { 0F B6 ?? ?? 83 ?? ?? 32 ?? ?? 0F B6 ?? 0F B6 ?? ?? ?? ?? ?? 88 ?? ?? 83 ?? ?? 83 ?? ?? 75 } + $block_55 = { 8D ?? ?? ?? ?? ?? ?? 89 ?? ?? ?? 89 ?? ?? ?? 89 ?? ?? E8 ?? ?? ?? ?? 83 ?? ?? 89 ?? 0F 8C } + $block_56 = { C7 ?? ?? ?? ?? ?? ?? ?? 89 ?? C7 ?? ?? ?? ?? ?? ?? ?? 89 ?? ?? E8 ?? ?? ?? ?? 85 ?? 0F 85 } + $block_57 = { 89 ?? ?? ?? 89 ?? ?? E8 ?? ?? ?? ?? 89 ?? ?? 89 ?? E8 ?? ?? ?? ?? 31 ?? 85 ?? 0F 94 ?? E9 } + $block_58 = { 5? 5? 5? 5? 81 E? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? ?? 4? 83 ?? ?? 0F 8E } + $block_59 = { 5? 5? 5? 5? 83 ?? ?? 8B ?? ?? ?? A1 ?? ?? ?? ?? 89 ?? ?? ?? 31 ?? 8B ?? ?? ?? 85 ?? 0F 84 } + $block_60 = { C7 ?? ?? ?? ?? ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? ?? 89 ?? ?? E8 ?? ?? ?? ?? 85 ?? 89 ?? 0F 88 } + $block_61 = { 89 ?? ?? E8 ?? ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? ?? 89 ?? ?? E8 ?? ?? ?? ?? 85 ?? 89 ?? 0F 84 } + $block_62 = { 5? 5? 5? 5? 83 ?? ?? 8B ?? ?? ?? A1 ?? ?? ?? ?? 89 ?? ?? ?? 31 ?? 85 ?? 89 ?? ?? ?? 0F 84 } + $block_63 = { 8B ?? ?? ?? 8B ?? ?? ?? 89 ?? ?? ?? 8B ?? ?? 8B ?? ?? 89 ?? ?? E8 ?? ?? ?? ?? 85 ?? 0F 85 } + $block_64 = { A1 ?? ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? 8B ?? ?? ?? 84 ?? 0F 85 } + $block_65 = { 83 ?? ?? 89 ?? C7 ?? ?? ?? ?? ?? ?? ?? 89 ?? ?? E8 ?? ?? ?? ?? 83 ?? ?? ?? ?? 89 ?? 0F 84 } + $block_66 = { FF D? 0F B6 ?? 68 ?? ?? ?? ?? 83 ?? ?? 6A ?? 89 ?? ?? ?? ?? ?? FF D? 5? FF D? 85 ?? 74 } + $block_67 = { 0F B6 ?? ?? 5? 68 ?? ?? ?? ?? 6A ?? 5? E8 ?? ?? ?? ?? 4? 83 ?? ?? 83 ?? ?? 83 ?? ?? 72 } + $block_68 = { E8 ?? ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? A3 ?? ?? ?? ?? E8 ?? ?? ?? ?? 83 ?? ?? 89 ?? 0F 84 } + $block_69 = { 5? 89 ?? 83 ?? ?? 0F B7 ?? ?? 8B ?? ?? ?? ?? ?? 89 ?? ?? 31 ?? 8B ?? ?? 66 ?? ?? ?? 74 } + $block_70 = { 8D ?? ?? 89 ?? ?? ?? 89 ?? ?? E8 ?? ?? ?? ?? 8B ?? ?? 89 ?? E8 ?? ?? ?? ?? 85 ?? 0F 84 } + $block_71 = { 5? 89 ?? 5? 5? 5? 81 E? ?? ?? ?? ?? 8B ?? ?? A1 ?? ?? ?? ?? 89 ?? ?? 31 ?? 85 ?? 0F 84 } + $block_72 = { 5? 89 ?? 5? 5? 5? 83 ?? ?? 8B ?? ?? A1 ?? ?? ?? ?? 89 ?? ?? 31 ?? 8B ?? ?? 85 ?? 0F 84 } + $block_73 = { C1 ?? ?? 03 ?? ?? ?? 89 ?? ?? ?? 8B ?? ?? ?? ?? ?? ?? 25 ?? ?? ?? ?? 89 ?? ?? ?? 0F 88 } + $block_74 = { 89 ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? E8 ?? ?? ?? ?? 89 ?? 8B ?? ?? 33 ?? ?? ?? ?? ?? 0F 85 } + $block_75 = { 5? 5? 6A ?? 6A ?? 6A ?? 6A ?? FF 1? ?? ?? ?? ?? 8B ?? 89 ?? ?? ?? ?? ?? 85 ?? 0F 84 } + $block_76 = { E8 ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? 85 ?? 89 ?? 0F 84 } + $block_77 = { 8D ?? ?? 89 ?? ?? ?? 89 ?? ?? ?? 89 ?? ?? E8 ?? ?? ?? ?? 85 ?? 0F 94 ?? 84 ?? 0F 85 } + $block_78 = { 8D ?? ?? 89 ?? ?? ?? 89 ?? ?? ?? 89 ?? ?? E8 ?? ?? ?? ?? 85 ?? 0F 94 ?? 84 ?? 0F 84 } + $block_79 = { 5? 5? 5? 5? 81 E? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? ?? 8B ?? 89 ?? 83 ?? ?? 0F 8F } + $block_80 = { 8D ?? ?? 89 ?? ?? E8 ?? ?? ?? ?? 89 ?? 89 ?? 89 ?? E8 ?? ?? ?? ?? 85 ?? 0F 84 } + $block_81 = { 8B ?? ?? 8B ?? ?? ?? ?? ?? ?? 89 ?? ?? 89 ?? ?? ?? E8 ?? ?? ?? ?? 85 ?? 0F 84 } + $block_82 = { 5? 5? 5? 5? 83 ?? ?? 89 ?? 89 ?? ?? ?? 89 ?? 8B ?? ?? ?? 8B ?? ?? 85 ?? 0F 84 } + $block_83 = { 89 ?? ?? E8 ?? ?? ?? ?? 89 ?? ?? 89 ?? ?? E8 ?? ?? ?? ?? 83 ?? ?? 89 ?? 0F 84 } + $block_84 = { 5? 5? 5? 5? 83 ?? ?? 8B ?? ?? ?? 8B ?? ?? ?? 8B ?? ?? ?? 8D ?? ?? 39 ?? 0F 8E } + $block_85 = { 8D ?? ?? ?? 5? 68 ?? ?? ?? ?? 5? C7 ?? ?? ?? ?? ?? ?? ?? FF D? 85 ?? 0F 85 } + $block_86 = { 6A ?? 6A ?? 6A ?? 68 ?? ?? ?? ?? 6A ?? 6A ?? FF 1? ?? ?? ?? ?? 85 ?? 0F 84 } + $block_87 = { 83 ?? ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? ?? ?? ?? 0F 84 } + $block_88 = { 8B ?? ?? 8B ?? ?? 89 ?? ?? ?? 89 ?? ?? E8 ?? ?? ?? ?? 85 ?? 89 ?? ?? 0F 84 } + $block_89 = { 8B ?? B9 ?? ?? ?? ?? 8B ?? ?? F3 ?? 0F 97 ?? 89 ?? 0F 92 ?? 89 ?? 38 ?? 74 } + $block_90 = { C7 ?? ?? ?? ?? ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? E8 ?? ?? ?? ?? 83 ?? ?? 0F 8C } + $block_91 = { C7 ?? ?? ?? ?? ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? E8 ?? ?? ?? ?? 83 ?? ?? 0F 85 } + $block_92 = { 8B ?? ?? ?? 4? 5? 68 ?? ?? ?? ?? 5? E8 ?? ?? ?? ?? 83 ?? ?? 85 ?? 0F 85 } + $block_93 = { 0F BE ?? 89 ?? ?? ?? 89 ?? ?? E8 ?? ?? ?? ?? 0F B6 ?? 83 ?? ?? 84 ?? 75 } + $block_94 = { 89 ?? ?? BF ?? ?? ?? ?? E8 ?? ?? ?? ?? B9 ?? ?? ?? ?? 89 ?? F3 ?? 0F 85 } + $block_95 = { C7 ?? ?? ?? ?? ?? ?? ?? 89 ?? ?? E8 ?? ?? ?? ?? 89 ?? 31 ?? 85 ?? 0F 85 } + $block_96 = { E8 ?? ?? ?? ?? 8B ?? 89 ?? ?? E8 ?? ?? ?? ?? 85 ?? BA ?? ?? ?? ?? 0F 84 } + $block_97 = { C7 ?? ?? ?? ?? ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? E8 ?? ?? ?? ?? 85 ?? 0F 89 } + $block_98 = { 5? 89 ?? 5? 83 ?? ?? 8B ?? ?? A1 ?? ?? ?? ?? 89 ?? ?? 31 ?? 85 ?? 0F 84 } + $block_99 = { 89 ?? ?? 89 ?? ?? E8 ?? ?? ?? ?? 8B ?? ?? 85 ?? 89 ?? ?? 89 ?? ?? 0F 84 } + + condition: + hash.sha256(0, filesize) == "81955e36dd46f3b05a1d7e47ffd53b7d1455406d952c890b5210a698dd97e938" or + hash.sha256(0, filesize) == "a14d31eb965ea8a37ebcc3b5635099f2ca08365646437c770212d534d504ff3c" or + hash.sha256(0, filesize) == "cfacc5389683518ecdd78002c975af6870fa5876337600e0b362abbbab0a19d2" or + 12 of them +} + +rule WildNeutron { + meta: + Author = "Intezer Analyze" + Reference = "https://apt-ecosystem.com" + + strings: + $block_0 = { 5? 8B ?? 83 ?? ?? 5? BE ?? ?? ?? ?? 5? 5? 89 ?? ?? E8 ?? ?? ?? ?? 8B ?? 5? 89 ?? ?? 85 ?? 0F 84 } + $block_1 = { 48 ?? ?? 48 ?? ?? ?? ?? ?? ?? ?? 48 ?? ?? ?? ?? ?? ?? ?? E8 ?? ?? ?? ?? 48 ?? ?? 48 ?? ?? 0F 84 } + $block_2 = { 8B ?? ?? ?? 83 ?? ?? ?? ?? FE ?? ?? ?? 83 ?? ?? ?? ?? 8D ?? ?? ?? 8D ?? ?? ?? A5 A5 A5 A5 7C } + $block_3 = { 8B ?? ?? 8B ?? ?? 03 ?? 0F B6 ?? 6A ?? 5? 8D ?? ?? 89 ?? ?? E8 ?? ?? ?? ?? 83 ?? ?? 85 ?? 75 } + $block_4 = { 8D ?? ?? E8 ?? ?? ?? ?? 8D ?? ?? E8 ?? ?? ?? ?? 8D ?? ?? E8 ?? ?? ?? ?? 5? 5? 8B ?? 5? C9 C3 } + $block_5 = { FF 7? ?? 8B ?? ?? FF 7? ?? 8D ?? ?? 5? 8D ?? ?? 5? E8 ?? ?? ?? ?? 8B ?? 83 ?? ?? 85 ?? 0F 85 } + $block_6 = { 8D ?? ?? E8 ?? ?? ?? ?? 8D ?? ?? E8 ?? ?? ?? ?? 8D ?? ?? E8 ?? ?? ?? ?? 8B ?? 5? 5? 5? C9 C3 } + $block_7 = { 01 ?? ?? 68 ?? ?? ?? ?? FF 7? ?? 8D ?? ?? 8D ?? ?? E8 ?? ?? ?? ?? 8B ?? 83 ?? ?? 85 ?? 0F 85 } + $block_8 = { 8B ?? ?? 8B ?? ?? 03 ?? 0F B6 ?? 6A ?? 5? 8D ?? ?? 89 ?? ?? E8 ?? ?? ?? ?? 83 ?? ?? 85 ?? 74 } + $block_9 = { 0F B6 ?? 5? 0D ?? ?? ?? ?? 5? FF 7? ?? 8D ?? ?? 89 ?? E8 ?? ?? ?? ?? 8B ?? 83 ?? ?? 85 ?? 74 } + $block_10 = { 8B ?? ?? 5? FF 7? ?? 8D ?? ?? E8 ?? ?? ?? ?? 33 ?? 39 ?? ?? 5? 0F 94 ?? 8B ?? 5? 89 ?? ?? 8D } + $block_11 = { 8D ?? ?? 0F B6 ?? ?? ?? 0F B6 ?? ?? ?? C1 ?? ?? 0B ?? 03 ?? 8D ?? ?? ?? 39 ?? ?? ?? ?? ?? 74 } + $block_12 = { 0F B6 ?? 0F B6 ?? ?? C1 ?? ?? 66 ?? ?? 0F B7 ?? 83 ?? ?? 5? 89 ?? E8 ?? ?? ?? ?? 5? 85 ?? 75 } + $block_13 = { 8B ?? ?? 8B ?? ?? 8D ?? ?? ?? 5? 8D ?? ?? 83 ?? ?? 5? E8 ?? ?? ?? ?? 8B ?? 5? 5? 85 ?? 0F 85 } + $block_14 = { 2B ?? ?? 8B ?? ?? 83 ?? ?? ?? ?? 89 ?? 6A ?? 5? BF ?? ?? ?? ?? 8B ?? 33 ?? 66 ?? ?? 0F 85 } + $block_15 = { 5? 8B ?? 83 ?? ?? 5? 5? 6A ?? 6A ?? 6A ?? FF 1? ?? ?? ?? ?? A3 ?? ?? ?? ?? 83 ?? ?? 0F 84 } + $block_16 = { 8B ?? ?? 8B ?? E8 ?? ?? ?? ?? 8D ?? ?? ?? ?? ?? 5? 5? E8 ?? ?? ?? ?? 5? 5? 5? 5? 5? C9 C3 } + $block_17 = { 5? 8B ?? 81 E? ?? ?? ?? ?? 5? 8B ?? ?? 83 ?? ?? 83 ?? ?? ?? 5? 8D ?? ?? 5? 89 ?? ?? 0F 82 } + $block_18 = { 5? 8B ?? 83 ?? ?? 5? 5? 8B ?? 8D ?? ?? 6A ?? 5? 89 ?? ?? E8 ?? ?? ?? ?? 5? 5? 85 ?? 0F 84 } + $block_19 = { 0F B6 ?? ?? ?? 0F B6 ?? ?? ?? C1 ?? ?? 0B ?? 03 ?? 8D ?? ?? 6A ?? 5? 39 ?? ?? ?? ?? ?? 73 } + $block_20 = { 5? 8B ?? 83 ?? ?? 81 E? ?? ?? ?? ?? 8B ?? ?? 5? C1 ?? ?? 5? 5? 89 ?? ?? ?? 85 ?? 0F 84 } + $block_21 = { 8B ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 89 ?? ?? 8B ?? ?? 89 ?? ?? 33 ?? AB AB 8B ?? 5? E9 } + $block_22 = { 8D ?? ?? 5? 5? 8D ?? ?? 5? 8D ?? ?? 5? 8D ?? ?? 5? E8 ?? ?? ?? ?? 83 ?? ?? 85 ?? 0F 85 } + $block_23 = { 8D ?? ?? 5? FF 7? ?? 8B ?? 5? 5? E8 ?? ?? ?? ?? 8B ?? ?? 33 ?? 4? 83 ?? ?? 3B ?? 0F 86 } + $block_24 = { 8B ?? ?? 81 C? ?? ?? ?? ?? 6A ?? 8D ?? ?? 5? F3 ?? 0F B6 ?? ?? 89 ?? ?? 83 ?? ?? 0F 87 } + $block_25 = { 5? 8B ?? A5 A5 A5 A5 8D ?? ?? 6A ?? 5? FF 7? ?? 89 ?? ?? FF 5? ?? 83 ?? ?? 85 ?? 0F 85 } + $block_26 = { 5? 8B ?? 83 ?? ?? 83 ?? ?? ?? 5? 8B ?? ?? 6A ?? E8 ?? ?? ?? ?? 5? 89 ?? ?? 85 ?? 0F 85 } + $block_27 = { 8B ?? ?? 83 ?? ?? 5? 5? 89 ?? ?? 8D ?? ?? 5? E8 ?? ?? ?? ?? 8B ?? 83 ?? ?? 3B ?? 0F 85 } + $block_28 = { 8B ?? ?? 83 ?? ?? 5? 8D ?? ?? 5? 8D ?? ?? 5? E8 ?? ?? ?? ?? 8B ?? 83 ?? ?? 85 ?? 0F 85 } + $block_29 = { 8B ?? 6B ?? ?? 8D ?? ?? ?? 5? 8D ?? ?? 5? 5? E8 ?? ?? ?? ?? 8B ?? 83 ?? ?? 85 ?? 0F 85 } + $block_30 = { 48 ?? ?? ?? ?? ?? ?? ?? 48 ?? ?? ?? ?? ?? ?? ?? E8 ?? ?? ?? ?? 48 ?? ?? 48 ?? ?? 0F 84 } + $block_31 = { 8B ?? ?? ?? C1 ?? ?? 8A ?? 8A ?? ?? ?? 2A ?? 80 C? ?? D2 ?? 89 ?? ?? ?? 84 ?? 0F 85 } + $block_32 = { 0F B6 ?? ?? 89 ?? ?? 4? 5? 8D ?? ?? 5? 5? E8 ?? ?? ?? ?? 8B ?? 83 ?? ?? 85 ?? 0F 85 } + $block_33 = { 8B ?? 0F B6 ?? 6A ?? FF 7? ?? 8D ?? ?? 8B ?? 89 ?? E8 ?? ?? ?? ?? 83 ?? ?? 85 ?? 75 } + $block_34 = { 8D ?? ?? ?? 5? 5? 8D ?? ?? ?? 5? 5? 5? E8 ?? ?? ?? ?? 8B ?? ?? 83 ?? ?? 85 ?? 0F 84 } + $block_35 = { 8A ?? 88 ?? ?? 0F B6 ?? 4? FE ?? ?? C6 ?? ?? ?? 8A ?? ?? ?? ?? ?? 88 ?? ?? 84 ?? 79 } + $block_36 = { 8B ?? ?? 8B ?? ?? 8B ?? 8D ?? ?? A5 A5 A5 A5 8B ?? ?? E8 ?? ?? ?? ?? 6A ?? 8B ?? 5? } + $block_37 = { 8B ?? ?? 8B ?? E8 ?? ?? ?? ?? 8D ?? ?? 6A ?? 5? E8 ?? ?? ?? ?? 5? 5? 5? 5? 5? C9 C3 } + $block_38 = { 33 ?? 5? 0F B6 ?? ?? 4? 8B ?? 8B ?? D3 ?? 8D ?? ?? D3 ?? 89 ?? ?? 4? 39 ?? ?? 76 } + $block_39 = { 0F B6 ?? 0F B6 ?? ?? 66 ?? ?? ?? 66 ?? ?? 0F B7 ?? 5? E8 ?? ?? ?? ?? 5? 85 ?? 74 } + $block_40 = { 8D ?? ?? 5? 8D ?? ?? ?? ?? ?? 5? 8D ?? ?? E8 ?? ?? ?? ?? 8B ?? 5? 5? 85 ?? 0F 85 } + $block_41 = { 0F B6 ?? 0F B6 ?? ?? C1 ?? ?? 0B ?? 83 ?? ?? 89 ?? ?? 03 ?? 89 ?? ?? 3B ?? 0F 85 } + $block_42 = { 8B ?? ?? FF 7? ?? 8D ?? ?? 5? 8D ?? ?? ?? ?? ?? E8 ?? ?? ?? ?? 5? 5? 85 ?? 0F 85 } + $block_43 = { 0F B6 ?? 89 ?? 8B ?? 03 ?? ?? 6A ?? 8D ?? ?? 5? E8 ?? ?? ?? ?? 83 ?? ?? 85 ?? 75 } + $block_44 = { FF 7? ?? 8D ?? ?? FF 7? ?? 8D ?? ?? ?? 89 ?? ?? E8 ?? ?? ?? ?? 5? 5? 85 ?? 0F 85 } + $block_45 = { 8B ?? 8D ?? ?? ?? E8 ?? ?? ?? ?? 8B ?? ?? ?? 8B ?? ?? ?? 89 ?? ?? ?? 3B ?? 0F 86 } + $block_46 = { 5? 8B ?? 83 ?? ?? 5? 8B ?? ?? 8B ?? ?? 8B ?? ?? ?? ?? ?? 83 ?? ?? ?? 5? 5? 0F 84 } + $block_47 = { 8B ?? ?? 89 ?? ?? 03 ?? 5? 8B ?? ?? 03 ?? 8D ?? ?? E8 ?? ?? ?? ?? 5? 85 ?? 0F 85 } + $block_48 = { 8D ?? ?? 5? 5? 89 ?? ?? 8D ?? ?? 5? E8 ?? ?? ?? ?? 8B ?? 83 ?? ?? 3B ?? 0F 85 } + $block_49 = { 0F B6 ?? ?? ?? 0F B6 ?? ?? ?? C1 ?? ?? 0B ?? 83 ?? ?? 81 F? ?? ?? ?? ?? 0F 82 } + $block_50 = { 8B ?? ?? 8B ?? ?? C1 ?? ?? 5? 8D ?? ?? E8 ?? ?? ?? ?? 5? 89 ?? ?? 85 ?? 0F 85 } + $block_51 = { 8D ?? ?? 5? 8D ?? ?? 5? 8D ?? ?? 5? E8 ?? ?? ?? ?? 8B ?? 83 ?? ?? 85 ?? 0F 85 } + $block_52 = { 8B ?? 6B ?? ?? 8D ?? ?? ?? ?? ?? ?? 5? E8 ?? ?? ?? ?? 5? 89 ?? ?? 85 ?? 0F 85 } + $block_53 = { 8D ?? ?? 5? 8D ?? ?? 5? 8D ?? ?? 5? E8 ?? ?? ?? ?? 8B ?? 83 ?? ?? 3B ?? 0F 85 } + $block_54 = { FF 3? 8D ?? ?? ?? 5? 8D ?? ?? ?? 5? E8 ?? ?? ?? ?? 8B ?? 83 ?? ?? 85 ?? 0F 85 } + $block_55 = { 03 ?? 8D ?? ?? ?? ?? ?? 5? 8B ?? 8D ?? ?? E8 ?? ?? ?? ?? 83 ?? ?? 85 ?? 0F 88 } + $block_56 = { 80 7? ?? ?? ?? 8A ?? 0F 95 ?? 0A ?? 33 ?? 3A ?? 0F 95 ?? 0F AF ?? 09 ?? 4? 75 } + $block_57 = { 8B ?? ?? 8B ?? ?? 8D ?? ?? 0F B7 ?? ?? 8B ?? ?? 8D ?? ?? 8B ?? ?? 03 ?? 89 } + $block_58 = { 8A ?? ?? 88 ?? ?? 8A ?? ?? 88 ?? ?? 8A ?? ?? 88 ?? ?? 8B ?? ?? 5? 5? C9 C3 } + $block_59 = { 0F B6 ?? 0F B6 ?? ?? 0F B6 ?? ?? C1 ?? ?? 0B ?? C1 ?? ?? 0B ?? 89 ?? ?? 75 } + $block_60 = { 8D ?? ?? 5? FF 7? ?? 8D ?? ?? 5? E8 ?? ?? ?? ?? 8B ?? 83 ?? ?? 85 ?? 0F 85 } + $block_61 = { 8B ?? E8 ?? ?? ?? ?? 8D ?? ?? 6A ?? 5? E8 ?? ?? ?? ?? 5? 5? 5? 5? 5? C9 C3 } + $block_62 = { 8B ?? ?? 89 ?? ?? E8 ?? ?? ?? ?? 8B ?? 8D ?? ?? E8 ?? ?? ?? ?? 85 ?? 0F 85 } + $block_63 = { 5? 8B ?? 0F B6 ?? ?? 5? 0F B6 ?? C1 ?? ?? 0B ?? 8D ?? ?? 5? 3B ?? ?? 0F 85 } + $block_64 = { 8D ?? ?? 5? 8D ?? ?? 8D ?? ?? ?? ?? ?? E8 ?? ?? ?? ?? 8B ?? 5? 85 ?? 0F 85 } + $block_65 = { 8B ?? ?? 89 ?? ?? 8B ?? ?? 4? 5? 8B ?? E8 ?? ?? ?? ?? 83 ?? ?? 85 ?? 0F 88 } + $block_66 = { 89 ?? ?? 8B ?? 89 ?? ?? 8D ?? ?? ?? 8D ?? ?? ?? E8 ?? ?? ?? ?? 85 ?? 0F 8F } + $block_67 = { 8B ?? ?? 83 ?? ?? 0F 94 ?? 89 ?? ?? 8D ?? ?? E8 ?? ?? ?? ?? 83 ?? ?? ?? 74 } + $block_68 = { 8D ?? ?? 5? 8D ?? ?? 5? 8D ?? ?? E8 ?? ?? ?? ?? 8B ?? 5? 5? 85 ?? 0F 85 } + $block_69 = { 8D ?? ?? ?? ?? ?? 5? 5? 5? 89 ?? ?? E8 ?? ?? ?? ?? 83 ?? ?? 85 ?? 0F 85 } + $block_70 = { 6A ?? 8D ?? ?? 5? 8D ?? ?? 5? E8 ?? ?? ?? ?? 8B ?? 83 ?? ?? 85 ?? 0F 85 } + $block_71 = { 5? 8B ?? ?? 8B ?? ?? BF ?? ?? ?? ?? 03 ?? E8 ?? ?? ?? ?? 5? 85 ?? 0F 84 } + $block_72 = { 0F B6 ?? ?? 8B ?? ?? 8A ?? ?? 32 ?? 88 ?? 4? 4? 83 ?? ?? 83 ?? ?? ?? 75 } + $block_73 = { 5? 0F B6 ?? 0F B6 ?? ?? C1 ?? ?? 0B ?? 8D ?? ?? 89 ?? 3D ?? ?? ?? ?? 77 } + $block_74 = { 8D ?? ?? E8 ?? ?? ?? ?? 8B ?? 8D ?? ?? E8 ?? ?? ?? ?? 8B ?? 85 ?? 0F 85 } + $block_75 = { 8D ?? ?? ?? ?? ?? 68 ?? ?? ?? ?? 5? E8 ?? ?? ?? ?? 5? 5? 85 ?? 0F 85 } + $block_76 = { 83 ?? ?? 8D ?? ?? 5? 5? 5? E8 ?? ?? ?? ?? 8B ?? 83 ?? ?? 85 ?? 0F 85 } + $block_77 = { 8D ?? ?? 5? 5? 8D ?? ?? 5? E8 ?? ?? ?? ?? 8B ?? 83 ?? ?? 3B ?? 0F 85 } + $block_78 = { 8D ?? ?? 5? 8D ?? ?? 5? 5? E8 ?? ?? ?? ?? 8B ?? 83 ?? ?? 3B ?? 0F 85 } + $block_79 = { 83 ?? ?? ?? E8 ?? ?? ?? ?? 8B ?? 8D ?? ?? E8 ?? ?? ?? ?? 85 ?? 0F 85 } + $block_80 = { 8D ?? ?? ?? 8B ?? E8 ?? ?? ?? ?? 8B ?? ?? 8B ?? 8B ?? ?? 0F AF ?? 89 } + $block_81 = { 8B ?? ?? 8B ?? ?? 8D ?? ?? 8B ?? 89 ?? ?? E8 ?? ?? ?? ?? 85 ?? 0F 89 } + $block_82 = { 2B ?? 5? 8D ?? ?? ?? 89 ?? ?? ?? E8 ?? ?? ?? ?? 8B ?? 5? 85 ?? 0F 85 } + $block_83 = { 5? 8B ?? 5? 5? 8B ?? ?? ?? ?? ?? 5? 8B ?? 8B ?? ?? 5? 83 ?? ?? 0F 85 } + $block_84 = { 0F B6 ?? ?? 5? 0F B6 ?? 83 ?? ?? C1 ?? ?? 0B ?? 2B ?? 89 ?? 3B ?? 7D } + $block_85 = { 5? 8D ?? ?? 5? 8D ?? ?? 5? E8 ?? ?? ?? ?? 8B ?? 83 ?? ?? 85 ?? 0F 85 } + $block_86 = { 8D ?? ?? 5? 5? 8D ?? ?? 5? E8 ?? ?? ?? ?? 8B ?? 83 ?? ?? 85 ?? 0F 85 } + $block_87 = { 8B ?? ?? FF 7? ?? 83 ?? ?? 5? FF 7? ?? FF 5? ?? 83 ?? ?? 85 ?? 0F 85 } + $block_88 = { 8B ?? ?? 8D ?? ?? 0F B6 ?? ?? 0F B6 ?? ?? C1 ?? ?? 0B ?? 89 ?? ?? 76 } + $block_89 = { 8B ?? ?? 83 ?? ?? ?? 83 ?? ?? ?? 4? 8D ?? ?? A5 A5 A5 A5 89 ?? ?? 75 } + $block_90 = { D1 ?? 04 ?? 14 ?? 3A ?? ?? 1B ?? 1C ?? 0F 9C ?? 5? 18 ?? 22 ?? 4? CF } + $block_91 = { 33 ?? 39 ?? ?? 0F 94 ?? 21 ?? ?? 8B ?? ?? 69 ?? ?? ?? ?? ?? 23 ?? E9 } + + condition: + hash.sha256(0, filesize) == "4bd548fe07b19178281edb1ee81c9711525dab03dc0b6676963019c44cc75865" or + hash.sha256(0, filesize) == "d026f0ca46a82907f3cdd31cbe1b0d7c3ca2c7b90892a855549ab21d456df5b3" or + hash.sha256(0, filesize) == "ca03a812cc11edf1efba5a14bc78494cf6c227e60df7a69b4606f2bbaaafaf7a" or + hash.sha256(0, filesize) == "c84c779ae60885dac387db3d747d30dd1a889506262b1a7b41be6690883db0e6" or + hash.sha256(0, filesize) == "2291700fb2908bb55eb76b3c319908b09e885f1a4700f17ba3c8ada9193b7ae5" or + hash.sha256(0, filesize) == "8cbe98930191e4c2e8f9e1a67d4b4cf828e37314728456cf4c00e5435d4878f6" or + hash.sha256(0, filesize) == "973f5084662fd80d886d518c9295a1a24fcfcd8843a628f98f5223847d4b4cf1" or + hash.sha256(0, filesize) == "c3b8f989d3ab2587fa2d15487cc0933113f5d1ba3f181f3d3a2eedfd830a9ad4" or + hash.sha256(0, filesize) == "c9272ed0e0266e5ecc5af0cd7760175789d41b5a7814d9e6e338b7d836f9796d" or + hash.sha256(0, filesize) == "f7f003b6f3b77e3cb21d27218634236cdc853c7b71f353c1ef6583992a42b8b5" or + hash.sha256(0, filesize) == "544f05d18b4c3e5ed8defe313951d7afde9e3c46201ea34f4fe8b1888369b606" or + 12 of them +} + +rule WildNeutronHacktool_MultiPurpose { + meta: + Author = "Intezer Analyze" + Reference = "https://apt-ecosystem.com" + + strings: + $block_0 = { 4C ?? ?? 49 ?? ?? ?? 49 ?? ?? ?? 4D ?? ?? ?? 4D ?? ?? ?? 5? 5? 5? 48 ?? ?? ?? ?? ?? ?? 48 ?? ?? ?? ?? ?? ?? ?? ?? 48 ?? ?? ?? ?? ?? ?? 48 ?? ?? 48 ?? ?? ?? ?? ?? ?? ?? 49 ?? ?? ?? B8 ?? ?? ?? ?? 66 ?? ?? ?? ?? 48 ?? ?? ?? ?? ?? ?? 49 ?? ?? ?? ?? ?? ?? 48 ?? ?? ?? ?? ?? ?? 49 ?? ?? ?? ?? ?? ?? 48 ?? ?? ?? ?? ?? ?? 49 ?? ?? ?? ?? ?? ?? 0F B7 ?? ?? ?? ?? ?? 66 ?? ?? ?? ?? ?? ?? ?? 0F B6 ?? ?? ?? ?? ?? 88 ?? ?? ?? ?? ?? ?? 48 ?? ?? ?? ?? 48 ?? ?? ?? ?? 41 ?? ?? ?? ?? ?? 45 ?? ?? 48 ?? ?? ?? ?? ?? ?? 48 ?? ?? ?? ?? ?? ?? FF 1? ?? ?? ?? ?? 85 ?? 0F 85 } + $block_1 = { 48 ?? ?? ?? ?? FF 1? ?? ?? ?? ?? 0F B7 ?? ?? ?? 0F B7 ?? ?? ?? 0F B7 ?? ?? ?? 89 ?? ?? ?? 89 ?? ?? ?? 89 ?? ?? ?? 4C ?? ?? ?? ?? ?? ?? 49 ?? ?? ?? BA ?? ?? ?? ?? 48 ?? ?? ?? ?? ?? ?? ?? E8 ?? ?? ?? ?? 4C ?? ?? 4C ?? ?? ?? ?? ?? ?? ?? BA ?? ?? ?? ?? 48 ?? ?? ?? ?? ?? ?? ?? E8 ?? ?? ?? ?? 83 ?? ?? 75 } + $block_2 = { 48 ?? ?? ?? ?? ?? ?? 48 ?? ?? ?? ?? ?? ?? 48 ?? ?? 48 ?? ?? ?? ?? ?? ?? ?? 48 ?? ?? ?? ?? ?? ?? 48 ?? ?? ?? ?? 48 ?? ?? ?? ?? ?? ?? 48 ?? ?? ?? ?? 48 ?? ?? ?? ?? ?? ?? 48 ?? ?? ?? ?? 0F B7 ?? ?? ?? ?? ?? 66 ?? ?? ?? ?? 0F B6 ?? ?? ?? ?? ?? 88 ?? ?? ?? E8 ?? ?? ?? ?? 85 ?? 0F 84 } + $block_3 = { 33 ?? 48 ?? ?? ?? ?? 4C ?? ?? ?? ?? ?? ?? 48 ?? ?? ?? ?? ?? ?? ?? 48 ?? ?? ?? ?? E8 ?? ?? ?? ?? 48 ?? ?? ?? ?? 0F 84 } + $block_4 = { 41 ?? ?? ?? ?? ?? 48 ?? ?? ?? ?? ?? ?? ?? 48 ?? ?? ?? ?? ?? ?? ?? FF 1? ?? ?? ?? ?? 85 ?? 0F 84 } + + condition: + hash.sha256(0, filesize) == "1d3bdabb350ba5a821849893dabe5d6056bf7ba1ed6042d93174ceeaa5d6dad7" or + 5 of them +} + +rule WildNeutronPasswordDumper { + meta: + Author = "Intezer Analyze" + Reference = "https://apt-ecosystem.com" + + strings: + $block_0 = { 4C ?? ?? ?? ?? ?? ?? ?? 48 ?? ?? ?? 48 ?? ?? 48 ?? ?? ?? ?? ?? ?? ?? 48 ?? ?? ?? 48 ?? ?? 48 ?? ?? ?? ?? ?? ?? ?? 66 ?? ?? ?? ?? ?? ?? ?? ?? 0F B6 ?? ?? 44 ?? ?? ?? ?? B9 ?? ?? ?? ?? 8D ?? ?? 41 ?? ?? ?? ?? ?? 41 ?? ?? ?? ?? ?? 83 ?? ?? 41 ?? ?? ?? ?? ?? 41 ?? ?? ?? ?? ?? 0F 46 ?? 0F B6 ?? ?? BF ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? ?? 8D ?? ?? B9 ?? ?? ?? ?? 83 ?? ?? 0F 46 ?? 0F B6 ?? ?? 89 ?? ?? ?? ?? ?? ?? 8D ?? ?? B9 ?? ?? ?? ?? 83 ?? ?? 0F 46 ?? 0F B6 ?? ?? 89 ?? ?? ?? ?? ?? ?? 8D ?? ?? B9 ?? ?? ?? ?? 83 ?? ?? 0F 46 ?? 0F B6 ?? ?? 89 ?? ?? ?? ?? ?? ?? 8D ?? ?? B9 ?? ?? ?? ?? 83 ?? ?? 0F 46 ?? 0F B6 ?? ?? 89 ?? ?? ?? ?? ?? ?? 8D ?? ?? B9 ?? ?? ?? ?? 83 ?? ?? 0F 46 ?? 0F B6 ?? ?? 89 ?? ?? ?? ?? ?? ?? 8D ?? ?? B9 ?? ?? ?? ?? 83 ?? ?? 0F 46 ?? 0F B6 ?? ?? 89 ?? ?? ?? ?? ?? ?? 8D ?? ?? B9 ?? ?? ?? ?? 83 ?? ?? 0F 46 ?? 89 ?? ?? ?? ?? ?? ?? 0F B6 ?? ?? 8D ?? ?? 83 ?? ?? 44 ?? ?? ?? 0F B6 ?? ?? BE ?? ?? ?? ?? 8D ?? ?? 83 ?? ?? 41 ?? ?? ?? 44 ?? ?? ?? 48 ?? ?? ?? ?? ?? ?? ?? 83 ?? ?? 44 ?? ?? ?? ?? 0F B6 ?? ?? 0F B6 ?? ?? 44 ?? ?? ?? ?? 41 ?? ?? ?? 41 ?? ?? ?? 83 ?? ?? 8D ?? ?? 45 ?? ?? ?? 83 ?? ?? 8D ?? ?? 44 ?? ?? ?? 83 ?? ?? 41 ?? ?? ?? 0F 46 ?? 44 ?? ?? ?? 83 ?? ?? BA ?? ?? ?? ?? 41 ?? ?? ?? 41 ?? ?? ?? B9 ?? ?? ?? ?? 83 ?? ?? 8B ?? ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? ?? 41 ?? ?? ?? 89 ?? ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? ?? 44 ?? ?? ?? ?? ?? ?? ?? 44 ?? ?? ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? ?? 48 ?? ?? ?? ?? ?? ?? ?? 44 ?? ?? ?? ?? ?? ?? ?? 0F B6 ?? ?? 44 ?? ?? ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? ?? 0F B6 ?? ?? 4C ?? ?? ?? ?? ?? ?? 48 ?? ?? ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? ?? 0F B6 ?? ?? 89 ?? ?? ?? ?? ?? ?? 0F B6 ?? ?? 89 ?? ?? ?? 0F B6 ?? ?? 89 ?? ?? ?? 0F B6 ?? ?? 89 ?? ?? ?? 0F B6 ?? ?? 89 ?? ?? ?? 0F B6 ?? ?? 89 ?? ?? ?? 0F B6 ?? ?? 89 ?? ?? ?? 0F B6 ?? ?? 89 ?? ?? ?? 44 ?? ?? ?? ?? 44 ?? ?? ?? ?? 89 ?? ?? ?? 41 ?? ?? ?? ?? ?? 89 ?? ?? ?? 41 ?? ?? 44 ?? ?? ?? ?? E8 ?? ?? ?? ?? 4C ?? ?? ?? ?? ?? ?? ?? 4D ?? ?? 74 } + $block_1 = { 0F B6 ?? ?? 44 ?? ?? ?? ?? B9 ?? ?? ?? ?? 8D ?? ?? 41 ?? ?? ?? ?? ?? 41 ?? ?? ?? ?? ?? 83 ?? ?? 41 ?? ?? ?? ?? ?? 41 ?? ?? ?? ?? ?? 0F 46 ?? 0F B6 ?? ?? BF ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? ?? 8D ?? ?? B9 ?? ?? ?? ?? 83 ?? ?? 0F 46 ?? 0F B6 ?? ?? 89 ?? ?? ?? ?? ?? ?? 8D ?? ?? B9 ?? ?? ?? ?? 83 ?? ?? 0F 46 ?? 0F B6 ?? ?? 89 ?? ?? ?? ?? ?? ?? 8D ?? ?? B9 ?? ?? ?? ?? 83 ?? ?? 0F 46 ?? 0F B6 ?? ?? 89 ?? ?? ?? ?? ?? ?? 8D ?? ?? B9 ?? ?? ?? ?? 83 ?? ?? 0F 46 ?? 0F B6 ?? ?? 89 ?? ?? ?? ?? ?? ?? 8D ?? ?? B9 ?? ?? ?? ?? 83 ?? ?? 0F 46 ?? 0F B6 ?? ?? 89 ?? ?? ?? ?? ?? ?? 8D ?? ?? B9 ?? ?? ?? ?? 83 ?? ?? 0F 46 ?? 0F B6 ?? ?? 89 ?? ?? ?? ?? ?? ?? 8D ?? ?? B9 ?? ?? ?? ?? 83 ?? ?? 0F 46 ?? 89 ?? ?? ?? ?? ?? ?? 0F B6 ?? ?? 8D ?? ?? 83 ?? ?? 44 ?? ?? ?? 0F B6 ?? ?? BE ?? ?? ?? ?? 8D ?? ?? 83 ?? ?? 41 ?? ?? ?? 44 ?? ?? ?? 48 ?? ?? ?? ?? ?? ?? ?? 83 ?? ?? 44 ?? ?? ?? ?? 0F B6 ?? ?? 0F B6 ?? ?? 44 ?? ?? ?? ?? 41 ?? ?? ?? 41 ?? ?? ?? 83 ?? ?? 8D ?? ?? 45 ?? ?? ?? 83 ?? ?? 8D ?? ?? 44 ?? ?? ?? 83 ?? ?? 41 ?? ?? ?? 0F 46 ?? 44 ?? ?? ?? 83 ?? ?? BA ?? ?? ?? ?? 41 ?? ?? ?? 41 ?? ?? ?? B9 ?? ?? ?? ?? 83 ?? ?? 8B ?? ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? ?? 41 ?? ?? ?? 89 ?? ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? ?? 44 ?? ?? ?? ?? ?? ?? ?? 44 ?? ?? ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? ?? 48 ?? ?? ?? ?? ?? ?? ?? 44 ?? ?? ?? ?? ?? ?? ?? 0F B6 ?? ?? 44 ?? ?? ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? ?? 0F B6 ?? ?? 4C ?? ?? ?? ?? ?? ?? 48 ?? ?? ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? ?? 0F B6 ?? ?? 89 ?? ?? ?? ?? ?? ?? 0F B6 ?? ?? 89 ?? ?? ?? 0F B6 ?? ?? 89 ?? ?? ?? 0F B6 ?? ?? 89 ?? ?? ?? 0F B6 ?? ?? 89 ?? ?? ?? 0F B6 ?? ?? 89 ?? ?? ?? 0F B6 ?? ?? 89 ?? ?? ?? 0F B6 ?? ?? 89 ?? ?? ?? 44 ?? ?? ?? ?? 44 ?? ?? ?? ?? 89 ?? ?? ?? 41 ?? ?? ?? ?? ?? 89 ?? ?? ?? 41 ?? ?? 44 ?? ?? ?? ?? E8 ?? ?? ?? ?? 4C ?? ?? ?? ?? ?? ?? ?? 4D ?? ?? 74 } + $block_2 = { 48 ?? ?? ?? ?? FF 1? ?? ?? ?? ?? 0F B7 ?? ?? ?? 0F B7 ?? ?? ?? 0F B7 ?? ?? ?? 89 ?? ?? ?? 89 ?? ?? ?? 89 ?? ?? ?? 4C ?? ?? ?? ?? ?? ?? 49 ?? ?? ?? BA ?? ?? ?? ?? 48 ?? ?? ?? ?? ?? ?? ?? E8 ?? ?? ?? ?? 4C ?? ?? 4C ?? ?? ?? ?? ?? ?? ?? BA ?? ?? ?? ?? 48 ?? ?? ?? ?? ?? ?? ?? E8 ?? ?? ?? ?? 33 ?? 48 ?? ?? ?? 48 ?? ?? ?? ?? ?? ?? ?? F2 ?? 48 ?? ?? 48 ?? ?? ?? 4C ?? ?? ?? ?? 44 ?? ?? ?? 48 ?? ?? ?? ?? ?? ?? ?? E8 ?? ?? ?? ?? 33 ?? 48 ?? ?? ?? 48 ?? ?? ?? ?? ?? ?? ?? F2 ?? 48 ?? ?? 48 ?? ?? ?? 4C ?? ?? ?? ?? 44 ?? ?? ?? 48 ?? ?? ?? ?? ?? ?? ?? E8 ?? ?? ?? ?? 33 ?? 48 ?? ?? ?? 48 ?? ?? ?? ?? F2 ?? 48 ?? ?? 48 ?? ?? ?? 4C ?? ?? ?? ?? 44 ?? ?? ?? 48 ?? ?? ?? ?? E8 ?? ?? ?? ?? 48 ?? ?? ?? ?? E8 ?? ?? ?? ?? 9? } + $block_3 = { 4C ?? ?? 49 ?? ?? ?? 49 ?? ?? ?? 4D ?? ?? ?? 4D ?? ?? ?? 5? 48 ?? ?? ?? ?? ?? ?? 48 ?? ?? ?? ?? ?? ?? ?? ?? 48 ?? ?? ?? ?? ?? ?? 48 ?? ?? 48 ?? ?? ?? ?? ?? ?? ?? 49 ?? ?? ?? B8 ?? ?? ?? ?? 66 ?? ?? ?? ?? 48 ?? ?? ?? ?? ?? ?? 48 ?? ?? ?? ?? 48 ?? ?? ?? ?? ?? ?? 48 ?? ?? ?? ?? 48 ?? ?? ?? ?? ?? ?? 48 ?? ?? ?? ?? 0F B7 ?? ?? ?? ?? ?? 66 ?? ?? ?? ?? ?? ?? ?? 41 ?? ?? ?? ?? ?? 49 ?? ?? ?? ?? ?? ?? 48 ?? ?? ?? ?? FF 1? ?? ?? ?? ?? 85 ?? 0F 84 } + $block_4 = { 48 ?? ?? ?? ?? ?? ?? 4C ?? ?? ?? ?? ?? ?? ?? FF 1? ?? ?? ?? ?? 48 ?? ?? ?? ?? ?? ?? 48 ?? ?? 4C ?? ?? FF 1? ?? ?? ?? ?? 48 ?? ?? ?? ?? ?? ?? 49 ?? ?? 48 ?? ?? ?? ?? ?? ?? FF 1? ?? ?? ?? ?? 48 ?? ?? ?? ?? ?? ?? 49 ?? ?? 48 ?? ?? ?? ?? ?? ?? FF 1? ?? ?? ?? ?? 48 ?? ?? ?? ?? ?? ?? 49 ?? ?? 48 ?? ?? ?? ?? ?? ?? FF 1? ?? ?? ?? ?? 48 ?? ?? ?? ?? ?? ?? 48 ?? ?? ?? ?? ?? ?? 48 ?? ?? 0F 84 } + $block_5 = { 48 ?? ?? ?? ?? 5? 48 ?? ?? ?? 33 ?? 48 ?? ?? ?? ?? ?? ?? 41 ?? ?? ?? ?? ?? 48 ?? ?? ?? ?? 89 ?? ?? ?? 8D ?? ?? 44 ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? ?? 89 ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? ?? FF 1? ?? ?? ?? ?? 48 ?? ?? 48 ?? ?? ?? 0F 84 } + $block_6 = { 48 ?? ?? ?? ?? ?? ?? ?? 4C ?? ?? ?? ?? ?? ?? ?? 48 ?? ?? ?? ?? ?? ?? 33 ?? 41 ?? ?? ?? ?? ?? 4C ?? ?? ?? ?? ?? ?? ?? 4C ?? ?? ?? ?? ?? ?? ?? E8 ?? ?? ?? ?? 45 ?? ?? 33 ?? 4D ?? ?? 45 ?? ?? ?? 45 ?? ?? 0F 8E } + $block_7 = { 48 ?? ?? ?? ?? ?? ?? ?? ?? 4C ?? ?? ?? ?? ?? ?? 48 ?? ?? ?? ?? ?? ?? ?? 48 ?? ?? ?? ?? E8 ?? ?? ?? ?? 48 ?? ?? ?? ?? ?? 0F 84 } + $block_8 = { 4C ?? ?? ?? ?? 41 ?? ?? ?? ?? ?? 48 ?? ?? 49 ?? ?? 48 ?? ?? ?? ?? 48 ?? ?? ?? ?? FF 1? ?? ?? ?? ?? 85 ?? 0F 84 } + $block_9 = { 4C ?? ?? ?? ?? 41 ?? ?? ?? ?? ?? 48 ?? ?? 49 ?? ?? 48 ?? ?? ?? ?? FF 1? ?? ?? ?? ?? 85 ?? 0F 85 } + + condition: + hash.sha256(0, filesize) == "9e67848919e4adc9d74aee76858981465c60cc830638fe7cee97cecf4e9bebaf" or + hash.sha256(0, filesize) == "6f00e11ea02918c6c8d5435326ccf9f12a4cae97d8fdcc7e4a5bf1fbfd97ca0a" or + 10 of them +} + +rule WildNeutronProxy { + meta: + Author = "Intezer Analyze" + Reference = "https://apt-ecosystem.com" + + strings: + $block_0 = { 0B ?? 23 ?? 23 ?? 8B ?? C1 ?? ?? 81 E? ?? ?? ?? ?? 8B ?? 81 E? ?? ?? ?? ?? 0B ?? C1 ?? ?? 8B ?? 81 E? ?? ?? ?? ?? 0B ?? C1 ?? ?? 8B ?? 81 E? ?? ?? ?? ?? 0B ?? D1 ?? BE ?? ?? ?? ?? 8B ?? 23 ?? 0B ?? C1 ?? ?? 8B ?? 81 E? ?? ?? ?? ?? 0B ?? 8B ?? 23 ?? 0B ?? C1 ?? ?? 8B ?? 81 E? ?? ?? ?? ?? 0B ?? D1 ?? 8B ?? 81 E? ?? ?? ?? ?? 0B ?? D1 ?? 8B ?? 83 ?? ?? 0B ?? C1 ?? ?? 8B ?? 81 E? ?? ?? ?? ?? 0B ?? 8B ?? 81 E? ?? ?? ?? ?? 0B ?? 8B ?? 83 ?? ?? C1 ?? ?? 8B ?? 81 E? ?? ?? ?? ?? 0B ?? C1 ?? ?? 8B ?? 81 E? ?? ?? ?? ?? 0B ?? C1 ?? ?? 8B ?? 81 E? ?? ?? ?? ?? 0B ?? 03 ?? 8B ?? 81 E? ?? ?? ?? ?? 0B ?? C1 ?? ?? 8B ?? 83 ?? ?? 0B ?? 8B ?? 81 E? ?? ?? ?? ?? 0B ?? C1 ?? ?? 8B ?? 81 E? ?? ?? ?? ?? 0B ?? 8B ?? D1 ?? C1 ?? ?? 23 ?? 0B ?? C1 ?? ?? 0B ?? 8B ?? 81 E? ?? ?? ?? ?? 0B ?? 8B ?? ?? 89 ?? 8B ?? 83 ?? ?? C1 ?? ?? 8B ?? 81 E? ?? ?? ?? ?? 0B ?? 03 ?? 8B ?? 83 ?? ?? 0B ?? 03 ?? 8B ?? 81 E? ?? ?? ?? ?? 0B ?? C1 ?? ?? 8B ?? 81 E? ?? ?? ?? ?? 0B ?? 03 ?? 8B ?? 81 E? ?? ?? ?? ?? 0B ?? C1 ?? ?? 8B ?? 83 ?? ?? 0B ?? 03 ?? 8B ?? 83 ?? ?? 0B ?? C1 ?? ?? 8B ?? 81 E? ?? ?? ?? ?? 0B ?? 03 ?? 8B ?? 83 ?? ?? 0B ?? 03 ?? 8B ?? 81 E? ?? ?? ?? ?? 0B ?? 8B ?? C1 ?? ?? 23 ?? 83 ?? ?? ?? 8B ?? 81 E? ?? ?? ?? ?? 0B ?? C1 ?? ?? 8B ?? 81 E? ?? ?? ?? ?? 0B ?? C1 ?? ?? 8B ?? 81 E? ?? ?? ?? ?? 0B ?? D1 ?? 8B ?? 81 E? ?? ?? ?? ?? 0B ?? C1 ?? ?? 8B ?? 81 E? ?? ?? ?? ?? 0B ?? D1 ?? 8B ?? 81 E? ?? ?? ?? ?? 0B ?? 8B ?? 03 ?? D1 ?? 81 E? ?? ?? ?? ?? 0B ?? 8B ?? 23 ?? 0B ?? C1 ?? ?? 0B ?? 8B ?? 81 E? ?? ?? ?? ?? 0B ?? 8B ?? ?? 83 ?? ?? ?? FF 4? ?? 83 ?? ?? ?? 89 ?? 0F 8C } + $block_1 = { 5? 8B ?? 5? 0F B6 ?? 0F B6 ?? ?? C1 ?? ?? 0B ?? 0F B6 ?? ?? C1 ?? ?? 0B ?? 0F B6 ?? ?? 5? C1 ?? ?? 0B ?? 0F B6 ?? ?? 5? 0F B6 ?? ?? C1 ?? ?? 0B ?? 0F B6 ?? ?? 0F B6 ?? ?? C1 ?? ?? 0B ?? 5? C1 ?? ?? 0B ?? 8B ?? C1 ?? ?? 33 ?? 81 E? ?? ?? ?? ?? 33 ?? C1 ?? ?? 33 ?? 8B ?? 33 ?? 81 E? ?? ?? ?? ?? 33 ?? 33 ?? 8B ?? C1 ?? ?? 6A ?? 5? 23 ?? 8B ?? ?? ?? ?? ?? ?? 81 E? ?? ?? ?? ?? C1 ?? ?? 8B ?? C1 ?? ?? 8B ?? ?? ?? ?? ?? ?? 81 E? ?? ?? ?? ?? 0B ?? 8B ?? 23 ?? 8B ?? ?? ?? ?? ?? ?? 81 E? ?? ?? ?? ?? 03 ?? 0B ?? 8B ?? C1 ?? ?? 23 ?? 8B ?? ?? ?? ?? ?? ?? 81 E? ?? ?? ?? ?? 03 ?? 0B ?? 8B ?? C1 ?? ?? 23 ?? 8B ?? ?? ?? ?? ?? ?? 81 E? ?? ?? ?? ?? 03 ?? 0B ?? 8B ?? C1 ?? ?? 23 ?? 8B ?? ?? ?? ?? ?? ?? 8B ?? C1 ?? ?? 03 ?? 23 ?? 0B ?? ?? ?? ?? ?? ?? C1 ?? ?? 03 ?? C1 ?? ?? 23 ?? 0B ?? ?? ?? ?? ?? ?? 8B ?? 81 E? ?? ?? ?? ?? 0B ?? C1 ?? ?? 23 ?? 8B ?? ?? ?? ?? ?? ?? 25 ?? ?? ?? ?? 8B ?? C1 ?? ?? 23 ?? 8B ?? ?? ?? ?? ?? ?? 81 E? ?? ?? ?? ?? 03 ?? 0B ?? 8B ?? C1 ?? ?? 8B ?? ?? ?? ?? ?? ?? 81 E? ?? ?? ?? ?? C1 ?? ?? 0B ?? 8B ?? D1 ?? 23 ?? 8B ?? ?? ?? ?? ?? ?? 81 E? ?? ?? ?? ?? 03 ?? 0B ?? 8B ?? C1 ?? ?? 23 ?? 8B ?? ?? ?? ?? ?? ?? 81 E? ?? ?? ?? ?? 03 ?? 0B ?? 8B ?? C1 ?? ?? 23 ?? 8B ?? ?? ?? ?? ?? ?? 8B ?? C1 ?? ?? C1 ?? ?? 23 ?? 0B ?? ?? ?? ?? ?? ?? C1 ?? ?? 03 ?? 23 ?? 0B ?? ?? ?? ?? ?? ?? BF ?? ?? ?? ?? C1 ?? ?? 23 ?? 0B ?? 83 ?? ?? ?? BA ?? ?? ?? ?? EB } + $block_2 = { 8B ?? 33 ?? 8B ?? C1 ?? ?? 83 ?? ?? 8B ?? ?? ?? ?? ?? ?? 8B ?? C1 ?? ?? 83 ?? ?? 33 ?? ?? ?? ?? ?? ?? 8B ?? C1 ?? ?? 83 ?? ?? 33 ?? ?? ?? ?? ?? ?? 83 ?? ?? 33 ?? ?? ?? ?? ?? ?? 8B ?? 31 ?? ?? C1 ?? ?? 33 ?? ?? 83 ?? ?? 8B ?? C1 ?? ?? 83 ?? ?? 8B ?? ?? ?? ?? ?? ?? 8B ?? C1 ?? ?? 83 ?? ?? 33 ?? ?? ?? ?? ?? ?? 8B ?? C1 ?? ?? 83 ?? ?? 33 ?? ?? ?? ?? ?? ?? 83 ?? ?? 33 ?? ?? ?? ?? ?? ?? 8B ?? ?? 31 ?? ?? 33 ?? ?? 8B ?? C1 ?? ?? 83 ?? ?? 8B ?? ?? ?? ?? ?? ?? 8B ?? C1 ?? ?? 83 ?? ?? 33 ?? ?? ?? ?? ?? ?? 8B ?? C1 ?? ?? 83 ?? ?? 33 ?? ?? ?? ?? ?? ?? 83 ?? ?? 33 ?? ?? ?? ?? ?? ?? 8B ?? ?? 33 ?? C1 ?? ?? 33 ?? ?? 8B ?? C1 ?? ?? 83 ?? ?? 8B ?? ?? ?? ?? ?? ?? 8B ?? C1 ?? ?? 83 ?? ?? 33 ?? ?? ?? ?? ?? ?? 8B ?? C1 ?? ?? 83 ?? ?? 33 ?? ?? ?? ?? ?? ?? 83 ?? ?? 33 ?? ?? ?? ?? ?? ?? 33 ?? FF 4? ?? 0F 85 } + $block_3 = { 8D ?? ?? ?? ?? ?? 8D ?? ?? A5 A5 8D ?? ?? 8D ?? ?? E8 ?? ?? ?? ?? 8D ?? ?? ?? ?? ?? 5? 8D ?? ?? E8 ?? ?? ?? ?? 5? 8D ?? ?? ?? ?? ?? 8D ?? ?? 8D ?? ?? ?? ?? ?? E8 ?? ?? ?? ?? 8D ?? ?? 8D ?? ?? E8 ?? ?? ?? ?? 8D ?? ?? ?? ?? ?? 5? 8D ?? ?? E8 ?? ?? ?? ?? 5? 8D ?? ?? ?? ?? ?? 8D ?? ?? 8D ?? ?? ?? ?? ?? E8 ?? ?? ?? ?? 8D ?? ?? 8D ?? ?? E8 ?? ?? ?? ?? 8D ?? ?? ?? ?? ?? 5? 8D ?? ?? E8 ?? ?? ?? ?? 5? 8D ?? ?? ?? ?? ?? 8D ?? ?? 8D ?? ?? ?? ?? ?? E8 ?? ?? ?? ?? BE ?? ?? ?? ?? 5? 8D ?? ?? ?? ?? ?? 6A ?? 5? E8 ?? ?? ?? ?? 83 ?? ?? 68 ?? ?? ?? ?? 8D ?? ?? ?? ?? ?? 5? 5? E8 ?? ?? ?? ?? 83 ?? ?? 6A ?? 5? 8D ?? ?? ?? ?? ?? 8D ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? 66 ?? ?? ?? ?? ?? ?? ?? ?? 8D ?? ?? ?? ?? ?? F3 ?? 8D } + $block_4 = { 5? 8B ?? 5? 5? 0F B6 ?? ?? 5? 0F B6 ?? ?? 5? 8D ?? ?? 0F B6 ?? C1 ?? ?? 0B ?? 0F B6 ?? ?? C1 ?? ?? 0B ?? 0F B6 ?? ?? C1 ?? ?? 0B ?? 0F B6 ?? ?? C1 ?? ?? 0B ?? 0F B6 ?? ?? 0F B6 ?? ?? C1 ?? ?? 0B ?? C1 ?? ?? 0B ?? 8B ?? C1 ?? ?? 33 ?? 25 ?? ?? ?? ?? 33 ?? C1 ?? ?? 33 ?? 8B ?? C1 ?? ?? 33 ?? 25 ?? ?? ?? ?? 33 ?? C1 ?? ?? 33 ?? 8B ?? C1 ?? ?? 33 ?? 25 ?? ?? ?? ?? 33 ?? C1 ?? ?? 33 ?? 8B ?? C1 ?? ?? 33 ?? 25 ?? ?? ?? ?? 33 ?? C1 ?? ?? 33 ?? D1 ?? 8B ?? 33 ?? 81 E? ?? ?? ?? ?? 33 ?? 33 ?? D1 ?? 89 ?? ?? C7 } + $block_5 = { D1 ?? 8B ?? 33 ?? ?? 5? 81 E? ?? ?? ?? ?? 33 ?? 33 ?? ?? 5? D1 ?? 8B ?? C1 ?? ?? 33 ?? 81 E? ?? ?? ?? ?? 33 ?? C1 ?? ?? 33 ?? 8B ?? C1 ?? ?? 33 ?? 81 E? ?? ?? ?? ?? 33 ?? C1 ?? ?? 33 ?? 8B ?? C1 ?? ?? 33 ?? 81 E? ?? ?? ?? ?? 33 ?? C1 ?? ?? 33 ?? 8B ?? C1 ?? ?? 33 ?? 81 E? ?? ?? ?? ?? 33 ?? C1 ?? ?? 33 ?? 8B ?? C1 ?? ?? 88 ?? 8B ?? C1 ?? ?? 88 ?? ?? 88 ?? ?? 8B ?? 8B ?? C1 ?? ?? 88 ?? ?? 8B ?? C1 ?? ?? 88 ?? ?? 8B ?? C1 ?? ?? C1 ?? ?? 88 ?? ?? 88 ?? ?? 88 ?? ?? 33 ?? C9 C3 } + $block_6 = { 8B ?? ?? 89 ?? ?? 8B ?? ?? ?? ?? ?? 89 ?? ?? 8B ?? ?? ?? ?? ?? 89 ?? 33 ?? 89 ?? ?? 8D ?? ?? ?? ?? ?? AB AB AB 6A ?? AB 5? 5? 8D ?? ?? ?? ?? ?? 5? 5? E8 ?? ?? ?? ?? 33 ?? 66 ?? ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 83 ?? ?? 89 ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 8D ?? ?? ?? ?? ?? 5? 8D ?? ?? ?? ?? ?? 5? 5? 5? 68 ?? ?? ?? ?? 6A ?? 5? 5? FF B? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 5? C7 ?? ?? ?? ?? ?? ?? ?? ?? ?? FF 1? ?? ?? ?? ?? 85 ?? 75 } + $block_7 = { FF B? ?? ?? ?? ?? 68 ?? ?? ?? ?? E8 ?? ?? ?? ?? FF B? ?? ?? ?? ?? 68 ?? ?? ?? ?? E8 ?? ?? ?? ?? 83 ?? ?? 6A ?? 6A ?? 6A ?? FF 1? ?? ?? ?? ?? 6A ?? 89 ?? ?? ?? ?? ?? 5? 66 ?? ?? ?? ?? ?? ?? 0F B7 ?? ?? ?? ?? ?? 5? FF 1? ?? ?? ?? ?? FF B? ?? ?? ?? ?? 66 ?? ?? ?? ?? ?? ?? FF 1? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 6A ?? 8D ?? ?? ?? ?? ?? 5? FF B? ?? ?? ?? ?? FF 1? ?? ?? ?? ?? 85 ?? 0F 85 } + $block_8 = { 2B ?? 89 ?? ?? 88 ?? ?? ?? ?? ?? 88 ?? ?? ?? ?? ?? 0F B6 ?? 5? 8D ?? ?? ?? ?? ?? 5? 8B ?? 8D ?? ?? ?? ?? ?? ?? C1 ?? ?? 5? 88 ?? ?? ?? ?? ?? 88 ?? ?? ?? ?? ?? E8 ?? ?? ?? ?? 03 ?? ?? 83 ?? ?? 8D ?? ?? ?? ?? ?? 5? 8D ?? ?? ?? ?? ?? 5? 8B ?? 88 ?? ?? ?? ?? ?? 88 ?? ?? ?? ?? ?? 88 ?? ?? ?? ?? ?? 66 ?? ?? ?? ?? ?? ?? ?? ?? E8 ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 5? 5? } + $block_9 = { FF B? ?? ?? ?? ?? 8D ?? ?? ?? ?? ?? 5? 68 ?? ?? ?? ?? E8 ?? ?? ?? ?? 83 ?? ?? FF B? ?? ?? ?? ?? 8D ?? ?? 5? 68 ?? ?? ?? ?? E8 ?? ?? ?? ?? 83 ?? ?? 8D ?? ?? ?? ?? ?? 5? 6A ?? FF 1? ?? ?? ?? ?? 33 ?? 8D ?? ?? ?? ?? ?? AB AB AB AB 8D ?? ?? ?? ?? ?? 5? E8 ?? ?? ?? ?? 5? 5? 89 ?? ?? ?? ?? ?? E8 ?? ?? ?? ?? 83 ?? ?? ?? ?? ?? ?? 5? 89 ?? ?? ?? ?? ?? 0F 84 } + + condition: + hash.sha256(0, filesize) == "1c81bc28ad91baed60ca5e7fee68fbcb976cf8a483112fa81aab71a18450a6b0" or + 10 of them +} + +rule GreyEnergyMini { + meta: + Author = "Intezer Analyze" + Reference = "https://apt-ecosystem.com" + + strings: + $block_0 = { E8 ?? ?? ?? ?? FF 4? ?? B7 ?? E0 ?? 8E ?? ?? ?? ?? ?? 88 ?? ?? ?? ?? ?? 89 ?? F7 ?? ?? 5? AB F3 } + $block_1 = { 5? 8B ?? 8B ?? ?? 8B ?? ?? 5? 8D ?? ?? 8B ?? ?? 0F BE ?? 5? 8B ?? 5? 2B ?? 5? 89 ?? ?? 5? EB } + $block_2 = { 0F B7 ?? ?? B9 ?? ?? ?? ?? B9 ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 8D ?? ?? ?? 89 ?? ?? ?? ?? ?? E9 } + $block_3 = { 4? E8 ?? ?? ?? ?? FF 6? ?? F4 EC C0 ?? ?? 89 ?? F7 ?? BE ?? ?? ?? ?? F7 ?? 8B ?? ?? 8B ?? E9 } + $block_4 = { A2 ?? ?? ?? ?? 6D A6 9C 85 ?? ?? ?? ?? ?? B6 ?? 35 ?? ?? ?? ?? 88 ?? F7 ?? DB ?? 12 ?? ?? F9 } + $block_5 = { 8D ?? ?? 5? 6A ?? FF 7? ?? 5? FF 5? ?? 0F B7 ?? ?? 8D ?? ?? ?? 33 ?? 33 ?? 66 ?? ?? ?? 73 } + $block_6 = { 29 ?? ?? ?? ?? ?? 4? 66 ?? ?? ?? ?? ?? 9D 09 ?? ?? ?? ?? ?? 87 ?? ?? ?? ?? ?? 1F 5? FC EB } + $block_7 = { 5? AF 3D ?? ?? ?? ?? E8 ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? BB ?? ?? ?? ?? A0 ?? ?? ?? ?? D7 7F } + $block_8 = { 03 ?? ?? 5? E8 ?? ?? ?? ?? 83 ?? ?? 83 ?? ?? FF 4? ?? 66 ?? ?? ?? 66 ?? ?? ?? 0F 83 } + $block_9 = { AD 87 ?? ?? 24 ?? E0 ?? B4 ?? 4? FE ?? ?? ?? ?? ?? BF ?? ?? ?? ?? 5? 2E ?? ?? 2D } + $block_10 = { F5 20 ?? 00 ?? ?? ?? ?? ?? 28 ?? 67 ?? ?? 00 ?? ?? ?? ?? ?? 13 ?? 6C 60 77 } + $block_11 = { FB 4? B0 ?? 89 ?? F7 ?? BF ?? ?? ?? ?? 8B ?? ?? 83 ?? ?? 83 ?? ?? 0F 84 } + $block_12 = { 9A ?? ?? ?? ?? ?? ?? 85 ?? CE A2 ?? ?? ?? ?? 62 ?? ?? ?? ?? ?? ?? 4? 7A } + $block_13 = { AB BD ?? ?? ?? ?? 00 ?? ?? E8 ?? ?? ?? ?? 4? 08 ?? ?? ?? ?? ?? 0F 85 } + $block_14 = { 6A ?? 8D ?? ?? 5? 5? E8 ?? ?? ?? ?? 8B ?? ?? 83 ?? ?? 39 ?? 0F 84 } + $block_15 = { 8A ?? ?? 88 ?? ?? ?? ?? ?? 8A ?? ?? 88 ?? ?? ?? ?? ?? 5? C9 C2 } + $block_16 = { 8B ?? ?? 8B ?? ?? 03 ?? 8B ?? ?? ?? ?? ?? 33 ?? 3B ?? 0F 84 } + $block_17 = { 4? 87 ?? ?? ?? ?? ?? B5 ?? 4? F9 E5 ?? 1A ?? ?? E6 ?? 9E E3 } + $block_18 = { 8B ?? ?? 0F B7 ?? ?? ?? 81 E? ?? ?? ?? ?? 03 ?? 01 ?? ?? 8B } + $block_19 = { 11 ?? ?? ?? ?? ?? 00 ?? ?? ?? B3 ?? ED A2 ?? ?? ?? ?? AF 4? } + $block_20 = { 6A ?? 8D ?? ?? 5? 5? E8 ?? ?? ?? ?? 83 ?? ?? 39 ?? 0F 84 } + $block_21 = { 0F B7 ?? 89 ?? ?? FF 7? ?? FF 7? ?? FF 5? ?? 89 ?? ?? EB } + $block_22 = { C7 ?? ?? ?? ?? ?? ?? 88 ?? ?? E8 ?? ?? ?? ?? 84 ?? 0F 84 } + $block_23 = { 8B ?? ?? 8B ?? ?? 03 ?? 8B ?? ?? ?? ?? ?? 3B ?? 0F 84 } + $block_24 = { 9D 9? 4? 37 9B 0A ?? ?? DD ?? ?? 4? 32 ?? ?? 31 ?? 3E } + $block_25 = { 0F B7 ?? ?? ?? 81 E? ?? ?? ?? ?? 03 ?? 01 ?? ?? 8B } + $block_26 = { 27 E7 ?? D0 ?? ?? ?? ?? ?? 86 ?? ?? ?? ?? ?? ?? B0 } + $block_27 = { C0 ?? ?? ?? ?? ?? ?? 00 ?? ?? ?? ?? ?? 5? 4? A7 7E } + $block_28 = { 8D ?? ?? 5? E8 ?? ?? ?? ?? 89 ?? ?? 3B ?? 0F 85 } + $block_29 = { C7 ?? ?? ?? ?? ?? ?? E8 ?? ?? ?? ?? 84 ?? 0F 85 } + $block_30 = { 8A ?? ?? ?? ?? ?? 2B ?? 88 ?? ?? 39 ?? ?? 0F 86 } + $block_31 = { C1 ?? ?? F8 A7 A2 ?? ?? ?? ?? B9 ?? ?? ?? ?? E3 } + $block_32 = { F1 6D 2F 4? D2 ?? ?? ?? ?? ?? 24 ?? AE 10 ?? 71 } + $block_33 = { 14 ?? 4? 9B C5 ?? ?? 0C ?? 9? E8 ?? ?? ?? ?? 76 } + + condition: + hash.sha256(0, filesize) == "d4e97a18be820a1a3af639c9bca21c5f85a3f49a37275b37fd012faeffcb7c4a" or + hash.sha256(0, filesize) == "7e154d5be14560b8b2c16969effdb8417559758711b05615513d1c84e56be076" or + hash.sha256(0, filesize) == "dcade5e14c26c19e935b13d5170d74f99e75d3e4dba443db1dab8bea78745584" or + hash.sha256(0, filesize) == "b60c0c04badc8c5defab653c581d57505b3455817b57ee70af74311fa0b65e22" or + hash.sha256(0, filesize) == "c2d06ad0211c24f36978fe34d25b0018ffc0f22b0c74fd1f915c608bf2cfad15" or + 12 of them +} + +rule GreyEnergyDropperUnpacked { + meta: + Author = "Intezer Analyze" + Reference = "https://apt-ecosystem.com" + + strings: + $block_0 = { 5? 8B ?? 83 ?? ?? C7 ?? ?? ?? ?? ?? ?? 6A ?? 6A ?? FF 1? ?? ?? ?? ?? 89 ?? ?? 83 ?? ?? ?? 0F 8C } + $block_1 = { 8B ?? ?? 8B ?? ?? 0F B7 ?? ?? 99 B9 ?? ?? ?? ?? F7 ?? 83 ?? ?? 8B ?? ?? 8B ?? ?? 66 ?? ?? ?? EB } + $block_2 = { C7 ?? ?? ?? ?? ?? ?? 68 ?? ?? ?? ?? 6A ?? 6A ?? FF 1? ?? ?? ?? ?? 89 ?? ?? 83 ?? ?? ?? 0F 84 } + $block_3 = { 8B ?? ?? 8B ?? ?? 0F B7 ?? ?? 8B ?? ?? 33 ?? BE ?? ?? ?? ?? F7 ?? 0F BE ?? ?? ?? 3B ?? 74 } + $block_4 = { 8B ?? ?? 5? 8B ?? ?? 5? 8B ?? ?? 5? 8B ?? ?? 5? E8 ?? ?? ?? ?? 89 ?? ?? 83 ?? ?? ?? 0F 85 } + $block_5 = { 8B ?? ?? 03 ?? ?? 0F BE ?? 8B ?? ?? 33 ?? BE ?? ?? ?? ?? F7 ?? 0F BE ?? ?? ?? 3B ?? 74 } + $block_6 = { 6A ?? 6A ?? 6A ?? 6A ?? 6A ?? 8B ?? ?? 5? FF 1? ?? ?? ?? ?? 89 ?? ?? 83 ?? ?? ?? 0F 84 } + $block_7 = { 68 ?? ?? ?? ?? 8D ?? ?? ?? ?? ?? 5? 8D ?? ?? ?? ?? ?? 5? FF 1? ?? ?? ?? ?? 85 ?? 0F 84 } + $block_8 = { 5? 8B ?? 83 ?? ?? 5? C7 ?? ?? ?? ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? 83 ?? ?? ?? 0F 84 } + $block_9 = { 8B ?? ?? 8B ?? ?? ?? ?? ?? 5? 8B ?? ?? 5? 8B ?? ?? 5? E8 ?? ?? ?? ?? 85 ?? 0F 84 } + $block_10 = { 33 ?? 83 ?? ?? ?? 0F 9D ?? 8B ?? ?? 33 ?? E8 ?? ?? ?? ?? 8B ?? 5? C3 } + $block_11 = { 8B ?? ?? 5? 8B ?? ?? 5? FF 1? ?? ?? ?? ?? 89 ?? ?? 83 ?? ?? ?? 0F 84 } + $block_12 = { 68 ?? ?? ?? ?? 8D ?? ?? ?? ?? ?? 5? FF 1? ?? ?? ?? ?? 85 ?? 0F 84 } + $block_13 = { 6A ?? 8B ?? ?? 5? FF 1? ?? ?? ?? ?? 89 ?? ?? 83 ?? ?? ?? 0F 84 } + $block_14 = { 8B ?? ?? 89 ?? ?? 8B ?? ?? 0F B7 ?? 81 F? ?? ?? ?? ?? 75 } + $block_15 = { 6A ?? 8D ?? ?? ?? ?? ?? 5? E8 ?? ?? ?? ?? 85 ?? 0F 84 } + + condition: + hash.sha256(0, filesize) == "9e64b19434beee9fad059926a968e64bf31417914f638cd220894a3b6a4780f7" or + hash.sha256(0, filesize) == "d13191de5cca61574e041d4ef2ee83ba618e4bc324fc93ff850c6922370fa651" or + 12 of them +} + +rule GreyEnergyMiniUnpacked { + meta: + Author = "Intezer Analyze" + Reference = "https://apt-ecosystem.com" + + strings: + $block_0 = { 5? 5? 8D ?? ?? 5? 5? 5? 5? 5? 5? 5? 5? 5? FF 7? ?? 89 ?? ?? FF 1? ?? ?? ?? ?? 85 ?? 0F 85 } + $block_1 = { 8D ?? ?? 5? 68 ?? ?? ?? ?? FF 3? 89 ?? ?? 89 ?? ?? 89 ?? ?? E8 ?? ?? ?? ?? 85 ?? 0F 84 } + $block_2 = { 8B ?? ?? FF 7? ?? FF 1? ?? ?? ?? ?? 33 ?? 5? 5? 5? FF 7? ?? E8 ?? ?? ?? ?? 85 ?? 0F 88 } + $block_3 = { FF 7? ?? FF D? 8B ?? ?? 03 ?? 5? FF 7? ?? 5? E8 ?? ?? ?? ?? E8 ?? ?? ?? ?? 85 ?? 0F 84 } + $block_4 = { 8B ?? ?? ?? ?? ?? 8D ?? ?? 5? 8D ?? ?? 5? 5? 5? FF 7? ?? FF 7? ?? FF D? 85 ?? 0F 84 } + $block_5 = { 8D ?? ?? 5? 8D ?? ?? 5? 5? 5? FF 7? ?? FF 7? ?? FF D? 8B ?? ?? ?? ?? ?? 85 ?? 0F 84 } + $block_6 = { 8B ?? ?? FF 7? ?? FF 1? ?? ?? ?? ?? 5? 5? 5? FF 7? ?? E8 ?? ?? ?? ?? 85 ?? 0F 88 } + $block_7 = { FF 7? ?? E8 ?? ?? ?? ?? 68 ?? ?? ?? ?? E8 ?? ?? ?? ?? 89 ?? ?? 3B ?? 0F 84 } + $block_8 = { FF 3? FF 1? ?? ?? ?? ?? 6A ?? FF 3? FF 1? ?? ?? ?? ?? 5? 5? 8B ?? 5? C9 C2 } + $block_9 = { 83 ?? ?? ?? 83 ?? ?? ?? 68 ?? ?? ?? ?? E8 ?? ?? ?? ?? 89 ?? ?? 85 ?? 0F 84 } + $block_10 = { 2B ?? D1 ?? 8D ?? ?? ?? ?? ?? ?? 5? E8 ?? ?? ?? ?? 89 ?? ?? 3B ?? 0F 84 } + $block_11 = { 68 ?? ?? ?? ?? 8D ?? ?? ?? ?? ?? 5? 5? FF 1? ?? ?? ?? ?? 85 ?? 0F 84 } + $block_12 = { 5? 8D ?? ?? 5? 8D ?? ?? 5? 8D ?? ?? 5? FF 1? ?? ?? ?? ?? 85 ?? 0F 84 } + $block_13 = { 8D ?? ?? 5? 68 ?? ?? ?? ?? FF 3? 89 ?? ?? E8 ?? ?? ?? ?? 85 ?? 0F 84 } + $block_14 = { FF 7? ?? 8D ?? ?? ?? ?? ?? FF 7? ?? 5? E8 ?? ?? ?? ?? 85 ?? 0F 84 } + $block_15 = { 8D ?? ?? 5? 8D ?? ?? 5? 5? 5? FF 7? ?? FF 7? ?? FF D? 85 ?? 0F 84 } + $block_16 = { 68 ?? ?? ?? ?? E8 ?? ?? ?? ?? 8B ?? 89 ?? ?? 85 ?? 0F 84 } + $block_17 = { 8B ?? ?? 03 ?? 5? E8 ?? ?? ?? ?? 89 ?? ?? 3B ?? 0F 84 } + $block_18 = { 0F B7 ?? 8B ?? 83 ?? ?? 8A ?? ?? ?? 0F BE ?? 3B ?? 74 } + $block_19 = { 68 ?? ?? ?? ?? E8 ?? ?? ?? ?? 89 ?? ?? 3B ?? 0F 84 } + $block_20 = { 5? 8B ?? 83 ?? ?? 5? 33 ?? 89 ?? ?? 39 ?? ?? 0F 86 } + $block_21 = { 68 ?? ?? ?? ?? E8 ?? ?? ?? ?? 89 ?? ?? 85 ?? 0F 84 } + $block_22 = { 68 ?? ?? ?? ?? E8 ?? ?? ?? ?? 8B ?? 3B ?? 0F 84 } + $block_23 = { 8D ?? ?? 5? E8 ?? ?? ?? ?? 8B ?? ?? 85 ?? 0F 84 } + + condition: + hash.sha256(0, filesize) == "b0959c8df85147fd7dc13c83082d2a9d8e464c7e846083d4a9850fa254482106" or + hash.sha256(0, filesize) == "6fe6aa31c6010febead115f96afd8fae7e086e2cd11032d424388bbaf3ab40fd" or + 12 of them +} + +rule GeminiDuke { + meta: + Author = "Intezer Analyze" + Reference = "https://apt-ecosystem.com" + + strings: + $block_0 = { 5? 8B ?? 83 ?? ?? 8A ?? ?? ?? ?? ?? 8A ?? ?? ?? ?? ?? 83 ?? ?? ?? 5? 5? 5? 0F B6 ?? 0F B6 ?? EB } + $block_1 = { 8B ?? ?? 8B ?? ?? 89 ?? ?? 8B ?? ?? 03 ?? ?? 89 ?? ?? 8B ?? ?? 0F B7 ?? ?? 81 F? ?? ?? ?? ?? 74 } + $block_2 = { 8B ?? ?? 03 ?? ?? 8B ?? ?? 0F B6 ?? ?? 0F B6 ?? ?? 03 ?? 8B ?? ?? 03 ?? ?? 8B ?? ?? 88 ?? ?? E9 } + $block_3 = { 8B ?? ?? 8B ?? ?? 8D ?? ?? ?? E8 ?? ?? ?? ?? 89 ?? ?? ?? 8B ?? 8B ?? ?? 8B ?? FF D? 84 ?? 0F 85 } + $block_4 = { 8A ?? ?? ?? ?? ?? 8A ?? ?? ?? ?? ?? 83 ?? ?? 5? 5? 8B ?? ?? ?? 5? 5? 33 ?? 0F B6 ?? 0F B6 ?? EB } + $block_5 = { 5? 8B ?? ?? ?? ?? ?? 5? 5? 68 ?? ?? ?? ?? 8B ?? FF D? 85 ?? 8B ?? ?? ?? ?? ?? 89 ?? ?? 0F 84 } + $block_6 = { 8B ?? ?? ?? ?? ?? 8B ?? ?? FF 7? ?? 8D ?? ?? ?? ?? ?? ?? 8D ?? ?? E8 ?? ?? ?? ?? 84 ?? 0F 84 } + $block_7 = { 8B ?? ?? ?? ?? ?? 8B ?? 8B ?? ?? ?? ?? ?? 03 ?? ?? 8B ?? E8 ?? ?? ?? ?? 0F B6 ?? 85 ?? 0F 84 } + $block_8 = { C7 ?? ?? ?? ?? ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 83 ?? ?? ?? ?? ?? ?? 0F 84 } + $block_9 = { 8B ?? ?? 2B ?? ?? 8B ?? ?? 0F B6 ?? ?? ?? 8B ?? ?? 2B ?? ?? 8B ?? ?? 0F B6 ?? ?? ?? 3B ?? 7E } + $block_10 = { 8B ?? ?? 2B ?? ?? 8B ?? ?? 0F B6 ?? ?? ?? 8B ?? ?? 2B ?? ?? 8B ?? ?? 0F B6 ?? ?? ?? 3B ?? 7D } + $block_11 = { 0F BE ?? ?? 8B ?? ?? 8A ?? ?? ?? 88 ?? 8A ?? ?? 2C ?? 88 ?? ?? 8B ?? ?? 83 ?? ?? 89 ?? ?? EB } + $block_12 = { 5? 8B ?? 81 E? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? ?? ?? ?? 83 ?? ?? ?? 0F 84 } + $block_13 = { 8B ?? ?? 03 ?? ?? 0F B6 ?? 5? 8B ?? ?? 81 C? ?? ?? ?? ?? E8 ?? ?? ?? ?? 8B ?? ?? 03 ?? ?? 88 } + $block_14 = { 8D ?? ?? ?? 6A ?? 5? 8B ?? 5? E8 ?? ?? ?? ?? 0F BE ?? 0C ?? 83 ?? ?? 88 ?? ?? ?? 80 C? ?? EB } + $block_15 = { 8B ?? 8B ?? ?? 8B ?? ?? 8B ?? ?? 8D ?? ?? 0F B6 ?? ?? 5? FF D? 88 ?? ?? 83 ?? ?? 83 ?? ?? 72 } + $block_16 = { 8B ?? ?? 03 ?? ?? 0F B6 ?? 0F B6 ?? ?? 03 ?? ?? 0F B6 ?? 33 ?? 8B ?? ?? 03 ?? ?? 88 ?? EB } + $block_17 = { 8B ?? ?? 03 ?? ?? 0F B6 ?? 0F B6 ?? ?? 2B ?? 0F B6 ?? ?? 2B ?? 8B ?? ?? 03 ?? ?? 88 ?? C6 } + $block_18 = { 5? 5? 6A ?? 5? 6A ?? 68 ?? ?? ?? ?? 8D ?? ?? ?? 5? FF 1? ?? ?? ?? ?? 8B ?? 83 ?? ?? 0F 84 } + $block_19 = { 8B ?? 8B ?? ?? 8B ?? ?? 8B ?? ?? 8D ?? ?? 0F B6 ?? ?? 5? FF D? 88 ?? ?? 83 ?? ?? 3B ?? 7C } + $block_20 = { 88 ?? ?? ?? ?? ?? 0F B6 ?? 8A ?? ?? ?? ?? ?? ?? 32 ?? ?? ?? 5? 88 ?? ?? ?? ?? ?? 5? C2 } + $block_21 = { 5? 8B ?? 83 ?? ?? 89 ?? ?? 9? 8B ?? ?? 89 ?? ?? 8B ?? ?? 0F B7 ?? 81 F? ?? ?? ?? ?? 74 } + $block_22 = { 8B ?? ?? 2B ?? ?? 8B ?? ?? 0F B6 ?? ?? ?? 83 ?? ?? 66 ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? EB } + $block_23 = { 8D ?? ?? ?? ?? ?? E8 ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 8B ?? ?? ?? 5? 5? FF D? 85 ?? 0F 85 } + $block_24 = { 5? 8B ?? 81 E? ?? ?? ?? ?? 8B ?? ?? 89 ?? ?? 8B ?? ?? 0F B6 ?? 81 F? ?? ?? ?? ?? 75 } + $block_25 = { 8B ?? 8B ?? ?? 0F B6 ?? ?? ?? 8D ?? ?? 8B ?? 5? FF 5? ?? 88 ?? ?? ?? 4? 83 ?? ?? 72 } + $block_26 = { 5? 6A ?? 6A ?? 6A ?? 6A ?? 8B ?? E8 ?? ?? ?? ?? 5? 8B ?? E8 ?? ?? ?? ?? 84 ?? 0F 84 } + $block_27 = { 6A ?? 6A ?? 8D ?? ?? ?? 5? 8D ?? ?? ?? ?? ?? ?? 5? 6A ?? E8 ?? ?? ?? ?? 85 ?? 0F 85 } + $block_28 = { 8B ?? ?? 2B ?? 66 ?? ?? ?? ?? ?? 66 ?? 0F B7 ?? 89 ?? ?? 8D ?? ?? 83 ?? ?? 0F 8C } + $block_29 = { 8B ?? 8B ?? ?? 0F B6 ?? ?? 8D ?? ?? 8B ?? 5? FF 5? ?? 88 ?? ?? 4? 3B ?? ?? ?? 7C } + $block_30 = { 8D ?? ?? 6A ?? 5? 5? E8 ?? ?? ?? ?? 0F BE ?? 0C ?? 83 ?? ?? 88 ?? ?? ?? FE ?? EB } + $block_31 = { 8B ?? ?? 03 ?? ?? 0F B6 ?? 0F B6 ?? ?? 2B ?? 8B ?? ?? 03 ?? ?? 0F B6 ?? 3B ?? 7C } + $block_32 = { 8B ?? ?? ?? ?? ?? ?? 5? 6A ?? 68 ?? ?? ?? ?? FF 1? ?? ?? ?? ?? 8B ?? 85 ?? 0F 84 } + $block_33 = { 88 ?? ?? 0F B6 ?? ?? 8B ?? ?? 0F B6 ?? ?? 0F B6 ?? ?? 03 ?? 25 ?? ?? ?? ?? 79 } + $block_34 = { 8A ?? 0F B6 ?? 8B ?? ?? 0F B6 ?? ?? 0F B6 ?? 03 ?? 03 ?? 81 E? ?? ?? ?? ?? 79 } + $block_35 = { 8B ?? ?? ?? ?? ?? 8B ?? 8B ?? ?? 8B ?? ?? ?? ?? ?? 8B ?? ?? ?? 83 ?? ?? 0F 84 } + $block_36 = { 8B ?? ?? ?? ?? ?? 8B ?? 8B ?? ?? 8B ?? ?? ?? ?? ?? 8B ?? ?? ?? 83 ?? ?? 0F 85 } + $block_37 = { 8B ?? ?? ?? 8A ?? 0F B6 ?? 0F B6 ?? ?? 0F B6 ?? 03 ?? 03 ?? 25 ?? ?? ?? ?? 79 } + $block_38 = { 5? 8B ?? 5? 5? 8B ?? ?? 5? 32 ?? 38 ?? 5? C6 ?? ?? ?? 8B ?? 88 ?? ?? 0F 84 } + $block_39 = { 5? 5? 5? E8 ?? ?? ?? ?? 8B ?? ?? 83 ?? ?? 01 ?? ?? ?? ?? ?? 5? 5? 5? C9 C2 } + $block_40 = { 88 ?? ?? 0F B6 ?? 8A ?? ?? ?? ?? ?? ?? 32 ?? ?? ?? 88 ?? ?? ?? ?? ?? 5? C2 } + $block_41 = { 0F B6 ?? 0F B6 ?? 8B ?? ?? 0F B6 ?? ?? 03 ?? 03 ?? 81 E? ?? ?? ?? ?? 79 } + $block_42 = { 5? 8B ?? 5? 89 ?? ?? 8B ?? ?? 0F B6 ?? ?? 83 ?? ?? 81 E? ?? ?? ?? ?? 79 } + $block_43 = { 8B ?? ?? ?? 5? FF 1? ?? ?? ?? ?? 83 ?? ?? ?? ?? 5? 0F 95 ?? 83 ?? ?? C3 } + $block_44 = { 8B ?? ?? 8B ?? ?? ?? 8B ?? ?? 5? 8D ?? ?? ?? E8 ?? ?? ?? ?? 84 ?? 0F 84 } + $block_45 = { 0F B7 ?? ?? 6A ?? 5? 5? E8 ?? ?? ?? ?? 83 ?? ?? 80 7? ?? ?? ?? 8B ?? 74 } + $block_46 = { 8B ?? ?? ?? 0F B6 ?? 0F B6 ?? ?? 0F B6 ?? 03 ?? 03 ?? 25 ?? ?? ?? ?? 79 } + $block_47 = { 8B ?? ?? 0F B7 ?? ?? 6A ?? 5? 5? E8 ?? ?? ?? ?? 83 ?? ?? 38 ?? ?? 74 } + $block_48 = { 8D ?? ?? ?? ?? ?? 5? E8 ?? ?? ?? ?? 83 ?? ?? 39 ?? ?? ?? ?? ?? 0F 83 } + $block_49 = { 8B ?? ?? 03 ?? ?? 2B ?? ?? 66 ?? ?? 66 ?? ?? ?? 0F B7 ?? ?? 85 ?? 75 } + $block_50 = { 8B ?? ?? 8B ?? ?? 0F AF ?? 8B ?? ?? 5? 8D ?? ?? ?? E8 ?? ?? ?? ?? 85 } + $block_51 = { 5? 8B ?? ?? ?? 32 ?? 38 ?? 5? C6 ?? ?? ?? ?? 8B ?? 88 ?? ?? ?? 0F 84 } + $block_52 = { 33 ?? 6A ?? 5? F7 ?? 0F BE ?? 80 C? ?? FE ?? 85 ?? 88 ?? ?? ?? 75 } + $block_53 = { 8B ?? ?? 03 ?? ?? 0F B6 ?? 0F B6 ?? ?? 2B ?? 0F B6 ?? ?? 3B ?? 7C } + $block_54 = { 8D ?? ?? ?? ?? ?? 5? 8B ?? ?? ?? ?? ?? 8B ?? ?? FF D? 85 ?? 0F 84 } + $block_55 = { 68 ?? ?? ?? ?? 6A ?? 68 ?? ?? ?? ?? FF 1? ?? ?? ?? ?? 85 ?? 0F 85 } + $block_56 = { 0F B6 ?? 8A ?? ?? 88 ?? ?? ?? 0F B6 ?? 03 ?? 81 E? ?? ?? ?? ?? 79 } + $block_57 = { 5? 8B ?? 5? 5? 33 ?? 33 ?? 39 ?? ?? 5? 8B ?? ?? 89 ?? ?? 0F 8E } + $block_58 = { 8B ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 83 ?? ?? ?? ?? ?? ?? 0F 84 } + $block_59 = { 5? 8B ?? 5? 89 ?? ?? 8B ?? ?? E8 ?? ?? ?? ?? 0F B6 ?? 85 ?? 75 } + $block_60 = { 0F B7 ?? ?? 0F B7 ?? ?? 99 F7 ?? 88 ?? ?? 0F B6 ?? ?? 85 ?? 74 } + $block_61 = { 8B ?? ?? ?? 68 ?? ?? ?? ?? 5? FF D? 85 ?? 0F 94 ?? 84 ?? 0F 85 } + $block_62 = { 5? 68 ?? ?? ?? ?? 8B ?? FF 1? ?? ?? ?? ?? 85 ?? 89 ?? ?? 0F 84 } + $block_63 = { 8A ?? ?? 5? 5? 88 ?? ?? ?? ?? ?? 88 ?? ?? ?? ?? ?? 5? C9 C2 } + $block_64 = { 8B ?? ?? 03 ?? ?? 0F B6 ?? 8B ?? ?? 8A ?? ?? ?? ?? ?? ?? 88 } + $block_65 = { 0F BE ?? ?? 5? 8B ?? ?? 5? E8 ?? ?? ?? ?? 83 ?? ?? 85 ?? 75 } + $block_66 = { 5? 8B ?? 5? 5? 33 ?? 39 ?? ?? 5? 5? 8B ?? 89 ?? ?? 0F 84 } + $block_67 = { 8A ?? ?? 84 ?? 8B ?? ?? 0F BE ?? 8D ?? ?? ?? C6 ?? ?? 75 } + $block_68 = { 6A ?? 8B ?? ?? ?? ?? ?? 5? FF 1? ?? ?? ?? ?? 85 ?? 0F 84 } + $block_69 = { 5? 8B ?? 0F B6 ?? ?? ?? ?? ?? 83 ?? ?? 25 ?? ?? ?? ?? 79 } + $block_70 = { 0F B6 ?? 8A ?? ?? 0F B6 ?? 03 ?? 81 E? ?? ?? ?? ?? 79 } + $block_71 = { 0F B6 ?? ?? 0F B6 ?? ?? 33 ?? 3B ?? 0F 9F ?? 8A ?? E9 } + $block_72 = { 8B ?? ?? 83 ?? ?? 89 ?? ?? 8B ?? ?? 0F BE ?? 85 ?? 75 } + $block_73 = { 8B ?? ?? 8B ?? ?? 0F AF ?? 8B ?? ?? 5? 8D ?? ?? ?? E8 } + $block_74 = { 8B ?? ?? ?? ?? ?? 0F B7 ?? 81 F? ?? ?? ?? ?? 0F 85 } + $block_75 = { 8B ?? ?? 2B ?? ?? 8B ?? ?? 0F B6 ?? ?? ?? 85 ?? 75 } + $block_76 = { 8A ?? ?? ?? 84 ?? 0F BE ?? 8D ?? ?? ?? C6 ?? ?? 75 } + $block_77 = { 0F B6 ?? ?? ?? ?? ?? 4? 25 ?? ?? ?? ?? 5? 5? 79 } + $block_78 = { 0F B6 ?? ?? 0F B6 ?? ?? 33 ?? 3B ?? 0F 9F ?? E9 } + $block_79 = { 0F B6 ?? ?? 0F B6 ?? 2B ?? 0F B6 ?? ?? 3B ?? 7C } + $block_80 = { 0F B7 ?? ?? 0F B7 ?? 99 F7 ?? 84 ?? 88 ?? ?? 74 } + $block_81 = { 8B ?? ?? C1 ?? ?? 83 ?? ?? ?? ?? ?? ?? ?? 0F 84 } + $block_82 = { 8B ?? ?? 03 ?? ?? 0F B6 ?? 0F B6 ?? ?? 3B ?? 7C } + $block_83 = { 0F BE ?? ?? C6 ?? ?? ?? ?? 0F BE ?? ?? 85 ?? 75 } + $block_84 = { 5? 5? 33 ?? 33 ?? 39 ?? ?? ?? 89 ?? ?? ?? 0F 8E } + $block_85 = { 8B ?? ?? ?? 83 ?? ?? 83 ?? ?? 89 ?? ?? ?? 0F 8C } + + condition: + hash.sha256(0, filesize) == "1323e3d7656a427733663f03b3037326ffa9c57c68fa8e014a5bf7cb1455359a" or + hash.sha256(0, filesize) == "ce2c4dd21b99407bfa7066a6a57d180c00527e7db8ee52558c597550ac8b5d7c" or + hash.sha256(0, filesize) == "7b9e542426408aa384d0394820f82f330e615a1ad17a777d04720458b33b08a3" or + hash.sha256(0, filesize) == "bc54acf4e60688ea668ef40ef965f2bad41dcf260ddae26d28b5551461c4b402" or + hash.sha256(0, filesize) == "a8b01a219a9fe565aadf82bc28b60048c60b640e780386c7a84a425049df5af9" or + 12 of them +} + +rule OnionDuke { + meta: + Author = "Intezer Analyze" + Reference = "https://apt-ecosystem.com" + + strings: + $block_0 = { 8B ?? ?? ?? ?? ?? 8B ?? 8B ?? ?? 5? 8B ?? FF D? 8B ?? 89 ?? ?? ?? ?? ?? C6 ?? ?? ?? 85 ?? 0F 84 } + $block_1 = { A1 ?? ?? ?? ?? 0F B7 ?? ?? 8A ?? 8D ?? ?? 5? E8 ?? ?? ?? ?? 83 ?? ?? 33 ?? C6 ?? ?? ?? 85 ?? 74 } + $block_2 = { 89 ?? ?? 89 ?? 8B ?? ?? 89 ?? ?? C6 ?? ?? ?? 6A ?? 89 ?? ?? E8 ?? ?? ?? ?? 83 ?? ?? 3B ?? 0F 84 } + $block_3 = { 8B ?? ?? 8B ?? ?? 8B ?? 8B ?? ?? FF D? 33 ?? B9 ?? ?? ?? ?? F7 ?? 8B ?? ?? 8B ?? 83 ?? ?? 0F 8D } + $block_4 = { 8B ?? ?? 8B ?? ?? 8B ?? ?? 5? 5? 5? 8B ?? ?? 5? 8B ?? ?? E8 ?? ?? ?? ?? 89 ?? ?? 85 ?? 0F 84 } + $block_5 = { 8D ?? ?? 89 ?? ?? 8B ?? 5? 5? 8B ?? ?? FF D? 8B ?? ?? 8B ?? 89 ?? ?? C6 ?? ?? ?? 3B ?? 0F 8C } + $block_6 = { 0F B7 ?? ?? ?? 8D ?? ?? ?? 5? 8B ?? E8 ?? ?? ?? ?? 8B ?? 83 ?? ?? 85 ?? 8B ?? 6A ?? 8B ?? 75 } + $block_7 = { 8B ?? ?? 8B ?? 8B ?? ?? 8B ?? FF D? 8B ?? 8B ?? ?? 8B ?? 89 ?? ?? ?? FF D? 3B ?? ?? ?? 0F 83 } + $block_8 = { 5? FF 1? ?? ?? ?? ?? 8B ?? ?? 33 ?? 83 ?? ?? 0F 94 ?? 5? 33 ?? 5? E8 ?? ?? ?? ?? 8B ?? 5? C3 } + $block_9 = { FF D? 8B ?? 8B ?? 6A ?? 8B ?? FF D? 33 ?? 6A ?? 89 ?? ?? E8 ?? ?? ?? ?? 83 ?? ?? 3B ?? 0F 84 } + $block_10 = { 8B ?? ?? 83 ?? ?? ?? 8B ?? ?? 4? 8D ?? ?? ?? ?? ?? ?? 89 ?? ?? 8B ?? ?? 83 ?? ?? ?? 0F 85 } + $block_11 = { 8B ?? ?? 8B ?? ?? 8B ?? ?? 8B ?? 8B ?? ?? 8B ?? FF D? 8B ?? ?? 5? 8B ?? FF D? 85 ?? 0F 84 } + $block_12 = { B8 ?? ?? ?? ?? E8 ?? ?? ?? ?? 5? 5? 89 ?? ?? E8 ?? ?? ?? ?? 8B ?? 83 ?? ?? 85 ?? 0F 84 } + $block_13 = { 8B ?? 8B ?? ?? 8B ?? ?? ?? ?? ?? ?? 8B ?? FF D? 0F B7 ?? ?? ?? 8D ?? ?? ?? 3B ?? 0F 85 } + $block_14 = { 5? 8B ?? 5? 5? 0F B6 ?? ?? C1 ?? ?? 8B ?? 8B ?? ?? 83 ?? ?? 5? BF ?? ?? ?? ?? 3B ?? 73 } + $block_15 = { 8B ?? ?? ?? 8B ?? ?? ?? 5? 89 ?? ?? ?? E8 ?? ?? ?? ?? 83 ?? ?? 89 ?? ?? ?? 3B ?? 0F 84 } + $block_16 = { 8B ?? ?? C7 ?? ?? ?? ?? ?? ?? 8B ?? ?? 89 ?? ?? 8B ?? 8B ?? ?? FF D? 8B ?? 85 ?? 0F 84 } + $block_17 = { 8B ?? E8 ?? ?? ?? ?? 5? E8 ?? ?? ?? ?? 8B ?? ?? 89 ?? ?? ?? 89 ?? ?? ?? 85 ?? 0F 85 } + $block_18 = { 8B ?? ?? 89 ?? ?? 68 ?? ?? ?? ?? 5? C6 ?? ?? ?? E8 ?? ?? ?? ?? 83 ?? ?? 85 ?? 0F 84 } + $block_19 = { A1 ?? ?? ?? ?? 8B ?? 5? 8B ?? ?? 8B ?? FF D? 8B ?? 89 ?? ?? C6 ?? ?? ?? 85 ?? 0F 84 } + $block_20 = { 8B ?? ?? ?? ?? ?? 83 ?? ?? ?? ?? ?? ?? 4? 89 ?? ?? ?? ?? ?? 3B ?? ?? ?? ?? ?? 0F 82 } + $block_21 = { 33 ?? 6A ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? E8 ?? ?? ?? ?? 83 ?? ?? 3B ?? 0F 84 } + $block_22 = { 8B ?? 8B ?? ?? 2B ?? B8 ?? ?? ?? ?? F7 ?? 03 ?? C1 ?? ?? 8B ?? C1 ?? ?? 03 ?? 0F 84 } + $block_23 = { 8B ?? ?? 8B ?? ?? 8B ?? ?? 8B ?? ?? 5? 0F B7 ?? ?? 5? 5? E8 ?? ?? ?? ?? 83 ?? ?? 89 } + $block_24 = { C6 ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? 39 ?? ?? 0F 82 } + $block_25 = { 8B ?? 8B ?? ?? 68 ?? ?? ?? ?? 8D ?? ?? ?? ?? ?? 5? 8B ?? FF D? 8B ?? 85 ?? 0F 84 } + $block_26 = { 8B ?? ?? ?? 6A ?? 83 ?? ?? 5? 8D ?? ?? ?? ?? ?? ?? E8 ?? ?? ?? ?? 83 ?? ?? 0F 85 } + $block_27 = { 5? 8B ?? 5? 5? 5? 8B ?? 8B ?? ?? 8B ?? 8B ?? ?? 5? FF D? 8B ?? 33 ?? 3B ?? 0F 84 } + $block_28 = { 2B ?? 5? 89 ?? ?? 8D ?? ?? 5? 83 ?? ?? 5? E8 ?? ?? ?? ?? 8B ?? 83 ?? ?? 0F 84 } + $block_29 = { 8B ?? ?? 2B ?? B8 ?? ?? ?? ?? F7 ?? 03 ?? C1 ?? ?? 8B ?? C1 ?? ?? 03 ?? 0F 84 } + $block_30 = { 8B ?? ?? 8B ?? 8B ?? ?? 8B ?? ?? 5? FF D? 5? E8 ?? ?? ?? ?? 8B ?? 85 ?? 0F 84 } + $block_31 = { 5? 5? 6A ?? E8 ?? ?? ?? ?? 33 ?? 83 ?? ?? 85 ?? 0F 95 ?? 89 ?? ?? 5? 8B ?? C3 } + $block_32 = { 8B ?? 8B ?? ?? 68 ?? ?? ?? ?? 8D ?? ?? ?? ?? ?? 5? 8B ?? FF D? 85 ?? 0F 84 } + $block_33 = { 5? 8B ?? 83 ?? ?? A1 ?? ?? ?? ?? 33 ?? 89 ?? ?? 5? 8B ?? 83 ?? ?? ?? 0F 85 } + $block_34 = { C7 ?? ?? ?? ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? 89 ?? ?? 88 ?? ?? 39 ?? ?? 0F 82 } + $block_35 = { 8B ?? ?? 5? 8D ?? ?? 5? 8B ?? E8 ?? ?? ?? ?? 8D ?? ?? 83 ?? ?? 3B ?? 0F 84 } + $block_36 = { 8B ?? ?? 8B ?? ?? 5? 89 ?? ?? E8 ?? ?? ?? ?? 83 ?? ?? 89 ?? ?? 3B ?? 0F 84 } + $block_37 = { 5? 8B ?? 5? 5? 8B ?? ?? 8B ?? 8B ?? ?? 5? 5? 8B ?? 8B ?? FF D? 85 ?? 0F 84 } + $block_38 = { 8B ?? ?? 6A ?? 8D ?? ?? 5? 5? 8B ?? ?? 5? 5? FF 1? ?? ?? ?? ?? 85 ?? 0F 84 } + $block_39 = { 8B ?? ?? 5? 8B ?? ?? 8D ?? ?? E8 ?? ?? ?? ?? 85 ?? 0F 98 ?? 83 ?? ?? ?? 72 } + $block_40 = { 8B ?? 8B ?? ?? 8B ?? FF D? 6A ?? E8 ?? ?? ?? ?? 33 ?? 83 ?? ?? 3B ?? 0F 84 } + $block_41 = { B8 ?? ?? ?? ?? E8 ?? ?? ?? ?? 8B ?? 5? 8B ?? ?? 8B ?? FF D? 85 ?? 0F 84 } + $block_42 = { 0F B6 ?? ?? 8B ?? 8B ?? ?? 5? 8B ?? FF D? 8B ?? 8B ?? 6A ?? 8B ?? FF D? } + $block_43 = { 0F B6 ?? ?? 88 ?? ?? 0F B6 ?? 88 ?? ?? 0F B6 ?? ?? 88 ?? 4? 4? 3B ?? 72 } + $block_44 = { 89 ?? ?? 8B ?? 8B ?? ?? 8B ?? C7 ?? ?? ?? ?? ?? ?? FF D? 85 ?? 0F 84 } + $block_45 = { 8B ?? ?? 8D ?? ?? 33 ?? 3B ?? 0F 94 ?? C6 ?? ?? ?? 8B ?? 83 ?? ?? 72 } + $block_46 = { 68 ?? ?? ?? ?? 8D ?? ?? ?? ?? ?? 5? 5? FF 1? ?? ?? ?? ?? 85 ?? 0F 84 } + $block_47 = { 8B ?? ?? ?? ?? ?? 8A ?? ?? ?? 32 ?? 0F B6 ?? 66 ?? ?? ?? 4? 3B ?? 72 } + $block_48 = { 8B ?? 8B ?? ?? 8B ?? C7 ?? ?? ?? ?? ?? ?? ?? ?? ?? FF D? 85 ?? 0F 84 } + $block_49 = { C6 ?? ?? ?? 89 ?? ?? C7 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? 39 ?? ?? 0F 82 } + $block_50 = { 6A ?? 8D ?? ?? 5? 8D ?? ?? ?? ?? ?? ?? E8 ?? ?? ?? ?? 83 ?? ?? 0F 85 } + $block_51 = { 8B ?? ?? 8B ?? 8B ?? ?? 8B ?? ?? 5? FF D? 8B ?? 89 ?? ?? 85 ?? 0F 84 } + $block_52 = { C7 ?? ?? ?? ?? ?? ?? 8B ?? 8B ?? ?? 5? 8B ?? FF D? 8B ?? 85 ?? 0F 84 } + $block_53 = { 5? 8D ?? ?? 5? 89 ?? ?? 8B ?? 6A ?? 5? 8B ?? ?? FF D? 85 ?? 0F 85 } + $block_54 = { 8B ?? ?? 8D ?? ?? 89 ?? ?? 8B ?? 8B ?? ?? 5? 5? FF D? 3B ?? 0F 8C } + $block_55 = { FF 1? ?? ?? ?? ?? 33 ?? 3D ?? ?? ?? ?? 0F 94 ?? 8B ?? 85 ?? 0F 84 } + $block_56 = { 8B ?? ?? ?? 0F B7 ?? ?? 83 ?? ?? 8D ?? ?? 89 ?? ?? ?? 3B ?? 0F 87 } + $block_57 = { 8B ?? ?? 8B ?? 8B ?? ?? 6A ?? FF D? 8B ?? 89 ?? ?? ?? 3B ?? 0F 84 } + $block_58 = { 8B ?? ?? 33 ?? 85 ?? 0F 95 ?? 5? 5? 89 ?? ?? 5? 8B ?? 8B ?? 5? C3 } + $block_59 = { 8B ?? ?? 0F AF ?? 03 ?? ?? 8B ?? 5? 8B ?? ?? 5? 5? FF D? 3B ?? 74 } + $block_60 = { 8B ?? ?? 8B ?? E8 ?? ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? 85 ?? 0F 84 } + $block_61 = { 8B ?? ?? 8B ?? ?? 8B ?? 5? 5? 8B ?? ?? FF D? 8B ?? 3B ?? 0F 85 } + $block_62 = { 8B ?? 8A ?? ?? ?? 32 ?? ?? 4? 0F B6 ?? 66 ?? ?? ?? ?? 3B ?? 72 } + $block_63 = { 8D ?? ?? C7 ?? ?? ?? ?? ?? ?? E8 ?? ?? ?? ?? 83 ?? ?? ?? 0F 82 } + $block_64 = { 8B ?? ?? 8B ?? ?? 8B ?? ?? 8D ?? ?? 83 ?? ?? FF D? 3B ?? 0F 84 } + $block_65 = { 8B ?? ?? 8B ?? ?? 8B ?? 8B ?? ?? FF D? 8B ?? 33 ?? 3B ?? 0F 84 } + $block_66 = { 8B ?? ?? 0F B7 ?? ?? 8B ?? 8B ?? ?? 5? FF D? 8B ?? 3B ?? ?? 75 } + $block_67 = { 8B ?? ?? 03 ?? 33 ?? 3B ?? 0F 94 ?? C6 ?? ?? ?? 83 ?? ?? 72 } + $block_68 = { 5? E8 ?? ?? ?? ?? 6A ?? E8 ?? ?? ?? ?? 83 ?? ?? 85 ?? 0F 84 } + $block_69 = { 5? 8B ?? 5? 5? 5? 5? 8B ?? E8 ?? ?? ?? ?? 83 ?? ?? ?? 0F 85 } + $block_70 = { 8B ?? ?? 83 ?? ?? 83 ?? ?? 89 ?? ?? 89 ?? ?? 39 ?? ?? 0F 82 } + $block_71 = { 8D ?? ?? 99 8B ?? 2B ?? D1 ?? 89 ?? ?? 8B ?? 39 ?? ?? 0F 8C } + $block_72 = { 83 ?? ?? 89 ?? ?? 8B ?? 8B ?? 83 ?? ?? 83 ?? ?? 3B ?? 0F 84 } + $block_73 = { 8B ?? ?? 5? 5? E8 ?? ?? ?? ?? 8B ?? 83 ?? ?? 3B ?? 0F 84 } + $block_74 = { 5? 8B ?? ?? 5? E8 ?? ?? ?? ?? 8B ?? 83 ?? ?? 85 ?? 0F 85 } + $block_75 = { 33 ?? 6A ?? 89 ?? ?? E8 ?? ?? ?? ?? 83 ?? ?? 3B ?? 0F 84 } + $block_76 = { 8B ?? ?? 8B ?? 8B ?? ?? FF D? 8B ?? 89 ?? ?? 85 ?? 0F 84 } + $block_77 = { FF D? 8B ?? 8B ?? ?? 8B ?? 89 ?? ?? ?? FF D? 85 ?? 0F 84 } + $block_78 = { 6A ?? 5? E8 ?? ?? ?? ?? 8B ?? 83 ?? ?? 33 ?? 85 ?? 0F 84 } + $block_79 = { 8D ?? ?? ?? 5? 5? FF 1? ?? ?? ?? ?? 8B ?? 83 ?? ?? 0F 84 } + $block_80 = { 8B ?? 8B ?? 8B ?? ?? FF D? 8B ?? 89 ?? ?? ?? 3B ?? 0F 84 } + $block_81 = { 8B ?? 8B ?? ?? 5? 8B ?? FF D? 8B ?? 89 ?? ?? 85 ?? 0F 84 } + $block_82 = { C7 ?? ?? ?? ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? 39 ?? ?? 0F 84 } + $block_83 = { 8B ?? ?? ?? 83 ?? ?? 33 ?? 89 ?? ?? ?? 3B ?? ?? ?? 0F 85 } + $block_84 = { 33 ?? 39 ?? ?? C6 ?? ?? ?? 0F 94 ?? 8B ?? 83 ?? ?? 72 } + $block_85 = { 8B ?? ?? 8B ?? 8B ?? ?? 5? FF D? 89 ?? ?? 85 ?? 0F 84 } + $block_86 = { 8B ?? ?? 5? E8 ?? ?? ?? ?? 83 ?? ?? 83 ?? ?? ?? 0F 84 } + $block_87 = { 8B ?? ?? 83 ?? ?? ?? 83 ?? ?? 89 ?? ?? 3B ?? ?? 0F 85 } + $block_88 = { 8B ?? B8 ?? ?? ?? ?? D3 ?? 8B ?? 23 ?? ?? 3B ?? 0F 85 } + $block_89 = { 8B ?? ?? 8B ?? 8B ?? ?? FF D? 8B ?? 33 ?? 3B ?? 0F 84 } + $block_90 = { 8B ?? ?? 83 ?? ?? ?? 83 ?? ?? 89 ?? ?? 39 ?? ?? 0F 82 } + $block_91 = { 5? 8B ?? 83 ?? ?? 5? 5? 8B ?? 5? 8B ?? 83 ?? ?? 0F 86 } + $block_92 = { 0F B7 ?? ?? 8B ?? ?? 8B ?? ?? 80 7? ?? ?? 8D ?? ?? 75 } + $block_93 = { 8B ?? ?? 8D ?? ?? 0F B7 ?? 8D ?? ?? 89 ?? ?? 3B ?? 73 } + $block_94 = { 68 ?? ?? ?? ?? 5? E8 ?? ?? ?? ?? 83 ?? ?? 3B ?? 0F 84 } + $block_95 = { 8B ?? ?? ?? 8B ?? 89 ?? ?? ?? 89 ?? ?? ?? 3B ?? 0F 84 } + $block_96 = { 8B ?? ?? 5? 5? E8 ?? ?? ?? ?? 83 ?? ?? 85 ?? 0F 84 } + $block_97 = { 8B ?? 8B ?? ?? 8B ?? 89 ?? ?? FF D? 85 ?? 0F 84 } + $block_98 = { 8B ?? ?? 2B ?? ?? 83 ?? ?? 3D ?? ?? ?? ?? 0F 85 } + $block_99 = { 5? 5? E8 ?? ?? ?? ?? 8B ?? 89 ?? ?? 85 ?? 0F 84 } + + condition: + hash.sha256(0, filesize) == "567332c2a6813d529bcb9196102ad45eceb982143e9d2f326f02cec1511954b0" or + hash.sha256(0, filesize) == "c47f2973f077f21abfb202b54ea18ee2a182e4305ee0046c1bc6d15a1179a43c" or + hash.sha256(0, filesize) == "6271c4909f39e1f29dcc79cde0f526cbde45d906726e73bd3b52d041a34eda38" or + hash.sha256(0, filesize) == "df818c2dccacc532ba0205749329b7e46d1f6616b40da55e0d994105bd988bd2" or + hash.sha256(0, filesize) == "3877a522c924f834e442ef19d9b11ab6d3385849e60d5f310f6320e2d9e42804" or + hash.sha256(0, filesize) == "bd589360b299dc4803aa35abca527137a51feadae2b1e3bc2b5a301bb5b245da" or + hash.sha256(0, filesize) == "df03f0ae0622f5040bf449ab8b7559a97da7f746cc2ce24a8ad5336b18699296" or + hash.sha256(0, filesize) == "8d86c0985530271618a342579afd1a9ecb27dfb080866e3b888bd3e45e1eb8f5" or + hash.sha256(0, filesize) == "a9e2d988781e970882fb1cee420bf01dda30730046a82f0faf4703523842feb5" or + hash.sha256(0, filesize) == "d07a802eb6d2c296c3f1bc726b5a716c4a7d8e97053c53e81658a31f969e6ce7" or + hash.sha256(0, filesize) == "489d448514a3ddf30144cc1634e6623e529dd3aee54a050a920a3d4342b4b96a" or + hash.sha256(0, filesize) == "97afcd01e00d32dc4d1161d7a127933593cfc092ec635af5dc7a775a088b6091" or + hash.sha256(0, filesize) == "65a2ca760bfce4762cd1cb3623c7d5d0ff86187d3bf3ba8fdea1339585a57ec2" or + hash.sha256(0, filesize) == "316528ade312cc5ed76f0b44c7f2c2fc84f60ae215992d9393f57431383cf776" or + hash.sha256(0, filesize) == "930939256e2c2fa30e7260897d96859c08cf767664e4bd3cedf156b6765b5413" or + hash.sha256(0, filesize) == "0474111e44b9aa56d6e6024c6f278e915d57b7862ceb927672fc3417f76a3ba3" or + hash.sha256(0, filesize) == "49dca913ff5c4782e8f8fa2dfd161110bc5c8cd36c9ce8aa0efd1860ab668e6e" or + hash.sha256(0, filesize) == "0102777ec0357655c4313419be3a15c4ca17c4f9cb4a440bfb16195239905ade" or + hash.sha256(0, filesize) == "366affd094cc63e2c19c5d57a6866b487889dab5d1b07c084fff94262d8a390b" or + hash.sha256(0, filesize) == "540913b3647c28a14418a6f288be9e4d8f99048227efea8ca1b13877269002eb" or + hash.sha256(0, filesize) == "4558eb18504f724e4f33f1504ff924ce64701d26d703cf1e42a48504e7f51927" or + hash.sha256(0, filesize) == "ac9c7ac457a605ff836eb6fe127eabc7a251dd73ea0a1fa59a591de30fa75d3f" or + hash.sha256(0, filesize) == "ddce4b5e1c03d04bb82780a2d0f08469bb589b6fe8f0d4cc2a140b16344f5bd1" or + hash.sha256(0, filesize) == "c218b779461d83d70791e0578175503cd69128c9723f2c5d7d36b85073b0f2f9" or + hash.sha256(0, filesize) == "3af9cfb2797bed22e1d12970d068d794270a0f07d3f3dcfdcdb9abfc3a80e0f8" or + hash.sha256(0, filesize) == "d04bef6765408d528fdf82a46c157b44e8b5e7762a15b0264033c9558ccc48dd" or + hash.sha256(0, filesize) == "ef0fab7757a6b5e842297fa2e0dc7a7ce084278c5d12b878bba7d90759a0e22b" or + 12 of them +} + +rule CosmicDuke { + meta: + Author = "Intezer Analyze" + Reference = "https://apt-ecosystem.com" + + strings: + $block_0 = { 8A ?? 8B ?? ?? 8B ?? 8B ?? 8B ?? ?? 6A ?? FF D? 0F B6 ?? 83 ?? ?? 8B ?? D3 ?? 09 ?? 80 F? ?? 72 } + $block_1 = { 5? FF 1? ?? ?? ?? ?? 5? B0 ?? 5? 4? 06 25 ?? ?? ?? ?? 5? 5? 5? BE ?? ?? ?? ?? E8 ?? ?? ?? ?? 00 } + $block_2 = { A1 ?? ?? ?? ?? 8B ?? ?? 5? 6A ?? 6A ?? 81 C? ?? ?? ?? ?? 5? 6A ?? FF 1? ?? ?? ?? ?? 85 ?? 0F 85 } + $block_3 = { 8D ?? ?? ?? ?? ?? 68 ?? ?? ?? ?? 5? E8 ?? ?? ?? ?? 5? 5? 5? E8 ?? ?? ?? ?? 85 ?? 89 ?? ?? 0F 84 } + $block_4 = { 68 ?? ?? ?? ?? 68 ?? ?? ?? ?? BF ?? ?? ?? ?? E8 ?? ?? ?? ?? A3 ?? ?? ?? ?? 8B ?? 5? 5? 5? C9 C3 } + $block_5 = { 8B ?? 8B ?? ?? 8D ?? ?? ?? ?? ?? 5? 8B ?? FF D? F6 ?? ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 0F 84 } + $block_6 = { 8B ?? 99 6A ?? 5? F7 ?? 0F B6 ?? ?? ?? 2B ?? 03 ?? ?? 8A ?? ?? ?? 88 ?? ?? ?? 4? 3B ?? ?? 72 } + $block_7 = { 8B ?? 99 6A ?? 5? F7 ?? 0F B6 ?? ?? ?? 2B ?? 8B ?? ?? 03 ?? 8A ?? ?? 88 ?? ?? ?? 4? 3B ?? 72 } + $block_8 = { 01 ?? 28 ?? ?? 84 ?? ?? 04 ?? 00 ?? ?? D7 05 ?? ?? ?? ?? 5? F1 4? 00 ?? ?? ?? ?? ?? A8 ?? 74 } + $block_9 = { 5? 8B ?? 83 ?? ?? 5? 4? 1D ?? ?? ?? ?? 2D ?? ?? ?? ?? D2 ?? ?? ?? ?? ?? 89 ?? ?? 85 ?? 0F 8E } + $block_10 = { 12 ?? ?? 04 ?? 06 35 ?? ?? ?? ?? 4? 10 ?? ?? ?? ?? ?? 01 ?? 4? 27 11 ?? ?? ?? ?? ?? 0B ?? 75 } + $block_11 = { C6 ?? ?? C7 ?? ?? ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? 0F B6 ?? 99 01 ?? 5? B3 ?? 11 ?? ?? 38 ?? 74 } + $block_12 = { 33 ?? 6A ?? 8D ?? ?? 5? 8B ?? F7 ?? 0F 90 ?? F7 ?? 0B ?? 5? E8 ?? ?? ?? ?? 8B ?? 85 ?? 5? 74 } + $block_13 = { 8B ?? 99 83 ?? ?? 8D ?? ?? 8B ?? 99 83 ?? ?? 8D ?? ?? C1 ?? ?? C1 ?? ?? 81 F? ?? ?? ?? ?? 7F } + $block_14 = { 8D ?? ?? ?? ?? ?? 68 ?? ?? ?? ?? 5? E8 ?? ?? ?? ?? 5? 5? 5? E8 ?? ?? ?? ?? 8B ?? 85 ?? 0F 84 } + $block_15 = { 8B ?? ?? 8B ?? 4? C1 ?? ?? 89 ?? ?? 8B ?? ?? 03 ?? 8B ?? ?? 83 ?? ?? 89 ?? ?? 3B ?? 0F 87 } + $block_16 = { 01 ?? 08 ?? 8B ?? ?? ?? ?? ?? 61 07 0C ?? 16 83 ?? ?? ?? ?? ?? ?? 0D ?? ?? ?? ?? 04 ?? 74 } + $block_17 = { 5? 5? 8D ?? ?? 5? 8B ?? ?? 8D ?? ?? 5? 8D ?? ?? 5? 5? E8 ?? ?? ?? ?? 83 ?? ?? 85 ?? 0F 85 } + $block_18 = { 8D ?? ?? ?? ?? ?? 68 ?? ?? ?? ?? 5? E8 ?? ?? ?? ?? 5? 33 ?? 81 7? ?? ?? ?? ?? ?? 5? 0F 85 } + $block_19 = { 0F B6 ?? ?? 5? 8D ?? ?? ?? ?? ?? 68 ?? ?? ?? ?? 5? E8 ?? ?? ?? ?? 83 ?? ?? 80 7? ?? ?? 74 } + $block_20 = { 6A ?? 68 ?? ?? ?? ?? 8D ?? ?? ?? 5? 5? FF 1? ?? ?? ?? ?? 3B ?? 8D ?? ?? ?? ?? ?? ?? 0F 8C } + $block_21 = { 8D ?? ?? E8 ?? ?? ?? ?? 12 ?? ?? ?? ?? ?? 15 ?? ?? ?? ?? 4? FC E8 ?? ?? ?? ?? 3B ?? 74 } + $block_22 = { 08 ?? ?? E8 ?? ?? ?? ?? 09 ?? ?? ?? ?? ?? ?? 1D ?? ?? ?? ?? E8 ?? ?? ?? ?? 0E B1 ?? 00 } + $block_23 = { 8B ?? 68 ?? ?? ?? ?? 5? E8 ?? ?? ?? ?? 5? 5? 5? E8 ?? ?? ?? ?? 85 ?? 89 ?? ?? ?? 0F 84 } + $block_24 = { 8B ?? ?? 8B ?? ?? 8B ?? ?? 8B ?? ?? 83 ?? ?? ?? 89 ?? ?? 8B ?? ?? C1 ?? ?? 85 ?? 0F 8E } + $block_25 = { 8D ?? ?? ?? ?? ?? ?? 8D ?? ?? 8D ?? ?? E8 ?? ?? ?? ?? 3B ?? ?? 0F 94 ?? 84 ?? 0F 85 } + $block_26 = { 88 ?? ?? ?? ?? ?? 0F B6 ?? 8D ?? ?? ?? ?? ?? ?? 0F B6 ?? 03 ?? 81 E? ?? ?? ?? ?? 79 } + $block_27 = { 6A ?? 5? FF 7? ?? 8D ?? ?? ?? 68 ?? ?? ?? ?? E8 ?? ?? ?? ?? 33 ?? 39 ?? ?? ?? 0F 8E } + $block_28 = { 0F B7 ?? ?? ?? 83 ?? ?? 0F AF ?? ?? ?? 0F AF ?? ?? ?? 99 83 ?? ?? 03 ?? C1 ?? ?? 89 } + $block_29 = { 8B ?? 68 ?? ?? ?? ?? 5? E8 ?? ?? ?? ?? 5? 5? E8 ?? ?? ?? ?? 3B ?? 89 ?? ?? ?? 0F 84 } + $block_30 = { 8B ?? ?? ?? 89 ?? ?? ?? A1 ?? ?? ?? ?? 89 ?? ?? ?? C1 ?? ?? 33 ?? 33 ?? 85 ?? 0F 8E } + $block_31 = { A1 ?? ?? ?? ?? 8B ?? ?? 8B ?? ?? 83 ?? ?? ?? 89 ?? ?? 8B ?? ?? C1 ?? ?? 85 ?? 0F 8E } + $block_32 = { 8D ?? ?? ?? ?? ?? ?? 8B ?? ?? 8B ?? ?? 89 ?? ?? 83 ?? ?? F7 ?? ?? ?? ?? ?? 0F 84 } + $block_33 = { 8B ?? ?? 5? 5? 8B ?? ?? 8A ?? ?? ?? 83 ?? ?? 33 ?? 88 ?? ?? 89 ?? ?? 85 ?? 0F 84 } + $block_34 = { 89 ?? ?? FF 7? ?? FF 1? 5? A1 ?? ?? ?? ?? 0E 88 ?? 08 ?? ?? FF 1? 9? 08 ?? ?? CA } + $block_35 = { 68 ?? ?? ?? ?? 8D ?? ?? ?? ?? ?? ?? 5? FF 7? ?? ?? FF 1? ?? ?? ?? ?? 85 ?? 0F 85 } + $block_36 = { 5? 6A ?? BE ?? ?? ?? ?? 5? 8D ?? ?? ?? ?? ?? 5? E8 ?? ?? ?? ?? 0F B6 ?? 85 ?? 74 } + $block_37 = { 8B ?? ?? 8B ?? ?? 8D ?? ?? ?? ?? ?? ?? 99 83 ?? ?? 03 ?? 8B ?? C1 ?? ?? 4? C1 } + $block_38 = { 12 ?? ?? 00 ?? ?? AB 25 ?? ?? ?? ?? FF 3? DB ?? ?? ?? ?? ?? 32 ?? ?? 1C ?? 75 } + $block_39 = { 0F B6 ?? 8B ?? ?? ?? ?? ?? C1 ?? ?? 03 ?? FF 4? ?? ?? 89 ?? ?? ?? ?? ?? 0F 85 } + $block_40 = { 8B ?? ?? 66 ?? ?? ?? C6 ?? ?? 66 ?? ?? ?? 83 ?? ?? FF 4? ?? 89 ?? ?? 0F 85 } + $block_41 = { 6A ?? 68 ?? ?? ?? ?? FF 7? ?? ?? B9 ?? ?? ?? ?? E8 ?? ?? ?? ?? 84 ?? 0F 84 } + $block_42 = { 5? 5? 6A ?? FF 1? ?? ?? ?? ?? 5? 8B ?? FF 1? ?? ?? ?? ?? 8B ?? 85 ?? 0F 84 } + $block_43 = { 6A ?? 68 ?? ?? ?? ?? FF 7? ?? 88 ?? ?? E8 ?? ?? ?? ?? 83 ?? ?? 85 ?? 0F 85 } + $block_44 = { 8B ?? ?? 8B ?? ?? 8B ?? ?? 8B ?? 2B ?? ?? 66 ?? ?? ?? 8B ?? 3B ?? 0F 85 } + $block_45 = { 5? 68 ?? ?? ?? ?? FF 7? ?? ?? B9 ?? ?? ?? ?? E8 ?? ?? ?? ?? 84 ?? 0F 84 } + $block_46 = { 89 ?? E8 ?? ?? ?? ?? 68 ?? ?? ?? ?? FF 7? ?? E8 ?? ?? ?? ?? 84 ?? 0F 84 } + $block_47 = { 5? FF 7? ?? 8D ?? ?? ?? ?? ?? 5? E8 ?? ?? ?? ?? 83 ?? ?? 5? 5? 5? C9 C3 } + $block_48 = { A1 ?? ?? ?? ?? 4? 4? 89 ?? ?? ?? C1 ?? ?? 33 ?? 85 ?? 88 ?? ?? ?? 0F 8E } + $block_49 = { 8D ?? ?? ?? ?? ?? 68 ?? ?? ?? ?? 5? E8 ?? ?? ?? ?? 38 ?? ?? 5? 5? 0F 84 } + $block_50 = { 8B ?? 68 ?? ?? ?? ?? 5? E8 ?? ?? ?? ?? 5? 5? 83 ?? ?? ?? 39 ?? ?? 0F 84 } + $block_51 = { 5? 5? B0 ?? 4? 07 05 ?? ?? ?? ?? 4? 04 ?? 65 ?? 00 ?? ?? 85 ?? 0F 84 } + $block_52 = { FF 0? ?? ?? ?? ?? 8B ?? ?? A1 ?? ?? ?? ?? 64 ?? ?? ?? ?? ?? ?? C9 C3 } + $block_53 = { B8 ?? ?? ?? ?? 2B ?? 4? 89 ?? ?? ?? ?? ?? ?? 81 F? ?? ?? ?? ?? 0F 82 } + $block_54 = { A1 ?? ?? ?? ?? 8B ?? ?? 8B ?? ?? 83 ?? ?? ?? ?? C1 ?? ?? 85 ?? 0F 8E } + $block_55 = { 8B ?? ?? 8B ?? 5? 8D ?? ?? ?? ?? ?? 5? 6A ?? 5? FF 5? ?? 85 ?? 0F 84 } + $block_56 = { 68 ?? ?? ?? ?? FF D? 81 4? ?? ?? ?? ?? ?? 4? 3B ?? ?? ?? ?? ?? 0F 8C } + $block_57 = { 0F B6 ?? ?? FF 8? ?? ?? ?? ?? ?? 8D ?? ?? ?? ?? ?? ?? 4? 3B ?? 72 } + $block_58 = { 8D ?? ?? ?? E8 ?? ?? ?? ?? 99 6A ?? 5? F7 ?? 33 ?? 88 ?? 85 ?? 74 } + $block_59 = { 8B ?? ?? 8B ?? ?? 89 ?? 8B ?? 5? 5? 33 ?? 5? E8 ?? ?? ?? ?? C9 C3 } + $block_60 = { 0C ?? 83 ?? ?? 0E BB ?? ?? ?? ?? B9 ?? ?? ?? ?? 0E 5? 11 ?? ?? EB } + $block_61 = { 6A ?? 68 ?? ?? ?? ?? FF 7? ?? E8 ?? ?? ?? ?? 83 ?? ?? 85 ?? 0F 85 } + $block_62 = { FF 7? ?? E8 ?? ?? ?? ?? 5? FF 7? ?? FF 1? ?? ?? ?? ?? 85 ?? 0F 84 } + $block_63 = { 8D ?? ?? 8D ?? ?? E8 ?? ?? ?? ?? 3B ?? ?? 0F 94 ?? 84 ?? 0F 85 } + $block_64 = { 8B ?? ?? 2B ?? ?? 83 ?? ?? 01 ?? ?? F7 ?? ?? ?? ?? ?? ?? 0F 84 } + $block_65 = { 5? 8B ?? 8B ?? ?? 81 E? ?? ?? ?? ?? 5? 33 ?? 5? 5? 3B ?? 0F 84 } + $block_66 = { 4? F4 8B ?? 0F AF ?? 85 ?? 22 ?? 1C ?? 83 ?? ?? ?? 85 ?? 0F 84 } + $block_67 = { 0F B6 ?? ?? 99 0F A4 ?? ?? C1 ?? ?? 01 ?? 11 ?? ?? 38 ?? ?? 74 } + $block_68 = { 8B ?? ?? ?? ?? ?? 33 ?? ?? ?? ?? ?? 5? 5? A9 ?? ?? ?? ?? 0F 85 } + $block_69 = { FF 4? ?? ?? 8B ?? ?? ?? 8B ?? ?? ?? 8D ?? ?? 89 ?? ?? ?? 0F 85 } + $block_70 = { 6A ?? 8D ?? ?? ?? ?? ?? ?? 5? E8 ?? ?? ?? ?? 8B ?? 85 ?? 0F 84 } + $block_71 = { 8B ?? ?? ?? 5? FF 7? ?? FF 7? ?? 5? E8 ?? ?? ?? ?? 84 ?? 0F 84 } + $block_72 = { FF 4? ?? 8B ?? ?? 81 C? ?? ?? ?? ?? 3B ?? ?? ?? ?? ?? 0F 8C } + $block_73 = { 83 ?? ?? ?? 8B ?? ?? 5? 8B ?? 5? 64 ?? ?? ?? ?? ?? ?? C9 C2 } + $block_74 = { 8B ?? ?? ?? ?? ?? 8B ?? ?? 8B ?? 0F AF ?? ?? 2B ?? 3B ?? 7C } + $block_75 = { 39 ?? ?? 8D ?? ?? ?? ?? ?? 89 ?? ?? 89 ?? ?? 89 ?? ?? 0F 86 } + $block_76 = { 8B ?? ?? 8B ?? 5? 8D ?? ?? 5? 6A ?? 5? FF 5? ?? 85 ?? 0F 84 } + $block_77 = { 68 ?? ?? ?? ?? FF D? 83 ?? ?? ?? 4? 3B ?? ?? ?? ?? ?? 0F 8C } + $block_78 = { 8B ?? ?? 83 ?? ?? 2B ?? 8D ?? ?? ?? 8B ?? 3B ?? ?? 0F 85 } + $block_79 = { 68 ?? ?? ?? ?? FF 7? ?? ?? FF 1? ?? ?? ?? ?? 85 ?? 0F 85 } + $block_80 = { 5? 89 ?? 60 8B ?? ?? 03 ?? ?? 5? 8B ?? ?? 8B ?? 85 ?? 74 } + $block_81 = { 33 ?? 4? 85 ?? 01 ?? 4? 4? 37 01 ?? 03 ?? C9 4? 3B ?? 7E } + $block_82 = { 0F B6 ?? ?? 99 C1 ?? ?? 83 ?? ?? 11 ?? ?? 38 ?? ?? 5? 74 } + $block_83 = { 8B ?? ?? 8B ?? ?? 6A ?? E8 ?? ?? ?? ?? 8B ?? 85 ?? 0F 84 } + $block_84 = { 0F B6 ?? 8A ?? ?? ?? ?? ?? ?? 30 ?? 4? 3B ?? ?? 0F 8C } + $block_85 = { 21 ?? ?? ?? ?? ?? E8 ?? ?? ?? ?? FF 5? ?? 6D 02 ?? E3 } + $block_86 = { 5? 0A ?? ?? 01 ?? 33 ?? EE 17 04 ?? 89 ?? ?? 04 ?? 70 } + $block_87 = { 5? FF 7? ?? ?? 8D ?? ?? ?? E8 ?? ?? ?? ?? 84 ?? 0F 84 } + $block_88 = { 8B ?? 2B ?? 03 ?? 89 ?? ?? 8B ?? ?? 2B ?? 3B ?? 0F 83 } + $block_89 = { 0F B6 ?? ?? 99 C1 ?? ?? 83 ?? ?? 11 ?? ?? 38 ?? ?? 74 } + $block_90 = { 8B ?? ?? 8D ?? ?? 89 ?? ?? 89 ?? ?? 83 ?? ?? 0F 82 } + $block_91 = { 8B ?? ?? 8B ?? ?? 89 ?? ?? 89 ?? ?? F6 ?? ?? 0F 84 } + $block_92 = { 8B ?? ?? 89 ?? ?? 83 ?? ?? F7 ?? ?? ?? ?? ?? 0F 84 } + $block_93 = { 83 ?? ?? 8D ?? ?? 83 ?? ?? 81 F? ?? ?? ?? ?? 0F 82 } + $block_94 = { 8B ?? ?? 8B ?? 5? 5? 33 ?? 5? E8 ?? ?? ?? ?? C9 C3 } + $block_95 = { 80 8? ?? ?? ?? ?? ?? F8 2A ?? ?? 8B ?? ?? 85 ?? 74 } + $block_96 = { 0F B6 ?? 03 ?? 3B ?? 89 ?? ?? 0F 96 ?? 84 ?? 74 } + $block_97 = { A1 ?? ?? ?? ?? FF 4? ?? C1 ?? ?? 39 ?? ?? 0F 8C } + $block_98 = { 68 ?? ?? ?? ?? 1E 0E C4 ?? 18 ?? ?? 85 ?? 0F 84 } + $block_99 = { 5? D5 ?? 10 ?? 81 F? ?? ?? ?? ?? 08 ?? ?? 1F 01 } + + condition: + hash.sha256(0, filesize) == "d5f1d8d2629b91744fe812207cb3f0bebfd1aec9937b7744a263d1a4e3421063" or + hash.sha256(0, filesize) == "16870c6b572934f5a106d5f632b6d41bb23924c12ddf172be24c6dfca25226b1" or + hash.sha256(0, filesize) == "dad4c4aea24f2bd3e2f4b93bf782ebef70e8fdf930aff25a3e1b85a717314aa0" or + hash.sha256(0, filesize) == "aecb468db5cebcfa25deadeb3b12fbc48b05a485b44deb500b4002521bc3e685" or + hash.sha256(0, filesize) == "5b50e26a01b320f05d66727e9d220d5858cdac203ff62e4b9ced1cafc2683637" or + hash.sha256(0, filesize) == "bd4928921ddadb44f9f573da61dac034533bf14fe38acd5754f3ccec1d566300" or + hash.sha256(0, filesize) == "7e371cd323898e403df7a80add34d791e160e443bcd2d02f27ddc0c04ba1bdab" or + hash.sha256(0, filesize) == "9c2562e05eb940ae8d73c9baa7cfe85cb3ec619689227f65e4fbeeb3fec598ad" or + hash.sha256(0, filesize) == "9ce93f04dbb6a3b833f1146a54dadfdc224fdf24e3cca1f8a1eb4e902d597ff6" or + hash.sha256(0, filesize) == "43bcee4067c067d9063ddfc101fc8b5a6e8d42184ef8b0fdd9bb14102cb9973d" or + hash.sha256(0, filesize) == "3d37e753812687fb7287cf8644d13fe2673ea7c3b540637c1ce1c6819f1c521b" or + hash.sha256(0, filesize) == "29585bb17b28e8b15b2a250be9516f416fa7cac84cc24aa4e004f6987323147e" or + hash.sha256(0, filesize) == "05637ef950feaeb0944d9fccca38eeff38e366c24a137ef08c9f1442aeb6afb7" or + hash.sha256(0, filesize) == "38c0252f75b1c6b3980e40bb69cb932773a6e0b189fc8a80efc2dcb455209eab" or + hash.sha256(0, filesize) == "187b1cc7264c04c3158f835546cad0be74e6411bb50cb8899179a71018f0b4b9" or + hash.sha256(0, filesize) == "2146da9bc0e27d7eb10983b7dd89f250fa0015ce284dde8f0bb6a79626d34a2a" or + hash.sha256(0, filesize) == "41d63d293a6e2722fcf82f8bf67b8f566bd4d3f669ede146ccc286f0228d8f62" or + hash.sha256(0, filesize) == "fe5bc1248fc79fc15663ef169f0a269c1abe847d00b01e9571fe5c0d760d68f0" or + hash.sha256(0, filesize) == "1c86bcc74684c2533026a8b4d9463ad4b5a1f30f6915ca19197b41e0cb893b77" or + hash.sha256(0, filesize) == "831267e0977becf098b5064aac6fd39b5f8e6fd975c06d4b8540cea71d402317" or + hash.sha256(0, filesize) == "008beba8635e24baa50beee2e98654f73c04476a06fdcb893655f0a8201932d2" or + hash.sha256(0, filesize) == "2eafc64769c500d635b7225c9b1411db8f50db8618e4d5807e1640b641a2f5ee" or + hash.sha256(0, filesize) == "f61cdc7f68f47d23c4571b517ab4cdcfd984cf3f6f8f91dec99dfd7dc5a2dcff" or + hash.sha256(0, filesize) == "a8200a476f72ef77f4cd6bd71ebae9f473e923b140600b9da0bbaf1f22e1cecb" or + hash.sha256(0, filesize) == "4f9b6a88245f782d81e9eec9315b9444c83d68941f9fc23641e3909c8da9db9d" or + hash.sha256(0, filesize) == "73aac0b568f83746c9a54a2a6fdd2984c3e6f8d0c77a681c219abb9480859197" or + hash.sha256(0, filesize) == "70a7248b90573ba2edde5d9e8f0acd478235054480d98b0531d85725555f3a5c" or + hash.sha256(0, filesize) == "2c480399bff7d05736caa1858fd43d9223df3fd531ae574dc3c9eb06cc3579ef" or + hash.sha256(0, filesize) == "ec49400e70c02a884a5df74ca99690886ec2d528e200c42dbdf057fd9b7f87f8" or + hash.sha256(0, filesize) == "82670519b8d63d36967c611bc94659e5bff867837129ac93bcffe7589af46384" or + hash.sha256(0, filesize) == "92172ff7bfeee332409a145bc626bebf732225d006877168f35c046368e5118c" or + hash.sha256(0, filesize) == "75e8567e7667eb02eec661134ecc07a7970d9448fc5b7dc021b5bcb039953a47" or + hash.sha256(0, filesize) == "1005b40f977b92cbc01b7a66558ff0621cbaf36f7b4b2ab2ca3c3a267891bc8d" or + hash.sha256(0, filesize) == "68355d29ce79a5177084fe6292f0f8b9daa2018c571b552fff9f4a0815b432ce" or + hash.sha256(0, filesize) == "c9f5a19c7b11fd866483adc93aa5bc4bd3515bd995ca79297b227e3e5ef1a665" or + hash.sha256(0, filesize) == "4bc8280a99d07165055fabed11049d8da275f27f5d8cffc4ed10a68be2d0cb84" or + hash.sha256(0, filesize) == "f6c62f9f846b3d100d60b1f2ae57a71c91dd8dc215dce652e2c85dff60c0197f" or + hash.sha256(0, filesize) == "2e8aa9dac584a51c7d960baccf76747c858175573f5c013b7c44328f0871da04" or + hash.sha256(0, filesize) == "5ef73d904cf5dcbec5919fba0b640168d6feb8f7021507568297e3da1a7e47a5" or + hash.sha256(0, filesize) == "04819cde7e928e6ff376daeb73b894959f672a85b363753c227416fc0f4a8acd" or + hash.sha256(0, filesize) == "64e3a2bba82027dd6ff631fa5890a7ba8331b62a0a4c0b1ca24d143c2b61c323" or + hash.sha256(0, filesize) == "334ed05005ce829224d0dd4cc5baab6b837cf02ac0e321c8f97d11b3ba1c77a7" or + hash.sha256(0, filesize) == "0a013787f9c1731213059f2d8e1a7514f610783aaaea8fa5736063ab7793c0d7" or + hash.sha256(0, filesize) == "bf012045464ba2aadc1547940eb3ce262d0e023c2198c134dee658c859ecd8ab" or + hash.sha256(0, filesize) == "f21794d0b0938643e2aabe9f2ed762528e631a2ebda76020d0b59ce91fb51e41" or + hash.sha256(0, filesize) == "a1176b60ca96cfeb37dde61bde935f645a64fabd8e300f072fc355434b711dcf" or + hash.sha256(0, filesize) == "246543cc4a538472bed0626c159715a963e39dfc69d79f60c3ab227c62277016" or + hash.sha256(0, filesize) == "7c14761d20617ab7f408d6c63367f16026377d7c13f3e3c67525e034fc0c6d7c" or + hash.sha256(0, filesize) == "182ab7eb1dce2827a05aff0d83a13dd8346bd3b8ab2dfb681817a0d3aab05b15" or + hash.sha256(0, filesize) == "30b24935c8537c51ce56a69510019d8481ac78e6c5ccdbe792c625c69c5358f9" or + hash.sha256(0, filesize) == "6322e8bbb5a7cc542a7da0fb33a60fc7443bcbd8601b828c9c7f138c71cce090" or + hash.sha256(0, filesize) == "3e889cd495e008760fd12751d6d45cadf8a7280c4545f2ebe469f84b9b77c835" or + hash.sha256(0, filesize) == "910a016a7b6e0a76bc7ddf12f9135090e0b23d00c382d70084b46bea4bbbcae7" or + hash.sha256(0, filesize) == "1590bdbaff2c178387e924b689b030057b4cbd2865e9c4dd3886a8791ac8e4ee" or + hash.sha256(0, filesize) == "7c2bb277e3a982e9e2f76da2c96119514dde4f3e36b16eca5994be5f28bd0029" or + hash.sha256(0, filesize) == "0314ed09890d5aa2dba659fe1343be93d48c3875a89e261484967fea7ea6c7eb" or + hash.sha256(0, filesize) == "cae1277446cb62f1ed3674e7ea87063a28b9d364e3638fa779fe8e3d6e1fb15f" or + hash.sha256(0, filesize) == "027c9da59c77e83b42535a0c965c4994a144715e796453fc2a5b189f0036c4b4" or + hash.sha256(0, filesize) == "3c5d2fcacafc21d9f43c595ddf03bec801ccb958b8641018612c21bc741800d0" or + hash.sha256(0, filesize) == "51b4e69183f3d02124f3314cc64a7869425f053d8021c74c12f21d7c2afe2163" or + 12 of them +} + +rule CloudDuke { + meta: + Author = "Intezer Analyze" + Reference = "https://apt-ecosystem.com" + + strings: + $block_0 = { 5? 8B ?? 81 E? ?? ?? ?? ?? A1 ?? ?? ?? ?? 33 ?? 89 ?? ?? 5? 8B ?? ?? 5? 83 ?? ?? ?? 5? 0F 84 } + $block_1 = { 6A ?? 68 ?? ?? ?? ?? 5? 5? C7 ?? ?? ?? ?? ?? ?? FF 1? ?? ?? ?? ?? 89 ?? ?? 85 ?? 0F 84 } + $block_2 = { 8B ?? ?? ?? ?? ?? 4? 83 ?? ?? ?? 8D ?? ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 0F 85 } + $block_3 = { 8B ?? ?? 03 ?? 33 ?? 0F B7 ?? ?? 83 ?? ?? 03 ?? 0F B7 ?? ?? 5? 89 ?? ?? 85 ?? 74 } + $block_4 = { 6A ?? 68 ?? ?? ?? ?? 5? 5? C7 ?? ?? ?? ?? ?? ?? FF 1? ?? ?? ?? ?? 85 ?? 0F 84 } + $block_5 = { FF 7? ?? FF 7? ?? 5? E8 ?? ?? ?? ?? 0F B7 ?? ?? 83 ?? ?? 89 ?? ?? 85 ?? 75 } + $block_6 = { 8B ?? ?? ?? 2B ?? ?? ?? 33 ?? 4? 03 ?? ?? ?? 99 13 ?? ?? ?? 3B ?? 0F 82 } + $block_7 = { 8D ?? ?? E8 ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 85 ?? 0F 45 ?? ?? ?? ?? ?? 89 } + $block_8 = { 6A ?? 68 ?? ?? ?? ?? FF 7? ?? 5? FF 1? ?? ?? ?? ?? 8B ?? 85 ?? 0F 84 } + $block_9 = { 0F B7 ?? ?? C1 ?? ?? 83 ?? ?? B9 ?? ?? ?? ?? 89 ?? ?? 66 ?? ?? ?? 74 } + $block_10 = { 5? 8B ?? 83 ?? ?? 5? 5? 8B ?? 8B ?? 89 ?? ?? 89 ?? ?? 85 ?? 0F 84 } + $block_11 = { 8D ?? ?? ?? ?? ?? ?? E8 ?? ?? ?? ?? 8B ?? 89 ?? ?? ?? 85 ?? 0F 84 } + $block_12 = { 0F B7 ?? ?? C1 ?? ?? 83 ?? ?? 89 ?? ?? 83 ?? ?? ?? ?? ?? ?? 74 } + $block_13 = { C7 ?? ?? ?? ?? ?? ?? 8B ?? ?? 89 ?? ?? 89 ?? ?? 85 ?? 0F 84 } + $block_14 = { 8B ?? 33 ?? 89 ?? 4? 83 ?? ?? 83 ?? ?? 3B ?? ?? 0F 8C } + $block_15 = { 8B ?? ?? 03 ?? 89 ?? ?? 81 3? ?? ?? ?? ?? 0F 85 } + + condition: + hash.sha256(0, filesize) == "d4d79be85dc98f74088d6393a8fdf2b5d947ae4f279909af2aed0221dcecfe94" or + hash.sha256(0, filesize) == "d3d503934c0dfe75e386d0fb8da2e32238d93739624b6c5a929fe5b722b35d36" or + hash.sha256(0, filesize) == "6c8eb3365b7fb7683b9b465817e5cb87574026e306c700f3d103eba056777720" or + hash.sha256(0, filesize) == "ecd0ce1973500c27bb5d70f326d115fba84c0b1680a726a041ed57b42063e7b1" or + hash.sha256(0, filesize) == "0f7d64f514e99a2abdc10dc85e7e6f57c210a0f35472f7b897a19b73be36bece" or + hash.sha256(0, filesize) == "12f58639a883b0fcfe3d2e8bcb0330b978731975c9dfa2f8e583adbafc4d534e" or + hash.sha256(0, filesize) == "c1ee4232d1b6504fc7f93cb0478e90049a71992498ed2d701925d852e91cfcc3" or + hash.sha256(0, filesize) == "97d8725e39d263ed21856477ed09738755134b5c0d0b9ae86ebb1cdd4cdc18b7" or + hash.sha256(0, filesize) == "88a40d5b679bccf9641009514b3d18b09e68b609ffaf414574a6eca6536e8b8f" or + hash.sha256(0, filesize) == "c3ea57eea9f522cfc70ef8c3b614f7e44903293a2e8354359b99efbf4cd436df" or + hash.sha256(0, filesize) == "85c5ba695992ed59269ea7f7a58f3453f6047729d1f68a444d450439bbccc1f4" or + hash.sha256(0, filesize) == "6c7e768e48b9b225b7b9f84528c53c2e6f9b639ce2e7919fe0dff9aad07ea4f5" or + hash.sha256(0, filesize) == "ee5eb9d57c3611e91a27bb1fc2d0aaa6bbfa6c69ab16e65e7123c7c49d46f145" or + hash.sha256(0, filesize) == "bfc1bafd9b01178037226fa55546d7ed7e9203c13e1b66419e887fee704d5196" or + hash.sha256(0, filesize) == "ed7abf93963395ce9c9cba83a864acb4ed5b6e57fd9a6153f0248b8ccc4fdb46" or + hash.sha256(0, filesize) == "a713982d04d2048a575912a5fc37c93091619becd5b21e96f049890435940004" or + hash.sha256(0, filesize) == "1d4ac97d43fab1d464017abb5d57a6b4601f99eaa93b01443427ef25ae5127f7" or + hash.sha256(0, filesize) == "e1490d6e5ce4c2cddef0815c55bf8946cb830ce0ac7f586cf1ae16ef66f1bd8b" or + hash.sha256(0, filesize) == "56ac764b81eb216ebed5a5ad38e703805ba3e1ca7d63501ba60a1fb52c7ebb6e" or + 12 of them +} + +rule PinchDuke { + meta: + Author = "Intezer Analyze" + Reference = "https://apt-ecosystem.com" + + strings: + $block_0 = { FF 7? ?? 8B ?? ?? E8 ?? ?? ?? ?? 0F B6 ?? ?? ?? FF 4? ?? 8A ?? ?? ?? ?? ?? 4? 83 ?? ?? 88 ?? 7C } + $block_1 = { 5? 5? FF 1? ?? ?? ?? ?? 5? 8B ?? 5? 5? 6A ?? 5? FF 7? ?? FF 1? ?? ?? ?? ?? 3B ?? 89 ?? ?? 0F 84 } + $block_2 = { 5? 8B ?? ?? ?? ?? ?? 5? FF D? 5? 5? 8D ?? ?? ?? ?? ?? 5? FF 7? ?? 5? E8 ?? ?? ?? ?? 85 ?? 0F 85 } + $block_3 = { 5? 5? 5? 5? 8D ?? ?? 5? FF 7? ?? 89 ?? ?? FF 7? ?? 68 ?? ?? ?? ?? FF 1? ?? ?? ?? ?? 85 ?? 0F 85 } + $block_4 = { 5? 8D ?? ?? E8 ?? ?? ?? ?? 0F B6 ?? 8B ?? C1 ?? ?? 25 ?? ?? ?? ?? 8A ?? ?? ?? ?? ?? 88 ?? ?? 79 } + $block_5 = { 8D ?? ?? ?? ?? ?? E8 ?? ?? ?? ?? 8D ?? ?? E8 ?? ?? ?? ?? 8B ?? ?? 64 ?? ?? ?? ?? ?? 5? 5? C9 C3 } + $block_6 = { 8A ?? 8D ?? ?? 5? E8 ?? ?? ?? ?? 0F B6 ?? 5? 8B ?? ?? 0F B6 ?? 8D ?? ?? 33 ?? 85 ?? 89 ?? ?? 7E } + $block_7 = { 68 ?? ?? ?? ?? 5? E8 ?? ?? ?? ?? 8B ?? ?? 0F AF ?? ?? C1 ?? ?? 0F AF ?? ?? C1 ?? ?? 01 ?? ?? EB } + $block_8 = { 68 ?? ?? ?? ?? 8D ?? ?? ?? ?? ?? 5? FF 7? ?? FF 7? ?? FF 1? ?? ?? ?? ?? 3B ?? 89 ?? ?? 0F 85 } + $block_9 = { 8B ?? 2B ?? ?? 33 ?? F7 ?? 8B ?? D1 ?? 0F AF ?? 03 ?? ?? 5? FF 7? ?? FF 5? ?? 85 ?? 5? 5? 7E } + $block_10 = { FF 7? ?? 8B ?? ?? E8 ?? ?? ?? ?? 0F B6 ?? ?? ?? FF 4? ?? 8A ?? ?? ?? ?? ?? 4? 3B ?? 88 ?? 7C } + $block_11 = { 8D ?? ?? 5? 8D ?? ?? ?? ?? ?? 5? 5? 5? 68 ?? ?? ?? ?? FF 7? ?? FF 1? ?? ?? ?? ?? 85 ?? 0F 85 } + $block_12 = { FF 4? ?? 68 ?? ?? ?? ?? 8D ?? ?? ?? ?? ?? 5? FF 7? ?? FF 7? ?? FF 1? ?? ?? ?? ?? 85 ?? 0F 84 } + $block_13 = { 8B ?? ?? 6A ?? 03 ?? FF 1? ?? ?? ?? ?? 83 ?? ?? ?? 6A ?? 5? 39 ?? ?? 89 ?? ?? 89 ?? ?? 0F 82 } + $block_14 = { 0F B6 ?? ?? ?? 8B ?? ?? 5? 8D ?? ?? 5? E8 ?? ?? ?? ?? 8D ?? ?? E8 ?? ?? ?? ?? 4? 83 ?? ?? 7C } + $block_15 = { FF 4? ?? 8D ?? ?? 5? 5? 5? 5? 8D ?? ?? ?? ?? ?? 5? FF 7? ?? FF 1? ?? ?? ?? ?? 85 ?? 0F 85 } + $block_16 = { FF 7? ?? 8D ?? ?? E8 ?? ?? ?? ?? 0F BE ?? 01 ?? ?? 8B ?? ?? 2B ?? ?? FF 4? ?? 39 ?? ?? 7C } + $block_17 = { 0F B6 ?? ?? ?? 8B ?? ?? 5? 8D ?? ?? 5? E8 ?? ?? ?? ?? 8D ?? ?? E8 ?? ?? ?? ?? 4? 3B ?? 7C } + $block_18 = { 8D ?? ?? 5? 68 ?? ?? ?? ?? 5? 68 ?? ?? ?? ?? 68 ?? ?? ?? ?? FF 1? ?? ?? ?? ?? 85 ?? 0F 85 } + $block_19 = { 0F B6 ?? ?? 5? 8D ?? ?? 5? 8D ?? ?? E8 ?? ?? ?? ?? 8D ?? ?? E8 ?? ?? ?? ?? 4? 3B ?? 7C } + $block_20 = { 5? 8B ?? 83 ?? ?? 8B ?? ?? 83 ?? ?? ?? 83 ?? ?? ?? 8A ?? ?? 5? 8A ?? ?? 5? 8B ?? 0F 8E } + $block_21 = { 8B ?? ?? 8D ?? ?? 8B ?? ?? 0F B6 ?? 0F B6 ?? ?? 0F B6 ?? 03 ?? 03 ?? 25 ?? ?? ?? ?? 79 } + $block_22 = { 0F B6 ?? 8D ?? ?? E8 ?? ?? ?? ?? 8D ?? ?? 99 F7 ?? ?? FF 4? ?? 81 7? ?? ?? ?? ?? ?? 7C } + $block_23 = { 0F B6 ?? ?? 8B ?? ?? 5? 8D ?? ?? 5? E8 ?? ?? ?? ?? 8D ?? ?? E8 ?? ?? ?? ?? 4? 3B ?? 7C } + $block_24 = { 8B ?? 2B ?? ?? 68 ?? ?? ?? ?? E8 ?? ?? ?? ?? 5? 8B ?? 2B ?? B8 ?? ?? ?? ?? 3B ?? 0F 87 } + $block_25 = { 8D ?? ?? 5? 8D ?? ?? E8 ?? ?? ?? ?? 0F B6 ?? 5? 8D ?? ?? E8 ?? ?? ?? ?? 4? 3B ?? ?? 7C } + $block_26 = { 8D ?? ?? 5? 8B ?? ?? 68 ?? ?? ?? ?? FF 7? ?? ?? 89 ?? ?? FF 1? ?? ?? ?? ?? 85 ?? 0F 85 } + $block_27 = { 8B ?? ?? 8B ?? ?? 0F B6 ?? ?? 5? 8B ?? E8 ?? ?? ?? ?? FF 4? ?? 8B ?? ?? 3B ?? ?? 7C } + $block_28 = { 5? 5? 5? 8D ?? ?? ?? ?? ?? 5? FF 7? ?? FF 7? ?? 5? 5? FF 1? ?? ?? ?? ?? 85 ?? 0F 84 } + $block_29 = { 8D ?? ?? E8 ?? ?? ?? ?? 8B ?? ?? 99 2B ?? D1 ?? 6A ?? 89 ?? ?? 8B ?? ?? 5? 3B ?? 7E } + $block_30 = { 5? 5? 5? 5? 5? 5? 5? 8D ?? ?? 5? 5? 5? 5? FF 7? ?? FF 1? ?? ?? ?? ?? 39 ?? ?? 0F 84 } + $block_31 = { 8D ?? ?? ?? 68 ?? ?? ?? ?? 5? E8 ?? ?? ?? ?? 5? 5? E8 ?? ?? ?? ?? 85 ?? 5? 5? 0F 84 } + $block_32 = { 8D ?? ?? ?? ?? ?? 5? 8D ?? ?? ?? ?? ?? 5? FF 1? ?? ?? ?? ?? 83 ?? ?? 89 ?? ?? 0F 84 } + $block_33 = { FF 7? ?? 8B ?? ?? E8 ?? ?? ?? ?? 8D ?? ?? E8 ?? ?? ?? ?? 8B ?? ?? 5? 5? 5? C9 C3 } + $block_34 = { 8B ?? ?? 8D ?? ?? 8D ?? ?? E8 ?? ?? ?? ?? FF 4? ?? 83 ?? ?? ?? 83 ?? ?? ?? 0F 8F } + $block_35 = { 8D ?? ?? 5? FF 7? ?? 5? 5? 68 ?? ?? ?? ?? FF 7? ?? FF 1? ?? ?? ?? ?? 85 ?? 0F 85 } + $block_36 = { 8B ?? ?? ?? ?? ?? 8B ?? ?? C1 ?? ?? 03 ?? 8D ?? ?? E8 ?? ?? ?? ?? 5? 5? 5? C9 C3 } + $block_37 = { 8D ?? ?? 5? 6A ?? 5? 8D ?? ?? ?? ?? ?? 5? FF 7? ?? FF 1? ?? ?? ?? ?? 85 ?? 0F 85 } + $block_38 = { 8D ?? ?? ?? 0F B6 ?? 5? 68 ?? ?? ?? ?? E8 ?? ?? ?? ?? 4? 83 ?? ?? 5? 5? 88 ?? 7C } + $block_39 = { 5? 8B ?? 8B ?? ?? 5? 8B ?? ?? 5? 8B ?? ?? 4? 0F AF ?? 03 ?? 85 ?? 89 ?? ?? 75 } + $block_40 = { 5? 33 ?? 4? 5? 8D ?? ?? ?? ?? ?? 6A ?? 5? E8 ?? ?? ?? ?? 83 ?? ?? 3B ?? 0F 85 } + $block_41 = { 6A ?? 8D ?? ?? ?? ?? ?? 68 ?? ?? ?? ?? 5? E8 ?? ?? ?? ?? 83 ?? ?? 85 ?? 0F 85 } + $block_42 = { 68 ?? ?? ?? ?? 8D ?? ?? ?? ?? ?? 5? 5? FF 7? ?? FF 1? ?? ?? ?? ?? 85 ?? 0F 85 } + $block_43 = { 99 BB ?? ?? ?? ?? F7 ?? 8B ?? ?? 80 C? ?? 30 ?? ?? ?? 4? 3B ?? ?? 89 ?? ?? 7C } + $block_44 = { E8 ?? ?? ?? ?? E8 ?? ?? ?? ?? E8 ?? ?? ?? ?? E8 ?? ?? ?? ?? 0F B6 ?? 85 ?? 75 } + $block_45 = { 8D ?? ?? ?? ?? ?? 5? 5? 5? 8D ?? ?? ?? ?? ?? 5? FF 1? ?? ?? ?? ?? 85 ?? 0F 84 } + $block_46 = { 5? 8D ?? ?? ?? ?? ?? 68 ?? ?? ?? ?? 5? E8 ?? ?? ?? ?? 83 ?? ?? 85 ?? 0F 84 } + $block_47 = { 5? 8D ?? ?? E8 ?? ?? ?? ?? 0F B6 ?? 5? 8B ?? E8 ?? ?? ?? ?? 4? 83 ?? ?? 7C } + $block_48 = { 5? 8D ?? ?? E8 ?? ?? ?? ?? 0F B6 ?? 5? 8B ?? E8 ?? ?? ?? ?? 4? 3B ?? ?? 7C } + $block_49 = { 99 B9 ?? ?? ?? ?? F7 ?? 8B ?? ?? 80 C? ?? 30 ?? ?? ?? 4? 3B ?? 89 ?? ?? 7C } + $block_50 = { 8B ?? 68 ?? ?? ?? ?? 5? E8 ?? ?? ?? ?? 5? 5? 8D ?? ?? ?? ?? ?? 3B ?? 0F 84 } + $block_51 = { E8 ?? ?? ?? ?? E8 ?? ?? ?? ?? 6A ?? FF 1? ?? ?? ?? ?? 33 ?? 5? 5? 5? C9 C3 } + $block_52 = { 5? 8B ?? 81 E? ?? ?? ?? ?? FF 0? ?? ?? ?? ?? 83 ?? ?? ?? ?? ?? ?? 0F 8F } + $block_53 = { 5? 8D ?? ?? E8 ?? ?? ?? ?? 0F B6 ?? 5? 5? 8D ?? ?? E8 ?? ?? ?? ?? 4? 79 } + $block_54 = { 8B ?? ?? 6B ?? ?? 8D ?? ?? ?? 4? 89 ?? ?? 0F B6 ?? 8D ?? ?? 83 ?? ?? 72 } + $block_55 = { FF 7? ?? E8 ?? ?? ?? ?? 5? E8 ?? ?? ?? ?? 8B ?? ?? 5? 5? 5? 5? 5? C9 C3 } + $block_56 = { 8D ?? ?? 5? 8D ?? ?? ?? ?? ?? 5? FF 7? ?? FF 1? ?? ?? ?? ?? 85 ?? 0F 85 } + $block_57 = { 8D ?? ?? E8 ?? ?? ?? ?? 8D ?? ?? ?? ?? ?? 4? E8 ?? ?? ?? ?? 3B ?? 0F 8C } + $block_58 = { 68 ?? ?? ?? ?? FF 1? ?? ?? ?? ?? C6 ?? ?? ?? 33 ?? 8D ?? ?? AB AB AA 83 } + $block_59 = { 0F B6 ?? 8B ?? ?? E8 ?? ?? ?? ?? 4? 8A ?? 33 ?? 4? 84 ?? 89 ?? ?? 75 } + $block_60 = { 5? 8D ?? ?? ?? ?? ?? E8 ?? ?? ?? ?? 8B ?? E8 ?? ?? ?? ?? 85 ?? 0F 8E } + $block_61 = { 33 ?? 83 ?? ?? 0F 94 ?? 89 ?? ?? 8B ?? E8 ?? ?? ?? ?? 8B ?? ?? 4? EB } + $block_62 = { 8D ?? ?? ?? ?? ?? 68 ?? ?? ?? ?? 5? E8 ?? ?? ?? ?? 85 ?? 5? 5? 0F 84 } + $block_63 = { 8B ?? ?? 8D ?? ?? 8D ?? ?? E8 ?? ?? ?? ?? 83 ?? ?? ?? FF 4? ?? 0F 85 } + $block_64 = { 0F B6 ?? ?? 8B ?? ?? 83 ?? ?? ?? D3 ?? 09 ?? ?? 4? 83 ?? ?? ?? 7C } + $block_65 = { 8B ?? ?? 8D ?? ?? ?? ?? ?? 8D ?? ?? E8 ?? ?? ?? ?? 5? 5? 5? C9 C3 } + $block_66 = { FF 4? ?? E8 ?? ?? ?? ?? 8B ?? ?? 69 ?? ?? ?? ?? ?? 39 ?? ?? 0F 8F } + $block_67 = { 33 ?? F7 ?? 8B ?? D1 ?? 0F AF ?? 03 ?? FF 5? ?? 85 ?? 5? 5? 7E } + $block_68 = { 8D ?? ?? E8 ?? ?? ?? ?? 8D ?? ?? E8 ?? ?? ?? ?? 5? 5? 5? C9 C2 } + $block_69 = { 5? 8D ?? ?? ?? ?? ?? 5? 5? E8 ?? ?? ?? ?? 83 ?? ?? 85 ?? 0F 85 } + $block_70 = { 8B ?? ?? 0F B6 ?? ?? 8D ?? ?? ?? ?? ?? ?? FF 0? 4? 3B ?? 72 } + $block_71 = { 8D ?? ?? ?? ?? ?? 5? FF 7? ?? FF 1? ?? ?? ?? ?? 85 ?? 0F 85 } + $block_72 = { 83 ?? ?? 5? 68 ?? ?? ?? ?? E8 ?? ?? ?? ?? 84 ?? 5? 5? 0F 85 } + $block_73 = { FF 1? ?? ?? ?? ?? 89 ?? ?? 8B ?? ?? 8B ?? ?? 3B ?? ?? 0F 85 } + $block_74 = { 5? 8B ?? 8B ?? ?? 81 E? ?? ?? ?? ?? 33 ?? 83 ?? ?? 0F 82 } + $block_75 = { 8B ?? ?? 6A ?? C1 ?? ?? 5? 3B ?? 89 ?? ?? 89 ?? ?? 0F 86 } + $block_76 = { 68 ?? ?? ?? ?? 5? E8 ?? ?? ?? ?? 8B ?? 3B ?? 5? 5? 0F 84 } + $block_77 = { 8B ?? ?? 0F B6 ?? ?? 5? 8B ?? E8 ?? ?? ?? ?? 4? 3B ?? 7C } + $block_78 = { 8D ?? ?? 5? 5? 5? 6A ?? 5? FF 1? ?? ?? ?? ?? 85 ?? 0F 85 } + $block_79 = { 0F B6 ?? ?? 8B ?? ?? ?? ?? ?? ?? 3B ?? ?? ?? ?? ?? ?? 73 } + $block_80 = { 8B ?? ?? 8B ?? 83 ?? ?? ?? 33 ?? 89 ?? ?? 4? 3B ?? 0F 8C } + $block_81 = { 68 ?? ?? ?? ?? 5? E8 ?? ?? ?? ?? 8B ?? 85 ?? 5? 5? 0F 84 } + $block_82 = { 5? 5? 5? 6A ?? 5? FF 1? ?? ?? ?? ?? 3B ?? 89 ?? ?? 0F 84 } + $block_83 = { 5? 8B ?? 83 ?? ?? 5? 33 ?? 33 ?? 39 ?? ?? ?? ?? ?? 0F 85 } + $block_84 = { 0F B6 ?? 8B ?? 83 ?? ?? C1 ?? ?? 4? 0B ?? 4? 84 ?? 78 } + $block_85 = { 8D ?? ?? ?? ?? ?? 5? E8 ?? ?? ?? ?? 83 ?? ?? 5? 0F 84 } + $block_86 = { 0F B6 ?? 8A ?? ?? 30 ?? FF 4? ?? 8B ?? ?? 3B ?? ?? 7C } + $block_87 = { 8B ?? ?? 3B ?? A3 ?? ?? ?? ?? 89 ?? ?? 89 ?? ?? 0F 86 } + $block_88 = { C7 ?? ?? ?? ?? ?? ?? 33 ?? 8D ?? ?? AB 66 ?? B3 ?? BF } + $block_89 = { 0F B6 ?? 8D ?? ?? 0F B6 ?? 03 ?? 25 ?? ?? ?? ?? 79 } + $block_90 = { 8D ?? ?? ?? ?? ?? 5? E8 ?? ?? ?? ?? 85 ?? 5? 0F 86 } + $block_91 = { 4? 0F B6 ?? 8D ?? ?? 83 ?? ?? 89 ?? ?? 89 ?? ?? 73 } + $block_92 = { 68 ?? ?? ?? ?? 5? E8 ?? ?? ?? ?? 3B ?? 5? 5? 0F 84 } + $block_93 = { 68 ?? ?? ?? ?? 5? E8 ?? ?? ?? ?? 84 ?? 5? 5? 0F 85 } + $block_94 = { FF 7? ?? E8 ?? ?? ?? ?? 5? 5? 5? 8A ?? 5? C9 C3 } + $block_95 = { 6A ?? 8B ?? 5? 99 F7 ?? 8D ?? ?? 80 C? ?? 5? E8 } + $block_96 = { 8D ?? ?? E8 ?? ?? ?? ?? 5? 5? 5? 83 ?? ?? C9 C3 } + $block_97 = { 8D ?? ?? 89 ?? ?? E8 ?? ?? ?? ?? 5? 5? 5? C9 C3 } + $block_98 = { 5? 8B ?? 8B ?? ?? 5? 8B ?? ?? 8B ?? 2B ?? 0F 84 } + $block_99 = { 8D ?? ?? E8 ?? ?? ?? ?? 8B ?? ?? 5? 5? 5? C9 C3 } + + condition: + hash.sha256(0, filesize) == "98cd87a544ca06ae249e4f3c9790efbd63d8954e0ff695d2404e92f2383871bf" or + hash.sha256(0, filesize) == "dd29a6b5c62d8726a3073b6f7d20e6f34d00616de61fc55d04bda9e7824cd598" or + hash.sha256(0, filesize) == "7abf424fd57e49756307cc07e05627470a0d1f000a3c8fcc422ea4391981f6a2" or + hash.sha256(0, filesize) == "35f911365d14ff533acce7367c2ab74167a9beb7b4e8fd487f25b9db4d68f627" or + hash.sha256(0, filesize) == "ded70a8fc7074ea0ceb7f489b2ebb1198154a2507538fc73cbb74712d5fc6d19" or + hash.sha256(0, filesize) == "28b56f4245bd2081a8d0885bcd0cad7b384ee4a927d87ce8532c5650ac532916" or + hash.sha256(0, filesize) == "49bc860fb8856436e1d540754732843f1a534901ecdd031870702bacab58ae54" or + hash.sha256(0, filesize) == "d9cfcd9e64cdd0a4beba9da2b1cfdf7b5af9480bc19d6fdf95ec5b1f07fceb1d" or + hash.sha256(0, filesize) == "7a3b78feba1670850602b7c33cb0968b4d89db609d98c81744b43cae23d563f5" or + hash.sha256(0, filesize) == "4e31304e1ea66c267b5882f9335a2384eea18a6617a49308846ce624b68e7489" or + hash.sha256(0, filesize) == "0ce3bfa972ced61884ae7c1d77c7d4c45e17c7d767e669610cf2ef72b636b464" or + hash.sha256(0, filesize) == "d88bd6947eef00bd3baadc55ff1c55b3cdcff5ba8fd145d5b5bf8894c42a7fd3" or + hash.sha256(0, filesize) == "56f87c2b24a502fbda0ae9cee8f21615b1ba39737d70d2f4f4011fa6fdd174a1" or + hash.sha256(0, filesize) == "b2417de25ad9e6bed08229561eb96d4f2e83ab63b4407c7601a0113ed193fe84" or + hash.sha256(0, filesize) == "8b7427620d6537aa905727af48f7dec1e003a8b7c74d417f0a5ded7926a7d590" or + hash.sha256(0, filesize) == "51eda4521b3ee9d6917832e4e04a4f58891867b8f7b0ade61725fd124ba40f82" or + 12 of them +} + +rule MiniDuke { + meta: + Author = "Intezer Analyze" + Reference = "https://apt-ecosystem.com" + + strings: + $block_0 = { 0F B6 ?? ?? 8B ?? ?? ?? ?? ?? 5? 5? 5? 68 ?? ?? ?? ?? E8 ?? ?? ?? ?? 83 ?? ?? BE ?? ?? ?? ?? EB } + $block_1 = { FF 0? ?? ?? ?? ?? 0F B6 ?? ?? 5? 6A ?? 8D ?? ?? 6A ?? 5? E8 ?? ?? ?? ?? 83 ?? ?? 83 ?? ?? 0F 87 } + $block_2 = { 0F B6 ?? ?? ?? 0F B6 ?? ?? 83 ?? ?? C1 ?? ?? 03 ?? 8D ?? ?? ?? 8B ?? C1 ?? ?? 83 ?? ?? EB } + $block_3 = { 2B ?? 2B ?? 8D ?? ?? ?? 8D ?? ?? 8B ?? 89 ?? ?? ?? E8 ?? ?? ?? ?? 89 ?? ?? ?? 85 ?? 0F 84 } + $block_4 = { 4? C1 ?? ?? 4? 5? 8B ?? E8 ?? ?? ?? ?? 0F B6 ?? ?? 8B ?? ?? FE ?? 83 ?? ?? 88 ?? FF 4? } + $block_5 = { 8B ?? ?? BB ?? ?? ?? ?? 3B ?? 1B ?? F7 ?? 03 ?? 8B ?? ?? 89 ?? ?? 03 ?? 3B ?? ?? 0F 87 } + $block_6 = { BF ?? ?? ?? ?? 3B ?? 8B ?? ?? 1B ?? F7 ?? 03 ?? 8B ?? ?? 89 ?? ?? 03 ?? 3B ?? ?? 0F 87 } + $block_7 = { BE ?? ?? ?? ?? 3B ?? ?? 8B ?? ?? 1B ?? F7 ?? 03 ?? 03 ?? ?? 89 ?? ?? 3B ?? ?? 0F 87 } + $block_8 = { 33 ?? 66 ?? ?? ?? 0F 95 ?? 4? 83 ?? ?? 83 ?? ?? 5? 5? 5? FF 1? ?? ?? ?? ?? 85 ?? 74 } + $block_9 = { 68 ?? ?? ?? ?? 68 ?? ?? ?? ?? 5? 8D ?? ?? ?? E8 ?? ?? ?? ?? 83 ?? ?? 83 ?? ?? 0F 84 } + $block_10 = { 8B ?? ?? BA ?? ?? ?? ?? 3B ?? ?? 1B ?? F7 ?? 03 ?? 89 ?? ?? 03 ?? 3B ?? ?? 0F 87 } + $block_11 = { 8B ?? ?? 5? 68 ?? ?? ?? ?? 5? 8D ?? ?? ?? E8 ?? ?? ?? ?? 83 ?? ?? 83 ?? ?? 0F 84 } + $block_12 = { 8B ?? ?? BE ?? ?? ?? ?? 3B ?? 1B ?? F7 ?? 03 ?? 89 ?? ?? 03 ?? 3B ?? ?? 0F 87 } + $block_13 = { C7 ?? ?? ?? ?? ?? 8B ?? ?? 0F B7 ?? ?? 8B ?? ?? 5? 5? 89 ?? ?? 5? 8B ?? 5? C3 } + $block_14 = { 5? 8B ?? 8B ?? 83 ?? ?? 5? 8B ?? ?? 33 ?? 2B ?? 89 ?? ?? 89 ?? ?? 3B ?? 0F 86 } + $block_15 = { FF 0? ?? ?? ?? ?? 5? 5? 8D ?? ?? 6A ?? 5? E8 ?? ?? ?? ?? 83 ?? ?? 3B ?? 0F 87 } + $block_16 = { 8A ?? ?? 88 ?? ?? 8A ?? ?? 88 ?? ?? 8A ?? ?? 88 ?? ?? 8B ?? ?? 5? 5? C9 C3 } + $block_17 = { BE ?? ?? ?? ?? 3B ?? ?? 1B ?? F7 ?? 03 ?? 8B ?? ?? 03 ?? 3B ?? ?? 0F 87 } + $block_18 = { BA ?? ?? ?? ?? 3B ?? ?? 1B ?? F7 ?? 03 ?? 89 ?? ?? 03 ?? 3B ?? ?? 0F 87 } + $block_19 = { 68 ?? ?? ?? ?? FF 1? ?? ?? ?? ?? 83 ?? ?? 89 ?? ?? 89 ?? ?? 3B ?? 0F 84 } + $block_20 = { 8B ?? ?? BE ?? ?? ?? ?? 3B ?? ?? 1B ?? F7 ?? 03 ?? 03 ?? 3B ?? ?? 0F 87 } + $block_21 = { BA ?? ?? ?? ?? 3B ?? 1B ?? F7 ?? 03 ?? 8B ?? ?? 03 ?? 3B ?? ?? 0F 87 } + $block_22 = { 8B ?? ?? 8B ?? ?? 89 ?? 0F B6 ?? 89 ?? ?? 8B ?? ?? 89 ?? ?? 3B ?? 72 } + $block_23 = { 5? 5? 8B ?? ?? 6A ?? 5? E8 ?? ?? ?? ?? 8B ?? ?? 83 ?? ?? 3B ?? 0F 85 } + $block_24 = { 6A ?? 6A ?? 8D ?? ?? ?? ?? ?? 5? 5? FF 1? ?? ?? ?? ?? 83 ?? ?? 0F 85 } + $block_25 = { 5? 6A ?? 8D ?? ?? 6A ?? 5? E8 ?? ?? ?? ?? 83 ?? ?? 83 ?? ?? 0F 85 } + $block_26 = { 8B ?? ?? 83 ?? ?? 85 ?? 83 ?? ?? 83 ?? ?? ?? 01 ?? ?? 85 ?? 0F 81 } + $block_27 = { BB ?? ?? ?? ?? 3B ?? 1B ?? F7 ?? 03 ?? 03 ?? ?? 3B ?? ?? 0F 87 } + $block_28 = { BE ?? ?? ?? ?? 3B ?? 1B ?? F7 ?? 03 ?? 03 ?? ?? 3B ?? ?? 0F 87 } + $block_29 = { BE ?? ?? ?? ?? 3B ?? ?? 1B ?? F7 ?? 03 ?? 03 ?? 3B ?? ?? 0F 87 } + $block_30 = { 8B ?? ?? 0F B6 ?? ?? 83 ?? ?? C1 ?? ?? 03 ?? 4? 83 ?? ?? 0F 84 } + $block_31 = { 0F B7 ?? 5? 6A ?? 6A ?? 5? FF 1? ?? ?? ?? ?? 8B ?? 83 ?? ?? 74 } + $block_32 = { 8B ?? ?? ?? ?? ?? 6A ?? 8D ?? ?? 5? 6A ?? 5? FF D? 85 ?? 0F 84 } + $block_33 = { 8B ?? ?? 0F B7 ?? ?? 8B ?? ?? 5? 5? 89 ?? ?? 5? 8B ?? 5? C3 } + $block_34 = { 8A ?? ?? 88 ?? ?? 8A ?? ?? 88 ?? ?? 8B ?? ?? 5? 5? C9 C3 } + $block_35 = { 0F B6 ?? ?? 8D ?? ?? C6 ?? ?? ?? ?? ?? ?? 83 ?? ?? 0F 87 } + $block_36 = { 0F B6 ?? ?? 8D ?? ?? ?? 8B ?? C1 ?? ?? 83 ?? ?? 4? 4? E9 } + $block_37 = { 0F B6 ?? ?? 8D ?? ?? ?? 8B ?? C1 ?? ?? 83 ?? ?? 4? 4? EB } + $block_38 = { 0F B6 ?? ?? ?? ?? ?? ?? 83 ?? ?? 8D ?? ?? ?? ?? ?? ?? 8B } + $block_39 = { 0F B6 ?? ?? ?? 0F B6 ?? ?? 83 ?? ?? C1 ?? ?? 03 ?? 8D } + $block_40 = { 0F B6 ?? ?? 8D ?? ?? ?? 8B ?? C1 ?? ?? 4? 83 ?? ?? EB } + $block_41 = { 0F B6 ?? ?? 83 ?? ?? C1 ?? ?? 03 ?? 4? 83 ?? ?? 0F 84 } + $block_42 = { 8B ?? C1 ?? ?? 83 ?? ?? 8D ?? ?? 8B ?? ?? 3B ?? 0F 83 } + $block_43 = { 8B ?? ?? 8B ?? C1 ?? ?? 83 ?? ?? 8D ?? ?? 3B ?? 0F 83 } + $block_44 = { 5? 83 ?? ?? C7 ?? ?? ?? ?? ?? ?? 09 ?? ?? 85 ?? 0F 81 } + $block_45 = { 8B ?? C7 ?? ?? ?? ?? ?? ?? 81 F? ?? ?? ?? ?? 0F 87 } + $block_46 = { 33 ?? 66 ?? ?? 8D ?? ?? E8 ?? ?? ?? ?? 0F B7 ?? EB } + $block_47 = { 8B ?? C1 ?? ?? 83 ?? ?? 8D ?? ?? 3B ?? ?? 0F 83 } + + condition: + hash.sha256(0, filesize) == "fe2672737205351df003e1969ef1ef0df9e13a9a31bf77f844236857ed0b0bf5" or + hash.sha256(0, filesize) == "2ae4cc6834e3679e99fc93d2f5fba02167a31cf5b68a5a9ca7aa1a4b9f7cb4ae" or + hash.sha256(0, filesize) == "94d39845ec228ff1c84668207c4591ae0e2b6605bdf11e84916534ab09744736" or + hash.sha256(0, filesize) == "19580f275b82ee091bdc3028e6e5018fdcc915fe7853d4151b44f3d7e101e531" or + hash.sha256(0, filesize) == "c13794601c5bdec3d5d76de9571e6c0e0b022b9fc62907018566895e3b949982" or + hash.sha256(0, filesize) == "cc6ad212f50e0a7a708bb1b63a01d8932f471618cdda69b2e12106ae112b2415" or + hash.sha256(0, filesize) == "7815e5275ea849a9ed1f193abd8781ff7ae6b88ef6282f6a0900175a4bb59131" or + hash.sha256(0, filesize) == "c60621e82f58b5ea5b36cde40889a076cb2c7f1612144998b1d388200bc7e295" or + hash.sha256(0, filesize) == "12a057ca7c92cda3cd0e09efc5bff2ebd3f7d2991e999038c7f31a6ac6a95c3d" or + hash.sha256(0, filesize) == "abfffd23c81b6301675567622ccee08cf578ce91f372fce68cff8fc1dbc3053d" or + hash.sha256(0, filesize) == "13a50942322977d6471f71debc6d3db38807d88778366bae6cfcae45823a17f8" or + hash.sha256(0, filesize) == "bf210e54c65ea69ebda418f701c2c6b8aff840f31c1072d641a726cef8c7b5ad" or + hash.sha256(0, filesize) == "f2ede48413704b3efc4d629d3db1a1331352a0afb0d91683640dc4b4af2921d1" or + hash.sha256(0, filesize) == "e961202d84aad7fa9faaeb63651735416612d25c611a7a025e2eaab67c79e272" or + hash.sha256(0, filesize) == "830ee990a6d4aaf00bb051704c93b468792561e8dd6a6ed4662f6032d38dd37a" or + hash.sha256(0, filesize) == "05e4224d4dd4e5fbd381ed33edb5bf847fbc138fbe9f57cb7d1f8fc9fa9a382d" or + hash.sha256(0, filesize) == "764f8c8f8832954c99fb0c2ac5ac5d89506dc5dc50310c9112318b75e9f9e2bf" or + hash.sha256(0, filesize) == "23486eedb5fe8a026f602507f490b4df4721e8befa65007b84c4f5b1ed95e1bd" or + hash.sha256(0, filesize) == "ecc5e2526ca32a447c862612b71c1db5675a759897e680573fa143ac0a8e662a" or + hash.sha256(0, filesize) == "62a2df9d001d3e0f222d77b6781eb279761f1354570773ef1929a86557a11454" or + hash.sha256(0, filesize) == "2f9834f7b7fe09d98ef7b27d3828691ed4b361d1ccbbf8e10703f9ec03b05259" or + hash.sha256(0, filesize) == "f151f5a656d43a76a07fa03166906d51f9683b27b0e9b86464e3a68e9dba1fac" or + hash.sha256(0, filesize) == "8e28dcf7fd7ce1ad9a65c186e09a7843ee31af924509148f085958cadfdda8fb" or + hash.sha256(0, filesize) == "dfe146fffd2ae59172f52048f7e7d231807e0d732e19bdb443820a8305165741" or + hash.sha256(0, filesize) == "415f88765b88dd90e5b0502e4fa1408e06ac9552c7c8974a510e6e23a9756a45" or + hash.sha256(0, filesize) == "acd886fa7b9117807f1e11f0f38b9fad1afce51aa9cfbe3810a39d883d0ca663" or + hash.sha256(0, filesize) == "6e57c69963562d28a3a9da9f9103c199c909d0baa185a5d21e1b200a5a14ab72" or + hash.sha256(0, filesize) == "a6e2852f2e6701656da74adb412cd0850b0d27750803613223be3eb5ac5cc26c" or + hash.sha256(0, filesize) == "55129d34050b2c028de564e3166611e1d148c26de0972cbe047caf530f118468" or + hash.sha256(0, filesize) == "91b97f3b8ef8ebc8bbd06e06927e7b38090c026f8fca77e209e69c056b042cb7" or + hash.sha256(0, filesize) == "3d0b1f970eaeeabf9372ffc1ad7e61226632904cf0311ea8f872ddbfd34a3a2a" or + hash.sha256(0, filesize) == "56dfc5905e7dfc67912ed164dc68c0806fdd3d7cd151415aaffcc1b7ab2f1a84" or + hash.sha256(0, filesize) == "55265193d63d56553e8e135e9a60d7d7c13cbf9d82ac25f84306ec98d74725b0" or + hash.sha256(0, filesize) == "1db9187b7b0e5bc97aca233f29b96295c0bc4058fdcff50df543c1f044e58836" or + hash.sha256(0, filesize) == "29ad305cba186c07cedc1f633c09b9b0171289301e1d4319a1d76d0513a6ac50" or + hash.sha256(0, filesize) == "1f19bd932336fa721e739b32c07b67c01ea4bd0ebc70e92a70f41e51f4668a0a" or + hash.sha256(0, filesize) == "4809c2c7fa19acfa011f97946205f979afb54ac2c166f48ab35a20cd9d53a2ca" or + hash.sha256(0, filesize) == "5569b85532adb1e637f83c997910924345f10aa9c2948b3d26be13eec6cbeb8b" or + hash.sha256(0, filesize) == "9c13a32033bc7dd06016651b0f21a2bed9be1dc40c6879f925c71e05f4f1c8f7" or + hash.sha256(0, filesize) == "b1584a6f1059ad1c24bde2a9a8ae83ffc6679eb531d30f3f1c69f81e3a3819dc" or + hash.sha256(0, filesize) == "35c08566dc38ad65e906b3683ace98e5beef855aeedc611a0317a72eee193539" or + hash.sha256(0, filesize) == "6a95d2895362fc8657bc90d73d77e32f09b86699eb625905ddeb45ccd6b13c71" or + hash.sha256(0, filesize) == "7f5d3a8dfa13ba8e2142a3b1d644f107cc89c7e90cda2a5543df5787f8bfde1e" or + hash.sha256(0, filesize) == "f4b01a3a299b09d2b4418cb66e80c34e3ec04016ed27199c472515cf95a023d0" or + hash.sha256(0, filesize) == "5b96b07528f762dfcb9d6936995ed4e358d29542ae756f6e5547fa3b5b7797b6" or + hash.sha256(0, filesize) == "a1015f0b99106ae2852d740f366e15c1d5c711f57680a2f04be0283e8310f69e" or + hash.sha256(0, filesize) == "b55e6e10a7f46c97cd247028287ea664bacf7ec7e500a4bf4f53c9dea7625426" or + hash.sha256(0, filesize) == "f0d822926f4e6aec2cf2bd7701d67e8399ccc05bc028377a275a90e06620a109" or + hash.sha256(0, filesize) == "354786c5df71cd090c96d1328b4e31cd28b8ddc77904863d100b6c35ad235b69" or + hash.sha256(0, filesize) == "8d457e4189017712917c5c8f900bb9072c5910c9f975c50337115f952d885635" or + hash.sha256(0, filesize) == "a962ea9027514712ba3949dc3ca54559d1d42e116837dda5f9809d6523a41255" or + hash.sha256(0, filesize) == "15101f74f974e3e80cc37805ebe5cc2efed77bb5745d82e1b44b1da4f0c83691" or + hash.sha256(0, filesize) == "6c2409d415e66faebf0a031350b44d5a014ab4f62f2c1a3115982d452b7f97b9" or + hash.sha256(0, filesize) == "de8184c6850d17f90e861309828af1f7b7e3b1695ebe5d303d3d4b6ef4ba1218" or + hash.sha256(0, filesize) == "7889fbd40f65cfe21d0c7486b29eb4c5042abff4ac660c12c7936831445cfd6e" or + 12 of them +} + +rule CozyDuke { + meta: + Author = "Intezer Analyze" + Reference = "https://apt-ecosystem.com" + + strings: + $block_0 = { 8D ?? ?? ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? ?? ?? ?? 8B ?? 8B ?? ?? ?? ?? ?? 5? 5? FF D? 85 ?? 0F 85 } + $block_1 = { 8D ?? ?? B8 ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? E8 ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 8B ?? 3B ?? ?? 0F 84 } + $block_2 = { 5? 8B ?? 83 ?? ?? A1 ?? ?? ?? ?? 33 ?? 89 ?? ?? 8B ?? ?? 89 ?? ?? A1 ?? ?? ?? ?? 5? 85 ?? 0F 85 } + $block_3 = { 5? A1 ?? ?? ?? ?? B9 ?? ?? ?? ?? E8 ?? ?? ?? ?? 85 ?? 0F 95 ?? C7 ?? ?? ?? ?? ?? ?? 39 ?? ?? 72 } + $block_4 = { 8B ?? 33 ?? 39 ?? ?? 8B ?? 0F 95 ?? 83 ?? ?? 89 ?? ?? 8B ?? ?? FF D? 5? 5? 33 ?? 5? 8B ?? 5? C2 } + $block_5 = { 0F BE ?? ?? 33 ?? 81 F? ?? ?? ?? ?? 81 E? ?? ?? ?? ?? 66 ?? ?? ?? ?? ?? ?? ?? 4? 83 ?? ?? 72 } + $block_6 = { 8B ?? ?? 0F B6 ?? 0F A4 ?? ?? 25 ?? ?? ?? ?? 99 C1 ?? ?? 0B ?? 4? 0B ?? 89 ?? ?? 3B ?? ?? 7C } + $block_7 = { 8B ?? ?? ?? ?? ?? 8D ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 8B ?? 5? 5? 8B ?? ?? FF D? 85 ?? 0F 88 } + $block_8 = { 5? 8B ?? 81 E? ?? ?? ?? ?? A1 ?? ?? ?? ?? 33 ?? 89 ?? ?? 8B ?? ?? 83 ?? ?? 5? 8B ?? ?? 0F 84 } + $block_9 = { 8D ?? ?? ?? 5? 8D ?? ?? ?? 5? 8B ?? ?? ?? 8D ?? ?? ?? 8D ?? ?? ?? E8 ?? ?? ?? ?? 85 ?? 0F 84 } + $block_10 = { 0F BE ?? ?? 66 ?? ?? 48 ?? ?? 66 ?? ?? ?? 66 ?? ?? ?? 66 ?? ?? ?? ?? ?? ?? ?? 48 ?? ?? ?? 72 } + $block_11 = { 5? 5? 5? 8D ?? ?? ?? ?? ?? 33 ?? E8 ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 83 ?? ?? ?? ?? ?? ?? 0F 84 } + $block_12 = { 8B ?? ?? ?? 8D ?? ?? ?? 5? 8D ?? ?? ?? 5? 8D ?? ?? ?? 8D ?? ?? ?? E8 ?? ?? ?? ?? 85 ?? 0F 84 } + $block_13 = { 8B ?? 33 ?? 39 ?? ?? 8B ?? 0F 95 ?? 83 ?? ?? 89 ?? ?? 8B ?? ?? FF D? 5? 33 ?? 5? 8B ?? 5? C2 } + $block_14 = { 8B ?? ?? 8D ?? ?? 5? 8D ?? ?? 5? 8B ?? ?? 89 ?? ?? E8 ?? ?? ?? ?? 8B ?? ?? 3B ?? ?? 0F 84 } + $block_15 = { 8B ?? ?? 8B ?? ?? 0F B6 ?? ?? 0F A4 ?? ?? 99 C1 ?? ?? 0B ?? 4? 0B ?? 89 ?? ?? 3B ?? ?? 7C } + $block_16 = { 8B ?? ?? 5? E8 ?? ?? ?? ?? 5? 68 ?? ?? ?? ?? E8 ?? ?? ?? ?? 8B ?? ?? 83 ?? ?? 85 ?? 0F 84 } + $block_17 = { 68 ?? ?? ?? ?? 6A ?? 6A ?? 6A ?? 6A ?? 6A ?? 6A ?? 5? E8 ?? ?? ?? ?? 83 ?? ?? 85 ?? 0F 84 } + $block_18 = { 2B ?? D1 ?? 5? 5? 8D ?? ?? E8 ?? ?? ?? ?? 89 ?? ?? 8B ?? ?? 8B ?? ?? 8B ?? 83 ?? ?? 0F 83 } + $block_19 = { 8D ?? ?? ?? ?? ?? 5? 8D ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? E8 ?? ?? ?? ?? 8B ?? 3B ?? 0F 84 } + $block_20 = { C7 ?? ?? ?? ?? ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 88 ?? ?? ?? ?? ?? 39 ?? ?? ?? ?? ?? 0F 82 } + $block_21 = { 8B ?? ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 83 ?? ?? 89 ?? ?? ?? ?? ?? ?? 3D ?? ?? ?? ?? 0F 8C } + $block_22 = { 8B ?? ?? ?? 8B ?? ?? ?? ?? ?? 6A ?? 5? 5? 5? 33 ?? 33 ?? E8 ?? ?? ?? ?? 8B ?? 85 ?? 0F 84 } + $block_23 = { 8B ?? ?? ?? 8B ?? ?? ?? 8B ?? ?? ?? 5? 8B ?? ?? ?? ?? ?? 5? 6A ?? 5? 5? FF D? 85 ?? 0F 85 } + $block_24 = { 8B ?? ?? ?? ?? ?? 4? 83 ?? ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 3B ?? ?? ?? ?? ?? 0F 82 } + $block_25 = { 8D ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 8D ?? ?? ?? ?? ?? ?? 8B ?? ?? 8B ?? ?? 3B ?? ?? 0F 84 } + $block_26 = { 8B ?? ?? 5? BA ?? ?? ?? ?? B8 ?? ?? ?? ?? 8D ?? ?? ?? ?? ?? E8 ?? ?? ?? ?? 85 ?? 0F 85 } + $block_27 = { 8B ?? ?? ?? ?? ?? 8B ?? 5? 8B ?? ?? FF D? FF 1? ?? ?? ?? ?? 83 ?? ?? ?? ?? ?? ?? 0F 82 } + $block_28 = { 5? 8B ?? 83 ?? ?? 83 ?? ?? 5? 8B ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 33 ?? 5? 3B ?? 0F 84 } + $block_29 = { 8D ?? ?? B8 ?? ?? ?? ?? E8 ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 3B ?? 0F 84 } + $block_30 = { 8B ?? ?? 8B ?? ?? 5? 5? 8B ?? ?? 5? E8 ?? ?? ?? ?? 83 ?? ?? 85 ?? 0F 94 ?? 39 ?? ?? 72 } + $block_31 = { 5? 5? 5? 8D ?? ?? ?? ?? ?? E8 ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 83 ?? ?? ?? ?? ?? ?? 0F 84 } + $block_32 = { 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 8B ?? E8 ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 85 ?? 0F 84 } + $block_33 = { 33 ?? 5? 8D ?? ?? 5? 5? 5? 5? 89 ?? ?? 89 ?? ?? 89 ?? ?? FF 1? ?? ?? ?? ?? 85 ?? 0F 84 } + $block_34 = { 68 ?? ?? ?? ?? 8D ?? ?? ?? ?? ?? 5? 8B ?? 89 ?? ?? ?? ?? ?? E8 ?? ?? ?? ?? 85 ?? 0F 85 } + $block_35 = { 0F BE ?? ?? 33 ?? 81 F? ?? ?? ?? ?? 81 E? ?? ?? ?? ?? 66 ?? ?? ?? ?? 4? 83 ?? ?? 72 } + $block_36 = { 0F BE ?? ?? 33 ?? 83 ?? ?? 81 E? ?? ?? ?? ?? 66 ?? ?? ?? ?? ?? ?? ?? 4? 83 ?? ?? 72 } + $block_37 = { 8D ?? ?? B8 ?? ?? ?? ?? E8 ?? ?? ?? ?? 5? B8 ?? ?? ?? ?? E8 ?? ?? ?? ?? 85 ?? 0F 85 } + $block_38 = { 5? 8B ?? 83 ?? ?? 5? 8B ?? ?? 8B ?? 5? 8B ?? ?? 5? 8B ?? ?? 89 ?? ?? 83 ?? ?? 0F 84 } + $block_39 = { 83 ?? ?? 8B ?? 03 ?? ?? 5? FF 3? 6A ?? FF D? 5? FF 1? ?? ?? ?? ?? 89 ?? 85 ?? 0F 84 } + $block_40 = { 8D ?? ?? 5? 5? 5? 5? 5? 5? 5? 5? 5? 6A ?? 8D ?? ?? 5? FF 1? ?? ?? ?? ?? 85 ?? 0F 84 } + $block_41 = { 5? 8B ?? 83 ?? ?? 8B ?? ?? ?? ?? ?? 5? 8B ?? ?? ?? ?? ?? 5? 8B ?? 33 ?? 3B ?? 0F 84 } + $block_42 = { 8B ?? ?? ?? ?? ?? 5? 8D ?? ?? ?? ?? ?? 5? 5? 5? 5? FF 1? ?? ?? ?? ?? 5? 85 ?? 0F 85 } + $block_43 = { 8D ?? ?? ?? ?? ?? 5? 8D ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? E8 ?? ?? ?? ?? 85 ?? 0F 84 } + $block_44 = { 0F BE ?? ?? 66 ?? ?? 48 ?? ?? 66 ?? ?? ?? 66 ?? ?? ?? 66 ?? ?? ?? ?? 48 ?? ?? ?? 72 } + $block_45 = { 8D ?? ?? ?? ?? ?? 5? B8 ?? ?? ?? ?? 8D ?? ?? ?? ?? ?? E8 ?? ?? ?? ?? 85 ?? 0F 85 } + $block_46 = { 0F AF ?? 5? 03 ?? E8 ?? ?? ?? ?? 5? E8 ?? ?? ?? ?? 8D ?? ?? 83 ?? ?? 83 ?? ?? 77 } + $block_47 = { 68 ?? ?? ?? ?? 6A ?? FF 1? ?? ?? ?? ?? 5? FF 1? ?? ?? ?? ?? 89 ?? ?? 3B ?? 0F 84 } + $block_48 = { 6A ?? 5? 68 ?? ?? ?? ?? 8D ?? ?? E8 ?? ?? ?? ?? 8B ?? E8 ?? ?? ?? ?? 85 ?? 0F 84 } + $block_49 = { 8B ?? ?? ?? ?? ?? 8D ?? ?? 5? 5? C6 ?? ?? ?? FF D? 89 ?? ?? ?? ?? ?? 85 ?? 0F 84 } + $block_50 = { FF 7? ?? 8B ?? ?? ?? ?? ?? 6A ?? FF D? 5? FF 1? ?? ?? ?? ?? 89 ?? ?? 85 ?? 0F 84 } + $block_51 = { 8D ?? ?? 5? 68 ?? ?? ?? ?? 68 ?? ?? ?? ?? FF 7? ?? FF 1? ?? ?? ?? ?? 85 ?? 0F 84 } + $block_52 = { 8D ?? ?? B8 ?? ?? ?? ?? E8 ?? ?? ?? ?? 5? 8D ?? ?? ?? ?? ?? 5? FF D? 85 ?? 0F 85 } + $block_53 = { 68 ?? ?? ?? ?? E8 ?? ?? ?? ?? 83 ?? ?? 89 ?? ?? C7 ?? ?? ?? ?? ?? ?? 85 ?? 0F 84 } + $block_54 = { 8B ?? ?? 8D ?? ?? ?? ?? ?? 5? 8D ?? ?? ?? ?? ?? 8B ?? E8 ?? ?? ?? ?? 85 ?? 0F 85 } + $block_55 = { 8D ?? ?? ?? ?? ?? 8B ?? ?? 68 ?? ?? ?? ?? 33 ?? 8B ?? E8 ?? ?? ?? ?? 85 ?? 0F 84 } + $block_56 = { 0F BE ?? ?? 33 ?? 81 F? ?? ?? ?? ?? 81 E? ?? ?? ?? ?? 66 ?? ?? ?? ?? 4? 3B ?? 72 } + $block_57 = { 8B ?? ?? 69 ?? ?? ?? ?? ?? 5? FF 1? ?? ?? ?? ?? FF 4? ?? 8B ?? ?? 3B ?? ?? 0F 8C } + $block_58 = { 8D ?? ?? 5? 33 ?? 81 C? ?? ?? ?? ?? 5? 66 ?? ?? ?? FF 1? ?? ?? ?? ?? 85 ?? 0F 84 } + $block_59 = { 48 ?? ?? ?? ?? ?? ?? 66 ?? ?? ?? ?? ?? ?? ?? ?? 49 ?? ?? 41 ?? ?? ?? ?? ?? 0F 1F } + $block_60 = { 6A ?? 68 ?? ?? ?? ?? 68 ?? ?? ?? ?? 6A ?? 5? E8 ?? ?? ?? ?? 83 ?? ?? 85 ?? 0F 84 } + $block_61 = { 8B ?? ?? 8B ?? ?? E8 ?? ?? ?? ?? 8B ?? ?? 33 ?? 89 ?? ?? 89 ?? ?? 39 ?? ?? 0F 86 } + $block_62 = { 33 ?? 5? 5? 5? 5? 5? E8 ?? ?? ?? ?? CC 8B ?? 5? 8B ?? 5? 5? 5? 8B ?? ?? 85 ?? 75 } + $block_63 = { 83 ?? ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 0F 85 } + $block_64 = { 8B ?? 8D ?? ?? ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? ?? ?? ?? E8 ?? ?? ?? ?? 84 ?? 0F 84 } + $block_65 = { E8 ?? ?? ?? ?? 99 B9 ?? ?? ?? ?? F7 ?? 4? 80 C? ?? 88 ?? ?? ?? ?? ?? ?? 3B ?? 72 } + $block_66 = { 8B ?? 8D ?? ?? ?? ?? ?? 8B ?? E8 ?? ?? ?? ?? 8B ?? ?? 5? 5? FF D? 85 ?? 0F 85 } + $block_67 = { 8B ?? ?? 8B ?? ?? 6A ?? 5? 8D ?? ?? ?? ?? ?? 5? FF 1? ?? ?? ?? ?? 85 ?? 0F 84 } + $block_68 = { 8D ?? ?? 33 ?? 5? 66 ?? ?? ?? FF 1? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 3B ?? 0F 84 } + $block_69 = { 8B ?? ?? 89 ?? ?? 8B ?? ?? 83 ?? ?? 89 ?? ?? 8D ?? ?? 83 ?? ?? 3B ?? ?? 0F 85 } + $block_70 = { 8B ?? ?? ?? ?? ?? 5? 6A ?? 5? FF 1? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 85 ?? 0F 84 } + $block_71 = { 5? 8B ?? 83 ?? ?? A1 ?? ?? ?? ?? 33 ?? 89 ?? ?? A1 ?? ?? ?? ?? 5? 85 ?? 0F 85 } + $block_72 = { 8B ?? ?? 8B ?? ?? 8B ?? 5? 5? 8B ?? ?? ?? ?? ?? ?? FF D? 83 ?? ?? 85 ?? 0F 84 } + $block_73 = { 0F B6 ?? ?? 34 ?? 66 ?? ?? 48 ?? ?? 66 ?? ?? ?? 66 ?? ?? ?? ?? 48 ?? ?? ?? 72 } + $block_74 = { 5? 8B ?? 5? 5? 8B ?? ?? 5? 8B ?? 5? 8B ?? ?? 8B ?? ?? 89 ?? ?? 83 ?? ?? 0F 84 } + $block_75 = { 0F BE ?? ?? 33 ?? 83 ?? ?? 81 E? ?? ?? ?? ?? 66 ?? ?? ?? ?? 03 ?? 83 ?? ?? 72 } + $block_76 = { 8B ?? ?? ?? ?? ?? 68 ?? ?? ?? ?? 8D ?? ?? ?? ?? ?? ?? 5? 5? FF D? 85 ?? 0F 85 } + $block_77 = { 0F BE ?? ?? 33 ?? 83 ?? ?? 81 E? ?? ?? ?? ?? 66 ?? ?? ?? ?? 4? 83 ?? ?? 72 } + $block_78 = { 8D ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 8B ?? 5? 5? 8B ?? ?? FF D? 3B ?? 0F 85 } + $block_79 = { 8D ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 8B ?? 8B ?? ?? 5? 5? FF D? 3B ?? 0F 85 } + $block_80 = { 5? 8B ?? ?? ?? ?? ?? 8D ?? ?? 5? 5? C6 ?? ?? ?? FF D? 89 ?? ?? 85 ?? 0F 84 } + $block_81 = { 8B ?? 83 ?? ?? 5? FF 3? 6A ?? FF D? 5? FF 1? ?? ?? ?? ?? 89 ?? 85 ?? 0F 84 } + $block_82 = { 68 ?? ?? ?? ?? 6A ?? 6A ?? 6A ?? 8B ?? E8 ?? ?? ?? ?? 83 ?? ?? 85 ?? 0F 84 } + $block_83 = { 33 ?? 83 ?? ?? 0F 95 ?? 8B ?? 8B ?? ?? 33 ?? E8 ?? ?? ?? ?? 8B ?? 5? C3 } + $block_84 = { 0F BE ?? ?? F7 ?? 33 ?? 81 E? ?? ?? ?? ?? 66 ?? ?? ?? ?? 4? 83 ?? ?? 72 } + $block_85 = { 8D ?? ?? B8 ?? ?? ?? ?? E8 ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 85 ?? 0F 84 } + $block_86 = { 8D ?? ?? B8 ?? ?? ?? ?? E8 ?? ?? ?? ?? 8B ?? 5? 5? FF D? 85 ?? 0F 85 } + $block_87 = { 42 ?? ?? ?? ?? 32 ?? FE ?? 34 ?? 88 ?? ?? ?? 0F B6 ?? 48 ?? ?? ?? 72 } + $block_88 = { 8A ?? ?? 32 ?? 80 F? ?? FE ?? 88 ?? ?? ?? 0F B6 ?? 83 ?? ?? 72 } + $block_89 = { 8B ?? 33 ?? 0F BE ?? ?? ?? 5? E8 ?? ?? ?? ?? 83 ?? ?? 85 ?? 75 } + $block_90 = { 89 ?? ?? ?? ?? ?? C6 ?? ?? ?? 8B ?? ?? ?? ?? ?? 3B ?? 0F 84 } + $block_91 = { 8B ?? ?? ?? ?? ?? 5? 6A ?? 5? FF 1? ?? ?? ?? ?? 85 ?? 0F 84 } + $block_92 = { 8A ?? 80 E? ?? 0F BE ?? F7 ?? 1B ?? 81 E? ?? ?? ?? ?? 81 C? } + $block_93 = { 8B ?? ?? ?? ?? ?? 33 ?? 66 ?? ?? ?? 3B ?? ?? ?? ?? ?? 0F 84 } + $block_94 = { 8B ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 33 ?? 3B ?? 0F 84 } + $block_95 = { 8B ?? ?? 8B ?? ?? ?? ?? ?? 0F B7 ?? ?? 83 ?? ?? 5? C3 } + $block_96 = { 48 ?? ?? ?? ?? ?? ?? 66 ?? ?? ?? ?? ?? 49 ?? ?? 0F 1F } + $block_97 = { 8B ?? ?? ?? ?? ?? 5? FF 1? ?? ?? ?? ?? 85 ?? 0F 85 } + $block_98 = { 0F BE ?? ?? ?? 5? E8 ?? ?? ?? ?? 83 ?? ?? 85 ?? 75 } + $block_99 = { 83 ?? ?? ?? ?? ?? ?? 5? 8B ?? ?? ?? ?? ?? 5? 0F 85 } + + condition: + hash.sha256(0, filesize) == "65fa52f632e4e83ff83120c7df6b90291025a76d5daeb183e814ec0b3bd2bd4e" or + hash.sha256(0, filesize) == "86056f462d5783604b7f050047db210ecf698e72f3664b27d58265663ff5b324" or + hash.sha256(0, filesize) == "1233cca912fb61873c7388f299a4a1b78054e681941beb31f0a48f8c6d7a182b" or + hash.sha256(0, filesize) == "4464c945c88ac9a4a22e86f0922f18c164e87f26c3f3fa054eb488fdd7d4bfc8" or + hash.sha256(0, filesize) == "4bcb2a5d99297b30f8ff00e08cf7330d5e2f69fc602bb317bf8e9f703a137a99" or + hash.sha256(0, filesize) == "3dea35172449f0b9a86dff9af3b4480cc4c37a30e8cb54963ff91c4c1ffe7b0d" or + hash.sha256(0, filesize) == "12e1139ef422c2c0884fb5b1786a8489c1769a96880a30406e4a28b76ea4a73a" or + hash.sha256(0, filesize) == "c1b19af1e354f13c90163780be6ad50f02d5bf8bac1c9cc1eab1377a159de1be" or + hash.sha256(0, filesize) == "418a21d49fe5bca8a3e050f039a0e2aa03db6d2de0fb49e3ff9d987f31b22dda" or + hash.sha256(0, filesize) == "8a5d8d103cb175d7dc41932ef9a890997e25dbe15f94ecd2105835fe49779354" or + hash.sha256(0, filesize) == "d469000ca9e6af92876334e3a460ea4ac8a61c1a6ee819eefbfd0c79ea4fb315" or + hash.sha256(0, filesize) == "dc70d3046b59785b2b9b7091e26f2484ba7a488dba420a8a05be388a337c399e" or + hash.sha256(0, filesize) == "bc7bcb663477238508ce8ad366cc9a77811c7f5eabaec47175858fe972639f40" or + hash.sha256(0, filesize) == "fdd7e8582ef8d7a23f269653435582cfe924ca9b2db34af63af5e57d1f3e09c2" or + hash.sha256(0, filesize) == "f722677df4fb7eb4ac986a944d4f6630b91ac22b31f8d39ec9bf941376d5d4db" or + hash.sha256(0, filesize) == "ac4ffc7a2ba8840a20f6b07aa44328f1802b79ced6a56b3ac7e78fa1178ba65a" or + hash.sha256(0, filesize) == "5f827730c7bd155997121f023ca9775077a37a58111738fcb3213757170bd860" or + hash.sha256(0, filesize) == "70ae2363191e8b20d1773ecc73afc2b9a5dd8247c7b97eecfd1378f3e7aabf92" or + hash.sha256(0, filesize) == "18c0b02776487babbf6219cdaf97cbf2b534e0cf87a527228dda2d4a468a257f" or + hash.sha256(0, filesize) == "a5373b33ac970dedeb52528b123959145bf51c95b159a30a7823ad8018ac4b41" or + hash.sha256(0, filesize) == "b9c996b06e0db273a4edede3fd6fda2b40b2e0201eba3e8ac581d802fc610a4a" or + hash.sha256(0, filesize) == "f6d52c5608931cdf66d71502fcf012b6781edde64ba1f956c1868f7e36d8c8d2" or + hash.sha256(0, filesize) == "b9ea2cc39808780ade1fe51287072e958448be7e3a7b32bfd48438453592018c" or + hash.sha256(0, filesize) == "01468b1d3e089985a4ed255b6594d24863cfd94a647329c631e4f4e52759f8a9" or + hash.sha256(0, filesize) == "7cdb9c2e8b6ca7f0a683a39c0bdadc7a512cff5d8264fdec012c541fd19c0522" or + hash.sha256(0, filesize) == "89996b66d5a339939b2072d29675ec3ca6d793f42a5d335a8ea7dab8773321ef" or + hash.sha256(0, filesize) == "7ed2d1aceab5f54df4acca63b5d269842d49521e13bab5e652237667c7eef261" or + hash.sha256(0, filesize) == "6eeffe540693418a107db3e7d2d9b72a54b2354aa6886b571272aa41f8cc8e0c" or + hash.sha256(0, filesize) == "30c69d91247f8a72a69e4d7c4bce3eafba40975e5890c23dc4dbe7c9a11afa73" or + hash.sha256(0, filesize) == "1a7239c006a3adf893bdb5c2300b2964ed8bb454e1b622853e4460707dc63c16" or + hash.sha256(0, filesize) == "262dbadca239e5259161130ac9f0f5ef50691fd9dc3e3490b6c0d7b76e7ee34e" or + hash.sha256(0, filesize) == "9891b5586cede16aa1e1b87380621f68e8956b991cf7675bbe18d2ec61a7522f" or + hash.sha256(0, filesize) == "036c5c0075d67f67fee546321f5b9c4f00d37aa9249ffe1627e71946bad4a3d1" or + hash.sha256(0, filesize) == "637cabc343e3ed5b447dccb13aa7caf4d3a3eb3cd617d360167f270ec34596ea" or + 12 of them +} + +rule BlackEnergyPluginMalwareUpdate { + meta: + Author = "Intezer Analyze" + Reference = "https://apt-ecosystem.com" + + strings: + $block_0 = { 8B ?? ?? 8B ?? ?? ?? ?? ?? 8D ?? ?? 8B ?? ?? 8B ?? ?? 03 ?? 8B ?? 2B ?? 89 ?? ?? 3B ?? ?? 0F 83 } + $block_1 = { 68 ?? ?? ?? ?? 6A ?? E8 ?? ?? ?? ?? 8D ?? ?? 5? FF 7? ?? 5? FF 7? ?? FF D? 85 ?? 0F 84 } + $block_2 = { 68 ?? ?? ?? ?? 6A ?? E8 ?? ?? ?? ?? 8D ?? ?? 5? 5? FF 7? ?? FF D? 85 ?? 0F 84 } + $block_3 = { 8D ?? ?? 5? 6A ?? 6A ?? FF 7? ?? E8 ?? ?? ?? ?? BE ?? ?? ?? ?? 85 ?? 0F 84 } + $block_4 = { 5? 8B ?? 83 ?? ?? 68 ?? ?? ?? ?? E8 ?? ?? ?? ?? 89 ?? ?? 85 ?? 0F 84 } + $block_5 = { 5? 68 ?? ?? ?? ?? 68 ?? ?? ?? ?? 5? E8 ?? ?? ?? ?? 8B ?? 85 ?? 0F 84 } + $block_6 = { 68 ?? ?? ?? ?? 6A ?? E8 ?? ?? ?? ?? FF D? 3D ?? ?? ?? ?? 0F 85 } + $block_7 = { FF 7? ?? 8B ?? ?? FF 3? 33 ?? E8 ?? ?? ?? ?? 5? 5? 85 ?? 0F 85 } + $block_8 = { 68 ?? ?? ?? ?? 5? E8 ?? ?? ?? ?? FF D? 3D ?? ?? ?? ?? 0F 85 } + $block_9 = { 68 ?? ?? ?? ?? 6A ?? E8 ?? ?? ?? ?? FF D? 83 ?? ?? 0F 85 } + $block_10 = { 5? 5? E8 ?? ?? ?? ?? 33 ?? 89 ?? ?? 3B ?? 0F 84 } + + condition: + hash.sha256(0, filesize) == "e1fc973641508fa98ad4c338122484f6c3aee64488b0c91f7eccf6453927fdf8" or + 11 of them +} + +rule BlackEnergyDropper { + meta: + Author = "Intezer Analyze" + Reference = "https://apt-ecosystem.com" + + strings: + $block_0 = { 5? 8D ?? ?? ?? ?? ?? 8B ?? ?? 89 ?? BB ?? ?? ?? ?? BE ?? ?? ?? ?? 5? 8D ?? ?? ?? ?? ?? 5? C9 C2 } + $block_1 = { E8 ?? ?? ?? ?? 8A ?? ?? 5? D5 ?? F1 8D ?? ?? 5? F7 ?? B9 ?? ?? ?? ?? 8D ?? ?? 5? 6A ?? 5? E9 } + $block_2 = { 83 ?? ?? 8D ?? ?? B8 ?? ?? ?? ?? 83 ?? ?? ?? B8 ?? ?? ?? ?? 8D ?? 8B ?? ?? 8B ?? 85 ?? 0F 84 } + $block_3 = { 4? 9? CD ?? 25 ?? ?? ?? ?? 0D ?? ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? 4? FC 04 ?? 72 } + $block_4 = { 4? 3C ?? 68 ?? ?? ?? ?? BB ?? ?? ?? ?? F8 89 ?? B8 ?? ?? ?? ?? F3 ?? 8D ?? ?? F7 ?? E9 } + $block_5 = { 89 ?? 8B ?? ?? B9 ?? ?? ?? ?? 0F B7 ?? ?? 2B ?? 8D ?? ?? ?? 2B ?? 66 ?? ?? ?? 0F 82 } + $block_6 = { 6E F7 ?? 03 ?? BF ?? ?? ?? ?? 8D ?? ?? ?? ?? ?? 89 ?? ?? BF ?? ?? ?? ?? 8D ?? E9 } + $block_7 = { 5? 8B ?? ?? 68 ?? ?? ?? ?? 6A ?? E8 ?? ?? ?? ?? 5? 6A ?? FF D? 8B ?? 85 ?? 0F 84 } + $block_8 = { 28 ?? ?? ?? C9 89 ?? F7 ?? 0A ?? 8D ?? ?? BA ?? ?? ?? ?? 33 ?? 8A ?? F7 ?? E9 } + $block_9 = { 8E ?? 16 B3 ?? 65 ?? 80 3? ?? ?? ?? ?? ?? 5? F7 ?? BA ?? ?? ?? ?? 5? 89 ?? E9 } + $block_10 = { 37 81 4? ?? ?? ?? ?? ?? F6 ?? 2A ?? ?? B2 ?? E8 ?? ?? ?? ?? 8B ?? 85 ?? 0F 84 } + $block_11 = { 0B ?? BB ?? ?? ?? ?? F7 ?? 5? 5? B9 ?? ?? ?? ?? 8D ?? ?? ?? ?? ?? 03 ?? 0F 85 } + $block_12 = { 8B ?? ?? 8D ?? ?? 8B ?? ?? 03 ?? 8B ?? 2B ?? 8B ?? ?? ?? ?? ?? 3B ?? ?? 0F 83 } + $block_13 = { 8B ?? ?? 68 ?? ?? ?? ?? 6A ?? 03 ?? E8 ?? ?? ?? ?? 5? FF D? 8B ?? 85 ?? 0F 84 } + $block_14 = { 01 ?? EF AA 3C ?? AD 26 ?? ?? ?? ?? ?? F7 ?? 8B ?? 03 ?? D1 ?? 83 ?? ?? E9 } + $block_15 = { 8B ?? ?? F7 ?? 8D ?? ?? F7 ?? 8B ?? 2B ?? 83 ?? ?? 89 ?? ?? 3B ?? ?? 0F 86 } + $block_16 = { D7 C8 ?? ?? ?? AD 8D ?? ?? 8B ?? ?? ?? 8B ?? 2B ?? D3 ?? 2B ?? 03 ?? 0F 84 } + $block_17 = { 89 ?? BA ?? ?? ?? ?? 5? BA ?? ?? ?? ?? 0F B6 ?? 89 ?? BA ?? ?? ?? ?? E9 } + $block_18 = { 0F C9 89 ?? F7 ?? 0A ?? 8D ?? ?? BA ?? ?? ?? ?? 33 ?? 8A ?? F7 ?? E9 } + $block_19 = { 32 ?? ?? 4? 8E ?? ?? 1C ?? 9? BF ?? ?? ?? ?? D6 89 ?? 8B ?? ?? ?? E9 } + $block_20 = { 60 30 ?? ?? ?? ?? ?? BE ?? ?? ?? ?? BE ?? ?? ?? ?? 8B ?? ?? F7 ?? E9 } + $block_21 = { 86 ?? 3F 9A ?? ?? ?? ?? ?? ?? 5? 18 ?? D6 8B ?? ?? ?? 89 ?? ?? E9 } + $block_22 = { 5? CD ?? FF 5? ?? 01 ?? 4? 05 ?? ?? ?? ?? D0 ?? ?? ?? ?? ?? EF 75 } + $block_23 = { 9A ?? ?? ?? ?? ?? ?? 0A ?? ?? ?? ?? ?? E8 ?? ?? ?? ?? 85 ?? 0F 84 } + $block_24 = { BF ?? ?? ?? ?? 89 ?? 5? 5? 5? FF D? 80 B? ?? ?? ?? ?? ?? 0F 85 } + $block_25 = { 5? 5? 03 ?? 33 ?? F7 ?? 4? 89 ?? ?? E8 ?? ?? ?? ?? 3B ?? 0F 83 } + $block_26 = { 1A ?? B0 ?? AF AB 9? 4? 4? 89 ?? ?? E8 ?? ?? ?? ?? 3B ?? 0F 82 } + $block_27 = { 8B ?? ?? B9 ?? ?? ?? ?? 89 ?? 8D ?? 2B ?? 0F B7 ?? ?? 2B ?? E9 } + $block_28 = { 0F AC ?? ?? 2E ?? ?? E5 ?? D6 05 ?? ?? ?? ?? FF D? 85 ?? 0F 85 } + $block_29 = { F9 AC BF ?? ?? ?? ?? B8 ?? ?? ?? ?? 8B ?? ?? F7 ?? F7 ?? E9 } + $block_30 = { BB ?? ?? ?? ?? D7 2A ?? 5? A5 5? FF D? 5? 5? 85 ?? 0F 85 } + $block_31 = { 89 ?? 8B ?? ?? 89 ?? B9 ?? ?? ?? ?? 0F B7 ?? ?? E9 } + $block_32 = { 33 ?? ?? 4? 4? 89 ?? ?? E8 ?? ?? ?? ?? 85 ?? 0F 84 } + $block_33 = { 89 ?? 5? 5? 5? FF D? 80 B? ?? ?? ?? ?? ?? 0F 85 } + + condition: + hash.sha256(0, filesize) == "e052ea4fbc3aeed1e46df6966bb60c29c6e706ba8fd737fd9ab414fc29189345" or + hash.sha256(0, filesize) == "6d4d0715b274bd8331e67b064416e0806d1c0941930ba9ee6e4bac0eb360f7e6" or + hash.sha256(0, filesize) == "23f9272cb2f08dfe5c847ba7764d003310d26585b22ebd1d8d77935907474235" or + hash.sha256(0, filesize) == "07a76c1d09a9792c348bb56572692fcc4ea5c96a77a2cddf23c0117d03a0dfad" or + 12 of them +} + +rule BlackEnergyDriver { + meta: + Author = "Intezer Analyze" + Reference = "https://apt-ecosystem.com" + + strings: + $block_0 = { 0F BF ?? ?? BA ?? ?? ?? ?? 89 ?? ?? B9 ?? ?? ?? ?? 8B ?? ?? BA ?? ?? ?? ?? 8D ?? ?? ?? ?? ?? E9 } + $block_1 = { E8 ?? ?? ?? ?? 48 ?? ?? FF D? BA ?? ?? ?? ?? 33 ?? FF 1? ?? ?? ?? ?? 48 ?? ?? 48 ?? ?? 0F 84 } + $block_2 = { 89 ?? ?? 8D ?? ?? 89 ?? 8D ?? ?? ?? ?? ?? ?? 8B ?? ?? B8 ?? ?? ?? ?? 8B ?? ?? 83 ?? ?? 0F 84 } + $block_3 = { 03 ?? ?? 8D ?? 8D ?? ?? B9 ?? ?? ?? ?? 89 ?? ?? B9 ?? ?? ?? ?? 89 ?? 8B ?? ?? 83 ?? ?? 0F 84 } + $block_4 = { E8 ?? ?? ?? ?? 4? E4 ?? D1 ?? 65 ?? ?? 00 ?? ?? EE 9? 1F D8 ?? ?? 0E 27 13 ?? ?? 9? 07 1E 7F } + $block_5 = { 4? 06 60 6A ?? 4? 8B ?? ?? 81 E? ?? ?? ?? ?? FF 0? 8B ?? ?? ?? ?? ?? 8D ?? ?? F7 ?? F7 ?? E9 } + $block_6 = { 4? 14 ?? 39 ?? A2 ?? ?? ?? ?? 0D ?? ?? ?? ?? 5? 0C ?? 06 8B ?? ?? 8B ?? 5? 5? 5? 89 ?? ?? E9 } + $block_7 = { 89 ?? 89 ?? 8B ?? ?? 8D ?? ?? ?? ?? ?? BA ?? ?? ?? ?? 89 ?? 8B ?? ?? ?? ?? ?? 3B ?? ?? 0F 83 } + $block_8 = { 8B ?? ?? F7 ?? 8B ?? ?? 89 ?? 8D ?? ?? ?? ?? ?? ?? 89 ?? 0F B7 ?? ?? C1 ?? ?? 83 ?? ?? 0F 84 } + $block_9 = { 0F B6 ?? ?? 8D ?? ?? ?? ?? ?? B8 ?? ?? ?? ?? 5? F7 ?? F7 ?? 8B ?? ?? 5? E8 ?? ?? ?? ?? 5? E9 } + $block_10 = { BA ?? ?? ?? ?? 49 ?? ?? E8 ?? ?? ?? ?? BA ?? ?? ?? ?? 33 ?? FF D? 48 ?? ?? 48 ?? ?? 0F 84 } + $block_11 = { BA ?? ?? ?? ?? 41 ?? ?? E8 ?? ?? ?? ?? 41 ?? ?? ?? ?? 33 ?? FF D? 48 ?? ?? 48 ?? ?? 0F 84 } + $block_12 = { 8B ?? ?? B8 ?? ?? ?? ?? 8D ?? ?? ?? ?? ?? F7 ?? 0F B6 ?? ?? 89 ?? B9 ?? ?? ?? ?? 89 ?? E9 } + $block_13 = { 1E DF ?? ?? ?? ?? ?? 5? 36 ?? ?? D2 ?? D2 ?? 27 BF ?? ?? ?? ?? 1D ?? ?? ?? ?? 9? 04 ?? 73 } + $block_14 = { 8B ?? ?? B9 ?? ?? ?? ?? 89 ?? 8D ?? ?? 0F B7 ?? ?? B8 ?? ?? ?? ?? 8D ?? BA ?? ?? ?? ?? E9 } + $block_15 = { F7 ?? BA ?? ?? ?? ?? 89 ?? B8 ?? ?? ?? ?? 0F B6 ?? ?? 0F B6 ?? ?? F7 ?? B9 ?? ?? ?? ?? E9 } + $block_16 = { 4? D7 3E ?? ?? ?? ?? ?? B1 ?? B8 ?? ?? ?? ?? 8B ?? 89 ?? F7 ?? 8B ?? ?? 83 ?? ?? ?? 0F 87 } + $block_17 = { B8 ?? ?? ?? ?? B8 ?? ?? ?? ?? 8D ?? ?? 33 ?? BF ?? ?? ?? ?? F7 ?? 89 ?? 8B ?? 3B ?? 0F 82 } + $block_18 = { F7 ?? 03 ?? ?? F7 ?? F7 ?? 89 ?? ?? 89 ?? B9 ?? ?? ?? ?? F7 ?? 8B ?? ?? 83 ?? ?? ?? 0F 85 } + $block_19 = { BA ?? ?? ?? ?? 41 ?? ?? E8 ?? ?? ?? ?? 41 ?? ?? ?? 33 ?? FF D? 48 ?? ?? 48 ?? ?? 0F 84 } + $block_20 = { 44 ?? ?? ?? 49 ?? ?? 48 ?? ?? ?? E8 ?? ?? ?? ?? 0F B7 ?? ?? 45 ?? ?? 66 ?? ?? ?? ?? 73 } + $block_21 = { 8D ?? 8B ?? ?? 0F B7 ?? ?? ?? 89 ?? 8D ?? ?? ?? 5? E8 ?? ?? ?? ?? 0F B6 ?? 85 ?? 0F 85 } + $block_22 = { 8D ?? ?? ?? ?? ?? 8B ?? ?? 8B ?? ?? 8D ?? ?? ?? ?? ?? 89 ?? 89 ?? 8B ?? ?? 3B ?? 0F 85 } + $block_23 = { F3 ?? ?? ?? 9E E7 ?? 10 ?? D1 ?? ?? ?? ?? ?? 4? FC 8D ?? 89 ?? 8B ?? ?? 3B ?? ?? 0F 8C } + $block_24 = { B7 ?? 4? 39 ?? EC F7 ?? 89 ?? F7 ?? C7 ?? ?? ?? ?? ?? ?? F7 ?? 8B ?? ?? 3B ?? ?? 0F 87 } + $block_25 = { C5 ?? AC AF 9F 5? 8A ?? FF B? ?? ?? ?? ?? 0E F9 89 ?? ?? 8B ?? ?? 83 ?? ?? 89 ?? ?? E9 } + $block_26 = { 03 ?? ?? F7 ?? B9 ?? ?? ?? ?? 8B ?? ?? 89 ?? 89 ?? 8D ?? ?? 8B ?? ?? 39 ?? ?? 0F 82 } + $block_27 = { 9D 1F BB ?? ?? ?? ?? A3 ?? ?? ?? ?? 8D ?? ?? 8D ?? ?? 8B ?? ?? 83 ?? ?? 89 ?? ?? E9 } + $block_28 = { 8D ?? ?? ?? ?? ?? 89 ?? 8B ?? ?? B9 ?? ?? ?? ?? 0F B7 ?? ?? C1 ?? ?? 83 ?? ?? 0F 85 } + $block_29 = { 6E EA ?? ?? ?? ?? ?? ?? 0C ?? 8B ?? ?? 89 ?? B8 ?? ?? ?? ?? 03 ?? ?? F7 ?? 8D ?? E9 } + $block_30 = { 4? 8C ?? 89 ?? ?? ?? ?? ?? F7 ?? 8B ?? ?? F7 ?? 8B ?? ?? ?? ?? ?? 3B ?? ?? 0F 82 } + $block_31 = { DA ?? ?? 5? 0C ?? 07 03 ?? ?? 89 ?? 0F B6 ?? 89 ?? 33 ?? 8D ?? ?? 8D ?? ?? ?? E9 } + $block_32 = { 8B ?? ?? B9 ?? ?? ?? ?? 8D ?? ?? ?? ?? ?? ?? 03 ?? ?? F7 ?? 8D ?? ?? 0F B6 ?? E9 } + $block_33 = { 6E AC 8D ?? ?? ?? ?? ?? C1 ?? ?? 8D ?? ?? ?? ?? ?? F7 ?? 8B ?? ?? ?? C1 ?? ?? E9 } + $block_34 = { F7 ?? 8B ?? ?? B9 ?? ?? ?? ?? 8D ?? F7 ?? 8B ?? ?? 0F B7 ?? ?? B8 ?? ?? ?? ?? E9 } + $block_35 = { 69 ?? ?? ?? ?? ?? ?? 86 ?? ?? ?? ?? ?? 67 ?? 5? 8B ?? ?? ?? ?? ?? 3B ?? ?? 0F 83 } + $block_36 = { 8B ?? ?? B8 ?? ?? ?? ?? F7 ?? 8B ?? ?? B8 ?? ?? ?? ?? 8D ?? ?? 0F BF ?? ?? E9 } + $block_37 = { 85 ?? ?? 83 ?? ?? ?? AE 5? 05 ?? ?? ?? ?? BA ?? ?? ?? ?? 8B ?? ?? 3B ?? 0F 82 } + $block_38 = { 8B ?? ?? 0F B7 ?? ?? F7 ?? 25 ?? ?? ?? ?? F7 ?? 8D ?? 8D ?? 8B ?? ?? 03 ?? E9 } + $block_39 = { 9? 1A ?? 26 ?? 66 ?? ?? ?? 5? D3 ?? 06 10 ?? ?? ?? ?? ?? 19 ?? ?? 1A ?? ?? 78 } + $block_40 = { AF 88 ?? ?? ?? ?? ?? 65 ?? 0C ?? FF 5? ?? 5? E4 ?? FF 8? ?? ?? ?? ?? B6 ?? E9 } + $block_41 = { 8B ?? ?? 8D ?? 03 ?? ?? 89 ?? 0F B6 ?? 89 ?? 33 ?? 8D ?? ?? 8D ?? ?? ?? E9 } + $block_42 = { C4 ?? ?? ?? 20 ?? 5? 9B 6D 14 ?? E8 ?? ?? ?? ?? 89 ?? ?? 83 ?? ?? ?? 0F 84 } + $block_43 = { CC 15 ?? ?? ?? ?? 8A ?? ?? ?? ?? ?? 65 ?? 5? B6 ?? D3 ?? ?? ?? ?? ?? 9D E9 } + $block_44 = { 27 99 6B ?? ?? ?? 8A ?? AA F1 89 ?? 8B ?? ?? F7 ?? 89 ?? F7 ?? 5? 8D ?? E9 } + $block_45 = { F1 18 ?? 1A ?? ?? A8 ?? 5? B5 ?? 23 ?? ?? ?? ?? ?? 8B ?? ?? 8B ?? ?? 5? E9 } + $block_46 = { 48 ?? ?? ?? ?? ?? ?? 48 ?? ?? ?? 48 ?? ?? ?? ?? E8 ?? ?? ?? ?? 0F B6 ?? E9 } + $block_47 = { 80 1? ?? 8C ?? ?? ?? ?? ?? 0C ?? 89 ?? 89 ?? 88 ?? ?? 89 ?? 0F B6 ?? ?? E9 } + $block_48 = { 8B ?? ?? 89 ?? BA ?? ?? ?? ?? BA ?? ?? ?? ?? 8B ?? ?? 8B ?? ?? 3B ?? 0F 84 } + $block_49 = { D0 ?? ?? ?? ?? ?? 8B ?? ?? 89 ?? 89 ?? 8D ?? ?? 8B ?? ?? 39 ?? ?? 0F 82 } + $block_50 = { 8B ?? ?? 8D ?? ?? ?? ?? ?? B8 ?? ?? ?? ?? 89 ?? 8B ?? ?? 83 ?? ?? 0F 84 } + $block_51 = { EF F7 ?? 5? B9 ?? ?? ?? ?? F7 ?? 8D ?? ?? ?? ?? ?? 5? E8 ?? ?? ?? ?? E9 } + $block_52 = { 8B ?? ?? F7 ?? 8D ?? ?? 8D ?? ?? 03 ?? ?? 8D ?? ?? ?? ?? ?? 0F B6 ?? E9 } + $block_53 = { F7 ?? B8 ?? ?? ?? ?? 89 ?? 8B ?? ?? F7 ?? F7 ?? 8B ?? 03 ?? 85 ?? 0F 85 } + $block_54 = { 8B ?? ?? BE ?? ?? ?? ?? 8B ?? ?? 83 ?? ?? 83 ?? ?? 89 ?? ?? 85 ?? 0F 85 } + $block_55 = { B9 ?? ?? ?? ?? 8D ?? ?? ?? ?? ?? ?? 88 ?? ?? F7 ?? 0F B6 ?? ?? 89 ?? E9 } + $block_56 = { 8B ?? ?? F7 ?? B9 ?? ?? ?? ?? 8B ?? ?? 8D ?? 0F B7 ?? ?? F7 ?? 89 ?? E9 } + $block_57 = { 8D ?? ?? 33 ?? 44 ?? ?? ?? FF 1? ?? ?? ?? ?? 48 ?? ?? 48 ?? ?? 0F 84 } + $block_58 = { 0F BE ?? ?? 8D ?? ?? ?? ?? ?? ?? BA ?? ?? ?? ?? 89 ?? 0F BE ?? ?? E9 } + $block_59 = { F7 ?? 89 ?? F7 ?? C7 ?? ?? ?? ?? ?? ?? F7 ?? 8B ?? ?? 3B ?? ?? 0F 87 } + $block_60 = { 8B ?? ?? 48 ?? ?? ?? E8 ?? ?? ?? ?? 41 ?? ?? ?? ?? ?? 84 ?? 0F 84 } + $block_61 = { 5? B4 ?? E5 ?? 38 ?? ?? ?? ?? ?? 07 2E ?? ?? F8 B4 ?? 3A ?? 5? EB } + $block_62 = { 8D ?? ?? 8B ?? ?? 2B ?? 8B ?? ?? B9 ?? ?? ?? ?? F7 ?? 85 ?? 0F 84 } + $block_63 = { D5 ?? 35 ?? ?? ?? ?? 5? 5? 4? 4? AE 10 ?? ?? ?? ?? ?? 89 ?? ?? E9 } + $block_64 = { E8 ?? ?? ?? ?? 61 DF ?? 4? 8B ?? ?? 8D ?? ?? 8B ?? ?? 89 ?? ?? E9 } + $block_65 = { BA ?? ?? ?? ?? 33 ?? FF 1? ?? ?? ?? ?? 48 ?? ?? 48 ?? ?? 0F 84 } + $block_66 = { 89 ?? 89 ?? 8B ?? ?? 89 ?? 0F B7 ?? ?? C1 ?? ?? 83 ?? ?? 0F 85 } + $block_67 = { 2C ?? 28 ?? ?? ?? ?? ?? 4? F7 ?? F7 ?? 8B ?? ?? 3B ?? ?? 0F 8D } + $block_68 = { 27 2A ?? ?? ?? ?? ?? EC 5? E8 ?? ?? ?? ?? 0F B6 ?? 85 ?? 0F 84 } + $block_69 = { D1 ?? ?? ?? ?? ?? EC 0C ?? 04 ?? 00 ?? 00 ?? 61 D7 0A ?? 4? 76 } + $block_70 = { D1 ?? 89 ?? 88 ?? ?? F7 ?? BA ?? ?? ?? ?? 0F B6 ?? ?? 8D ?? E9 } + $block_71 = { BF ?? ?? ?? ?? F7 ?? 89 ?? 8D ?? ?? ?? F7 ?? 8B ?? 3B ?? 0F 82 } + $block_72 = { 06 1A ?? ?? ?? ?? ?? 1B ?? ?? ?? ?? ?? F7 ?? 89 ?? 8B ?? ?? E9 } + $block_73 = { 8B ?? ?? F7 ?? 89 ?? 03 ?? ?? 0F B6 ?? F7 ?? 89 ?? 89 ?? E9 } + $block_74 = { 8B ?? ?? 5? 6A ?? E8 ?? ?? ?? ?? 89 ?? ?? 83 ?? ?? ?? 0F 84 } + $block_75 = { 1E 4? 9B 36 ?? 8B ?? ?? ?? B7 ?? 5? C1 ?? ?? 83 ?? ?? 0F 84 } + $block_76 = { B8 ?? ?? ?? ?? 8B ?? 89 ?? F7 ?? 8B ?? ?? 83 ?? ?? ?? 0F 87 } + $block_77 = { 16 85 ?? ?? B6 ?? 4? 5? F4 62 ?? ?? 89 ?? 83 ?? ?? F7 ?? E9 } + $block_78 = { F7 ?? 89 ?? ?? 8D ?? ?? ?? ?? ?? ?? 8B ?? ?? 3B ?? ?? 0F 8C } + $block_79 = { 85 ?? ?? ?? ?? ?? A6 89 ?? ?? 89 ?? 89 ?? ?? 89 ?? 89 ?? E9 } + $block_80 = { 15 ?? ?? ?? ?? 5? F4 F7 ?? 8D ?? 0F B6 ?? ?? 85 ?? 0F 85 } + $block_81 = { 89 ?? 88 ?? ?? F7 ?? BA ?? ?? ?? ?? 0F B6 ?? ?? 8D ?? E9 } + $block_82 = { 4? B7 ?? 64 ?? ?? AD B3 ?? 8A ?? ?? ?? ?? ?? 5? F7 ?? E9 } + $block_83 = { 2B ?? C7 ?? ?? ?? ?? ?? ?? 83 ?? ?? 89 ?? ?? 3B ?? 0F 86 } + $block_84 = { 8D ?? ?? ?? ?? ?? 0F B6 ?? 5? E8 ?? ?? ?? ?? 88 ?? ?? E9 } + $block_85 = { F7 ?? 8D ?? ?? 8B ?? ?? F7 ?? 89 ?? 0F BE ?? 85 ?? 0F 84 } + $block_86 = { 8B ?? ?? 8D ?? 8D ?? ?? 89 ?? 0F B6 ?? ?? 85 ?? 0F 84 } + $block_87 = { 0F BE ?? ?? F7 ?? 89 ?? 89 ?? 0F BE ?? ?? 3B ?? 0F 85 } + $block_88 = { F7 ?? ?? 3B ?? 4? 89 ?? ?? 81 7? ?? ?? ?? ?? ?? 0F 8C } + $block_89 = { F4 1B ?? F7 ?? EE E8 ?? ?? ?? ?? 4? 06 39 ?? ?? 0F 82 } + $block_90 = { 8B ?? ?? F7 ?? F7 ?? 0F B7 ?? 81 F? ?? ?? ?? ?? 0F 85 } + $block_91 = { 5? ED 0C ?? 9C 4? AF 9? 82 E? ?? 35 ?? ?? ?? ?? 73 } + $block_92 = { 0F BE ?? ?? 89 ?? 8D ?? ?? 0F BE ?? ?? 3B ?? 0F 85 } + $block_93 = { 8B ?? ?? 0F BE ?? ?? 03 ?? 33 ?? BE ?? ?? ?? ?? E9 } + $block_94 = { 8B ?? ?? 89 ?? B8 ?? ?? ?? ?? 8B ?? ?? 3B ?? 0F 84 } + $block_95 = { 5? 6A ?? E8 ?? ?? ?? ?? 89 ?? ?? 83 ?? ?? ?? 0F 84 } + $block_96 = { 8B ?? ?? 5? E8 ?? ?? ?? ?? 0F B6 ?? 85 ?? 0F 84 } + $block_97 = { BA ?? ?? ?? ?? 8B ?? ?? 81 E? ?? ?? ?? ?? 0F 85 } + $block_98 = { 5? A4 8B ?? ?? B8 ?? ?? ?? ?? F7 ?? 89 ?? ?? E9 } + $block_99 = { 6A ?? E8 ?? ?? ?? ?? 89 ?? ?? 83 ?? ?? ?? 0F 84 } + + condition: + hash.sha256(0, filesize) == "5111de45210751c8e40441f16760bf59856ba798ba99e3c9532a104752bf7bcc" or + hash.sha256(0, filesize) == "b73777469f939c331cbc1c9ad703f973d55851f3ad09282ab5b3546befa5b54a" or + hash.sha256(0, filesize) == "cbc4b0aaa30b967a6e29df452c5d7c2a16577cede54d6d705ca1f095bd6d4988" or + hash.sha256(0, filesize) == "ca7a8180996a98e718f427837f9d52453b78d0a307e06e1866db4d4ce969d525" or + hash.sha256(0, filesize) == "edcd1722fdc2c924382903b7e4580f9b77603110e497393c9947d45d311234bf" or + hash.sha256(0, filesize) == "32d3121135a835c3347b553b70f3c4c68eef711af02c161f007a9fbaffe7e614" or + hash.sha256(0, filesize) == "90ba78b6710462c2d97815e8745679942b3b296135490f0095bdc0cd97a34d9c" or + hash.sha256(0, filesize) == "405013e66b6f137f915738e5623228f36c74e362873310c5f2634ca2fda6fbc5" or + hash.sha256(0, filesize) == "43ce710a83c99fb4c0bac2ea93727a9d5dda6e82e30b5fe861f9e3e0acddaa1c" or + hash.sha256(0, filesize) == "4d31a81515ea04765b488dadc49acac4a2b81ca16eee1993ccd97b51a75510d5" or + hash.sha256(0, filesize) == "97be6b2cec90f655ef11ed9feef5b9ef057fd8db7dd11712ddb3702ed7c7bda1" or + hash.sha256(0, filesize) == "7a393b3eadfc8938cbecf84ca630e56e37d8b3d23e084a12ea5a7955642db291" or + hash.sha256(0, filesize) == "edb16d3ccd50fc8f0f77d0875bf50a629fa38e5ba1b8eeefd54468df97eba281" or + hash.sha256(0, filesize) == "2aade7381aa87f55b7d7a5284d22be5472fd8cd966d216fd4445ca3a8bbb3ff3" or + hash.sha256(0, filesize) == "7874a10e551377d50264da5906dc07ec31b173dee18867f88ea556ad70d8f094" or + hash.sha256(0, filesize) == "ed080c2635180f27c8d288e96c1105d0914dc1bb55917d2f5f2538fc32974aa2" or + hash.sha256(0, filesize) == "1ce0dfe1a6663756a32c69f7494ad082d293d32fe656d7908fb445283ab5fa68" or + hash.sha256(0, filesize) == "81125a5eb555dc898a5af966cf5ac8380e6c8e64a1c7f7981e8db8c9dbb37394" or + hash.sha256(0, filesize) == "3432db9cb1fb9daa2f2ac554a0a006be96040d2a7776a072a8db051d064a8be2" or + hash.sha256(0, filesize) == "166ba02539d3ea8cd1298d916fad1264a815f55798df5477698b7d775542b696" or + hash.sha256(0, filesize) == "ac13b819379855af80ea3499e7fb645f1c96a4a6709792613917df4276c583fc" or + hash.sha256(0, filesize) == "cfb20e7516b42486d11c59021a8be8a457ee1fa0d0be6d5d958e80b3cfeb04ae" or + hash.sha256(0, filesize) == "244dd8018177ea5a92c70a7be94334fa457c1aab8a1c1ea51580d7da500c3ad5" or + 12 of them +} + +rule BlackEnergyPluginNetworkDiscovery { + meta: + Author = "Intezer Analyze" + Reference = "https://apt-ecosystem.com" + + strings: + $block_0 = { 8B ?? ?? 8B ?? ?? ?? ?? ?? 8D ?? ?? 8B ?? ?? 8B ?? ?? 03 ?? 8B ?? 2B ?? 89 ?? ?? 3B ?? ?? 0F 83 } + $block_1 = { 68 ?? ?? ?? ?? 6A ?? E8 ?? ?? ?? ?? 8D ?? ?? 5? 68 ?? ?? ?? ?? FF 7? ?? FF D? 85 ?? 0F 84 } + $block_2 = { 68 ?? ?? ?? ?? 5? E8 ?? ?? ?? ?? 8B ?? ?? 8D ?? ?? ?? 5? 6A ?? FF D? 89 ?? ?? 3B ?? 0F 84 } + $block_3 = { 68 ?? ?? ?? ?? 5? E8 ?? ?? ?? ?? 5? 6A ?? 68 ?? ?? ?? ?? FF D? 89 ?? ?? 85 ?? 0F 84 } + $block_4 = { 5? 8B ?? ?? 68 ?? ?? ?? ?? 6A ?? E8 ?? ?? ?? ?? 5? 6A ?? FF D? 89 ?? ?? 85 ?? 0F 84 } + $block_5 = { 68 ?? ?? ?? ?? 6A ?? E8 ?? ?? ?? ?? 8D ?? ?? 5? 5? FF 7? ?? FF D? 85 ?? 0F 84 } + $block_6 = { 8B ?? ?? 5? 6A ?? E8 ?? ?? ?? ?? 5? 6A ?? FF D? 8B ?? 89 ?? ?? 3B ?? 0F 84 } + $block_7 = { FF 4? ?? 6A ?? 8D ?? ?? 5? FF 7? ?? E8 ?? ?? ?? ?? 83 ?? ?? 85 ?? 0F 85 } + $block_8 = { 03 ?? 0F B6 ?? C1 ?? ?? 8A ?? ?? ?? ?? ?? 4? 88 ?? 3B ?? 0F BE ?? 75 } + $block_9 = { 5? 5? 5? 8D ?? ?? 5? C7 ?? ?? ?? ?? ?? ?? E8 ?? ?? ?? ?? 85 ?? 0F 85 } + $block_10 = { FF 7? ?? 68 ?? ?? ?? ?? 68 ?? ?? ?? ?? E8 ?? ?? ?? ?? 85 ?? 0F 84 } + $block_11 = { 8B ?? 8B ?? ?? 8B ?? ?? 8B ?? ?? 89 ?? ?? 89 ?? ?? 3B ?? 0F 84 } + $block_12 = { 8D ?? ?? 5? 6A ?? 6A ?? FF 7? ?? E8 ?? ?? ?? ?? 85 ?? 0F 84 } + $block_13 = { 5? 68 ?? ?? ?? ?? E8 ?? ?? ?? ?? 89 ?? ?? 3B ?? 0F 85 } + $block_14 = { 8B ?? ?? C1 ?? ?? 5? 5? 89 ?? ?? 89 ?? ?? 3B ?? 0F 86 } + $block_15 = { 5? 8B ?? 83 ?? ?? 5? 33 ?? 89 ?? ?? 39 ?? ?? 0F 84 } + + condition: + hash.sha256(0, filesize) == "325db53fdeb928597531ee1d20f7528f687c2c5611e3fa408f41a654e73b0f1b" or + 12 of them +} + +rule VPNFilterStage1 { + meta: + Author = "Intezer Analyze" + Reference = "https://apt-ecosystem.com" + + strings: + $block_0 = { B8 ?? ?? ?? ?? 8D ?? ?? 89 ?? ?? ?? 89 ?? ?? ?? 89 ?? ?? ?? 89 ?? ?? E8 ?? ?? ?? ?? 85 ?? 0F 85 } + $block_1 = { 8B ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? FC C1 ?? ?? F3 ?? F6 ?? ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 74 } + $block_2 = { 31 ?? 89 ?? ?? ?? 8B ?? ?? 89 ?? ?? 89 ?? ?? ?? 8B ?? ?? 89 ?? ?? ?? E8 ?? ?? ?? ?? 85 ?? 0F 85 } + $block_3 = { BB ?? ?? ?? ?? B9 ?? ?? ?? ?? 89 ?? ?? ?? 89 ?? ?? ?? 89 ?? ?? E8 ?? ?? ?? ?? 85 ?? 89 ?? 0F 85 } + $block_4 = { 8B ?? ?? 8B ?? ?? 8B ?? ?? 8B ?? ?? 89 ?? ?? ?? ?? ?? 31 ?? 83 ?? ?? ?? 89 ?? ?? ?? ?? ?? 0F 84 } + $block_5 = { 8D ?? ?? ?? ?? ?? 89 ?? ?? 89 ?? ?? ?? 89 ?? ?? ?? 89 ?? ?? E8 ?? ?? ?? ?? 85 ?? 89 ?? ?? 0F 84 } + $block_6 = { 5? B9 ?? ?? ?? ?? 89 ?? 31 ?? 5? 5? 5? FC 8D ?? ?? 83 ?? ?? 89 ?? F3 ?? 66 ?? ?? ?? ?? 31 ?? 9? } + $block_7 = { 8B ?? ?? 8B ?? 8B ?? ?? 83 ?? ?? 89 ?? ?? ?? 89 ?? ?? ?? 8B ?? ?? 89 ?? ?? FF 5? ?? 85 ?? 0F 85 } + $block_8 = { FF 8? ?? ?? ?? ?? A1 ?? ?? ?? ?? 83 ?? ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 39 ?? ?? ?? ?? ?? 0F 8F } + $block_9 = { 8B ?? ?? 8B ?? ?? 83 ?? ?? 89 ?? BE ?? ?? ?? ?? 89 ?? ?? ?? 89 ?? ?? E8 ?? ?? ?? ?? 85 ?? 0F 84 } + $block_10 = { B1 ?? 89 ?? 8B ?? ?? ?? F6 ?? BA ?? ?? ?? ?? 89 ?? 31 ?? 0F B6 ?? F7 ?? 8D ?? ?? 88 ?? 04 ?? 88 } + $block_11 = { 89 ?? C1 ?? ?? F6 ?? ?? 0F 95 ?? 0F B6 ?? 01 ?? 89 ?? ?? ?? 89 ?? ?? E8 ?? ?? ?? ?? 85 ?? 0F 84 } + $block_12 = { 8B ?? ?? ?? ?? ?? 8B ?? 89 ?? ?? 8B ?? ?? 89 ?? ?? 8B ?? ?? 89 ?? ?? 0F B7 ?? ?? 66 ?? ?? ?? 75 } + $block_13 = { 8B ?? ?? 89 ?? 8B ?? ?? 8B ?? ?? 89 ?? ?? ?? 8B ?? ?? 89 ?? ?? E8 ?? ?? ?? ?? 85 ?? 89 ?? 0F 85 } + $block_14 = { 8B ?? ?? ?? ?? ?? 8D ?? ?? 8B ?? ?? 89 ?? ?? ?? 89 ?? ?? ?? 89 ?? ?? E8 ?? ?? ?? ?? 85 ?? 0F 85 } + $block_15 = { B8 ?? ?? ?? ?? 89 ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? E8 ?? ?? ?? ?? E8 ?? ?? ?? ?? 85 ?? 89 ?? 0F 85 } + $block_16 = { 8B ?? ?? 8D ?? ?? B9 ?? ?? ?? ?? C1 ?? ?? BE ?? ?? ?? ?? 01 ?? 89 ?? ?? 0F B6 ?? 8B ?? ?? 29 } + $block_17 = { B9 ?? ?? ?? ?? 05 ?? ?? ?? ?? 89 ?? ?? ?? 89 ?? ?? E8 ?? ?? ?? ?? B9 ?? ?? ?? ?? 85 ?? 0F 84 } + $block_18 = { 01 ?? 89 ?? ?? ?? ?? ?? 83 ?? ?? 0F B6 ?? ?? 0F B6 ?? ?? C1 ?? ?? 09 ?? 8D ?? ?? 39 ?? 0F 87 } + $block_19 = { 8B ?? ?? 8B ?? ?? 8B ?? ?? ?? ?? ?? 8B ?? ?? 83 ?? ?? 8D ?? ?? 3D ?? ?? ?? ?? 89 ?? ?? 0F 87 } + $block_20 = { BE ?? ?? ?? ?? B9 ?? ?? ?? ?? FC F3 ?? A1 ?? ?? ?? ?? 66 ?? ?? 8B ?? ?? 8B ?? ?? 89 ?? 5? C3 } + $block_21 = { 8B ?? ?? 0F B6 ?? 01 ?? 4? 0F B6 ?? 83 ?? ?? 30 ?? 88 ?? 88 ?? FF 4? ?? 8B ?? ?? 39 ?? ?? 74 } + $block_22 = { B9 ?? ?? ?? ?? 89 ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? E8 ?? ?? ?? ?? 8B ?? ?? 85 ?? 89 ?? ?? 0F 85 } + $block_23 = { 83 ?? ?? 89 ?? ?? ?? 8B ?? ?? 83 ?? ?? 89 ?? ?? E8 ?? ?? ?? ?? 85 ?? 89 ?? ?? ?? ?? ?? 0F 85 } + $block_24 = { 8B ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 29 ?? 8D ?? ?? 83 ?? ?? 83 ?? ?? 89 ?? ?? ?? ?? ?? 0F 86 } + $block_25 = { 8D ?? ?? 89 ?? ?? ?? 8D ?? ?? 8B ?? ?? 89 ?? ?? 89 ?? ?? ?? E8 ?? ?? ?? ?? 85 ?? 89 ?? 0F 85 } + $block_26 = { 4? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? 0F 84 } + $block_27 = { 89 ?? B3 ?? F6 ?? BA ?? ?? ?? ?? 89 ?? 31 ?? 0F B6 ?? F7 ?? 88 ?? 04 ?? 3C ?? 88 ?? ?? ?? 74 } + $block_28 = { 8B ?? ?? 8B ?? ?? 4? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? 89 ?? ?? E8 ?? ?? ?? ?? 85 ?? 89 ?? 0F 84 } + $block_29 = { 0F B6 ?? C1 ?? ?? 89 ?? ?? 0F B6 ?? ?? 09 ?? ?? 8B ?? ?? 89 ?? 8B ?? ?? 4? 3D ?? ?? ?? ?? 77 } + $block_30 = { 8B ?? ?? 8D ?? ?? 89 ?? ?? ?? 89 ?? ?? ?? 83 ?? ?? 89 ?? ?? E8 ?? ?? ?? ?? 85 ?? 89 ?? 0F 85 } + $block_31 = { B8 ?? ?? ?? ?? 89 ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? E8 ?? ?? ?? ?? 85 ?? 89 ?? ?? ?? ?? ?? 0F 84 } + $block_32 = { 5? 89 ?? 5? 5? 5? 83 ?? ?? 8B ?? ?? 89 ?? ?? 8B ?? ?? 8B ?? 8B ?? ?? 8D ?? ?? 83 ?? ?? 0F 86 } + $block_33 = { 8B ?? ?? 8D ?? ?? ?? ?? ?? 89 ?? ?? ?? 89 ?? ?? E8 ?? ?? ?? ?? 85 ?? 89 ?? ?? ?? ?? ?? 0F 85 } + $block_34 = { 8D ?? ?? 89 ?? ?? ?? 8D ?? ?? 89 ?? ?? ?? 8D ?? ?? 89 ?? ?? E8 ?? ?? ?? ?? 85 ?? 89 ?? 0F 85 } + $block_35 = { 8B ?? ?? 8D ?? ?? 8B ?? ?? 89 ?? ?? 89 ?? ?? ?? 89 ?? ?? ?? E8 ?? ?? ?? ?? 85 ?? 89 ?? 0F 85 } + $block_36 = { 8D ?? ?? 89 ?? ?? ?? 8D ?? ?? 8D ?? ?? 89 ?? ?? ?? 89 ?? ?? E8 ?? ?? ?? ?? 85 ?? 89 ?? 0F 85 } + $block_37 = { 8B ?? ?? 8D ?? ?? 8B ?? ?? 89 ?? ?? ?? 89 ?? ?? 01 ?? 89 ?? ?? ?? E8 ?? ?? ?? ?? 85 ?? 0F 85 } + $block_38 = { 8D ?? ?? 89 ?? ?? ?? 8B ?? ?? 89 ?? ?? ?? 83 ?? ?? 89 ?? ?? E8 ?? ?? ?? ?? 85 ?? 89 ?? 0F 85 } + $block_39 = { C7 ?? ?? ?? ?? ?? ?? 29 ?? ?? 89 ?? ?? 8B ?? ?? 89 ?? ?? ?? E8 ?? ?? ?? ?? 85 ?? 89 ?? 0F 85 } + $block_40 = { 8B ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 8B ?? 0F B6 ?? ?? ?? 0F B6 ?? 39 ?? 74 } + $block_41 = { 8B ?? ?? 8D ?? ?? 89 ?? ?? ?? 8D ?? ?? 89 ?? ?? 89 ?? ?? ?? E8 ?? ?? ?? ?? 85 ?? 89 ?? 0F 84 } + $block_42 = { 8B ?? ?? 89 ?? ?? E8 ?? ?? ?? ?? 8D ?? ?? 89 ?? ?? E8 ?? ?? ?? ?? 3D ?? ?? ?? ?? 89 ?? 0F 8E } + $block_43 = { 89 ?? 31 ?? FC C1 ?? ?? F3 ?? 8D ?? ?? ?? ?? ?? ?? 83 ?? ?? 8B ?? ?? 8B ?? ?? 8B ?? ?? 76 } + $block_44 = { B8 ?? ?? ?? ?? 89 ?? ?? ?? B8 ?? ?? ?? ?? 89 ?? ?? ?? 89 ?? ?? E8 ?? ?? ?? ?? 85 ?? 0F 84 } + $block_45 = { 8D ?? ?? 89 ?? ?? E8 ?? ?? ?? ?? 8B ?? ?? 89 ?? ?? E8 ?? ?? ?? ?? 83 ?? ?? ?? 89 ?? 0F 84 } + $block_46 = { 8B ?? ?? ?? ?? ?? 0F B6 ?? ?? 0F B6 ?? ?? C1 ?? ?? 09 ?? 8D ?? ?? 39 ?? ?? ?? ?? ?? 0F 85 } + $block_47 = { 8B ?? ?? ?? ?? ?? 8D ?? ?? ?? ?? ?? 89 ?? ?? 89 ?? ?? ?? E8 ?? ?? ?? ?? 85 ?? 89 ?? 0F 85 } + $block_48 = { BA ?? ?? ?? ?? B8 ?? ?? ?? ?? 89 ?? ?? ?? 89 ?? ?? ?? 89 ?? ?? E8 ?? ?? ?? ?? 85 ?? 0F 85 } + $block_49 = { 8B ?? ?? 8D ?? ?? 0F B6 ?? ?? ?? ?? ?? C6 ?? ?? ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 89 } + $block_50 = { 8D ?? ?? BB ?? ?? ?? ?? 89 ?? ?? ?? 89 ?? ?? ?? 89 ?? ?? E8 ?? ?? ?? ?? 85 ?? 89 ?? 0F 85 } + $block_51 = { 80 F? ?? 0F B6 ?? ?? 0F B6 ?? ?? 19 ?? 83 ?? ?? C1 ?? ?? 09 ?? 8D ?? ?? ?? 39 ?? ?? 0F 85 } + $block_52 = { 8B ?? ?? ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? 89 ?? ?? ?? E8 ?? ?? ?? ?? 85 ?? 89 ?? 89 ?? 0F 84 } + $block_53 = { 0F B6 ?? ?? 8B ?? ?? ?? ?? ?? 80 E? ?? 80 F? ?? 19 ?? 83 ?? ?? 83 ?? ?? 39 ?? 89 ?? ?? 74 } + $block_54 = { C7 ?? ?? ?? ?? ?? ?? 8D ?? ?? ?? ?? ?? 8B ?? ?? 8D ?? ?? E8 ?? ?? ?? ?? 85 ?? 89 ?? 0F 85 } + $block_55 = { 89 ?? 31 ?? FC C1 ?? ?? F3 ?? 89 ?? C1 ?? ?? 31 ?? 8B ?? ?? 89 ?? 29 ?? 83 ?? ?? 89 ?? EB } + $block_56 = { 8B ?? ?? 8D ?? ?? 0F B6 ?? 4? 83 ?? ?? 32 ?? 88 ?? 88 ?? FF 4? ?? 8B ?? ?? 39 ?? ?? 0F 84 } + $block_57 = { FC 31 ?? B9 ?? ?? ?? ?? 89 ?? F3 ?? 8B ?? ?? FF 5? ?? BA ?? ?? ?? ?? 85 ?? 89 ?? ?? 74 } + $block_58 = { 8D ?? ?? 4? 8D ?? ?? 89 ?? 89 ?? 0F B6 ?? ?? 8D ?? ?? ?? 89 ?? 89 ?? 8B ?? ?? 89 ?? 75 } + $block_59 = { 8D ?? ?? BB ?? ?? ?? ?? 89 ?? ?? ?? 89 ?? ?? 89 ?? ?? E8 ?? ?? ?? ?? 85 ?? 89 ?? 0F 85 } + $block_60 = { 8B ?? ?? BA ?? ?? ?? ?? B9 ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 8B ?? ?? 8B ?? ?? 85 ?? 0F 84 } + $block_61 = { 89 ?? ?? ?? B8 ?? ?? ?? ?? 89 ?? ?? ?? 89 ?? ?? ?? 89 ?? ?? E8 ?? ?? ?? ?? 85 ?? 0F 88 } + $block_62 = { 8B ?? ?? 89 ?? 03 ?? ?? 0F B7 ?? ?? 01 ?? 89 ?? ?? 8B ?? ?? 89 ?? ?? 8B ?? 0B ?? ?? 74 } + $block_63 = { B8 ?? ?? ?? ?? BB ?? ?? ?? ?? 89 ?? ?? ?? 8D ?? ?? 89 ?? ?? E8 ?? ?? ?? ?? 85 ?? 0F 85 } + $block_64 = { 01 ?? 89 ?? ?? ?? ?? ?? 31 ?? 89 ?? ?? ?? ?? ?? 8B ?? ?? 8B ?? ?? ?? ?? ?? 85 ?? 0F 84 } + $block_65 = { 8D ?? ?? 89 ?? ?? ?? 8D ?? ?? 89 ?? ?? ?? 8B ?? ?? 89 ?? ?? E8 ?? ?? ?? ?? 85 ?? 0F 85 } + $block_66 = { 0F B6 ?? 0F B6 ?? ?? C1 ?? ?? 09 ?? 8D ?? ?? 8D ?? ?? 39 ?? ?? ?? ?? ?? 89 ?? ?? 0F 82 } + $block_67 = { 8B ?? ?? 89 ?? ?? ?? 89 ?? ?? ?? 8B ?? ?? 89 ?? ?? E8 ?? ?? ?? ?? 85 ?? 89 ?? ?? 0F 85 } + $block_68 = { 0F B6 ?? ?? BA ?? ?? ?? ?? 4? 89 ?? 31 ?? C6 ?? ?? ?? ?? 8D ?? ?? F7 ?? 88 ?? 04 ?? 88 } + $block_69 = { 8B ?? ?? 89 ?? ?? ?? 8B ?? ?? 89 ?? ?? ?? 89 ?? ?? E8 ?? ?? ?? ?? 85 ?? 89 ?? ?? 0F 85 } + $block_70 = { 8D ?? ?? ?? ?? ?? 89 ?? ?? ?? 89 ?? ?? ?? 89 ?? ?? E8 ?? ?? ?? ?? 85 ?? 89 ?? ?? 0F 85 } + $block_71 = { 8B ?? ?? 8B ?? ?? 8B ?? 89 ?? ?? ?? 89 ?? ?? 89 ?? ?? E8 ?? ?? ?? ?? 85 ?? 89 ?? 0F 85 } + $block_72 = { 8D ?? ?? 89 ?? ?? ?? 8D ?? ?? 89 ?? ?? ?? 8D ?? ?? 89 ?? ?? E8 ?? ?? ?? ?? 85 ?? 0F 85 } + $block_73 = { 8B ?? ?? ?? ?? ?? 8D ?? ?? 89 ?? ?? ?? 89 ?? ?? ?? 89 ?? ?? E8 ?? ?? ?? ?? 29 ?? 0F 84 } + $block_74 = { 8B ?? ?? ?? ?? ?? 01 ?? 89 ?? ?? ?? 8D ?? ?? 89 ?? ?? E8 ?? ?? ?? ?? 85 ?? 89 ?? 0F 85 } + $block_75 = { 8B ?? C7 ?? ?? ?? ?? ?? ?? 89 ?? 83 ?? ?? 8D ?? ?? 29 ?? ?? 39 ?? 89 ?? ?? 89 ?? 0F 87 } + $block_76 = { 8B ?? ?? C1 ?? ?? 0F B6 ?? ?? 4? 09 ?? 31 ?? 39 ?? 0F 97 ?? 4? F7 ?? 21 ?? 83 ?? ?? 75 } + $block_77 = { 8B ?? ?? ?? ?? ?? 3B ?? ?? ?? ?? ?? 0F 93 ?? 4? 0F B6 ?? 83 ?? ?? F7 ?? 21 ?? 39 ?? 75 } + $block_78 = { 5? B8 ?? ?? ?? ?? 89 ?? 5? 5? 5? 83 ?? ?? F6 ?? ?? ?? 8B ?? ?? 8B ?? ?? 8B ?? ?? 0F 85 } + $block_79 = { 80 B? ?? ?? ?? ?? ?? ?? 0F 95 ?? 08 ?? 0F 94 ?? 4? 0F B6 ?? 01 ?? 3B ?? ?? ?? ?? ?? 75 } + $block_80 = { 8B ?? ?? 8B ?? ?? 8B ?? ?? 89 ?? ?? ?? 89 ?? ?? ?? 89 ?? ?? E8 ?? ?? ?? ?? 85 ?? 0F 85 } + $block_81 = { 8B ?? ?? 39 ?? ?? ?? ?? ?? 8B ?? ?? 8B ?? C7 ?? ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 0F 87 } + $block_82 = { 89 ?? 89 ?? C1 ?? ?? 88 ?? ?? ?? ?? ?? 88 ?? ?? ?? ?? ?? 81 C? ?? ?? ?? ?? 39 ?? 0F 82 } + $block_83 = { 89 ?? 8B ?? ?? ?? ?? ?? 89 ?? C1 ?? ?? F6 ?? ?? FC F3 ?? 89 ?? 89 ?? ?? ?? ?? ?? 74 } + $block_84 = { 31 ?? 89 ?? ?? ?? ?? ?? 8B ?? 0F B6 ?? ?? ?? ?? ?? 80 E? ?? 88 ?? ?? ?? ?? ?? 0F 84 } + $block_85 = { 0A ?? ?? ?? 4? 88 ?? F6 ?? 08 ?? C0 ?? ?? 34 ?? 0F B6 ?? 01 ?? ?? ?? ?? ?? 39 ?? 75 } + $block_86 = { 8B ?? ?? 89 ?? ?? ?? 89 ?? ?? ?? 8D ?? ?? 89 ?? ?? E8 ?? ?? ?? ?? 85 ?? 89 ?? 0F 85 } + $block_87 = { 0F B6 ?? ?? ?? 89 ?? 0F B6 ?? 29 ?? 84 ?? 89 ?? 0F 94 ?? 39 ?? 0F 92 ?? 08 ?? 4? 74 } + $block_88 = { 8B ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 8D ?? ?? 8D ?? ?? 81 C? ?? ?? ?? ?? 39 ?? 0F 87 } + $block_89 = { 8D ?? ?? ?? ?? ?? 89 ?? ?? ?? 89 ?? ?? ?? 89 ?? ?? E8 ?? ?? ?? ?? 85 ?? 89 ?? 0F 85 } + $block_90 = { 8B ?? ?? 8B ?? ?? C7 ?? ?? ?? ?? ?? ?? 89 ?? ?? ?? E8 ?? ?? ?? ?? 85 ?? 89 ?? 0F 84 } + $block_91 = { 8D ?? ?? 89 ?? ?? ?? 8D ?? ?? 89 ?? ?? ?? 89 ?? ?? E8 ?? ?? ?? ?? 85 ?? 89 ?? 0F 85 } + $block_92 = { 5? 89 ?? 81 E? ?? ?? ?? ?? 89 ?? ?? 8B ?? ?? 89 ?? ?? 8B ?? ?? 89 ?? ?? 85 ?? 0F 84 } + $block_93 = { 5? 89 ?? 81 E? ?? ?? ?? ?? 8B ?? ?? 89 ?? ?? 89 ?? ?? 89 ?? ?? 8B ?? ?? 85 ?? 0F 84 } + $block_94 = { 8B ?? ?? 8B ?? ?? 89 ?? ?? ?? 89 ?? ?? ?? 89 ?? ?? E8 ?? ?? ?? ?? 85 ?? 89 ?? 0F 85 } + $block_95 = { 8D ?? ?? 8B ?? ?? ?? ?? ?? 89 ?? 89 ?? ?? 8B ?? ?? E8 ?? ?? ?? ?? 85 ?? 89 ?? 0F 85 } + $block_96 = { B8 ?? ?? ?? ?? 89 ?? ?? ?? 8B ?? ?? 89 ?? ?? ?? 89 ?? ?? E8 ?? ?? ?? ?? 85 ?? 0F 8F } + $block_97 = { 8B ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 8D ?? ?? 8B ?? ?? ?? ?? ?? A9 ?? ?? ?? ?? 0F 84 } + $block_98 = { 5? 89 ?? 83 ?? ?? 83 ?? ?? ?? 89 ?? ?? 89 ?? ?? 89 ?? ?? C7 ?? ?? ?? ?? ?? ?? 0F 84 } + $block_99 = { 8B ?? ?? C7 ?? ?? ?? ?? ?? ?? 89 ?? ?? E8 ?? ?? ?? ?? 85 ?? 89 ?? ?? ?? ?? ?? 0F 84 } + + condition: + hash.sha256(0, filesize) == "0e0094d9bd396a6594da8e21911a3982cd737b445f591581560d766755097d92" or + hash.sha256(0, filesize) == "51e92ba8dac0f93fc755cb98979d066234260eafc7654088c5be320f431a34fa" or + 12 of them +} + +rule VPNFilterStage3PluginTor { + meta: + Author = "Intezer Analyze" + Reference = "https://apt-ecosystem.com" + + strings: + $block_0 = { 31 ?? 83 ?? ?? ?? ?? 0F 95 ?? 83 ?? ?? F7 ?? 21 ?? 5? E8 ?? ?? ?? ?? 83 ?? ?? 8D ?? ?? 39 ?? 76 } + $block_1 = { 5? 8D ?? ?? 6A ?? 5? 8D ?? ?? 5? E8 ?? ?? ?? ?? 83 ?? ?? 39 ?? ?? ?? ?? ?? 0F 85 } + $block_2 = { 83 ?? ?? B9 ?? ?? ?? ?? FC 89 ?? ?? ?? ?? ?? 89 ?? BF ?? ?? ?? ?? F3 ?? 74 } + $block_3 = { 6B ?? ?? DB ?? ?? ?? ?? ?? D9 ?? DE ?? D9 ?? D9 ?? DD ?? DF ?? DD ?? 9E 72 } + $block_4 = { DD ?? DD ?? DD ?? D9 ?? D9 ?? ?? ?? ?? ?? D9 ?? DD ?? DF ?? DD ?? 9E 72 } + $block_5 = { 5? 68 ?? ?? ?? ?? 5? 5? E8 ?? ?? ?? ?? 83 ?? ?? 89 ?? ?? 85 ?? 0F 88 } + $block_6 = { 89 ?? BD ?? ?? ?? ?? 99 F7 ?? 4? 83 ?? ?? 4? 88 ?? 83 ?? ?? 89 ?? 7E } + $block_7 = { D9 ?? D8 ?? D9 ?? C7 ?? ?? ?? ?? ?? ?? ?? DD ?? DF ?? DD ?? 9E 0F 86 } + $block_8 = { 83 ?? ?? 8B ?? ?? ?? ?? ?? 5? E8 ?? ?? ?? ?? 83 ?? ?? 85 ?? 0F 84 } + $block_9 = { 83 ?? ?? 5? E8 ?? ?? ?? ?? 8B ?? 83 ?? ?? 83 ?? ?? 85 ?? 0F 88 } + $block_10 = { 5? 68 ?? ?? ?? ?? 6A ?? 5? E8 ?? ?? ?? ?? 83 ?? ?? 85 ?? 0F 85 } + $block_11 = { 8D ?? ?? 5? 5? 6A ?? 5? E8 ?? ?? ?? ?? 83 ?? ?? 85 ?? 0F 84 } + $block_12 = { 8D ?? ?? B9 ?? ?? ?? ?? FC 89 ?? BF ?? ?? ?? ?? F3 ?? 74 } + $block_13 = { 5? 89 ?? 5? 5? 5? 81 E? ?? ?? ?? ?? 8B ?? ?? 85 ?? 0F 84 } + $block_14 = { 6B ?? ?? DB ?? ?? ?? ?? ?? D8 ?? D9 ?? DD ?? DF ?? 9E 76 } + $block_15 = { 8D ?? ?? 5? 5? 5? 5? E8 ?? ?? ?? ?? 83 ?? ?? 4? 0F 84 } + $block_16 = { D9 ?? ?? ?? ?? ?? D8 ?? D9 ?? DD ?? DF ?? DD ?? 9E 75 } + $block_17 = { 83 ?? ?? 6A ?? E8 ?? ?? ?? ?? 83 ?? ?? 8B ?? ?? C9 C3 } + $block_18 = { 5? B8 ?? ?? ?? ?? 83 ?? ?? 83 ?? ?? ?? ?? 0F 84 } + + condition: + hash.sha256(0, filesize) == "acf32f21ec3955d6116973b3f1a85f19f237880a80cdf584e29f08bd12666999" or + hash.sha256(0, filesize) == "afd281639e26a717aead65b1886f98d6d6c258736016023b4e59de30b7348719" or + 12 of them +} + +rule VPNFilterStage3PluginPacketSniffer { + meta: + Author = "Intezer Analyze" + Reference = "https://apt-ecosystem.com" + + strings: + $block_0 = { 8B ?? ?? ?? ?? ?? 31 ?? 31 ?? 8A ?? ?? 8A ?? ?? C1 ?? ?? 09 ?? 8D ?? ?? 39 ?? ?? ?? ?? ?? 0F 85 } + $block_1 = { 83 ?? ?? 8B ?? ?? 5? 8B ?? ?? 5? 6A ?? 5? 8B ?? ?? 5? E8 ?? ?? ?? ?? 83 ?? ?? 89 ?? 85 ?? 0F 85 } + $block_2 = { 8B ?? ?? 8B ?? ?? 01 ?? 25 ?? ?? ?? ?? 89 ?? ?? 8B ?? ?? 01 ?? 89 ?? ?? 8B ?? ?? 39 ?? ?? 0F 86 } + $block_3 = { 31 ?? 83 ?? ?? ?? ?? 0F 95 ?? 83 ?? ?? F7 ?? 21 ?? 5? E8 ?? ?? ?? ?? 83 ?? ?? 8D ?? ?? 39 ?? 76 } + $block_4 = { 5? 89 ?? 5? 5? 5? 81 E? ?? ?? ?? ?? 89 ?? 8B ?? ?? 80 7? ?? ?? 8D ?? ?? 89 ?? ?? ?? ?? ?? 0F 84 } + $block_5 = { 8B ?? ?? 5? 5? 8B ?? 83 ?? ?? 5? 8B ?? ?? 83 ?? ?? 5? E8 ?? ?? ?? ?? 83 ?? ?? 89 ?? 85 ?? 0F 85 } + $block_6 = { 5? 5? 68 ?? ?? ?? ?? 6A ?? E8 ?? ?? ?? ?? BE ?? ?? ?? ?? 83 ?? ?? 89 ?? ?? ?? ?? ?? 85 ?? 0F 84 } + $block_7 = { 8B ?? ?? 5? 8D ?? ?? ?? ?? ?? 5? 5? 8B ?? 5? E8 ?? ?? ?? ?? 83 ?? ?? BA ?? ?? ?? ?? 85 ?? 0F 84 } + $block_8 = { 8D ?? ?? ?? ?? ?? 5? 5? 68 ?? ?? ?? ?? 5? E8 ?? ?? ?? ?? 83 ?? ?? 89 ?? ?? ?? ?? ?? 85 ?? 0F 84 } + $block_9 = { 05 ?? ?? ?? ?? 5? 5? 6A ?? 5? E8 ?? ?? ?? ?? 83 ?? ?? C7 ?? ?? ?? ?? ?? ?? ?? ?? ?? 85 ?? 0F 85 } + $block_10 = { 8D ?? ?? 5? 8B ?? ?? ?? ?? ?? 5? 8B ?? ?? 5? 8B ?? ?? 5? FF 9? ?? ?? ?? ?? 83 ?? ?? 85 ?? 0F 84 } + $block_11 = { 8B ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 29 ?? 8D ?? ?? 83 ?? ?? 89 ?? ?? ?? ?? ?? 83 ?? ?? 0F 86 } + $block_12 = { 8B ?? ?? 83 ?? ?? C1 ?? ?? 83 ?? ?? 89 ?? ?? 5? E8 ?? ?? ?? ?? 83 ?? ?? 89 ?? ?? 85 ?? 0F 84 } + $block_13 = { 89 ?? 89 ?? FC C1 ?? ?? 31 ?? F3 ?? 8B ?? ?? 89 ?? ?? 8D ?? ?? B8 ?? ?? ?? ?? 5? 5? 5? 5? C3 } + $block_14 = { 8B ?? ?? 8D ?? ?? 5? 8B ?? ?? 5? 8B ?? ?? 5? 5? E8 ?? ?? ?? ?? 8B ?? ?? 83 ?? ?? 85 ?? 0F 84 } + $block_15 = { 8D ?? ?? 29 ?? 89 ?? ?? 5? 5? 5? 6A ?? E8 ?? ?? ?? ?? 83 ?? ?? 89 ?? ?? 85 ?? 89 ?? ?? 0F 84 } + $block_16 = { 8B ?? ?? 5? 4? 5? 89 ?? ?? ?? ?? ?? 5? 8B ?? ?? 5? E8 ?? ?? ?? ?? 83 ?? ?? 89 ?? 85 ?? 0F 84 } + $block_17 = { 8B ?? ?? FC 8B ?? ?? 8D ?? ?? ?? ?? ?? 89 ?? 89 ?? C1 ?? ?? 8D ?? ?? F3 ?? F6 ?? ?? 89 ?? 74 } + $block_18 = { B8 ?? ?? ?? ?? BF ?? ?? ?? ?? 89 ?? 8B ?? ?? F3 ?? 0F 97 ?? 0F 92 ?? BF ?? ?? ?? ?? 38 ?? 74 } + $block_19 = { 5? 89 ?? 5? 5? 5? 83 ?? ?? 8B ?? ?? 8B ?? ?? 8B ?? ?? 8B ?? ?? 83 ?? ?? C1 ?? ?? 85 ?? 0F 84 } + $block_20 = { 8B ?? ?? C6 ?? ?? 5? 8B ?? ?? 5? 89 ?? 4? 5? 8B ?? ?? 5? E8 ?? ?? ?? ?? 83 ?? ?? 85 ?? 0F 85 } + $block_21 = { B8 ?? ?? ?? ?? BF ?? ?? ?? ?? 89 ?? 8B ?? ?? F3 ?? 0F 97 ?? 0F 92 ?? BF ?? ?? ?? ?? 38 ?? 75 } + $block_22 = { 8B ?? ?? ?? ?? ?? 09 ?? 89 ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 83 ?? ?? 3B ?? ?? ?? ?? ?? 0F 87 } + $block_23 = { 5? 89 ?? 5? 5? 5? 83 ?? ?? 89 ?? ?? 8B ?? ?? 89 ?? ?? 89 ?? C7 ?? ?? ?? ?? ?? ?? 85 ?? 0F 85 } + $block_24 = { 5? 89 ?? 5? 5? 5? 83 ?? ?? 8B ?? ?? 89 ?? ?? 8B ?? ?? 8B ?? 8B ?? ?? 8D ?? ?? 83 ?? ?? 0F 86 } + $block_25 = { 8D ?? ?? ?? 89 ?? 31 ?? F7 ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 80 B? ?? ?? ?? ?? ?? 0F 84 } + $block_26 = { 8D ?? ?? 5? E8 ?? ?? ?? ?? 5? 5? 8B ?? ?? 5? E8 ?? ?? ?? ?? 83 ?? ?? 89 ?? 83 ?? ?? ?? 0F 84 } + $block_27 = { 8B ?? ?? 83 ?? ?? 8B ?? ?? C1 ?? ?? 5? E8 ?? ?? ?? ?? 8B ?? ?? 83 ?? ?? 85 ?? 89 ?? ?? 0F 84 } + $block_28 = { 88 ?? 8B ?? ?? ?? ?? ?? 83 ?? ?? 89 ?? ?? 80 F? ?? 19 ?? 83 ?? ?? 83 ?? ?? 3B ?? ?? 0F 85 } + $block_29 = { 8B ?? ?? ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? 8B ?? ?? C7 ?? ?? ?? ?? ?? ?? 8B ?? ?? 85 ?? 0F 84 } + $block_30 = { 8B ?? ?? 8B ?? ?? ?? ?? ?? 8D ?? ?? 8B ?? ?? 8B ?? ?? 89 ?? ?? ?? ?? ?? 8B ?? 85 ?? 0F 84 } + $block_31 = { 83 ?? ?? 8B ?? ?? 5? E8 ?? ?? ?? ?? 8B ?? ?? 83 ?? ?? 89 ?? ?? F6 ?? ?? ?? ?? ?? ?? 0F 84 } + $block_32 = { 8B ?? ?? 8B ?? ?? 83 ?? ?? 8B ?? ?? 5? 5? 5? 5? E8 ?? ?? ?? ?? 83 ?? ?? 89 ?? 85 ?? 0F 85 } + $block_33 = { 8B ?? ?? 8B ?? ?? FC 89 ?? ?? 89 ?? ?? BA ?? ?? ?? ?? B8 ?? ?? ?? ?? 89 ?? 89 ?? F3 ?? 75 } + $block_34 = { 8D ?? ?? 8B ?? ?? ?? ?? ?? 31 ?? 8A ?? ?? 88 ?? 8D ?? ?? 8D ?? ?? 39 ?? ?? ?? ?? ?? 0F 82 } + $block_35 = { 5? 89 ?? 5? 5? 5? 83 ?? ?? 8B ?? ?? 6A ?? 5? E8 ?? ?? ?? ?? 83 ?? ?? 89 ?? ?? 85 ?? 0F 85 } + $block_36 = { 8B ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 05 ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 8B ?? ?? 39 ?? 0F 82 } + $block_37 = { 66 ?? ?? ?? 89 ?? 8B ?? ?? 25 ?? ?? ?? ?? 83 ?? ?? 01 ?? 89 ?? ?? 8B ?? ?? 66 ?? ?? 0F 84 } + $block_38 = { 8B ?? ?? ?? ?? ?? 8D ?? ?? ?? ?? ?? 5? 5? 5? 5? E8 ?? ?? ?? ?? 83 ?? ?? 89 ?? 85 ?? 0F 85 } + $block_39 = { 8B ?? ?? 89 ?? 85 ?? 0F 94 ?? 25 ?? ?? ?? ?? 31 ?? 5? 89 ?? E8 ?? ?? ?? ?? 5? 85 ?? 0F 84 } + $block_40 = { 8B ?? ?? 8D ?? ?? 5? 83 ?? ?? 8B ?? ?? 5? 5? 5? E8 ?? ?? ?? ?? 83 ?? ?? 89 ?? 85 ?? 0F 84 } + $block_41 = { 83 ?? ?? 8B ?? ?? 5? 5? 5? 8B ?? ?? 83 ?? ?? 5? E8 ?? ?? ?? ?? 83 ?? ?? 89 ?? 85 ?? 0F 85 } + $block_42 = { 66 ?? ?? ?? 31 ?? ?? F9 9B 4? 6A ?? C1 ?? ?? ?? ?? ?? ?? A2 ?? ?? ?? ?? 28 ?? ?? EF 77 } + $block_43 = { 83 ?? ?? 8B ?? ?? 68 ?? ?? ?? ?? E8 ?? ?? ?? ?? 83 ?? ?? 89 ?? ?? ?? ?? ?? 85 ?? 0F 84 } + $block_44 = { 8B ?? ?? 5? 5? 68 ?? ?? ?? ?? 5? E8 ?? ?? ?? ?? 83 ?? ?? 89 ?? ?? ?? ?? ?? 85 ?? 0F 84 } + $block_45 = { 5? 6A ?? 6A ?? 5? E8 ?? ?? ?? ?? 89 ?? ?? E8 ?? ?? ?? ?? 83 ?? ?? 89 ?? 83 ?? ?? 0F 84 } + $block_46 = { 8B ?? ?? 8B ?? ?? 01 ?? 5? 8B ?? ?? 5? 5? 5? E8 ?? ?? ?? ?? 8B ?? 83 ?? ?? 39 ?? 0F 84 } + $block_47 = { 8B ?? 8B ?? ?? 01 ?? 89 ?? 3B ?? ?? 0F 92 ?? 25 ?? ?? ?? ?? 83 ?? ?? 89 ?? ?? 85 ?? 75 } + $block_48 = { 83 ?? ?? 5? E8 ?? ?? ?? ?? 8B ?? 5? 5? 5? 5? E8 ?? ?? ?? ?? 83 ?? ?? 89 ?? 85 ?? 0F 85 } + $block_49 = { 83 ?? ?? 8D ?? ?? 8D ?? ?? 5? 5? 6A ?? 5? 5? E8 ?? ?? ?? ?? 83 ?? ?? 89 ?? 85 ?? 0F 85 } + $block_50 = { 5? 5? 68 ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 8B ?? ?? 5? E8 ?? ?? ?? ?? 83 ?? ?? 85 ?? 0F 84 } + $block_51 = { 8B ?? ?? 89 ?? 03 ?? ?? 0F B7 ?? ?? 01 ?? 89 ?? ?? 8B ?? ?? 89 ?? ?? 8B ?? 0B ?? ?? 74 } + $block_52 = { 8A ?? ?? ?? ?? ?? 88 ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 83 ?? ?? 89 ?? ?? ?? ?? ?? 0F 84 } + $block_53 = { FC 31 ?? B9 ?? ?? ?? ?? 89 ?? F3 ?? 8B ?? ?? FF 5? ?? BA ?? ?? ?? ?? 89 ?? ?? 85 ?? 74 } + $block_54 = { 5? 5? 8B ?? 5? 8B ?? ?? ?? ?? ?? 83 ?? ?? 5? E8 ?? ?? ?? ?? 83 ?? ?? 89 ?? 85 ?? 0F 85 } + $block_55 = { 83 ?? ?? BB ?? ?? ?? ?? 5? E8 ?? ?? ?? ?? 8B ?? 83 ?? ?? 89 ?? ?? 8B ?? 85 ?? 0F 85 } + $block_56 = { 83 ?? ?? 8B ?? ?? ?? ?? ?? 5? E8 ?? ?? ?? ?? E8 ?? ?? ?? ?? 83 ?? ?? 83 ?? ?? 0F 84 } + $block_57 = { 8A ?? ?? ?? 31 ?? 88 ?? 89 ?? 29 ?? 84 ?? 89 ?? 0F 94 ?? 39 ?? 0F 92 ?? 09 ?? 4? 74 } + $block_58 = { 5? 5? 6A ?? 8B ?? ?? 8B ?? ?? 05 ?? ?? ?? ?? 5? E8 ?? ?? ?? ?? 83 ?? ?? 85 ?? 0F 84 } + $block_59 = { 8B ?? ?? 8B ?? 5? 8B ?? ?? 83 ?? ?? 5? 5? 8B ?? ?? 5? FF 5? ?? 83 ?? ?? 85 ?? 0F 85 } + $block_60 = { 8B ?? ?? 83 ?? ?? C7 ?? ?? ?? ?? ?? ?? 5? E8 ?? ?? ?? ?? 83 ?? ?? 89 ?? 85 ?? 0F 84 } + $block_61 = { 8B ?? ?? ?? ?? ?? 5? 8D ?? ?? 5? 6A ?? 5? E8 ?? ?? ?? ?? 83 ?? ?? 89 ?? 85 ?? 0F 88 } + $block_62 = { 8D ?? ?? 8D ?? ?? 5? 8D ?? ?? 5? 8D ?? ?? 5? 5? E8 ?? ?? ?? ?? 83 ?? ?? 85 ?? 0F 85 } + $block_63 = { 5? 5? 8B ?? ?? ?? ?? ?? 5? 8B ?? ?? ?? ?? ?? 5? E8 ?? ?? ?? ?? 83 ?? ?? 85 ?? 0F 85 } + $block_64 = { 8B ?? ?? B9 ?? ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? ?? ?? ?? 8B ?? ?? 8B ?? ?? 85 ?? 0F 84 } + $block_65 = { 8B ?? 83 ?? ?? 89 ?? 8D ?? ?? 6A ?? 5? 5? E8 ?? ?? ?? ?? 83 ?? ?? 89 ?? 85 ?? 0F 85 } + $block_66 = { 8B ?? ?? 8B ?? ?? 8B ?? ?? 5? 5? 5? 5? E8 ?? ?? ?? ?? 83 ?? ?? 89 ?? ?? 85 ?? 0F 85 } + $block_67 = { 8B ?? ?? ?? ?? ?? 8D ?? ?? 5? 6A ?? 5? 5? E8 ?? ?? ?? ?? 83 ?? ?? 89 ?? 85 ?? 0F 85 } + $block_68 = { 8B ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 81 C? ?? ?? ?? ?? 8D ?? ?? 8D ?? ?? 39 ?? 0F 87 } + $block_69 = { 8B ?? ?? 8B ?? ?? 5? 5? 5? 8B ?? ?? 5? E8 ?? ?? ?? ?? 83 ?? ?? 89 ?? ?? 85 ?? 0F 85 } + $block_70 = { 0F B6 ?? 5? 8D ?? ?? 5? 5? 5? E8 ?? ?? ?? ?? 83 ?? ?? 85 ?? 8D ?? ?? ?? ?? ?? 74 } + $block_71 = { 8B ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 4? 01 ?? 89 ?? ?? ?? ?? ?? 83 ?? ?? ?? 0F 8E } + $block_72 = { 89 ?? 31 ?? 8A ?? 31 ?? C1 ?? ?? 8A ?? ?? 09 ?? 8D ?? ?? 39 ?? ?? ?? ?? ?? 0F 82 } + $block_73 = { 80 B? ?? ?? ?? ?? ?? ?? 0F 95 ?? 08 ?? 0F 94 ?? 25 ?? ?? ?? ?? 4? 01 ?? 39 ?? 75 } + $block_74 = { 8B ?? ?? 8D ?? ?? 83 ?? ?? 5? 5? 5? 5? E8 ?? ?? ?? ?? 83 ?? ?? 89 ?? 85 ?? 0F 85 } + $block_75 = { 8D ?? ?? 8B ?? ?? ?? ?? ?? 5? 89 ?? 8B ?? ?? E8 ?? ?? ?? ?? 89 ?? 5? 85 ?? 0F 85 } + $block_76 = { 8B ?? ?? 89 ?? 89 ?? C1 ?? ?? 83 ?? ?? 0F A3 ?? ?? ?? ?? ?? ?? 0F 92 ?? 84 ?? 74 } + $block_77 = { 8D ?? ?? B9 ?? ?? ?? ?? 89 ?? ?? 31 ?? FC 8B ?? ?? F3 ?? 8B ?? ?? 3B ?? ?? 0F 8F } + $block_78 = { 05 ?? ?? ?? ?? 5? 5? 6A ?? 5? E8 ?? ?? ?? ?? 83 ?? ?? B9 ?? ?? ?? ?? 85 ?? 0F 84 } + $block_79 = { 8B ?? ?? ?? ?? ?? 4? 89 ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 39 ?? ?? ?? ?? ?? 0F 85 } + $block_80 = { 5? 5? 68 ?? ?? ?? ?? A1 ?? ?? ?? ?? 5? E8 ?? ?? ?? ?? 83 ?? ?? 89 ?? 85 ?? 0F 84 } + $block_81 = { 5? 89 ?? 5? 5? 5? 83 ?? ?? 8B ?? ?? 8B ?? ?? 8B ?? 8B ?? 89 ?? 0F AF ?? 85 ?? 7E } + $block_82 = { 5? 89 ?? 5? 5? 5? 83 ?? ?? 8B ?? ?? 8B ?? ?? 8B ?? 8B ?? 89 ?? 0F AF ?? 85 ?? 78 } + $block_83 = { 5? 5? 68 ?? ?? ?? ?? 6A ?? E8 ?? ?? ?? ?? 83 ?? ?? 89 ?? ?? ?? ?? ?? 85 ?? 0F 84 } + $block_84 = { 5? 89 ?? 5? 5? 5? 83 ?? ?? 8B ?? ?? 8B ?? ?? 89 ?? C1 ?? ?? 8B ?? ?? 39 ?? 0F 87 } + $block_85 = { 66 ?? ?? ?? 8D ?? ?? 89 ?? 81 E? ?? ?? ?? ?? FC 89 ?? C1 ?? ?? F3 ?? F6 ?? ?? 74 } + $block_86 = { 5? 5? 68 ?? ?? ?? ?? 6A ?? E8 ?? ?? ?? ?? 8B ?? ?? 83 ?? ?? 85 ?? 89 ?? ?? 0F 85 } + $block_87 = { 8B ?? ?? ?? ?? ?? 8D ?? ?? 5? 5? 5? 5? E8 ?? ?? ?? ?? 83 ?? ?? 89 ?? 85 ?? 0F 85 } + $block_88 = { 05 ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 5? 5? 5? 5? E8 ?? ?? ?? ?? 83 ?? ?? 85 ?? 0F 84 } + $block_89 = { 66 ?? ?? ?? 8D ?? ?? 89 ?? 81 E? ?? ?? ?? ?? FC 89 ?? C1 ?? ?? F3 ?? F6 ?? ?? 75 } + $block_90 = { 83 ?? ?? 5? E8 ?? ?? ?? ?? 89 ?? 89 ?? ?? E8 ?? ?? ?? ?? 83 ?? ?? 85 ?? 0F 88 } + $block_91 = { 31 ?? 8D ?? ?? ?? ?? ?? ?? 8A ?? ?? 4? D3 ?? 8B ?? 09 ?? 89 ?? 39 ?? ?? 0F 86 } + $block_92 = { 31 ?? 8A ?? 89 ?? 8D ?? ?? 6A ?? 5? 5? 5? E8 ?? ?? ?? ?? 83 ?? ?? 85 ?? 0F 85 } + $block_93 = { 8B ?? ?? 66 ?? ?? ?? 89 ?? 81 E? ?? ?? ?? ?? E8 ?? ?? ?? ?? 89 ?? 85 ?? 0F 84 } + $block_94 = { 5? 89 ?? 5? 5? 5? 81 E? ?? ?? ?? ?? 8B ?? ?? 8B ?? ?? 8B ?? ?? 83 ?? ?? 0F 84 } + $block_95 = { 5? 6A ?? 5? 8D ?? ?? 5? E8 ?? ?? ?? ?? 83 ?? ?? 89 ?? ?? ?? ?? ?? 85 ?? 0F 85 } + $block_96 = { 8B ?? ?? 8D ?? ?? 89 ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 39 ?? ?? ?? ?? ?? 0F 87 } + $block_97 = { 8D ?? ?? 31 ?? 8A ?? ?? 8A ?? ?? C1 ?? ?? 25 ?? ?? ?? ?? 09 ?? 83 ?? ?? 0F 86 } + $block_98 = { E8 ?? ?? ?? ?? 83 ?? ?? 0F 95 ?? 31 ?? 88 ?? 4? 81 E? ?? ?? ?? ?? 83 ?? ?? E9 } + $block_99 = { 5? 6A ?? 6A ?? 5? E8 ?? ?? ?? ?? 83 ?? ?? 89 ?? BA ?? ?? ?? ?? 83 ?? ?? 0F 84 } + + condition: + hash.sha256(0, filesize) == "3df17f01c4850b96b00e90c880fdfabbd11c64a8707d24488485dd12fae8ec85" or + 12 of them +} + +rule VPNFilterStage2 { + meta: + Author = "Intezer Analyze" + Reference = "https://apt-ecosystem.com" + + strings: + $block_0 = { 8B ?? ?? 89 ?? ?? ?? 8D ?? ?? 89 ?? ?? ?? 89 ?? ?? E8 ?? ?? ?? ?? 85 ?? 89 ?? ?? ?? ?? ?? 0F 85 } + $block_1 = { 8B ?? ?? 8B ?? ?? 8B ?? ?? 8B ?? ?? 89 ?? ?? ?? ?? ?? 31 ?? 83 ?? ?? ?? 89 ?? ?? ?? ?? ?? 0F 84 } + $block_2 = { 8B ?? ?? 8B ?? 8B ?? ?? 83 ?? ?? 89 ?? ?? ?? 89 ?? ?? ?? 8B ?? ?? 89 ?? ?? FF 5? ?? 85 ?? 0F 85 } + $block_3 = { 8B ?? ?? ?? ?? ?? 8B ?? 89 ?? ?? 8B ?? ?? 89 ?? ?? 8B ?? ?? 89 ?? ?? 0F B7 ?? ?? 66 ?? ?? ?? 75 } + $block_4 = { B8 ?? ?? ?? ?? 8D ?? ?? 89 ?? ?? ?? 89 ?? ?? ?? 89 ?? ?? ?? 89 ?? ?? E8 ?? ?? ?? ?? 85 ?? 0F 85 } + $block_5 = { 8B ?? ?? 31 ?? 89 ?? ?? ?? 89 ?? ?? 89 ?? ?? ?? 8B ?? ?? 89 ?? ?? ?? E8 ?? ?? ?? ?? 85 ?? 0F 85 } + $block_6 = { 8B ?? ?? 8B ?? ?? 83 ?? ?? 89 ?? BE ?? ?? ?? ?? 89 ?? ?? ?? 89 ?? ?? E8 ?? ?? ?? ?? 85 ?? 0F 84 } + $block_7 = { FF 8? ?? ?? ?? ?? A1 ?? ?? ?? ?? 83 ?? ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 39 ?? ?? ?? ?? ?? 0F 8F } + $block_8 = { 8B ?? ?? 89 ?? 8B ?? ?? 8B ?? ?? 89 ?? ?? ?? 8B ?? ?? 89 ?? ?? E8 ?? ?? ?? ?? 85 ?? 89 ?? 0F 85 } + $block_9 = { 8B ?? ?? 89 ?? ?? ?? 8B ?? ?? 89 ?? ?? ?? 8D ?? ?? ?? ?? ?? 89 ?? ?? E8 ?? ?? ?? ?? 85 ?? 0F 85 } + $block_10 = { 8B ?? ?? 8B ?? ?? 8B ?? ?? 89 ?? ?? ?? 89 ?? ?? ?? 89 ?? ?? E8 ?? ?? ?? ?? 85 ?? 89 ?? ?? 0F 85 } + $block_11 = { 89 ?? C1 ?? ?? F6 ?? ?? 0F 95 ?? 0F B6 ?? 01 ?? 89 ?? ?? ?? 89 ?? ?? E8 ?? ?? ?? ?? 85 ?? 0F 84 } + $block_12 = { B1 ?? 89 ?? 8B ?? ?? ?? F6 ?? BA ?? ?? ?? ?? 89 ?? 31 ?? 0F B6 ?? F7 ?? 8D ?? ?? 88 ?? 04 ?? 88 } + $block_13 = { D0 ?? ?? ?? ?? ?? 0F B6 ?? ?? ?? ?? ?? 0F B6 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? D3 ?? 85 ?? 0F 85 } + $block_14 = { 5? 89 ?? 5? 5? 5? 83 ?? ?? 8B ?? ?? 89 ?? ?? 8B ?? ?? 8B ?? 8B ?? ?? 8D ?? ?? 83 ?? ?? 0F 86 } + $block_15 = { 5? 89 ?? 5? 5? 5? 83 ?? ?? 8B ?? ?? 8B ?? ?? 8B ?? ?? 8B ?? ?? 83 ?? ?? C1 ?? ?? 85 ?? 0F 84 } + $block_16 = { 89 ?? BA ?? ?? ?? ?? FC C1 ?? ?? F3 ?? 8D ?? ?? 89 ?? ?? ?? 89 ?? ?? E8 ?? ?? ?? ?? 85 ?? 75 } + $block_17 = { 5? 89 ?? 5? 89 ?? 5? 5? 83 ?? ?? 8B ?? ?? 89 ?? ?? 89 ?? ?? C7 ?? ?? ?? ?? ?? ?? 85 ?? 0F 85 } + $block_18 = { 8B ?? ?? B8 ?? ?? ?? ?? BF ?? ?? ?? ?? 89 ?? F3 ?? BF ?? ?? ?? ?? 0F 97 ?? 0F 92 ?? 38 ?? 74 } + $block_19 = { 8B ?? ?? B8 ?? ?? ?? ?? BF ?? ?? ?? ?? 89 ?? F3 ?? BF ?? ?? ?? ?? 0F 97 ?? 0F 92 ?? 38 ?? 75 } + $block_20 = { 8B ?? ?? 8D ?? ?? 89 ?? ?? ?? 83 ?? ?? 89 ?? ?? ?? 89 ?? ?? E8 ?? ?? ?? ?? 85 ?? 89 ?? 0F 85 } + $block_21 = { 8B ?? ?? 8D ?? ?? 8D ?? ?? 89 ?? ?? ?? 89 ?? ?? 89 ?? ?? ?? E8 ?? ?? ?? ?? 85 ?? 89 ?? 0F 85 } + $block_22 = { 68 ?? ?? ?? ?? 8D ?? ?? ?? 5? 8D ?? ?? ?? ?? ?? ?? 5? 5? E8 ?? ?? ?? ?? 83 ?? ?? 85 ?? 0F 85 } + $block_23 = { 8B ?? ?? 8B ?? ?? 4? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? 89 ?? ?? E8 ?? ?? ?? ?? 85 ?? 89 ?? 0F 84 } + $block_24 = { B9 ?? ?? ?? ?? 89 ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? E8 ?? ?? ?? ?? 85 ?? 89 ?? ?? ?? ?? ?? 0F 84 } + $block_25 = { 8D ?? ?? ?? 89 ?? 31 ?? F7 ?? 80 B? ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 0F 84 } + $block_26 = { 8B ?? ?? ?? ?? ?? 8D ?? ?? 89 ?? ?? ?? 89 ?? ?? 89 ?? ?? ?? E8 ?? ?? ?? ?? 85 ?? 89 ?? 0F 85 } + $block_27 = { 8D ?? ?? 89 ?? ?? ?? 8D ?? ?? 8B ?? ?? 89 ?? ?? 89 ?? ?? ?? E8 ?? ?? ?? ?? 85 ?? 89 ?? 0F 85 } + $block_28 = { 8D ?? ?? 89 ?? ?? ?? 8D ?? ?? 89 ?? ?? ?? 8D ?? ?? 89 ?? ?? E8 ?? ?? ?? ?? 85 ?? 89 ?? 0F 85 } + $block_29 = { 8B ?? ?? 8D ?? ?? B9 ?? ?? ?? ?? C1 ?? ?? BE ?? ?? ?? ?? 01 ?? 89 ?? ?? 0F B6 ?? 8B ?? ?? 29 } + $block_30 = { BF ?? ?? ?? ?? 89 ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? E8 ?? ?? ?? ?? 8B ?? ?? 85 ?? 89 ?? ?? 0F 84 } + $block_31 = { C7 ?? ?? ?? ?? ?? ?? 29 ?? ?? 89 ?? ?? 8B ?? ?? 89 ?? ?? ?? E8 ?? ?? ?? ?? 85 ?? 89 ?? 0F 85 } + $block_32 = { B9 ?? ?? ?? ?? 05 ?? ?? ?? ?? 89 ?? ?? ?? 89 ?? ?? E8 ?? ?? ?? ?? B9 ?? ?? ?? ?? 85 ?? 0F 84 } + $block_33 = { 89 ?? B3 ?? F6 ?? BA ?? ?? ?? ?? 89 ?? 31 ?? 0F B6 ?? F7 ?? 88 ?? 04 ?? 3C ?? 88 ?? ?? ?? 74 } + $block_34 = { 8B ?? ?? 8D ?? ?? 8B ?? ?? 89 ?? ?? ?? 89 ?? ?? 01 ?? 89 ?? ?? ?? E8 ?? ?? ?? ?? 85 ?? 0F 85 } + $block_35 = { 8D ?? ?? 89 ?? ?? ?? 8D ?? ?? 8D ?? ?? 89 ?? ?? ?? 89 ?? ?? E8 ?? ?? ?? ?? 85 ?? 89 ?? 0F 85 } + $block_36 = { 8B ?? ?? 8D ?? ?? 89 ?? ?? ?? 8D ?? ?? 89 ?? ?? 89 ?? ?? ?? E8 ?? ?? ?? ?? 85 ?? 89 ?? 0F 84 } + $block_37 = { 8D ?? ?? 89 ?? ?? ?? 8B ?? ?? 89 ?? ?? ?? 83 ?? ?? 89 ?? ?? E8 ?? ?? ?? ?? 85 ?? 89 ?? 0F 85 } + $block_38 = { 8B ?? ?? 0F B6 ?? 01 ?? 4? 0F B6 ?? 83 ?? ?? 30 ?? 88 ?? 88 ?? FF 4? ?? 8B ?? ?? 39 ?? ?? 74 } + $block_39 = { 0F B6 ?? ?? ?? ?? ?? 4? 8B ?? ?? ?? ?? ?? FE ?? ?? ?? ?? ?? 83 ?? ?? 89 ?? ?? ?? ?? ?? ?? 75 } + $block_40 = { 8B ?? ?? 8D ?? ?? 8B ?? ?? 89 ?? ?? 89 ?? ?? ?? 89 ?? ?? ?? E8 ?? ?? ?? ?? 85 ?? 89 ?? 0F 85 } + $block_41 = { B9 ?? ?? ?? ?? 89 ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? E8 ?? ?? ?? ?? 8B ?? ?? 85 ?? 89 ?? ?? 0F 85 } + $block_42 = { 8B ?? ?? 8D ?? ?? 89 ?? ?? ?? 89 ?? ?? ?? 83 ?? ?? 89 ?? ?? E8 ?? ?? ?? ?? 85 ?? 89 ?? 0F 85 } + $block_43 = { 0F B6 ?? ?? ?? ?? ?? 88 ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 83 ?? ?? 89 ?? ?? ?? ?? ?? 0F 84 } + $block_44 = { 8B ?? 8D ?? ?? 89 ?? ?? ?? 83 ?? ?? 89 ?? ?? ?? 89 ?? ?? E8 ?? ?? ?? ?? 85 ?? 89 ?? 0F 85 } + $block_45 = { 8B ?? ?? ?? ?? ?? 8D ?? ?? ?? ?? ?? 89 ?? ?? 89 ?? ?? ?? E8 ?? ?? ?? ?? 85 ?? 89 ?? 0F 85 } + $block_46 = { B8 ?? ?? ?? ?? 89 ?? ?? ?? 8D ?? ?? 89 ?? ?? ?? 89 ?? ?? E8 ?? ?? ?? ?? 85 ?? 89 ?? 0F 85 } + $block_47 = { 8D ?? ?? 89 ?? ?? E8 ?? ?? ?? ?? 8B ?? ?? 89 ?? ?? E8 ?? ?? ?? ?? 83 ?? ?? ?? 89 ?? 0F 84 } + $block_48 = { 89 ?? 31 ?? FC C1 ?? ?? F3 ?? 89 ?? C1 ?? ?? 31 ?? 8B ?? ?? 89 ?? 29 ?? 83 ?? ?? 89 ?? EB } + $block_49 = { 89 ?? 31 ?? FC C1 ?? ?? F3 ?? 8D ?? ?? ?? ?? ?? ?? 83 ?? ?? 8B ?? ?? 8B ?? ?? 8B ?? ?? 76 } + $block_50 = { 8B ?? ?? C7 ?? ?? ?? ?? ?? ?? 89 ?? ?? ?? E8 ?? ?? ?? ?? BA ?? ?? ?? ?? 85 ?? 89 ?? 0F 84 } + $block_51 = { 8B ?? ?? 8D ?? ?? 8B ?? ?? ?? ?? ?? 8B ?? ?? 8B ?? ?? 89 ?? ?? ?? ?? ?? 8B ?? 85 ?? 0F 84 } + $block_52 = { 8B ?? ?? ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? 89 ?? ?? ?? E8 ?? ?? ?? ?? 85 ?? 89 ?? 89 ?? 0F 84 } + $block_53 = { 8D ?? ?? BA ?? ?? ?? ?? 89 ?? ?? ?? 89 ?? ?? ?? 89 ?? ?? E8 ?? ?? ?? ?? 85 ?? 89 ?? 0F 85 } + $block_54 = { 8B ?? ?? 89 ?? ?? 89 ?? ?? 01 ?? 89 ?? ?? 8D ?? ?? 89 ?? ?? ?? E8 ?? ?? ?? ?? 85 ?? 0F 85 } + $block_55 = { 8B ?? 83 ?? ?? 89 ?? ?? ?? 8D ?? ?? 89 ?? ?? ?? 89 ?? ?? E8 ?? ?? ?? ?? 85 ?? 89 ?? 0F 85 } + $block_56 = { 8D ?? ?? BB ?? ?? ?? ?? 89 ?? ?? ?? 89 ?? ?? ?? 89 ?? ?? E8 ?? ?? ?? ?? 85 ?? 89 ?? 0F 85 } + $block_57 = { 8B ?? ?? 8D ?? ?? 0F B6 ?? 4? 83 ?? ?? 32 ?? 88 ?? 88 ?? FF 4? ?? 8B ?? ?? 39 ?? ?? 0F 84 } + $block_58 = { C7 ?? ?? ?? ?? ?? ?? 8D ?? ?? ?? ?? ?? 8B ?? ?? 8D ?? ?? E8 ?? ?? ?? ?? 85 ?? 89 ?? 0F 85 } + $block_59 = { 8B ?? ?? 89 ?? 03 ?? ?? 0F B7 ?? ?? 01 ?? 89 ?? ?? 8B ?? ?? 89 ?? ?? 8B ?? 0B ?? ?? 74 } + $block_60 = { 66 ?? ?? ?? 31 ?? ?? F9 9B 4? 6A ?? C1 ?? ?? ?? ?? ?? ?? A2 ?? ?? ?? ?? 28 ?? ?? EF 77 } + $block_61 = { E8 ?? ?? ?? ?? 4? C7 ?? ?? ?? ?? ?? ?? E8 ?? ?? ?? ?? 0F B7 ?? ?? ?? ?? ?? 39 ?? 0F 8F } + $block_62 = { 8B ?? ?? B8 ?? ?? ?? ?? 89 ?? ?? ?? 83 ?? ?? 89 ?? ?? E8 ?? ?? ?? ?? 85 ?? 89 ?? 0F 85 } + $block_63 = { 8B ?? ?? ?? ?? ?? 01 ?? 89 ?? ?? ?? 8D ?? ?? 89 ?? ?? E8 ?? ?? ?? ?? 85 ?? 89 ?? 0F 85 } + $block_64 = { 8B ?? ?? 8B ?? ?? 89 ?? ?? ?? 8B ?? 83 ?? ?? 89 ?? ?? E8 ?? ?? ?? ?? 85 ?? 89 ?? 0F 85 } + $block_65 = { 8D ?? ?? BB ?? ?? ?? ?? 89 ?? ?? ?? 89 ?? ?? 89 ?? ?? E8 ?? ?? ?? ?? 85 ?? 89 ?? 0F 85 } + $block_66 = { B8 ?? ?? ?? ?? BB ?? ?? ?? ?? 89 ?? ?? ?? 8D ?? ?? 89 ?? ?? E8 ?? ?? ?? ?? 85 ?? 0F 85 } + $block_67 = { 80 F? ?? 0F B6 ?? 0F B6 ?? ?? 19 ?? C1 ?? ?? 83 ?? ?? 09 ?? 8D ?? ?? ?? 39 ?? ?? 0F 85 } + $block_68 = { 8B ?? ?? ?? ?? ?? 8D ?? ?? 89 ?? ?? ?? 89 ?? ?? ?? 89 ?? ?? E8 ?? ?? ?? ?? 29 ?? 0F 84 } + $block_69 = { 8B ?? ?? BA ?? ?? ?? ?? B9 ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 8B ?? ?? 8B ?? ?? 85 ?? 0F 84 } + $block_70 = { 8B ?? ?? 89 ?? ?? ?? 8B ?? ?? 89 ?? ?? ?? 8D ?? ?? 89 ?? ?? E8 ?? ?? ?? ?? 85 ?? 0F 85 } + $block_71 = { FC 31 ?? B9 ?? ?? ?? ?? 89 ?? F3 ?? 8B ?? ?? FF 5? ?? BA ?? ?? ?? ?? 85 ?? 89 ?? ?? 74 } + $block_72 = { 8B ?? C7 ?? ?? ?? ?? ?? ?? 89 ?? 83 ?? ?? 8D ?? ?? 29 ?? ?? 39 ?? 89 ?? ?? 89 ?? 0F 87 } + $block_73 = { 8D ?? ?? BB ?? ?? ?? ?? 89 ?? ?? ?? 89 ?? ?? ?? 89 ?? ?? E8 ?? ?? ?? ?? 3B ?? ?? 0F 87 } + $block_74 = { 0F B6 ?? ?? BA ?? ?? ?? ?? 4? 89 ?? 31 ?? C6 ?? ?? ?? ?? 8D ?? ?? F7 ?? 88 ?? 04 ?? 88 } + $block_75 = { 8D ?? ?? 89 ?? ?? ?? 8D ?? ?? 89 ?? ?? ?? 8B ?? ?? 89 ?? ?? E8 ?? ?? ?? ?? 85 ?? 0F 85 } + $block_76 = { 8B ?? ?? 8B ?? ?? 8B ?? 89 ?? ?? ?? 89 ?? ?? 89 ?? ?? E8 ?? ?? ?? ?? 85 ?? 89 ?? 0F 85 } + $block_77 = { 89 ?? ?? ?? B8 ?? ?? ?? ?? 89 ?? ?? ?? 89 ?? ?? ?? 89 ?? ?? E8 ?? ?? ?? ?? 85 ?? 0F 88 } + $block_78 = { 5? B8 ?? ?? ?? ?? 89 ?? 5? 5? 5? 83 ?? ?? F6 ?? ?? ?? 8B ?? ?? 8B ?? ?? 8B ?? ?? 0F 85 } + $block_79 = { 8D ?? ?? ?? ?? ?? 89 ?? ?? ?? 89 ?? ?? ?? 89 ?? ?? E8 ?? ?? ?? ?? 85 ?? 89 ?? 0F 85 } + $block_80 = { 0A ?? ?? ?? 4? 88 ?? F6 ?? 08 ?? C0 ?? ?? 34 ?? 0F B6 ?? 01 ?? ?? ?? ?? ?? 39 ?? 75 } + $block_81 = { 89 ?? ?? E8 ?? ?? ?? ?? 8B ?? 89 ?? ?? 89 ?? ?? ?? E8 ?? ?? ?? ?? 85 ?? 89 ?? 0F 85 } + $block_82 = { 8B ?? ?? 0F B6 ?? 83 ?? ?? 89 ?? ?? ?? 8D ?? ?? 89 ?? ?? E8 ?? ?? ?? ?? 85 ?? 0F 85 } + $block_83 = { 8D ?? ?? 89 ?? ?? ?? 8D ?? ?? 89 ?? ?? ?? 89 ?? ?? E8 ?? ?? ?? ?? 85 ?? 89 ?? 0F 85 } + $block_84 = { 8B ?? ?? 89 ?? ?? 83 ?? ?? 89 ?? ?? ?? 89 ?? ?? ?? E8 ?? ?? ?? ?? 85 ?? 89 ?? 0F 85 } + $block_85 = { 8B ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 8D ?? ?? 8D ?? ?? 81 C? ?? ?? ?? ?? 39 ?? 0F 87 } + $block_86 = { 5? 89 ?? 81 E? ?? ?? ?? ?? 89 ?? ?? 8B ?? ?? 89 ?? ?? 8B ?? ?? 89 ?? ?? 85 ?? 0F 84 } + $block_87 = { 8D ?? ?? 8B ?? ?? ?? ?? ?? 89 ?? 89 ?? ?? 8B ?? ?? E8 ?? ?? ?? ?? 85 ?? 89 ?? 0F 85 } + $block_88 = { 8B ?? ?? 89 ?? ?? ?? 89 ?? ?? ?? 8D ?? ?? 89 ?? ?? E8 ?? ?? ?? ?? 85 ?? 89 ?? 0F 85 } + $block_89 = { 8B ?? ?? 89 ?? ?? ?? 8D ?? ?? 89 ?? ?? ?? 89 ?? ?? E8 ?? ?? ?? ?? 85 ?? 89 ?? 0F 85 } + $block_90 = { 8B ?? ?? 8B ?? ?? C7 ?? ?? ?? ?? ?? ?? 89 ?? ?? ?? E8 ?? ?? ?? ?? 85 ?? 89 ?? 0F 84 } + $block_91 = { 8B ?? ?? 8B ?? ?? 89 ?? ?? ?? 89 ?? ?? ?? 89 ?? ?? E8 ?? ?? ?? ?? 85 ?? 89 ?? 0F 85 } + $block_92 = { 8B ?? ?? 89 ?? ?? 89 ?? ?? ?? 8D ?? ?? 89 ?? ?? ?? E8 ?? ?? ?? ?? 85 ?? 89 ?? 0F 85 } + $block_93 = { 8D ?? ?? 89 ?? ?? ?? 89 ?? ?? ?? 8D ?? ?? 89 ?? ?? E8 ?? ?? ?? ?? 85 ?? 89 ?? 0F 85 } + $block_94 = { 8D ?? ?? 8D ?? ?? 89 ?? ?? ?? 89 ?? ?? ?? 89 ?? ?? E8 ?? ?? ?? ?? 85 ?? 89 ?? 0F 85 } + $block_95 = { 8B ?? ?? 8D ?? ?? 89 ?? ?? ?? 89 ?? ?? ?? 89 ?? ?? E8 ?? ?? ?? ?? 85 ?? 89 ?? 0F 85 } + $block_96 = { 8B ?? ?? 83 ?? ?? 89 ?? C1 ?? ?? F6 ?? ?? 8D ?? ?? 89 ?? ?? 8D ?? ?? FC F3 ?? 0F 84 } + $block_97 = { 0F B6 ?? ?? ?? 89 ?? 0F B6 ?? 29 ?? 84 ?? 89 ?? 0F 94 ?? 39 ?? 0F 92 ?? 08 ?? 4? 74 } + $block_98 = { 89 ?? 83 ?? ?? 83 ?? ?? E8 ?? ?? ?? ?? 83 ?? ?? 83 ?? ?? ?? 83 ?? ?? ?? 0F 8E } + $block_99 = { 5? 89 ?? 5? 5? 5? 81 E? ?? ?? ?? ?? 8B ?? ?? 8B ?? ?? 8B ?? ?? 83 ?? ?? 0F 84 } + + condition: + hash.sha256(0, filesize) == "8a20dc9538d639623878a3d3d18d88da8b635ea52e5e2d0c2cce4a8c5a703db1" or + hash.sha256(0, filesize) == "9e854d40f22675a0f1534f7c31626fd3b67d5799f8eea4bd2e2d4be187d9e1c7" or + hash.sha256(0, filesize) == "f30a0fe494a871bd7d117d41025e8d2e17cd545131e6f27d59b5e65e7ab50d92" or + hash.sha256(0, filesize) == "9683b04123d7e9fe4c8c26c69b09c2233f7e1440f828837422ce330040782d17" or + hash.sha256(0, filesize) == "d6097e942dd0fdc1fb28ec1814780e6ecc169ec6d24f9954e71954eedbc4c70e" or + 12 of them +} + +rule CloudAtlasPayload { + meta: + Author = "Intezer Analyze" + Reference = "https://apt-ecosystem.com" + + strings: + $block_0 = { 0F B7 ?? ?? 8B ?? ?? 8B ?? ?? 03 ?? ?? 89 ?? ?? 0F B7 ?? ?? 8B ?? ?? 66 ?? ?? ?? 66 ?? ?? ?? EB } + $block_1 = { 6A ?? 8B ?? ?? 8B ?? ?? 05 ?? ?? ?? ?? 5? E8 ?? ?? ?? ?? 83 ?? ?? 0F B6 ?? 85 ?? 0F 84 } + $block_2 = { 8D ?? ?? 5? 8D ?? ?? 5? 8B ?? ?? 5? E8 ?? ?? ?? ?? 83 ?? ?? 0F B6 ?? 85 ?? 74 } + $block_3 = { 8B ?? ?? 5? FF 1? ?? ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? 8B ?? ?? 83 ?? ?? ?? 0F 84 } + $block_4 = { 68 ?? ?? ?? ?? 8B ?? ?? 5? E8 ?? ?? ?? ?? 83 ?? ?? 0F B6 ?? 85 ?? 74 } + $block_5 = { 8B ?? ?? 83 ?? ?? 5? E8 ?? ?? ?? ?? 83 ?? ?? 0F B6 ?? 85 ?? 0F 84 } + $block_6 = { 8B ?? ?? 81 C? ?? ?? ?? ?? 5? 6A ?? FF 1? ?? ?? ?? ?? 85 ?? 0F 85 } + $block_7 = { 68 ?? ?? ?? ?? 8B ?? ?? 5? FF 1? ?? ?? ?? ?? 3D ?? ?? ?? ?? 0F 84 } + $block_8 = { 8B ?? ?? 8B ?? ?? 8D ?? ?? ?? 8B ?? ?? 03 ?? ?? 3B ?? 0F 83 } + $block_9 = { 8B ?? ?? 5? E8 ?? ?? ?? ?? 83 ?? ?? 0F B6 ?? 85 ?? 0F 84 } + $block_10 = { 8D ?? ?? 5? E8 ?? ?? ?? ?? 83 ?? ?? 0F B6 ?? 85 ?? 74 } + $block_11 = { 0F B7 ?? ?? 0F B7 ?? ?? 8B ?? ?? 03 ?? ?? 3B ?? 75 } + + condition: + hash.sha256(0, filesize) == "34905d840bbfbbc555dfd280b383e2c00d4c7987be71067ad7152b26f06d2cd0" or + 12 of them +} + +rule CloudAtlasLoader { + meta: + Author = "Intezer Analyze" + Reference = "https://apt-ecosystem.com" + + strings: + $block_0 = { 5? 8B ?? 81 E? ?? ?? ?? ?? A1 ?? ?? ?? ?? 33 ?? 89 ?? ?? 5? 5? B9 ?? ?? ?? ?? BE ?? ?? ?? ?? 8D ?? ?? ?? ?? ?? F3 ?? A4 C7 ?? ?? ?? ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 0F AF ?? ?? 89 ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 81 F? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 8D ?? ?? ?? ?? ?? 5? E8 ?? ?? ?? ?? 83 ?? ?? 8B ?? 8D ?? ?? ?? ?? ?? 5? E8 ?? ?? ?? ?? 83 ?? ?? 8D ?? ?? ?? 5? E8 ?? ?? ?? ?? 83 ?? ?? 89 ?? ?? 83 ?? ?? ?? 0F 84 } + $block_1 = { 5? 8B ?? 81 E? ?? ?? ?? ?? A1 ?? ?? ?? ?? 33 ?? 89 ?? ?? C7 ?? ?? ?? ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? 33 ?? 66 ?? ?? ?? ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 81 C? ?? ?? ?? ?? 89 ?? ?? 8B ?? ?? 83 ?? ?? 89 ?? ?? ?? ?? ?? 0F B6 ?? ?? 5? 8B ?? ?? ?? ?? ?? 5? 0F B6 ?? ?? 5? E8 ?? ?? ?? ?? 83 ?? ?? 89 ?? ?? 8B ?? ?? ?? ?? ?? 0F AF ?? ?? ?? ?? ?? 89 ?? ?? C7 ?? ?? ?? ?? ?? ?? ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 81 F? ?? ?? ?? ?? 89 ?? ?? C7 ?? ?? ?? ?? ?? ?? ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? ?? ?? ?? 8B ?? ?? 8B ?? ?? 89 ?? C7 ?? ?? ?? ?? ?? ?? ?? ?? ?? 8B ?? ?? 5? 0F B7 ?? ?? ?? ?? ?? 5? 8B ?? ?? 5? 0F B6 ?? ?? 5? 8D ?? ?? ?? ?? ?? 5? E8 ?? ?? ?? ?? 83 ?? ?? 8B ?? ?? ?? ?? ?? 05 ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? ?? ?? ?? 8B ?? ?? 8B ?? ?? ?? ?? ?? 89 ?? 8B ?? ?? ?? ?? ?? 35 ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 69 ?? ?? ?? ?? ?? 89 ?? ?? C7 ?? ?? ?? ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 83 ?? ?? 89 ?? ?? 8B ?? ?? ?? ?? ?? 05 ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 5? E8 ?? ?? ?? ?? 83 ?? ?? 89 ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? 8B ?? ?? 33 ?? ?? 89 ?? ?? ?? ?? ?? 8B ?? ?? 69 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 03 ?? ?? 89 ?? ?? C7 ?? ?? ?? ?? ?? ?? ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? 8B ?? ?? 33 ?? ?? 89 ?? ?? ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 89 ?? ?? 8B ?? ?? ?? ?? ?? 89 ?? ?? BA ?? ?? ?? ?? 2B ?? ?? 89 ?? ?? 8B ?? ?? ?? ?? ?? 05 ?? ?? ?? ?? 89 ?? ?? 8B ?? ?? 69 ?? ?? ?? ?? ?? 89 } + $block_2 = { 8B ?? ?? 69 ?? ?? ?? ?? ?? 89 ?? ?? 8B ?? ?? 69 ?? ?? ?? ?? ?? 89 ?? ?? 8B ?? ?? ?? ?? ?? 5? E8 ?? ?? ?? ?? 83 ?? ?? C7 ?? ?? ?? ?? ?? ?? ?? ?? ?? E8 ?? ?? ?? ?? 8B ?? ?? 5? 8B ?? ?? 5? 8B ?? ?? 5? 8B ?? ?? 5? E8 ?? ?? ?? ?? 83 ?? ?? 89 ?? ?? 8B ?? ?? 03 ?? ?? ?? ?? ?? 89 ?? ?? 8B ?? ?? 81 C? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? B8 ?? ?? ?? ?? 2B ?? ?? 89 ?? ?? 8B ?? ?? 5? 8B ?? ?? 5? 0F B6 ?? ?? 5? 8B ?? ?? 5? 8B ?? ?? 5? E8 ?? ?? ?? ?? 83 ?? ?? 89 ?? ?? ?? ?? ?? 8B ?? ?? 0F AF ?? ?? 89 ?? ?? 8B ?? ?? 03 ?? ?? 89 ?? ?? 8B ?? ?? 5? 0F B7 ?? ?? 5? E8 ?? ?? ?? ?? 83 ?? ?? 89 ?? ?? ?? ?? ?? 8B ?? ?? 81 E? ?? ?? ?? ?? 89 ?? ?? 8B ?? ?? 2B ?? ?? 89 ?? ?? 8B ?? ?? ?? ?? ?? 5? 8B ?? ?? 5? 8B ?? ?? ?? ?? ?? 5? 8B ?? ?? ?? ?? ?? 5? E8 ?? ?? ?? ?? 83 ?? ?? 89 ?? ?? 8B ?? ?? 69 ?? ?? ?? ?? ?? 89 ?? ?? 8B ?? ?? ?? ?? ?? 5? E8 ?? ?? ?? ?? 83 ?? ?? C7 ?? ?? ?? ?? ?? ?? ?? ?? ?? E8 ?? ?? ?? ?? 8B ?? ?? 2B ?? ?? ?? ?? ?? 89 ?? ?? 0F B7 ?? ?? 5? 8B ?? ?? ?? ?? ?? 5? E8 ?? ?? ?? ?? 83 ?? ?? E8 ?? ?? ?? ?? 8B ?? ?? 33 ?? ?? 89 ?? ?? 68 ?? ?? ?? ?? 8D ?? ?? ?? ?? ?? 5? 8D ?? ?? 5? 8B ?? ?? 5? E8 ?? ?? ?? ?? 83 ?? ?? B9 ?? ?? ?? ?? 2B ?? ?? 89 ?? ?? 8B ?? ?? 5? 8B ?? ?? ?? ?? ?? 5? 8B ?? ?? 5? 8B ?? ?? ?? ?? ?? 5? 68 ?? ?? ?? ?? 0F B7 ?? ?? 5? E8 ?? ?? ?? ?? 83 ?? ?? 89 ?? ?? 8B ?? ?? ?? ?? ?? 5? E8 ?? ?? ?? ?? 83 ?? ?? C7 ?? ?? ?? ?? ?? ?? ?? ?? ?? E8 ?? ?? ?? ?? 8D ?? ?? 5? E8 ?? ?? ?? ?? 83 ?? ?? 89 ?? ?? C7 ?? ?? ?? ?? ?? ?? B8 ?? ?? ?? ?? 2B ?? ?? 89 ?? ?? 8B ?? ?? 81 F? ?? ?? ?? ?? 89 ?? ?? C7 ?? ?? ?? ?? ?? ?? 68 ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 5? 8B ?? ?? 5? 8B ?? ?? 5? E8 ?? ?? ?? ?? 83 ?? ?? 89 ?? ?? ?? ?? ?? 8B ?? ?? 81 F? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? B8 ?? ?? ?? ?? 2B ?? ?? 89 ?? ?? ?? ?? ?? 8B ?? ?? 5? E8 ?? ?? ?? ?? 83 ?? ?? C7 ?? ?? ?? ?? ?? ?? 0F B6 ?? ?? 5? E8 ?? ?? ?? ?? 83 ?? ?? 8B ?? ?? 03 ?? ?? 89 ?? ?? E8 ?? ?? ?? ?? 89 ?? ?? 8B ?? ?? 03 ?? ?? ?? ?? ?? 89 ?? ?? 8B ?? ?? ?? ?? ?? 81 C? ?? ?? ?? ?? 89 ?? ?? 8B ?? ?? 69 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 8B ?? ?? 5? 8B ?? ?? ?? ?? ?? 5? 8B ?? ?? 5? 8B ?? ?? ?? ?? ?? 5? 8B ?? ?? 5? 68 ?? ?? ?? ?? E8 ?? ?? ?? ?? 83 ?? ?? 8B ?? ?? ?? ?? ?? 69 ?? ?? ?? ?? ?? 89 ?? ?? E8 ?? ?? ?? ?? 8B ?? ?? 2B ?? ?? 89 ?? ?? 0F B7 ?? ?? 5? 0F B6 ?? ?? 5? 8B ?? ?? 5? 0F B7 ?? ?? 5? 68 ?? ?? ?? ?? 8D ?? ?? ?? ?? ?? 5? E8 ?? ?? ?? ?? 83 ?? ?? 89 ?? ?? 8B ?? ?? ?? ?? ?? 69 ?? ?? ?? ?? ?? 89 ?? ?? 8B ?? ?? 5? 8B ?? ?? ?? ?? ?? 5? 8B ?? ?? 5? 8B ?? ?? ?? ?? ?? 5? 68 ?? ?? ?? ?? 0F B7 ?? ?? 5? E8 ?? ?? ?? ?? 83 ?? ?? 89 ?? ?? C7 ?? ?? ?? ?? ?? ?? 8B ?? ?? 33 ?? ?? ?? ?? ?? 89 ?? ?? 8B ?? ?? ?? ?? ?? 5? E8 ?? ?? ?? ?? 83 ?? ?? C7 ?? ?? ?? ?? ?? ?? ?? ?? ?? 8B ?? ?? 5? 0F B7 ?? ?? 5? E8 ?? ?? ?? ?? 83 ?? ?? C7 ?? ?? ?? ?? ?? ?? 0F B7 ?? ?? 5? 8B ?? ?? ?? ?? ?? 5? E8 ?? ?? ?? ?? 83 ?? ?? 89 ?? ?? 8B ?? ?? 81 F? ?? ?? ?? ?? 89 ?? ?? 8B ?? ?? 5? 8B ?? ?? 5? 8B ?? ?? 5? 8B ?? ?? 5? 8D ?? ?? ?? ?? ?? 5? E8 ?? ?? ?? ?? 83 ?? ?? 89 ?? ?? 8B ?? ?? 03 ?? ?? 89 ?? ?? 8B ?? ?? 33 ?? ?? ?? ?? ?? 89 ?? ?? 8B ?? ?? ?? ?? ?? 5? 8B ?? ?? 5? 8B ?? ?? 5? 8B ?? ?? ?? ?? ?? 5? 8B ?? ?? 5? 8B ?? ?? 5? E8 ?? ?? ?? ?? 83 ?? ?? 89 ?? ?? ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 5? E8 ?? ?? ?? ?? 83 ?? ?? C7 ?? ?? ?? ?? ?? ?? ?? ?? ?? E8 ?? ?? ?? ?? 8B ?? ?? 6B ?? ?? 89 ?? ?? 8B ?? ?? 81 C? ?? ?? ?? ?? 89 ?? ?? 0F B6 ?? ?? 5? 8D ?? ?? 5? 68 ?? ?? ?? ?? 8D ?? ?? 5? 0F B6 ?? ?? 5? 8B ?? ?? 5? E8 ?? ?? ?? ?? 83 ?? ?? 8B ?? ?? 81 F? ?? ?? ?? ?? 89 ?? ?? 8B ?? ?? 33 ?? ?? 89 ?? ?? C7 ?? ?? ?? ?? ?? ?? 8B ?? ?? 5? 68 ?? ?? ?? ?? 8B ?? ?? 5? 8B ?? ?? ?? ?? ?? 5? 8B ?? ?? 5? 8B ?? ?? 5? E8 ?? ?? ?? ?? 83 ?? ?? 89 ?? ?? 8B ?? ?? 5? E8 ?? ?? ?? ?? 83 ?? ?? C7 ?? ?? ?? ?? ?? ?? E8 ?? ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 5? 8B ?? ?? 5? 8B ?? ?? 5? 68 ?? ?? ?? ?? E8 ?? ?? ?? ?? 83 ?? ?? C7 ?? ?? ?? ?? ?? ?? E8 ?? ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? 8B ?? ?? 33 ?? ?? 89 ?? ?? 0F B6 ?? ?? 5? 8B ?? ?? 5? 0F B7 ?? ?? 5? 8B ?? ?? 5? 8D ?? ?? 5? E8 ?? ?? ?? ?? 83 ?? ?? 8B ?? ?? 0F AF ?? ?? 89 ?? ?? C7 ?? ?? ?? ?? ?? ?? ?? ?? ?? 8D ?? ?? 5? 8B ?? ?? 5? 8B ?? ?? 5? E8 ?? ?? ?? ?? 83 ?? ?? 89 ?? ?? 8B ?? ?? 0F AF ?? ?? ?? ?? ?? 89 ?? ?? 8B ?? ?? 69 ?? ?? ?? ?? ?? 89 ?? ?? C7 ?? ?? ?? ?? ?? ?? 8B ?? ?? 5? 8B ?? ?? ?? ?? ?? 5? 8B ?? ?? 5? 8B ?? ?? 5? E8 ?? ?? ?? ?? 83 ?? ?? 89 ?? ?? BA ?? ?? ?? ?? 2B ?? ?? 89 ?? ?? C7 ?? ?? ?? ?? ?? ?? 8B ?? ?? 5? E8 ?? ?? ?? ?? 83 ?? ?? C7 ?? ?? ?? ?? ?? ?? E8 ?? ?? ?? ?? E8 ?? ?? ?? ?? 89 ?? ?? B9 ?? ?? ?? ?? 2B ?? ?? 89 ?? ?? 8B ?? ?? 81 C? ?? ?? ?? ?? 89 ?? ?? 68 ?? ?? ?? ?? 8B ?? ?? 5? 0F B7 ?? ?? 5? 8B ?? ?? 5? 8B ?? ?? ?? ?? ?? 5? E8 ?? ?? ?? ?? 83 ?? ?? C7 ?? ?? ?? ?? ?? ?? 8B ?? ?? 03 ?? ?? 89 ?? ?? E8 ?? ?? ?? ?? 8D ?? ?? 5? 8D ?? ?? ?? ?? ?? 5? E8 ?? ?? ?? ?? 83 ?? ?? 89 ?? ?? 8B ?? ?? 81 C? ?? ?? ?? ?? 89 ?? ?? C7 ?? ?? ?? ?? ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 5? 8B ?? ?? 5? 8B ?? ?? 5? 8B ?? ?? ?? ?? ?? 5? 8B ?? ?? 5? 8B ?? ?? 5? E8 ?? ?? ?? ?? 83 ?? ?? 89 ?? ?? 8B ?? ?? 0F AF ?? ?? ?? ?? ?? 89 ?? ?? 8B ?? ?? ?? ?? ?? 5? E8 ?? ?? ?? ?? 83 ?? ?? C7 ?? ?? ?? ?? ?? ?? ?? ?? ?? E8 ?? ?? ?? ?? B9 ?? ?? ?? ?? 2B ?? ?? 89 ?? ?? C7 ?? ?? ?? ?? ?? ?? 0F B7 ?? ?? 5? 8B ?? ?? 5? E8 ?? ?? ?? ?? 83 ?? ?? 89 ?? ?? ?? ?? ?? 8B ?? ?? 2B ?? ?? 89 ?? ?? 8B ?? ?? ?? ?? ?? 5? 8B ?? ?? ?? ?? ?? 5? E8 ?? ?? ?? ?? 83 ?? ?? 8B ?? ?? 81 C? ?? ?? ?? ?? 89 ?? ?? 8B ?? ?? 81 F? ?? ?? ?? ?? 89 ?? ?? E8 ?? ?? ?? ?? 8B ?? ?? 33 ?? ?? 89 ?? ?? 8B ?? ?? 5? E8 ?? ?? ?? ?? 83 ?? ?? 89 ?? ?? 8B ?? ?? 69 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? ?? ?? ?? B8 ?? ?? ?? ?? 2B ?? ?? 89 ?? ?? 8B ?? ?? 5? 8B ?? ?? 5? 68 ?? ?? ?? ?? 8B ?? ?? 5? 8B ?? ?? ?? ?? ?? 5? E8 ?? ?? ?? ?? 83 ?? ?? 0F B7 ?? ?? 5? 0F B7 ?? ?? 5? E8 ?? ?? ?? ?? 83 ?? ?? B9 ?? ?? ?? ?? 2B ?? ?? 89 ?? ?? 8D ?? ?? ?? ?? ?? 5? 8B ?? ?? 5? 8D ?? ?? ?? ?? ?? 5? E8 ?? ?? ?? ?? 83 ?? ?? 89 ?? ?? 8B ?? ?? 83 ?? ?? 89 ?? ?? 8B ?? ?? 2B ?? ?? 89 ?? ?? C7 ?? ?? ?? ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? 8B ?? ?? 0F AF ?? ?? 89 ?? ?? C7 ?? ?? ?? ?? ?? ?? 83 ?? ?? ?? ?? ?? ?? 7E } + $block_3 = { 5? 8B ?? 81 E? ?? ?? ?? ?? A1 ?? ?? ?? ?? 33 ?? 89 ?? ?? C6 ?? ?? ?? ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? 8B ?? ?? 5? 8B ?? ?? 5? 8B ?? ?? 5? E8 ?? ?? ?? ?? 83 ?? ?? 89 ?? ?? 8D ?? ?? ?? ?? ?? 5? 0F B6 ?? ?? ?? ?? ?? 5? E8 ?? ?? ?? ?? 83 ?? ?? C7 ?? ?? ?? ?? ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 5? E8 ?? ?? ?? ?? 83 ?? ?? 89 ?? ?? C7 ?? ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 35 ?? ?? ?? ?? 89 ?? ?? C7 ?? ?? ?? ?? ?? ?? ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? 8B ?? ?? 83 ?? ?? 89 ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 81 C? ?? ?? ?? ?? 89 ?? ?? 8B ?? ?? 89 ?? ?? 8B ?? ?? ?? ?? ?? 89 ?? ?? C7 ?? ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 69 ?? ?? ?? ?? ?? 89 ?? ?? 8B ?? ?? ?? ?? ?? 5? 6A ?? FF 1? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 33 ?? ?? ?? ?? ?? 89 ?? ?? 8B ?? ?? ?? ?? ?? 03 ?? ?? 89 ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 89 } + $block_4 = { 5? 8B ?? 81 E? ?? ?? ?? ?? A1 ?? ?? ?? ?? 33 ?? 89 ?? ?? C7 ?? ?? ?? ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? 33 ?? 66 ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? ?? ?? ?? B9 ?? ?? ?? ?? 2B ?? ?? 89 ?? ?? 8D ?? ?? 5? 0F B7 ?? ?? 5? 0F B6 ?? ?? 5? 8B ?? ?? ?? ?? ?? 5? 8B ?? ?? ?? ?? ?? 5? E8 ?? ?? ?? ?? 83 ?? ?? 8B ?? ?? 33 ?? ?? ?? ?? ?? 89 ?? ?? 8B ?? ?? 81 F? ?? ?? ?? ?? 89 ?? ?? 8B ?? ?? 03 ?? ?? ?? ?? ?? 89 ?? ?? 8B ?? ?? 0F AF ?? ?? 89 ?? ?? ?? ?? ?? 8B ?? ?? 81 F? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 8B ?? ?? 8B ?? ?? 89 ?? 8B ?? ?? 81 C? ?? ?? ?? ?? 89 ?? ?? C7 ?? ?? ?? ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 2D ?? ?? ?? ?? 89 ?? ?? 8B ?? ?? 8B ?? ?? ?? ?? ?? 89 ?? 8B ?? ?? 35 ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 8B ?? ?? 69 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? ?? ?? ?? 8B ?? ?? 69 ?? ?? ?? ?? ?? 89 ?? ?? 8B ?? ?? ?? ?? ?? 05 ?? ?? ?? ?? 89 ?? ?? 8B ?? ?? 2B ?? ?? 89 ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 5? E8 ?? ?? ?? ?? 83 ?? ?? 8B ?? ?? 89 ?? 8B ?? ?? ?? ?? ?? 33 ?? ?? 89 ?? ?? C7 ?? ?? ?? ?? ?? ?? 8B ?? ?? 05 ?? ?? ?? ?? 89 ?? ?? 8B ?? ?? ?? ?? ?? 5? E8 ?? ?? ?? ?? 83 ?? ?? 89 ?? ?? 8B ?? ?? 81 E? ?? ?? ?? ?? 89 ?? ?? C7 ?? ?? ?? ?? ?? ?? ?? ?? ?? EB } + $block_5 = { 5? 8B ?? 81 E? ?? ?? ?? ?? A1 ?? ?? ?? ?? 33 ?? 89 ?? ?? C7 ?? ?? ?? ?? ?? ?? ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 03 ?? ?? 89 ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 81 F? ?? ?? ?? ?? 89 ?? ?? 8B ?? ?? 81 C? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 8B ?? ?? 05 ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 8B ?? ?? 8B ?? ?? 89 ?? 8B ?? ?? 05 ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 2B ?? ?? ?? ?? ?? 89 ?? ?? C7 ?? ?? ?? ?? ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 5? E8 ?? ?? ?? ?? 83 ?? ?? 8B ?? ?? 89 ?? C7 ?? ?? ?? ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? ?? ?? ?? 8B ?? ?? 8B ?? 89 ?? ?? 8B ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 8B ?? ?? 0F AF ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 5? E8 ?? ?? ?? ?? 83 ?? ?? 89 ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 5? 6A ?? 8B ?? ?? ?? ?? ?? 5? E8 ?? ?? ?? ?? 83 ?? ?? 8B ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 81 C? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? C7 } + $block_6 = { 5? 8B ?? 81 E? ?? ?? ?? ?? A1 ?? ?? ?? ?? 33 ?? 89 ?? ?? C7 ?? ?? ?? ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? ?? ?? ?? 68 ?? ?? ?? ?? E8 ?? ?? ?? ?? 83 ?? ?? 89 ?? ?? ?? ?? ?? 8B ?? ?? 0F AF ?? ?? ?? ?? ?? 89 ?? ?? C7 ?? ?? ?? ?? ?? ?? 8B ?? ?? 81 F? ?? ?? ?? ?? 89 ?? ?? C6 ?? ?? ?? ?? ?? ?? 8B ?? ?? 69 ?? ?? ?? ?? ?? 89 ?? ?? C7 ?? ?? ?? ?? ?? ?? 8B ?? ?? 2D ?? ?? ?? ?? 89 ?? ?? C7 ?? ?? ?? ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? ?? ?? ?? 8B ?? ?? 69 ?? ?? ?? ?? ?? 89 ?? ?? BA ?? ?? ?? ?? 2B ?? ?? 89 ?? ?? 8B ?? ?? 2D ?? ?? ?? ?? 89 ?? ?? 8B ?? ?? ?? ?? ?? 89 ?? ?? C7 ?? ?? ?? ?? ?? ?? 8B ?? ?? 69 ?? ?? ?? ?? ?? 89 ?? ?? 8B ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 8B ?? ?? 81 E? ?? ?? ?? ?? 89 ?? ?? 8B ?? ?? 03 ?? ?? 89 ?? ?? 8B ?? ?? 2D ?? ?? ?? ?? 89 } + $block_7 = { 5? 8B ?? 81 E? ?? ?? ?? ?? A1 ?? ?? ?? ?? 33 ?? 89 ?? ?? C7 ?? ?? ?? ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? 8B ?? ?? 2B ?? ?? 89 ?? ?? ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? 8B ?? ?? 69 ?? ?? ?? ?? ?? 89 ?? ?? 8B ?? ?? 8B ?? ?? 89 ?? C7 ?? ?? ?? ?? ?? ?? 8B ?? ?? 69 ?? ?? ?? ?? ?? 89 ?? ?? C7 ?? ?? ?? ?? ?? ?? ?? ?? ?? 8B ?? ?? 5? E8 ?? ?? ?? ?? 83 ?? ?? 8B ?? ?? 89 ?? 8B ?? ?? 99 B9 ?? ?? ?? ?? F7 ?? 89 ?? ?? ?? ?? ?? 8B ?? ?? 33 ?? ?? ?? ?? ?? 89 ?? ?? C7 ?? ?? ?? ?? ?? ?? 8B ?? ?? 89 ?? ?? 8B ?? ?? 81 F? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 8B ?? ?? 03 ?? ?? ?? ?? ?? 89 ?? ?? 8B ?? ?? 5? E8 ?? ?? ?? ?? 83 ?? ?? 89 ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 81 F? ?? ?? ?? ?? 89 } + $block_8 = { 8B ?? ?? ?? ?? ?? 5? E8 ?? ?? ?? ?? 83 ?? ?? C7 ?? ?? ?? ?? ?? ?? ?? ?? ?? E8 ?? ?? ?? ?? 8B ?? ?? 05 ?? ?? ?? ?? 89 ?? ?? 0F B6 ?? ?? 5? 8B ?? ?? 5? 8D ?? ?? ?? ?? ?? 5? 8B ?? ?? 5? 8B ?? ?? 5? E8 ?? ?? ?? ?? 83 ?? ?? 89 ?? ?? 8B ?? ?? 05 ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 8B ?? ?? 83 ?? ?? 89 ?? ?? ?? ?? ?? 0F B6 ?? ?? 5? 0F B7 ?? ?? 5? E8 ?? ?? ?? ?? 83 ?? ?? 89 ?? ?? C7 ?? ?? ?? ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? B9 ?? ?? ?? ?? 2B ?? ?? ?? ?? ?? 89 ?? ?? 8B ?? ?? ?? ?? ?? 5? 8B ?? ?? 5? 8B ?? ?? 5? 8B ?? ?? ?? ?? ?? 5? E8 ?? ?? ?? ?? 83 ?? ?? 89 ?? ?? C7 ?? ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 5? E8 ?? ?? ?? ?? 83 ?? ?? C7 ?? ?? ?? ?? ?? ?? ?? ?? ?? E8 ?? ?? ?? ?? 8B ?? ?? 81 F? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 8D ?? ?? 5? E8 ?? ?? ?? ?? 83 ?? ?? 8B ?? ?? 0F AF ?? ?? 89 ?? ?? 8B ?? ?? ?? ?? ?? 5? 8B ?? ?? 5? 8B ?? ?? 5? 8B ?? ?? 5? 0F B6 ?? ?? 5? 0F B7 ?? ?? 5? E8 ?? ?? ?? ?? 83 ?? ?? 8B ?? ?? 03 ?? ?? ?? ?? ?? 89 ?? ?? 8B ?? ?? ?? ?? ?? 81 E? ?? ?? ?? ?? 89 ?? ?? E8 ?? ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? 0F B7 ?? ?? 5? 8D ?? ?? ?? ?? ?? 5? E8 ?? ?? ?? ?? 83 ?? ?? 8B ?? ?? 69 ?? ?? ?? ?? ?? 89 ?? ?? 8B ?? ?? 69 ?? ?? ?? ?? ?? 89 ?? ?? 8B ?? ?? ?? ?? ?? 5? 8B ?? ?? 5? 8B ?? ?? 5? 0F B7 ?? ?? 5? 8B ?? ?? 5? E8 ?? ?? ?? ?? 83 ?? ?? 89 ?? ?? ?? ?? ?? 8B ?? ?? 69 ?? ?? ?? ?? ?? 89 ?? ?? C7 ?? ?? ?? ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? 8B ?? ?? 81 F? ?? ?? ?? ?? 89 ?? ?? 8B ?? ?? 5? 0F B7 ?? ?? 5? 0F B7 ?? ?? 5? 8B ?? ?? 5? E8 ?? ?? ?? ?? 83 ?? ?? 89 ?? ?? 8B ?? ?? 03 ?? ?? 89 ?? ?? 8B ?? ?? ?? ?? ?? 5? 8B ?? ?? ?? ?? ?? 5? 8B ?? ?? 5? 8B ?? ?? ?? ?? ?? 5? E8 ?? ?? ?? ?? 83 ?? ?? 89 ?? ?? 8B ?? ?? 81 F? ?? ?? ?? ?? 89 ?? ?? B8 ?? ?? ?? ?? 2B ?? ?? 89 ?? ?? 8B ?? ?? ?? ?? ?? 5? E8 ?? ?? ?? ?? 83 ?? ?? C7 ?? ?? ?? ?? ?? ?? ?? ?? ?? E8 ?? ?? ?? ?? 8D ?? ?? 5? E8 ?? ?? ?? ?? 83 ?? ?? 8B ?? ?? 69 ?? ?? ?? ?? ?? 89 ?? ?? 8B ?? ?? 83 ?? ?? 89 ?? ?? 8B ?? ?? 33 ?? ?? 89 ?? ?? ?? ?? ?? B8 ?? ?? ?? ?? 2B ?? ?? 89 ?? ?? 8B ?? ?? 5? 8B ?? ?? 5? 0F B7 ?? ?? 5? 8B ?? ?? 5? 8B ?? ?? ?? ?? ?? 5? E8 ?? ?? ?? ?? 83 ?? ?? 8B ?? ?? 05 ?? ?? ?? ?? 89 ?? ?? E8 ?? ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? 0F B7 ?? ?? 5? 8B ?? ?? ?? ?? ?? 5? 8B ?? ?? 5? E8 ?? ?? ?? ?? 83 ?? ?? 8B ?? ?? 81 C? ?? ?? ?? ?? 89 ?? ?? 0F B7 ?? ?? 5? 0F B7 ?? ?? 5? E8 ?? ?? ?? ?? 83 ?? ?? B9 ?? ?? ?? ?? 2B ?? ?? 89 ?? ?? 8B ?? ?? 2B ?? ?? 89 ?? ?? 8D ?? ?? 5? 8D ?? ?? ?? ?? ?? 5? E8 ?? ?? ?? ?? 83 ?? ?? 89 ?? ?? 8B ?? ?? 2B ?? ?? 89 ?? ?? 8B ?? ?? ?? ?? ?? 5? 8B ?? ?? ?? ?? ?? 5? 8B ?? ?? 5? 8B ?? ?? 5? 8B ?? ?? 5? 0F B7 ?? ?? 5? E8 ?? ?? ?? ?? 83 ?? ?? 89 ?? ?? C7 ?? ?? ?? ?? ?? ?? 8B ?? ?? 5? E8 ?? ?? ?? ?? 83 ?? ?? C7 ?? ?? ?? ?? ?? ?? 8B ?? ?? 5? 0F B7 ?? ?? 5? E8 ?? ?? ?? ?? 83 ?? ?? 0F B7 ?? ?? 5? 8B ?? ?? ?? ?? ?? 5? 8B ?? ?? 5? 0F B6 ?? ?? 5? E8 ?? ?? ?? ?? 83 ?? ?? C7 ?? ?? ?? ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? 0F B7 ?? ?? 5? 0F B7 ?? ?? 5? E8 ?? ?? ?? ?? 83 ?? ?? 8D ?? ?? 5? 0F B6 ?? ?? 5? 0F B7 ?? ?? 5? E8 ?? ?? ?? ?? 83 ?? ?? 89 ?? ?? ?? ?? ?? 8B ?? ?? 69 ?? ?? ?? ?? ?? 89 ?? ?? 8B ?? ?? 81 C? ?? ?? ?? ?? 89 ?? ?? 8B ?? ?? 2B ?? ?? 89 ?? ?? B8 ?? ?? ?? ?? 2B ?? ?? 89 ?? ?? 68 ?? ?? ?? ?? 8B ?? ?? 5? 8B ?? ?? ?? ?? ?? 5? 8B ?? ?? ?? ?? ?? 5? E8 ?? ?? ?? ?? 83 ?? ?? 89 ?? ?? 8B ?? ?? ?? ?? ?? 5? E8 ?? ?? ?? ?? 83 ?? ?? C7 ?? ?? ?? ?? ?? ?? ?? ?? ?? 0F B6 ?? ?? 5? E8 ?? ?? ?? ?? 83 ?? ?? 8D ?? ?? ?? ?? ?? 5? E8 ?? ?? ?? ?? 83 ?? ?? 89 ?? ?? 8B ?? ?? ?? ?? ?? 5? 8B ?? ?? ?? ?? ?? 5? 68 ?? ?? ?? ?? 8B ?? ?? 5? E8 ?? ?? ?? ?? 83 ?? ?? 89 ?? ?? 8B ?? ?? 6B ?? ?? 89 ?? ?? 8B ?? ?? 81 C? ?? ?? ?? ?? 89 ?? ?? 8B ?? ?? 5? E8 ?? ?? ?? ?? 83 ?? ?? C7 ?? ?? ?? ?? ?? ?? E8 ?? ?? ?? ?? 8B ?? ?? 83 ?? ?? 89 ?? ?? 8D ?? ?? 5? 8B ?? ?? 5? 0F B6 ?? ?? 5? E8 ?? ?? ?? ?? 83 ?? ?? 89 ?? ?? 8B ?? ?? 81 C? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 33 ?? ?? 89 ?? ?? 68 ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 5? 8B ?? ?? 5? 8B ?? ?? 5? E8 ?? ?? ?? ?? 83 ?? ?? 89 ?? ?? 8B ?? ?? 69 ?? ?? ?? ?? ?? 89 ?? ?? 8B ?? ?? 5? E8 ?? ?? ?? ?? 83 ?? ?? C7 ?? ?? ?? ?? ?? ?? E8 ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 5? E8 ?? ?? ?? ?? 83 ?? ?? B9 ?? ?? ?? ?? 2B ?? ?? 89 ?? ?? 8B ?? ?? 5? 8B ?? ?? 5? E8 ?? ?? ?? ?? 83 ?? ?? 8B ?? ?? 81 F? ?? ?? ?? ?? 89 ?? ?? 8B ?? ?? 33 ?? ?? 89 ?? ?? 8B ?? ?? 5? 8B ?? ?? ?? ?? ?? 5? 68 ?? ?? ?? ?? E8 ?? ?? ?? ?? 83 ?? ?? 8B ?? ?? ?? ?? ?? 2B ?? ?? 89 ?? ?? E8 ?? ?? ?? ?? 8D ?? ?? 5? 8B ?? ?? 5? 0F B6 ?? ?? 5? 8D ?? ?? ?? ?? ?? 5? E8 ?? ?? ?? ?? 83 ?? ?? 89 ?? ?? 8B ?? ?? 81 C? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 8B ?? ?? 83 ?? ?? 89 ?? ?? 8B ?? ?? 5? 8B ?? ?? 5? 8B ?? ?? ?? ?? ?? 5? 8B ?? ?? ?? ?? ?? 5? E8 ?? ?? ?? ?? 83 ?? ?? 89 ?? ?? B9 ?? ?? ?? ?? 2B ?? ?? 89 ?? ?? 8B ?? ?? ?? ?? ?? 5? E8 ?? ?? ?? ?? 83 ?? ?? C7 ?? ?? ?? ?? ?? ?? ?? ?? ?? E8 ?? ?? ?? ?? B8 ?? ?? ?? ?? 2B ?? ?? 89 ?? ?? ?? ?? ?? 8D ?? ?? 5? 8B ?? ?? 5? 8B ?? ?? 5? 8B ?? ?? 5? 0F B6 ?? ?? 5? E8 ?? ?? ?? ?? 83 ?? ?? 89 ?? ?? ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? 8B ?? ?? 03 ?? ?? ?? ?? ?? 89 ?? ?? 8B ?? ?? 5? 0F B7 ?? ?? 5? 8B ?? ?? 5? E8 ?? ?? ?? ?? 83 ?? ?? 89 ?? ?? 8B ?? ?? 81 C? ?? ?? ?? ?? 89 ?? ?? C7 ?? ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 2B ?? ?? 89 ?? ?? C7 ?? ?? ?? ?? ?? ?? 8B ?? ?? 2B ?? ?? 89 ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 03 ?? ?? 89 ?? ?? 8B ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 8B ?? ?? 35 ?? ?? ?? ?? 89 } + $block_9 = { 5? 8B ?? 81 E? ?? ?? ?? ?? A1 ?? ?? ?? ?? 33 ?? 89 ?? ?? C7 ?? ?? ?? ?? ?? ?? ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? 33 ?? 66 ?? ?? ?? ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? ?? ?? ?? B9 ?? ?? ?? ?? 2B ?? ?? ?? ?? ?? 89 ?? ?? 0F B7 ?? ?? ?? ?? ?? 5? 8B ?? ?? ?? ?? ?? 5? 8D ?? ?? 5? E8 ?? ?? ?? ?? 83 ?? ?? C7 ?? ?? ?? ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 03 ?? ?? 89 ?? ?? 8B ?? ?? 35 ?? ?? ?? ?? 89 ?? ?? 8B ?? ?? ?? ?? ?? 5? E8 ?? ?? ?? ?? 83 ?? ?? 8B ?? ?? 89 ?? C7 ?? ?? ?? ?? ?? ?? 8B ?? ?? 8B ?? 89 ?? ?? ?? ?? ?? 8B ?? ?? 89 ?? ?? 8B ?? ?? ?? ?? ?? 5? E8 ?? ?? ?? ?? 83 ?? ?? 89 ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 5? 6A ?? 8B ?? ?? ?? ?? ?? 5? E8 ?? ?? ?? ?? 83 ?? ?? C7 ?? ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 69 ?? ?? ?? ?? ?? 89 ?? ?? 8B ?? ?? ?? ?? ?? 89 ?? ?? 8B ?? ?? 81 E? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? ?? ?? ?? EB } + + condition: + hash.sha256(0, filesize) == "85ec69f1a08b30db4d30202d3a584bd33ea412ba46336b1b51fae7260e29f844" or + 10 of them +} + +rule RedOctoberPluginNetScan { + meta: + Author = "Intezer Analyze" + Reference = "https://apt-ecosystem.com" + + strings: + $block_0 = { 0F B6 ?? ?? 0F BE ?? ?? ?? ?? ?? 5? 0F B6 ?? 0F BE ?? ?? ?? ?? ?? 5? 68 ?? ?? ?? ?? 5? FF D? 83 } + $block_1 = { 8B ?? ?? ?? ?? ?? 0F B7 ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 83 ?? ?? 3B ?? 0F 87 } + $block_2 = { 8B ?? ?? 83 ?? ?? E8 ?? ?? ?? ?? 8B ?? ?? 5? 8B ?? ?? 83 ?? ?? E8 ?? ?? ?? ?? 0F B6 ?? 85 ?? 75 } + $block_3 = { 5? 8B ?? 83 ?? ?? 89 ?? ?? 0F B7 ?? ?? 89 ?? ?? 8B ?? ?? 83 ?? ?? 89 ?? ?? 83 ?? ?? ?? 0F 87 } + $block_4 = { 83 ?? ?? 33 ?? 6A ?? 5? 8B ?? F7 ?? 0F 90 ?? F7 ?? 0B ?? 5? E8 ?? ?? ?? ?? 8B ?? 5? 85 ?? 74 } + $block_5 = { 8D ?? ?? 5? 8D ?? ?? 5? 68 ?? ?? ?? ?? 8B ?? ?? 5? E8 ?? ?? ?? ?? 83 ?? ?? 0F B6 ?? 85 ?? 74 } + $block_6 = { 68 ?? ?? ?? ?? 8B ?? ?? 5? 8B ?? ?? 5? 8B ?? ?? 5? E8 ?? ?? ?? ?? 83 ?? ?? 0F B6 ?? 85 ?? 74 } + $block_7 = { C6 ?? ?? ?? ?? ?? ?? 8D ?? ?? ?? ?? ?? 5? 8B ?? ?? ?? ?? ?? 5? E8 ?? ?? ?? ?? 85 ?? 0F 84 } + $block_8 = { 8B ?? ?? 8B ?? ?? 83 ?? ?? 89 ?? ?? 8B ?? ?? 8B ?? ?? 89 ?? ?? 8B ?? ?? 83 ?? ?? ?? 0F 86 } + $block_9 = { 8B ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 8B ?? ?? 3B ?? ?? ?? ?? ?? 0F 8F } + $block_10 = { 8B ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 8B ?? ?? 3B ?? ?? ?? ?? ?? 0F 8C } + $block_11 = { 68 ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 81 C? ?? ?? ?? ?? 5? FF 1? ?? ?? ?? ?? 85 ?? 0F 84 } + $block_12 = { 0F B7 ?? ?? 5? E8 ?? ?? ?? ?? 83 ?? ?? 89 ?? ?? ?? ?? ?? 83 ?? ?? ?? ?? ?? ?? 0F 84 } + $block_13 = { 8B ?? ?? 0F B7 ?? ?? 5? 8B ?? ?? 0F B7 ?? 5? 8B ?? ?? 5? 8B ?? ?? E8 ?? ?? ?? ?? EB } + $block_14 = { 8B ?? ?? ?? ?? ?? 0F B7 ?? ?? ?? ?? ?? 5? FF 1? ?? ?? ?? ?? 0F B7 ?? 83 ?? ?? 0F 85 } + $block_15 = { 6A ?? 8D ?? ?? 5? 8D ?? ?? 5? E8 ?? ?? ?? ?? 83 ?? ?? 0F B6 ?? ?? 3D ?? ?? ?? ?? 74 } + $block_16 = { 68 ?? ?? ?? ?? 8B ?? ?? E8 ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 83 ?? ?? ?? ?? ?? ?? 0F 84 } + $block_17 = { E8 ?? ?? ?? ?? 99 B9 ?? ?? ?? ?? F7 ?? 89 ?? ?? E8 ?? ?? ?? ?? 25 ?? ?? ?? ?? 79 } + $block_18 = { 8B ?? ?? ?? ?? ?? 8B ?? ?? 5? 5? 33 ?? 5? E8 ?? ?? ?? ?? 81 C? ?? ?? ?? ?? C9 C3 } + $block_19 = { 8B ?? ?? 89 ?? ?? 8B ?? ?? 8B ?? 89 ?? ?? 8B ?? ?? 33 ?? 83 ?? ?? ?? 0F 94 ?? 88 } + $block_20 = { 8D ?? ?? ?? ?? ?? 5? E8 ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 83 ?? ?? ?? ?? ?? ?? 0F 84 } + $block_21 = { 8B ?? ?? ?? ?? ?? 8A ?? ?? 5? 5? 33 ?? 5? E8 ?? ?? ?? ?? 81 C? ?? ?? ?? ?? C9 C3 } + $block_22 = { 8B ?? ?? ?? ?? ?? 89 ?? ?? 8B ?? ?? 5? E8 ?? ?? ?? ?? 89 ?? ?? 83 ?? ?? ?? 0F 84 } + $block_23 = { 0F B7 ?? ?? 8B ?? ?? 8B ?? ?? ?? ?? ?? 0F BE ?? ?? 0F BE ?? ?? ?? ?? ?? 3B ?? 75 } + $block_24 = { 8B ?? ?? ?? ?? ?? 5? 5? 8A ?? 33 ?? 5? E8 ?? ?? ?? ?? 81 C? ?? ?? ?? ?? C9 C3 } + $block_25 = { 8B ?? ?? 8B ?? ?? ?? ?? ?? 5? E8 ?? ?? ?? ?? 83 ?? ?? 3D ?? ?? ?? ?? 0F 86 } + $block_26 = { 8B ?? ?? 89 ?? ?? 8B ?? ?? 83 ?? ?? 89 ?? ?? 8B ?? ?? 0F B7 ?? 83 ?? ?? 74 } + $block_27 = { 0F B7 ?? ?? 8B ?? ?? 8B ?? ?? ?? ?? ?? 5? E8 ?? ?? ?? ?? 83 ?? ?? 3B ?? 73 } + $block_28 = { 8B ?? ?? 0F B7 ?? ?? ?? ?? ?? 8B ?? ?? 8B ?? ?? ?? ?? ?? 83 ?? ?? 3B ?? 73 } + $block_29 = { 8B ?? ?? ?? ?? ?? 0F B7 ?? 5? FF 1? ?? ?? ?? ?? 0F B7 ?? 83 ?? ?? 0F 85 } + $block_30 = { 5? 8B ?? 83 ?? ?? A1 ?? ?? ?? ?? 33 ?? 89 ?? ?? 5? 5? 83 ?? ?? ?? 0F 84 } + $block_31 = { 8B ?? ?? ?? ?? ?? 0F B7 ?? 5? FF 1? ?? ?? ?? ?? 0F B7 ?? 83 ?? ?? 0F 84 } + $block_32 = { 8B ?? ?? ?? ?? ?? 5? 5? 33 ?? 5? E8 ?? ?? ?? ?? 81 C? ?? ?? ?? ?? C9 C3 } + $block_33 = { 8B ?? ?? 8B ?? ?? ?? ?? ?? 5? E8 ?? ?? ?? ?? 83 ?? ?? 83 ?? ?? 0F 86 } + $block_34 = { 8B ?? ?? ?? ?? ?? 0F B7 ?? 5? FF 1? ?? ?? ?? ?? 0F B7 ?? 83 ?? ?? 75 } + $block_35 = { A1 ?? ?? ?? ?? 0F B7 ?? 5? FF 1? ?? ?? ?? ?? 0F B7 ?? 83 ?? ?? 0F 85 } + $block_36 = { 5? 8B ?? 5? 5? 33 ?? 5? 8B ?? ?? C7 ?? ?? ?? ?? ?? ?? 39 ?? ?? 0F 84 } + $block_37 = { 8B ?? ?? 8B ?? ?? ?? ?? ?? 0F BE ?? 0F BE ?? ?? ?? ?? ?? 3B ?? 75 } + $block_38 = { FF 1? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 0F B6 ?? ?? ?? ?? ?? 85 ?? 74 } + $block_39 = { A1 ?? ?? ?? ?? 0F B7 ?? 5? FF 1? ?? ?? ?? ?? 0F B7 ?? 83 ?? ?? 75 } + $block_40 = { 8D ?? ?? 5? 8B ?? ?? 5? E8 ?? ?? ?? ?? 89 ?? ?? 83 ?? ?? ?? 0F 85 } + $block_41 = { 68 ?? ?? ?? ?? 8D ?? ?? 5? 5? E8 ?? ?? ?? ?? 83 ?? ?? 85 ?? 0F 85 } + $block_42 = { 5? 8B ?? 83 ?? ?? A1 ?? ?? ?? ?? 33 ?? 89 ?? ?? 83 ?? ?? ?? 0F 84 } + $block_43 = { E8 ?? ?? ?? ?? C7 ?? ?? ?? ?? ?? 8B ?? ?? 0F BE ?? 85 ?? 0F 84 } + $block_44 = { 68 ?? ?? ?? ?? 8B ?? ?? 5? E8 ?? ?? ?? ?? 83 ?? ?? 85 ?? 0F 84 } + $block_45 = { 8B ?? ?? ?? ?? ?? E8 ?? ?? ?? ?? 89 ?? ?? 83 ?? ?? ?? 0F 85 } + $block_46 = { 68 ?? ?? ?? ?? 68 ?? ?? ?? ?? FF 1? ?? ?? ?? ?? 85 ?? 0F 84 } + $block_47 = { 8B ?? ?? 0F B7 ?? ?? ?? ?? ?? 8B ?? ?? 3B ?? ?? ?? ?? ?? 73 } + $block_48 = { 8B ?? ?? 5? 8B ?? ?? 5? 8D ?? ?? E8 ?? ?? ?? ?? 85 ?? 0F 84 } + $block_49 = { 8B ?? ?? ?? ?? ?? 2B ?? ?? ?? ?? ?? 81 F? ?? ?? ?? ?? 0F 82 } + $block_50 = { 8D ?? ?? ?? ?? ?? E8 ?? ?? ?? ?? 39 ?? ?? ?? ?? ?? 0F 83 } + $block_51 = { 5? 8B ?? 83 ?? ?? 89 ?? ?? C6 ?? ?? ?? 83 ?? ?? ?? 0F 84 } + $block_52 = { 8D ?? ?? ?? ?? ?? 5? E8 ?? ?? ?? ?? 83 ?? ?? 85 ?? 0F 85 } + $block_53 = { 8B ?? ?? 5? FF 1? ?? ?? ?? ?? 89 ?? ?? 83 ?? ?? ?? 0F 84 } + $block_54 = { 0F B7 ?? ?? 5? 8B ?? ?? E8 ?? ?? ?? ?? 0F B6 ?? 85 ?? 74 } + $block_55 = { 8D ?? ?? E8 ?? ?? ?? ?? 0F BF ?? 0F BF ?? ?? 3B ?? 75 } + $block_56 = { 8B ?? ?? 89 ?? ?? ?? ?? ?? 83 ?? ?? ?? ?? ?? ?? 0F 84 } + $block_57 = { 8B ?? ?? ?? ?? ?? 81 B? ?? ?? ?? ?? ?? ?? ?? ?? 0F 8E } + $block_58 = { 8D ?? ?? ?? ?? ?? E8 ?? ?? ?? ?? 0F B6 ?? 85 ?? 0F 85 } + $block_59 = { 8B ?? ?? ?? ?? ?? 0F B6 ?? ?? 81 F? ?? ?? ?? ?? 0F 8D } + $block_60 = { 8B ?? ?? 83 ?? ?? E8 ?? ?? ?? ?? 0F B6 ?? ?? 85 ?? 74 } + $block_61 = { 8B ?? ?? 5? 5? 33 ?? 5? E8 ?? ?? ?? ?? 83 ?? ?? C9 C2 } + $block_62 = { 8B ?? ?? E8 ?? ?? ?? ?? 89 ?? ?? 83 ?? ?? ?? 0F 85 } + $block_63 = { 8B ?? ?? 5? 5? 8B ?? 33 ?? 5? E8 ?? ?? ?? ?? C9 C3 } + $block_64 = { 8B ?? ?? ?? ?? ?? 8B ?? ?? 3B ?? ?? ?? ?? ?? 0F 87 } + $block_65 = { 8B ?? ?? 8B ?? ?? 8B ?? 3B ?? ?? ?? ?? ?? 0F 85 } + $block_66 = { 8B ?? ?? 8B ?? 5? 33 ?? 5? E8 ?? ?? ?? ?? C9 C3 } + $block_67 = { 8B ?? ?? 83 ?? ?? 33 ?? 83 ?? ?? 39 ?? ?? 0F 87 } + $block_68 = { 8B ?? ?? ?? ?? ?? 0F B7 ?? ?? ?? ?? ?? 85 ?? 75 } + $block_69 = { 8B ?? ?? 5? 8A ?? 33 ?? 5? E8 ?? ?? ?? ?? C9 C3 } + $block_70 = { 8B ?? ?? E8 ?? ?? ?? ?? 0F B6 ?? ?? 85 ?? 0F 84 } + $block_71 = { 8B ?? ?? 8B ?? ?? 83 ?? ?? 89 ?? ?? 85 ?? 0F 84 } + + condition: + hash.sha256(0, filesize) == "4240d4239a0bdc43581dc73e875b03653ad40d1380fa12e0359305b38c13b474" or + 12 of them +} + +rule RedOctoberPluginDASvcInstall { + meta: + Author = "Intezer Analyze" + Reference = "https://apt-ecosystem.com" + + strings: + $block_0 = { 0F B6 ?? ?? 0F B6 ?? 8A ?? ?? 4? 88 ?? ?? 88 ?? ?? 99 F7 ?? ?? FF 4? ?? 81 7? ?? ?? ?? ?? ?? 7C } + $block_1 = { 68 ?? ?? ?? ?? 8B ?? ?? 69 ?? ?? ?? ?? ?? 8D ?? ?? ?? ?? ?? ?? 5? FF 1? ?? ?? ?? ?? 85 ?? 0F 84 } + $block_2 = { 0F B6 ?? ?? 0F BE ?? ?? ?? ?? ?? 5? 0F B6 ?? 0F BE ?? ?? ?? ?? ?? 5? 68 ?? ?? ?? ?? 5? FF D? 83 } + $block_3 = { 68 ?? ?? ?? ?? 6A ?? 8D ?? ?? ?? ?? ?? 5? E8 ?? ?? ?? ?? 83 ?? ?? 8B ?? ?? 0F BE ?? 83 ?? ?? 74 } + $block_4 = { 8D ?? ?? ?? ?? ?? 5? 68 ?? ?? ?? ?? 8B ?? ?? 5? FF 1? ?? ?? ?? ?? 89 ?? ?? 83 ?? ?? ?? 0F 85 } + $block_5 = { 83 ?? ?? 33 ?? 6A ?? 5? 8B ?? F7 ?? 0F 90 ?? F7 ?? 0B ?? 5? E8 ?? ?? ?? ?? 8B ?? 5? 85 ?? 74 } + $block_6 = { 8B ?? ?? 5? 8B ?? ?? 5? E8 ?? ?? ?? ?? 83 ?? ?? 89 ?? ?? ?? ?? ?? 83 ?? ?? ?? ?? ?? ?? 0F 84 } + $block_7 = { 5? 8B ?? 5? 5? 8B ?? ?? 8A ?? ?? ?? ?? ?? 8A ?? ?? ?? ?? ?? 5? 33 ?? 89 ?? ?? 39 ?? ?? 0F 8E } + $block_8 = { 8B ?? ?? 8B ?? ?? 0F B6 ?? 0F B6 ?? ?? 0F B6 ?? ?? 03 ?? 03 ?? 81 E? ?? ?? ?? ?? 79 } + $block_9 = { 8B ?? ?? ?? ?? ?? 8B ?? ?? 5? 5? 33 ?? 5? E8 ?? ?? ?? ?? 81 C? ?? ?? ?? ?? C9 C3 } + $block_10 = { 8B ?? ?? ?? ?? ?? 8A ?? ?? 5? 5? 33 ?? 5? E8 ?? ?? ?? ?? 81 C? ?? ?? ?? ?? C9 C3 } + $block_11 = { 8B ?? ?? ?? ?? ?? 5? 5? 8A ?? 33 ?? 5? E8 ?? ?? ?? ?? 81 C? ?? ?? ?? ?? C9 C3 } + $block_12 = { 8B ?? ?? ?? ?? ?? 5? 5? 33 ?? 5? E8 ?? ?? ?? ?? 81 C? ?? ?? ?? ?? C9 C3 } + $block_13 = { 5? 8B ?? 5? 5? 33 ?? 5? 8B ?? ?? C7 ?? ?? ?? ?? ?? ?? 39 ?? ?? 0F 84 } + $block_14 = { 68 ?? ?? ?? ?? 8D ?? ?? 5? 5? E8 ?? ?? ?? ?? 83 ?? ?? 85 ?? 0F 85 } + $block_15 = { 88 ?? ?? 0F B6 ?? 8A ?? ?? 0F B6 ?? 03 ?? 81 E? ?? ?? ?? ?? 79 } + $block_16 = { 8B ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 83 ?? ?? ?? ?? ?? ?? 0F 84 } + $block_17 = { 8B ?? ?? 5? 8B ?? ?? 5? 8D ?? ?? E8 ?? ?? ?? ?? 85 ?? 0F 84 } + $block_18 = { 5? 8B ?? 83 ?? ?? 89 ?? ?? C6 ?? ?? ?? 83 ?? ?? ?? 0F 84 } + $block_19 = { 0F B6 ?? 8A ?? ?? 30 ?? 8B ?? ?? 4? 89 ?? ?? 3B ?? ?? 7C } + $block_20 = { 5? 5? 5? 33 ?? 89 ?? ?? ?? 89 ?? ?? ?? 39 ?? ?? ?? 0F 84 } + $block_21 = { 5? 8B ?? ?? ?? ?? ?? 5? 5? FF 7? ?? ?? FF D? 3B ?? 0F 84 } + $block_22 = { 8B ?? ?? 5? 5? 8B ?? 33 ?? 5? E8 ?? ?? ?? ?? C9 C3 } + $block_23 = { 8B ?? ?? 8B ?? ?? 5? 33 ?? 5? E8 ?? ?? ?? ?? C9 C3 } + $block_24 = { 8B ?? ?? E8 ?? ?? ?? ?? 0F B6 ?? ?? 85 ?? 0F 84 } + $block_25 = { 8B ?? ?? 83 ?? ?? 33 ?? 83 ?? ?? 39 ?? ?? 0F 87 } + $block_26 = { 8B ?? ?? 0F B6 ?? 5? FF 1? ?? ?? ?? ?? 85 ?? 74 } + $block_27 = { 8B ?? ?? 8B ?? ?? 83 ?? ?? 89 ?? ?? 85 ?? 0F 84 } + $block_28 = { 8B ?? ?? 0F B6 ?? 5? FF 1? ?? ?? ?? ?? 85 ?? 75 } + + condition: + hash.sha256(0, filesize) == "ae5bd9750738afef22568a3400a876e5bfefb4fe1d24e8badef97c756c9056ca" or + 12 of them +} + +rule RedOctoberPluginAdobeBDInstaller { + meta: + Author = "Intezer Analyze" + Reference = "https://apt-ecosystem.com" + + strings: + $block_0 = { 0F B6 ?? ?? 0F BE ?? ?? ?? ?? ?? 5? 0F B6 ?? 0F BE ?? ?? ?? ?? ?? 5? 68 ?? ?? ?? ?? 5? FF D? 83 } + $block_1 = { 83 ?? ?? 33 ?? 6A ?? 5? 8B ?? F7 ?? 0F 90 ?? F7 ?? 0B ?? 5? E8 ?? ?? ?? ?? 8B ?? 5? 85 ?? 74 } + $block_2 = { 8D ?? ?? ?? ?? ?? 5? 8B ?? ?? ?? ?? ?? 5? E8 ?? ?? ?? ?? 83 ?? ?? 0F B6 ?? 85 ?? 0F 84 } + $block_3 = { 8B ?? ?? ?? ?? ?? 8A ?? ?? 5? 5? 33 ?? 5? E8 ?? ?? ?? ?? 81 C? ?? ?? ?? ?? C9 C3 } + $block_4 = { 8B ?? ?? ?? ?? ?? 8B ?? ?? 5? 5? 33 ?? 5? E8 ?? ?? ?? ?? 81 C? ?? ?? ?? ?? C9 C3 } + $block_5 = { 8B ?? ?? ?? ?? ?? 5? 5? 8A ?? 33 ?? 5? E8 ?? ?? ?? ?? 81 C? ?? ?? ?? ?? C9 C3 } + $block_6 = { 8B ?? ?? ?? ?? ?? 5? 5? 33 ?? 5? E8 ?? ?? ?? ?? 81 C? ?? ?? ?? ?? C9 C3 } + $block_7 = { 5? 8B ?? 5? 5? 33 ?? 5? 8B ?? ?? C7 ?? ?? ?? ?? ?? ?? 39 ?? ?? 0F 84 } + $block_8 = { 68 ?? ?? ?? ?? 8D ?? ?? 5? 5? E8 ?? ?? ?? ?? 83 ?? ?? 85 ?? 0F 85 } + $block_9 = { 8B ?? ?? 5? 8B ?? ?? 5? 8D ?? ?? E8 ?? ?? ?? ?? 85 ?? 0F 84 } + $block_10 = { 5? 8B ?? 83 ?? ?? 89 ?? ?? C6 ?? ?? ?? 83 ?? ?? ?? 0F 84 } + $block_11 = { 5? 5? 5? 33 ?? 89 ?? ?? ?? 89 ?? ?? ?? 39 ?? ?? ?? 0F 84 } + $block_12 = { 5? 8B ?? ?? ?? ?? ?? 5? 5? FF 7? ?? ?? FF D? 3B ?? 0F 84 } + $block_13 = { 8B ?? ?? 5? 5? 8B ?? 33 ?? 5? E8 ?? ?? ?? ?? C9 C3 } + $block_14 = { 8B ?? ?? 83 ?? ?? 33 ?? 83 ?? ?? 39 ?? ?? 0F 87 } + $block_15 = { 8B ?? ?? E8 ?? ?? ?? ?? 0F B6 ?? ?? 85 ?? 0F 84 } + $block_16 = { 8B ?? ?? 8B ?? ?? 83 ?? ?? 89 ?? ?? 85 ?? 0F 84 } + + condition: + hash.sha256(0, filesize) == "feb0166bf33745d7d065d4815022b5d76ff6a5b999181aa719bf5e72f8328f23" or + 12 of them +} + +rule RedOctoberPluginFrogbackdoor { + meta: + Author = "Intezer Analyze" + Reference = "https://apt-ecosystem.com" + + strings: + $block_0 = { 0F B6 ?? ?? 0F B6 ?? 8A ?? ?? 4? 88 ?? ?? 88 ?? ?? 99 F7 ?? ?? FF 4? ?? 81 7? ?? ?? ?? ?? ?? 7C } + $block_1 = { 5? 8D ?? ?? 33 ?? 6A ?? 5? 8B ?? F7 ?? 0F 90 ?? F7 ?? 0B ?? 5? E8 ?? ?? ?? ?? 8B ?? 5? 85 ?? 74 } + $block_2 = { 8B ?? E8 ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 5? 5? 33 ?? 5? E8 ?? ?? ?? ?? 81 C? ?? ?? ?? ?? C9 C2 } + $block_3 = { 83 ?? ?? 33 ?? 6A ?? 5? 8B ?? F7 ?? 0F 90 ?? F7 ?? 0B ?? 5? E8 ?? ?? ?? ?? 8B ?? 5? 85 ?? 74 } + $block_4 = { 5? 8B ?? 5? 5? 8B ?? ?? 8A ?? ?? ?? ?? ?? 8A ?? ?? ?? ?? ?? 5? 33 ?? 89 ?? ?? 39 ?? ?? 0F 8E } + $block_5 = { 6A ?? 5? 5? 6A ?? 6A ?? 6A ?? FF 1? ?? ?? ?? ?? 8B ?? 89 ?? ?? ?? ?? ?? 83 ?? ?? 0F 84 } + $block_6 = { 8B ?? ?? 8B ?? ?? 0F B6 ?? 0F B6 ?? ?? 0F B6 ?? ?? 03 ?? 03 ?? 81 E? ?? ?? ?? ?? 79 } + $block_7 = { 8B ?? ?? ?? ?? ?? 8A ?? ?? 5? 5? 33 ?? 5? E8 ?? ?? ?? ?? 81 C? ?? ?? ?? ?? C9 C3 } + $block_8 = { 8B ?? ?? ?? ?? ?? 8B ?? ?? 5? 5? 33 ?? 5? E8 ?? ?? ?? ?? 81 C? ?? ?? ?? ?? C9 C3 } + $block_9 = { 5? 8B ?? 83 ?? ?? 89 ?? ?? C6 ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? 83 ?? ?? ?? 0F 84 } + $block_10 = { 8B ?? ?? ?? ?? ?? 5? 5? 8A ?? 33 ?? 5? E8 ?? ?? ?? ?? 81 C? ?? ?? ?? ?? C9 C3 } + $block_11 = { 8B ?? ?? ?? ?? ?? 5? 5? 33 ?? 5? E8 ?? ?? ?? ?? 81 C? ?? ?? ?? ?? C9 C2 } + $block_12 = { 8B ?? ?? ?? ?? ?? 5? 5? 33 ?? 5? E8 ?? ?? ?? ?? 81 C? ?? ?? ?? ?? C9 C3 } + $block_13 = { 5? 8B ?? 5? 5? 33 ?? 5? 8B ?? ?? C7 ?? ?? ?? ?? ?? ?? 39 ?? ?? 0F 84 } + $block_14 = { 8B ?? ?? ?? ?? ?? 5? FF D? 4? 5? E8 ?? ?? ?? ?? 8B ?? 5? 85 ?? 0F 84 } + $block_15 = { 0F B7 ?? ?? 83 ?? ?? ?? 89 ?? ?? 0F B7 ?? ?? 8D ?? ?? ?? 85 ?? 7E } + $block_16 = { 68 ?? ?? ?? ?? 8D ?? ?? 5? 5? E8 ?? ?? ?? ?? 83 ?? ?? 85 ?? 0F 85 } + $block_17 = { 88 ?? ?? 0F B6 ?? 8A ?? ?? 0F B6 ?? 03 ?? 81 E? ?? ?? ?? ?? 79 } + $block_18 = { 5? 8D ?? ?? 5? 6A ?? 68 ?? ?? ?? ?? E8 ?? ?? ?? ?? 85 ?? 0F 84 } + $block_19 = { 5? 5? 5? 6A ?? 6A ?? 8D ?? ?? 5? FF D? 89 ?? ?? 83 ?? ?? 0F 85 } + $block_20 = { 0F B6 ?? 8A ?? ?? 30 ?? 8B ?? ?? 4? 89 ?? ?? 3B ?? ?? 7C } + $block_21 = { 5? 5? 5? 33 ?? 89 ?? ?? ?? 89 ?? ?? ?? 39 ?? ?? ?? 0F 84 } + $block_22 = { 5? 8B ?? ?? ?? ?? ?? 5? 5? FF 7? ?? ?? FF D? 3B ?? 0F 84 } + $block_23 = { 8D ?? ?? 5? 68 ?? ?? ?? ?? E8 ?? ?? ?? ?? 85 ?? 0F 85 } + $block_24 = { 8B ?? ?? 8A ?? ?? 5? 33 ?? 5? E8 ?? ?? ?? ?? C9 C3 } + $block_25 = { 8B ?? ?? 33 ?? 5? 33 ?? 4? 5? E8 ?? ?? ?? ?? C9 C3 } + $block_26 = { 8B ?? ?? 5? 5? 8B ?? 33 ?? 5? E8 ?? ?? ?? ?? C9 C3 } + $block_27 = { 8B ?? ?? 5? 33 ?? 32 ?? 5? E8 ?? ?? ?? ?? C9 C3 } + + condition: + hash.sha256(0, filesize) == "79cf65316806b8e30ef0baaa14bf891720fd17578e9789f199084ff5f522014b" or + 12 of them +} + +rule RedOctoberPluginCredentialStealing { + meta: + Author = "Intezer Analyze" + Reference = "https://apt-ecosystem.com" + + strings: + $block_0 = { 8B ?? 5? 5? 5? FF 0? ?? ?? ?? ?? B9 ?? ?? ?? ?? A3 ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? BE ?? ?? ?? ?? 8B ?? 89 ?? ?? ?? ?? ?? 03 ?? ?? ?? ?? ?? 8B ?? 8B ?? ?? ?? ?? ?? 03 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 4? 89 ?? ?? ?? ?? ?? FF 0? ?? ?? ?? ?? 03 ?? ?? ?? ?? ?? A1 ?? ?? ?? ?? 8B ?? 89 ?? ?? ?? ?? ?? 8B ?? 2B ?? ?? ?? ?? ?? FF 0? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 8B ?? 8B ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 8B ?? 8B ?? BB ?? ?? ?? ?? 8B ?? 8B ?? BF ?? ?? ?? ?? BF ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 8B ?? 8B ?? ?? ?? ?? ?? 03 ?? ?? ?? ?? ?? A3 ?? ?? ?? ?? 68 ?? ?? ?? ?? B8 ?? ?? ?? ?? 8B ?? 03 ?? ?? ?? ?? ?? FF 0? ?? ?? ?? ?? 03 ?? ?? ?? ?? ?? BB ?? ?? ?? ?? BB ?? ?? ?? ?? B8 ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 4? 89 ?? ?? ?? ?? ?? 03 ?? ?? ?? ?? ?? 8B ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 2B ?? ?? ?? ?? ?? 8B ?? 89 ?? ?? ?? ?? ?? 8B ?? 89 ?? ?? ?? ?? ?? B9 ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? A3 ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 2B ?? ?? ?? ?? ?? A3 ?? ?? ?? ?? BE ?? ?? ?? ?? A3 ?? ?? ?? ?? 8B ?? A3 ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 8B ?? 8B ?? ?? ?? ?? ?? 03 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 4? A3 ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 8B ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 8B ?? BE ?? ?? ?? ?? 8B ?? E8 ?? ?? ?? ?? BB ?? ?? ?? ?? BE ?? ?? ?? ?? 8B ?? BB ?? ?? ?? ?? 03 ?? ?? ?? ?? ?? BF ?? ?? ?? ?? BE ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? FF 0? ?? ?? ?? ?? 8B ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 8B ?? BA ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? FF 0? ?? ?? ?? ?? 2B ?? ?? ?? ?? ?? BB ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 8B ?? 8B ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 03 ?? ?? ?? ?? ?? 4? 8B ?? 8B ?? B9 ?? ?? ?? ?? 8B ?? 8B ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 4? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 8B ?? 89 ?? ?? ?? ?? ?? 4? 8B ?? 8B ?? ?? ?? ?? ?? 8B ?? 8B ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 8B ?? 68 ?? ?? ?? ?? B9 ?? ?? ?? ?? 8B ?? 8B ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 4? 4? 89 ?? ?? ?? ?? ?? 4? 8B ?? ?? ?? ?? ?? 4? FF 0? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? B9 ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 2B ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 8B ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 03 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? BE ?? ?? ?? ?? 8B ?? 8B ?? ?? ?? ?? ?? 8B ?? FF D? 8B ?? BB ?? ?? ?? ?? BE ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? FF 0? ?? ?? ?? ?? 03 ?? ?? ?? ?? ?? 8B ?? FF 0? ?? ?? ?? ?? FF 0? ?? ?? ?? ?? 8B ?? 03 ?? ?? ?? ?? ?? 8B ?? 8B ?? 8B ?? BF ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? A3 ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? BB ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? BF ?? ?? ?? ?? 8B ?? 2B ?? ?? ?? ?? ?? FF 0? ?? ?? ?? ?? A1 ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? FF 0? ?? ?? ?? ?? B9 ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? BF ?? ?? ?? ?? 8B ?? 89 ?? ?? ?? ?? ?? BB ?? ?? ?? ?? BE ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 8B ?? 8B ?? 8B ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 8B ?? 8B ?? 89 ?? ?? ?? ?? ?? BB ?? ?? ?? ?? 8B ?? A3 ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? B9 ?? ?? ?? ?? BB ?? ?? ?? ?? 4? 4? 68 ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 4? 4? FF 0? ?? ?? ?? ?? 4? A3 ?? ?? ?? ?? BF ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? A3 ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? A3 ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 8B ?? 8B ?? ?? ?? ?? ?? 2B ?? ?? ?? ?? ?? 2B ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 8B ?? 8B ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 8B ?? A1 ?? ?? ?? ?? B9 ?? ?? ?? ?? 4? A1 ?? ?? ?? ?? 4? 2B ?? ?? ?? ?? ?? A3 ?? ?? ?? ?? B9 ?? ?? ?? ?? 8B ?? 89 ?? ?? ?? ?? ?? 03 ?? ?? ?? ?? ?? 8B ?? 8B ?? 8B ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 8B ?? BB ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 8B ?? BA ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? A3 ?? ?? ?? ?? 8B ?? BF ?? ?? ?? ?? BA ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? BF ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? BE ?? ?? ?? ?? 8B ?? 89 ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? BB ?? ?? ?? ?? B8 ?? ?? ?? ?? BB ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? BF ?? ?? ?? ?? 2B ?? ?? ?? ?? ?? A3 ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? A3 ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? A3 ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 8B ?? 89 ?? ?? ?? ?? ?? 03 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? A1 ?? ?? ?? ?? A1 ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? B9 ?? ?? ?? ?? B9 ?? ?? ?? ?? 2B ?? ?? ?? ?? ?? E8 ?? ?? ?? ?? 4? 8B ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 8B ?? 8B ?? BB ?? ?? ?? ?? B9 ?? ?? ?? ?? BE ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 8B ?? 8B ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 4? 89 ?? ?? ?? ?? ?? FF 0? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? FF 0? ?? ?? ?? ?? 4? 89 ?? ?? ?? ?? ?? 8B ?? 8B ?? 4? BB ?? ?? ?? ?? B9 ?? ?? ?? ?? 03 ?? ?? ?? ?? ?? 4? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 8B ?? BE ?? ?? ?? ?? B9 ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? BE ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 8B ?? 8B ?? ?? ?? ?? ?? BA ?? ?? ?? ?? 03 ?? ?? ?? ?? ?? FF 0? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? BF ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 8B ?? FF 0? ?? ?? ?? ?? 8B ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? FF 0? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? FF 0? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? FF 0? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 8B ?? 03 ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? BE ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 8B ?? 8B ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 4? 03 ?? ?? ?? ?? ?? 8B ?? 4? 89 ?? ?? ?? ?? ?? 8B ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 2B ?? ?? ?? ?? ?? 8B ?? 89 ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 8B ?? 89 ?? ?? ?? ?? ?? FF D? BA ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 03 ?? ?? ?? ?? ?? 8B ?? B9 ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? BA ?? ?? ?? ?? 8B ?? BE ?? ?? ?? ?? FF 0? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? BF ?? ?? ?? ?? 03 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? B9 ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 8B ?? 8B ?? 8B ?? 89 ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? FF 0? ?? ?? ?? ?? 03 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 8B ?? 8B ?? 89 ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 4? 8B ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 03 ?? ?? ?? ?? ?? 4? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? BA ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 8B ?? 4? 89 ?? ?? ?? ?? ?? 8B ?? 89 ?? ?? ?? ?? ?? BA ?? ?? ?? ?? 8B ?? 8B ?? ?? ?? ?? ?? 2B ?? ?? ?? ?? ?? 03 ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 8B ?? 89 ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 8B ?? 8B ?? ?? ?? ?? ?? 8B ?? 89 ?? ?? ?? ?? ?? 8B ?? 8B ?? 8B ?? 4? 8B ?? FF 0? ?? ?? ?? ?? 4? 89 ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? BB ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? FF 0? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? FF 0? ?? ?? ?? ?? 03 ?? ?? ?? ?? ?? 8B ?? 03 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 03 ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? B9 ?? ?? ?? ?? 8B ?? 8B ?? ?? ?? ?? ?? 8B ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? BF ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 8B ?? 8B ?? 89 ?? ?? ?? ?? ?? 4? 8B ?? ?? ?? ?? ?? 0B ?? 0F 84 } + $block_1 = { 8B ?? 5? 5? 5? 03 ?? ?? ?? ?? ?? B8 ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? A1 ?? ?? ?? ?? 8B ?? B8 ?? ?? ?? ?? 8B ?? 4? BF ?? ?? ?? ?? 4? A3 ?? ?? ?? ?? FF 0? ?? ?? ?? ?? 8B ?? B9 ?? ?? ?? ?? 4? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 2B ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 8B ?? BF ?? ?? ?? ?? 2B ?? ?? ?? ?? ?? 8B ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 8B ?? 8B ?? ?? ?? ?? ?? BA ?? ?? ?? ?? 8B ?? A1 ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? A1 ?? ?? ?? ?? 68 ?? ?? ?? ?? 8B ?? BA ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 03 ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 2B ?? ?? ?? ?? ?? FF 0? ?? ?? ?? ?? FF 0? ?? ?? ?? ?? 4? BF ?? ?? ?? ?? 4? 4? 89 ?? ?? ?? ?? ?? A1 ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? BE ?? ?? ?? ?? 03 ?? ?? ?? ?? ?? 8B ?? 89 ?? ?? ?? ?? ?? 03 ?? ?? ?? ?? ?? FF 0? ?? ?? ?? ?? 8B ?? A1 ?? ?? ?? ?? 8B ?? 8B ?? ?? ?? ?? ?? 2B ?? ?? ?? ?? ?? 8B ?? 8B ?? 8B ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? A3 ?? ?? ?? ?? 03 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? A1 ?? ?? ?? ?? E8 ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 8B ?? 2B ?? ?? ?? ?? ?? 2B ?? ?? ?? ?? ?? B9 ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 8B ?? 4? B9 ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 03 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 2B ?? ?? ?? ?? ?? BF ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? BA ?? ?? ?? ?? 8B ?? 89 ?? ?? ?? ?? ?? BB ?? ?? ?? ?? BE ?? ?? ?? ?? 8B ?? BE ?? ?? ?? ?? BF ?? ?? ?? ?? 8B ?? 8B ?? 8B ?? BB ?? ?? ?? ?? BE ?? ?? ?? ?? 68 ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 8B ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? BF ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? BA ?? ?? ?? ?? 8B ?? 8B ?? BF ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? BA ?? ?? ?? ?? BB ?? ?? ?? ?? 8B ?? 89 ?? ?? ?? ?? ?? BA ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 03 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 2B ?? ?? ?? ?? ?? FF 0? ?? ?? ?? ?? BE ?? ?? ?? ?? FF 0? ?? ?? ?? ?? 8B ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? BA ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? FF D? FF 0? ?? ?? ?? ?? 2B ?? ?? ?? ?? ?? A3 ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? BB ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 8B ?? BB ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 8B ?? 89 ?? ?? ?? ?? ?? A1 ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? BF ?? ?? ?? ?? A3 ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? FF 0? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? B8 ?? ?? ?? ?? 8B ?? B8 ?? ?? ?? ?? BE ?? ?? ?? ?? FF 0? ?? ?? ?? ?? 03 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? A1 ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? B9 ?? ?? ?? ?? 2B ?? ?? ?? ?? ?? A1 ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 03 ?? ?? ?? ?? ?? 8B ?? 03 ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? B9 ?? ?? ?? ?? 8B ?? BE ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 03 ?? ?? ?? ?? ?? BE ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? BB ?? ?? ?? ?? 8B ?? 2B ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 8B ?? 2B ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? A3 ?? ?? ?? ?? 68 ?? ?? ?? ?? 8B ?? 89 ?? ?? ?? ?? ?? 2B ?? ?? ?? ?? ?? A3 ?? ?? ?? ?? BE ?? ?? ?? ?? 8B ?? 89 ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? BF ?? ?? ?? ?? 8B ?? 2B ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 2B ?? ?? ?? ?? ?? B8 ?? ?? ?? ?? A3 ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 2B ?? ?? ?? ?? ?? A3 ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 03 ?? ?? ?? ?? ?? 8B ?? 8B ?? ?? ?? ?? ?? BE ?? ?? ?? ?? BE ?? ?? ?? ?? BB ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 8B ?? A3 ?? ?? ?? ?? A3 ?? ?? ?? ?? A3 ?? ?? ?? ?? 03 ?? ?? ?? ?? ?? 4? 8B ?? 03 ?? ?? ?? ?? ?? A3 ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? BF ?? ?? ?? ?? BE ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? FF 0? ?? ?? ?? ?? B8 ?? ?? ?? ?? 2B ?? ?? ?? ?? ?? 8B ?? 89 ?? ?? ?? ?? ?? 8B ?? B9 ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 8B ?? 89 ?? ?? ?? ?? ?? BF ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 8B ?? 89 ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? B8 ?? ?? ?? ?? A1 ?? ?? ?? ?? 2B ?? ?? ?? ?? ?? BA ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? FF 0? ?? ?? ?? ?? A3 ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 4? 8B ?? A3 ?? ?? ?? ?? B8 ?? ?? ?? ?? B9 ?? ?? ?? ?? 2B ?? ?? ?? ?? ?? B9 ?? ?? ?? ?? B9 ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? A3 ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 8B ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? B9 ?? ?? ?? ?? E8 ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? BB ?? ?? ?? ?? 8B ?? BE ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? BA ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? BF ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 03 ?? ?? ?? ?? ?? 03 ?? ?? ?? ?? ?? 8B ?? 89 ?? ?? ?? ?? ?? 2B ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? BF ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 8B ?? 89 ?? ?? ?? ?? ?? 4? 8B ?? 8B ?? 89 ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 8B ?? 89 ?? ?? ?? ?? ?? 8B ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? BB ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? BB ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 03 ?? ?? ?? ?? ?? 8B ?? 8B ?? 89 ?? ?? ?? ?? ?? BE ?? ?? ?? ?? BF ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 2B ?? ?? ?? ?? ?? FF 0? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? BA ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 8B ?? 8B ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? BB ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? BB ?? ?? ?? ?? BB ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? BA ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? BF ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? BE ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 8B ?? 89 ?? ?? ?? ?? ?? 03 ?? ?? ?? ?? ?? 2B ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 8B ?? BF ?? ?? ?? ?? BB ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 2B ?? ?? ?? ?? ?? B9 ?? ?? ?? ?? BA ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 8B ?? 8B ?? 89 ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? BE ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 4? 8B ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 8B ?? 8B ?? ?? ?? ?? ?? FF D? 8B ?? 4? 89 ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? B9 ?? ?? ?? ?? 8B ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? BA ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? BF ?? ?? ?? ?? 8B ?? 8B ?? 89 ?? ?? ?? ?? ?? 4? 8B ?? 8B ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 03 ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? FF 0? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 8B ?? BF ?? ?? ?? ?? 8B ?? 8B ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 2B ?? ?? ?? ?? ?? 4? 89 ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 8B ?? 89 ?? ?? ?? ?? ?? 8B ?? 8B ?? 8B ?? ?? ?? ?? ?? 03 ?? ?? ?? ?? ?? 03 ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 2B ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 03 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? BA ?? ?? ?? ?? 8B ?? 4? BB ?? ?? ?? ?? 03 ?? ?? ?? ?? ?? FF 0? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 2B ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? BF ?? ?? ?? ?? 8B ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? BB ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? BE ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 0B ?? 0F 84 } + $block_2 = { 8B ?? 5? 8B ?? 5? 03 ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? A3 ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? A3 ?? ?? ?? ?? A1 ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? A3 ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? BB ?? ?? ?? ?? 2B ?? ?? ?? ?? ?? BF ?? ?? ?? ?? B9 ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? BE ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 03 ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 2B ?? ?? ?? ?? ?? A3 ?? ?? ?? ?? 8B ?? 89 ?? ?? ?? ?? ?? 8B ?? 8B ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? B8 ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 03 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 8B ?? FF 0? ?? ?? ?? ?? FF 0? ?? ?? ?? ?? 8B ?? B9 ?? ?? ?? ?? BB ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? BB ?? ?? ?? ?? 8B ?? ?? 89 ?? ?? ?? ?? ?? 8B ?? 89 ?? ?? ?? ?? ?? 2B ?? ?? ?? ?? ?? 8B ?? 8B ?? 8B ?? BA ?? ?? ?? ?? 8B ?? 8B ?? 8B ?? ?? ?? ?? ?? BF ?? ?? ?? ?? FF 0? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 4? 8B ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 4? 8B ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? BB ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? BA ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? FF 0? ?? ?? ?? ?? B9 ?? ?? ?? ?? 8B ?? BF ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? BF ?? ?? ?? ?? 03 ?? ?? ?? ?? ?? 8B ?? 89 ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? B9 ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 2B ?? ?? ?? ?? ?? 8B ?? 03 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 03 ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? BB ?? ?? ?? ?? 8B ?? BE ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 8B ?? ?? FF 0? ?? ?? ?? ?? 8B ?? 2B ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? BB ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 8B ?? 2B ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 4? 89 ?? ?? ?? ?? ?? 8B ?? BA ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? BF ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 8B ?? BA ?? ?? ?? ?? BB ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? FF 0? ?? ?? ?? ?? 8B ?? 8B ?? BB ?? ?? ?? ?? 4? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? FF 0? ?? ?? ?? ?? 8B ?? 89 ?? ?? ?? ?? ?? 8B ?? 03 ?? ?? ?? ?? ?? 8B ?? BA ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? BE ?? ?? ?? ?? BF ?? ?? ?? ?? 8B ?? 8B ?? ?? ?? ?? ?? BE ?? ?? ?? ?? BE ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 83 ?? ?? BB ?? ?? ?? ?? 8B ?? BF ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 8B ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 8B ?? 89 ?? ?? ?? ?? ?? 4? BB ?? ?? ?? ?? 4? 2B ?? ?? ?? ?? ?? BE ?? ?? ?? ?? 4? 8B ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 8B ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? BE ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 8B ?? 8B ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 8B ?? 89 ?? ?? ?? ?? ?? 8B ?? 8B ?? 89 ?? ?? ?? ?? ?? 8B ?? 2B ?? ?? ?? ?? ?? 8B ?? 4? 89 ?? ?? ?? ?? ?? 2B ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 8B ?? 89 ?? ?? ?? ?? ?? BA ?? ?? ?? ?? 8B ?? 8B ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 4? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? BE ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 2B ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? BE ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 85 ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? FF 0? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? BE ?? ?? ?? ?? BE ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? BB ?? ?? ?? ?? BA ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? BB ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 2B ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? BA ?? ?? ?? ?? BF ?? ?? ?? ?? 8B ?? 8B ?? 8B ?? BF ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? BB ?? ?? ?? ?? FF 0? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 03 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 8B ?? 4? 89 ?? ?? ?? ?? ?? 2B ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? FF 0? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? FF 0? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 8B ?? 89 ?? ?? ?? ?? ?? 8B ?? 8B ?? ?? ?? ?? ?? BF ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? BA ?? ?? ?? ?? 8B ?? ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 03 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 8B ?? 2B ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 8B ?? FF 0? ?? ?? ?? ?? FF 0? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 03 ?? ?? ?? ?? ?? BF ?? ?? ?? ?? 2B ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? BA ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 8B ?? 89 ?? ?? ?? ?? ?? 2B ?? ?? ?? ?? ?? 8B ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? BF ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 8B ?? FF 0? ?? ?? ?? ?? BB ?? ?? ?? ?? 03 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? BA ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? FF 0? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 8B ?? FF 0? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 0F 84 } + $block_3 = { 8B ?? 03 ?? ?? ?? ?? ?? BB ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 8B ?? BB ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 2B ?? ?? ?? ?? ?? 8B ?? 8B ?? 89 ?? ?? ?? ?? ?? 03 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 8B ?? 8B ?? BF ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 8B ?? 8B ?? 8B ?? BB ?? ?? ?? ?? BF ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? BE ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 03 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? BB ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 8B ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? FF 0? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 8B ?? 4? 8B ?? BB ?? ?? ?? ?? 8A ?? 89 ?? ?? ?? ?? ?? BF ?? ?? ?? ?? FF 0? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 8B ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 4? 89 ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? FF 0? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? BB ?? ?? ?? ?? BB ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 8B ?? 8B ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? BE ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? FF 0? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? BF ?? ?? ?? ?? BF ?? ?? ?? ?? 4? 89 ?? ?? ?? ?? ?? 4? 8B ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 4? 32 ?? 4? 8B ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 8B ?? 89 ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 8B ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? BF ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? BE ?? ?? ?? ?? BB ?? ?? ?? ?? BE ?? ?? ?? ?? BF ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? FF 0? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? BF ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 8B ?? FF 0? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 8B ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? BF ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 88 ?? 8B ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 8B ?? BF ?? ?? ?? ?? 2B ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? BF ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 4? 8B ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 8B ?? FF 0? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? BF ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? BB ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 2B ?? ?? ?? ?? ?? BE ?? ?? ?? ?? BB ?? ?? ?? ?? 03 ?? ?? ?? ?? ?? 8B ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 4? 8B ?? ?? ?? ?? ?? FF 0? ?? ?? ?? ?? BE ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 8B ?? 8B ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 8B ?? BE ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 8B ?? 89 ?? ?? ?? ?? ?? BB ?? ?? ?? ?? 4? 89 ?? ?? ?? ?? ?? 03 ?? ?? ?? ?? ?? BE ?? ?? ?? ?? 8B ?? 89 ?? ?? ?? ?? ?? BB ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 8B ?? 8B ?? 8B ?? 89 ?? ?? ?? ?? ?? 03 ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? FF 0? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 8B ?? 89 ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? FF 0? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 8B ?? 03 ?? ?? ?? ?? ?? BE ?? ?? ?? ?? BE ?? ?? ?? ?? 8B ?? 8B ?? 89 ?? ?? ?? ?? ?? BF ?? ?? ?? ?? BF ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 4? 89 ?? ?? ?? ?? ?? BB ?? ?? ?? ?? BB ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 2B ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 8B ?? 89 ?? ?? ?? ?? ?? BF ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 8B ?? 4? BF ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 4? FF 0? ?? ?? ?? ?? 4? 8B ?? BE ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? FF 0? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? BE ?? ?? ?? ?? 8B ?? 2B ?? ?? ?? ?? ?? FF 0? ?? ?? ?? ?? 8B ?? BB ?? ?? ?? ?? 0B ?? 0F 85 } + $block_4 = { 8B ?? BB ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? BA ?? ?? ?? ?? FF 0? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 4? BF ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 2B ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? BA ?? ?? ?? ?? 03 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? FF 0? ?? ?? ?? ?? 32 ?? 89 ?? ?? ?? ?? ?? FF 0? ?? ?? ?? ?? BF ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 4? 8B ?? ?? ?? ?? ?? BA ?? ?? ?? ?? BB ?? ?? ?? ?? 8B ?? BF ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? BA ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 8B ?? 8B ?? ?? ?? ?? ?? 8B ?? 4? 8B ?? ?? ?? ?? ?? BB ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 0F B6 ?? 8B ?? 8B ?? ?? ?? ?? ?? FF 0? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? BF ?? ?? ?? ?? 8B ?? FF 0? ?? ?? ?? ?? BB ?? ?? ?? ?? BB ?? ?? ?? ?? 8B ?? 8B ?? 8B ?? ?? ?? ?? ?? 03 ?? ?? ?? ?? ?? BF ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? BB ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 8B ?? BF ?? ?? ?? ?? BF ?? ?? ?? ?? 2B ?? ?? ?? ?? ?? C1 ?? ?? 2B ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 03 ?? ?? ?? ?? ?? 03 ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 8B ?? BB ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 8B ?? 8B ?? 89 ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 2B ?? ?? ?? ?? ?? BB ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? BB ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 8B ?? 89 ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? ?? 8B ?? 8B ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 8B ?? 8B ?? 89 ?? ?? ?? ?? ?? 8B ?? 8B ?? BB ?? ?? ?? ?? BB ?? ?? ?? ?? BF ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 8B ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 8B ?? 89 ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? BF ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 4? 8B ?? ?? ?? ?? ?? FF 0? ?? ?? ?? ?? 03 ?? ?? ?? ?? ?? 2B ?? ?? ?? ?? ?? 8B ?? BF ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? FF 0? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? FF 0? ?? ?? ?? ?? 2B ?? ?? ?? ?? ?? 4? BF ?? ?? ?? ?? BB ?? ?? ?? ?? 4? 8B ?? 03 ?? ?? ?? ?? ?? BB ?? ?? ?? ?? FF 0? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 2B ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 03 ?? ?? ?? ?? ?? BB ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 33 ?? BB ?? ?? ?? ?? 4? 8B ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 2B ?? ?? ?? ?? ?? BA ?? ?? ?? ?? FF 0? ?? ?? ?? ?? BB ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 8B ?? BF ?? ?? ?? ?? BB ?? ?? ?? ?? BB ?? ?? ?? ?? 8B ?? 2B ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? BA ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 4? 0F 85 } + $block_5 = { 8B ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 4? 89 ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 4? 2B ?? ?? ?? ?? ?? BF ?? ?? ?? ?? BE ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? A1 ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 8B ?? 8B ?? ?? ?? ?? ?? BB ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? BA ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 8B ?? A3 ?? ?? ?? ?? A3 ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 8B ?? 8B ?? A1 ?? ?? ?? ?? BF ?? ?? ?? ?? 8B ?? 8B ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 8B ?? 89 ?? ?? ?? ?? ?? 4? 8B ?? 8B ?? 8B ?? BF ?? ?? ?? ?? 2B ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? BE ?? ?? ?? ?? A3 ?? ?? ?? ?? BE ?? ?? ?? ?? BA ?? ?? ?? ?? 2B ?? ?? ?? ?? ?? A3 ?? ?? ?? ?? B8 ?? ?? ?? ?? BE ?? ?? ?? ?? 03 ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? B8 ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 8B ?? 2B ?? ?? ?? ?? ?? FF 0? ?? ?? ?? ?? 81 F? ?? ?? ?? ?? 0F 85 } + $block_6 = { 83 ?? ?? 8B ?? ?? ?? ?? ?? 2B ?? ?? ?? ?? ?? FF 0? ?? ?? ?? ?? 03 ?? ?? ?? ?? ?? FF 0? ?? ?? ?? ?? B9 ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 2B ?? ?? ?? ?? ?? 8B ?? B9 ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? BE ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 8B ?? 89 ?? ?? ?? ?? ?? BB ?? ?? ?? ?? 8B ?? 8B ?? 89 ?? ?? ?? ?? ?? 2B ?? ?? ?? ?? ?? BE ?? ?? ?? ?? B9 ?? ?? ?? ?? 8B ?? 89 ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? B9 ?? ?? ?? ?? 8B ?? 8B ?? 89 ?? ?? ?? ?? ?? 8B ?? 8B ?? BB ?? ?? ?? ?? 8B ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 8B ?? BF ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 4? B9 ?? ?? ?? ?? 4? BE ?? ?? ?? ?? 8B ?? 2B ?? ?? ?? ?? ?? 8B ?? FF 0? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 5? C9 C2 } + $block_7 = { B8 ?? ?? ?? ?? 03 ?? ?? ?? ?? ?? 03 ?? ?? ?? ?? ?? BB ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 8B ?? A3 ?? ?? ?? ?? BA ?? ?? ?? ?? 2B ?? ?? ?? ?? ?? 8B ?? 8B ?? BE ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 2B ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 4? 89 ?? ?? ?? ?? ?? 4? 4? 89 ?? ?? ?? ?? ?? BE ?? ?? ?? ?? 8B ?? 8B ?? 4? 8B ?? BB ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? BA ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? BA ?? ?? ?? ?? FF 0? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? BB ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? FF 0? ?? ?? ?? ?? BE ?? ?? ?? ?? 03 ?? ?? ?? ?? ?? 8B ?? 8B ?? 2B ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 8B ?? 4? 81 F? ?? ?? ?? ?? 0F 85 } + $block_8 = { 4? 00 ?? ?? 4? 5? 33 ?? 2E ?? 4? 4? 00 ?? 01 ?? 03 ?? ?? ?? ?? ?? ?? 0A ?? 0C ?? 0E 0F 10 ?? 12 ?? 14 ?? 16 17 18 ?? 1A ?? 1C ?? 1E 1F 20 ?? 22 ?? 24 ?? 26 ?? 28 ?? 2A ?? 2C ?? 2E ?? 30 ?? 32 ?? 34 ?? 36 ?? 38 ?? 3A ?? 3C ?? 3E ?? 4? 4? 4? 4? 4? 4? 4? 4? 4? 4? 4? 4? 4? 4? 4? 4? 5? 5? 5? 5? 5? 5? 5? 5? 5? 5? 5? 5? 5? 5? 5? 5? 60 61 62 ?? ?? 65 ?? ?? ?? ?? ?? 6B ?? ?? ?? ?? 70 } + $block_9 = { 14 ?? 16 17 18 ?? 1A ?? 1C ?? 1E 1F 20 ?? 22 ?? 24 ?? 26 ?? 28 ?? 2A ?? 2C ?? 2E ?? 30 ?? 32 ?? 34 ?? 36 ?? 38 ?? 3A ?? 3C ?? 3E ?? 4? 4? 4? 4? 4? 4? 4? 4? 4? 4? 4? 4? 4? 4? 4? 4? 5? 5? 5? 5? 5? 5? 5? 5? 5? 5? 5? 5? 5? 5? 5? 5? 60 61 62 ?? ?? 65 ?? ?? ?? ?? ?? 6B ?? ?? ?? ?? 70 } + + condition: + hash.sha256(0, filesize) == "2378ad529852c05da10c15e4b3fda00c4a818bef463a20c03e6330150bd4df21" or + hash.sha256(0, filesize) == "5d6c6c542ca29d9c756b9f440863152f4c8c5f1ddb5732b0adbca82074a2a4c0" or + hash.sha256(0, filesize) == "5e9de30527a893d114330b48b90c49bcc4c6e00bfbfd6a473a48f70c8ef6aa0b" or + hash.sha256(0, filesize) == "80f47c05bae10b97d298bf6aaacc0906c05fd0b77275543bc8c4f9bf8ff60a59" or + 10 of them +} + +rule RedOctoberPluginGetFileReg { + meta: + Author = "Intezer Analyze" + Reference = "https://apt-ecosystem.com" + + strings: + $block_0 = { 8B ?? ?? 0F B6 ?? 8B ?? ?? 0F B6 ?? ?? 8D ?? ?? 8A ?? 0F B6 ?? 03 ?? 03 ?? 81 E? ?? ?? ?? ?? 79 } + $block_1 = { 0F B6 ?? ?? 8B ?? ?? ?? 83 ?? ?? 83 ?? ?? D3 ?? 83 ?? ?? 89 ?? ?? ?? 0B ?? 8B ?? ?? ?? 3B ?? 7E } + $block_2 = { 8B ?? 0F B6 ?? 69 ?? ?? ?? ?? ?? 8D ?? ?? 03 ?? 33 ?? 81 C? ?? ?? ?? ?? 4? 89 ?? 80 3? ?? 75 } + $block_3 = { 8B ?? ?? ?? 8B ?? ?? 8B ?? ?? 85 ?? 89 ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? ?? 89 ?? ?? ?? 0F 8E } + $block_4 = { 8B ?? ?? ?? 2B ?? ?? ?? 8B ?? ?? ?? 8B ?? ?? 0F AF ?? 5? 8D ?? ?? 5? 5? E8 ?? ?? ?? ?? 83 } + $block_5 = { 33 ?? 83 ?? ?? 0F 95 ?? 5? 83 ?? ?? 83 ?? ?? 03 ?? 5? E8 ?? ?? ?? ?? 83 ?? ?? 85 ?? 0F 8C } + $block_6 = { 5? E8 ?? ?? ?? ?? 8B ?? ?? ?? 5? E8 ?? ?? ?? ?? 8B ?? ?? ?? 8B ?? 83 ?? ?? 85 ?? 0F 85 } + $block_7 = { 8B ?? ?? 5? 5? 8D ?? ?? E8 ?? ?? ?? ?? 8D ?? ?? 5? 8D ?? ?? E8 ?? ?? ?? ?? 84 ?? 0F 84 } + $block_8 = { 5? 8B ?? 83 ?? ?? 5? 8B ?? ?? 33 ?? 5? 5? 89 ?? ?? 89 ?? ?? 89 ?? ?? 3B ?? 0F 84 } + $block_9 = { 8B ?? ?? ?? ?? ?? ?? 0F B6 ?? ?? 83 ?? ?? 83 ?? ?? D3 ?? 83 ?? ?? 0B ?? 3B ?? 7E } + $block_10 = { 8B ?? ?? ?? 8B ?? ?? 83 ?? ?? 89 ?? ?? ?? 0F B6 ?? F6 ?? ?? ?? 89 ?? ?? ?? 74 } + $block_11 = { 8D ?? ?? ?? ?? ?? 5? FF 1? ?? ?? ?? ?? 33 ?? 83 ?? ?? 0F 95 ?? 89 ?? 8B } + $block_12 = { 8B ?? ?? ?? ?? ?? 5? 5? 33 ?? 5? E8 ?? ?? ?? ?? 81 C? ?? ?? ?? ?? C9 C3 } + $block_13 = { 8D ?? ?? E8 ?? ?? ?? ?? 8D ?? ?? 5? 8D ?? ?? E8 ?? ?? ?? ?? 84 ?? 0F 84 } + $block_14 = { 8B ?? ?? ?? ?? ?? 33 ?? 4? 5? E8 ?? ?? ?? ?? 81 C? ?? ?? ?? ?? C9 C3 } + $block_15 = { 5? 8B ?? 5? 5? 83 ?? ?? ?? 83 ?? ?? ?? 5? 8B ?? ?? 5? 5? 85 ?? 0F 84 } + $block_16 = { 8B ?? ?? ?? ?? ?? 5? 33 ?? 5? E8 ?? ?? ?? ?? 81 C? ?? ?? ?? ?? C9 C3 } + $block_17 = { 8B ?? ?? ?? ?? ?? 5? 33 ?? 5? E8 ?? ?? ?? ?? 81 C? ?? ?? ?? ?? C9 C2 } + $block_18 = { 0F B6 ?? 8A ?? ?? 8B ?? ?? 30 ?? FF 4? ?? 8B ?? ?? 3B ?? ?? 0F 8C } + $block_19 = { 5? E8 ?? ?? ?? ?? 5? E8 ?? ?? ?? ?? 8B ?? ?? 5? 5? 5? 5? 5? C9 C3 } + $block_20 = { 8B ?? ?? ?? ?? ?? 33 ?? 5? E8 ?? ?? ?? ?? 81 C? ?? ?? ?? ?? C9 C3 } + $block_21 = { 8D ?? ?? ?? ?? ?? ?? 8D ?? ?? 8B ?? ?? ?? ?? ?? ?? 3B ?? ?? 0F 83 } + $block_22 = { 8B ?? ?? ?? ?? ?? 33 ?? E8 ?? ?? ?? ?? 81 C? ?? ?? ?? ?? C9 C3 } + $block_23 = { 83 ?? ?? 8B ?? ?? ?? 89 ?? ?? ?? 8B ?? ?? ?? 89 ?? ?? ?? 0F 85 } + $block_24 = { 0F B6 ?? ?? 0F B6 ?? ?? C1 ?? ?? C1 ?? ?? 0B ?? 83 ?? ?? 0F B6 } + $block_25 = { 6A ?? 68 ?? ?? ?? ?? 5? E8 ?? ?? ?? ?? 83 ?? ?? 85 ?? 0F 85 } + $block_26 = { 8D ?? ?? ?? ?? ?? ?? 8D ?? ?? ?? 0F B6 ?? ?? ?? ?? ?? FF 2? } + $block_27 = { 8B ?? ?? ?? 03 ?? 83 ?? ?? 89 ?? ?? ?? 89 ?? ?? ?? 0F 89 } + $block_28 = { 8D ?? ?? ?? ?? ?? ?? 9? 3B ?? ?? ?? BA ?? ?? ?? ?? 0F 83 } + $block_29 = { 0F B6 ?? 8A ?? ?? 0F B6 ?? 03 ?? 81 E? ?? ?? ?? ?? 79 } + $block_30 = { 8B ?? ?? 5? 33 ?? 5? 33 ?? 4? 5? E8 ?? ?? ?? ?? C9 C3 } + $block_31 = { 5? 5? 5? 5? E8 ?? ?? ?? ?? 8B ?? 83 ?? ?? 85 ?? 0F 84 } + $block_32 = { 68 ?? ?? ?? ?? E8 ?? ?? ?? ?? 5? 89 ?? ?? 85 ?? 0F 84 } + $block_33 = { 33 ?? 3C ?? 0F 94 ?? BB ?? ?? ?? ?? 89 ?? ?? ?? E9 } + $block_34 = { 8B ?? ?? ?? ?? ?? 23 ?? ?? ?? ?? ?? 83 ?? ?? 0F 84 } + $block_35 = { 39 ?? ?? ?? 8B ?? ?? ?? 89 ?? ?? ?? 0F B6 ?? 0F 84 } + $block_36 = { 5? E8 ?? ?? ?? ?? 8D ?? ?? ?? 5? 66 ?? ?? 0F 85 } + $block_37 = { 0F B6 ?? ?? 8D ?? ?? B1 ?? 84 ?? ?? ?? ?? ?? 74 } + $block_38 = { 33 ?? 39 ?? ?? ?? 0F 9D ?? 03 ?? 3B ?? ?? ?? 76 } + $block_39 = { 5? 5? E8 ?? ?? ?? ?? 8B ?? 83 ?? ?? 85 ?? 0F 84 } + + condition: + hash.sha256(0, filesize) == "6ce873a31d527fc123bed28841737cb201b0cb5f347e0e530dda34a7b62c1f5e" or + 12 of them +} + +rule RedOctoberPluginSystemInfo { + meta: + Author = "Intezer Analyze" + Reference = "https://apt-ecosystem.com" + + strings: + $block_0 = { 8B ?? ?? ?? 5? 89 ?? ?? 89 ?? ?? 89 ?? ?? 89 ?? E8 ?? ?? ?? ?? 8B ?? 83 ?? ?? 83 ?? ?? 0F 84 } + $block_1 = { C7 ?? ?? ?? ?? ?? ?? ?? ?? ?? 8B ?? 5? E8 ?? ?? ?? ?? 83 ?? ?? 83 ?? ?? ?? ?? ?? ?? 0F 84 } + $block_2 = { 5? 83 ?? ?? ?? ?? 8B ?? ?? ?? 5? 5? 8B ?? ?? ?? C7 ?? ?? ?? ?? ?? C7 ?? ?? ?? ?? ?? 0F 84 } + $block_3 = { 5? 5? 8B ?? 5? 8B ?? 33 ?? E8 ?? ?? ?? ?? 8B ?? 8B ?? E8 ?? ?? ?? ?? 8B ?? 85 ?? 0F 8E } + $block_4 = { 8B ?? BF ?? ?? ?? ?? E8 ?? ?? ?? ?? 8B ?? 83 ?? ?? B9 ?? ?? ?? ?? 33 ?? F3 ?? 0F 84 } + $block_5 = { 68 ?? ?? ?? ?? 8B ?? E8 ?? ?? ?? ?? 8B ?? ?? ?? 2B ?? 85 ?? 89 ?? ?? ?? 0F 8F } + $block_6 = { 8B ?? 5? E8 ?? ?? ?? ?? 83 ?? ?? E8 ?? ?? ?? ?? 83 ?? ?? 89 ?? ?? ?? 0F 84 } + $block_7 = { 0F B6 ?? ?? 0F B6 ?? ?? 03 ?? C1 ?? ?? 03 ?? 0B ?? 83 ?? ?? 0F B6 } + $block_8 = { 5? E8 ?? ?? ?? ?? 5? E8 ?? ?? ?? ?? 8B ?? 83 ?? ?? 85 ?? 0F 85 } + $block_9 = { 5? 8A ?? ?? 8D ?? ?? 0F B6 ?? 8B ?? 83 ?? ?? 89 ?? ?? ?? 0F 84 } + $block_10 = { 8B ?? ?? ?? 2B ?? 8B ?? 33 ?? 2B ?? 85 ?? 89 ?? ?? ?? 0F 8E } + $block_11 = { 8B ?? ?? ?? 3B ?? 89 ?? ?? 89 ?? ?? 89 ?? ?? 89 ?? 0F 84 } + $block_12 = { 8D ?? ?? ?? 5? 68 ?? ?? ?? ?? E8 ?? ?? ?? ?? 85 ?? 0F 85 } + $block_13 = { 5? 5? 5? 5? E8 ?? ?? ?? ?? 8B ?? 83 ?? ?? 85 ?? 0F 84 } + $block_14 = { 5? 8B ?? E8 ?? ?? ?? ?? A1 ?? ?? ?? ?? 0F B6 ?? 5? } + $block_15 = { 8B ?? E8 ?? ?? ?? ?? 83 ?? ?? 83 ?? ?? 85 ?? 0F 8F } + $block_16 = { 5? 5? E8 ?? ?? ?? ?? 8B ?? 83 ?? ?? 85 ?? 0F 84 } + + condition: + hash.sha256(0, filesize) == "ad768f49895c295086ad289804f25d16710231446ffdd82b3b9e6e92c237825a" or + 12 of them +} + +rule RedOctoberPluginInternetConnectivity { + meta: + Author = "Intezer Analyze" + Reference = "https://apt-ecosystem.com" + + strings: + $block_0 = { 5? 8B ?? 81 E? ?? ?? ?? ?? A1 ?? ?? ?? ?? 33 ?? 89 ?? ?? C6 ?? ?? ?? ?? ?? ?? 83 ?? ?? ?? 0F 84 } + $block_1 = { 0F B6 ?? ?? 0F BE ?? ?? ?? ?? ?? 5? 0F B6 ?? 0F BE ?? ?? ?? ?? ?? 5? 68 ?? ?? ?? ?? 5? FF D? 83 } + $block_2 = { 83 ?? ?? 33 ?? 6A ?? 5? 8B ?? F7 ?? 0F 90 ?? F7 ?? 0B ?? 5? E8 ?? ?? ?? ?? 8B ?? 5? 85 ?? 74 } + $block_3 = { 8B ?? ?? ?? ?? ?? 8A ?? ?? 5? 5? 33 ?? 5? E8 ?? ?? ?? ?? 81 C? ?? ?? ?? ?? C9 C3 } + $block_4 = { 8B ?? ?? ?? ?? ?? 8B ?? ?? 5? 5? 33 ?? 5? E8 ?? ?? ?? ?? 81 C? ?? ?? ?? ?? C9 C3 } + $block_5 = { 8B ?? ?? ?? ?? ?? 5? 5? 8A ?? 33 ?? 5? E8 ?? ?? ?? ?? 81 C? ?? ?? ?? ?? C9 C3 } + $block_6 = { 8B ?? ?? ?? ?? ?? 5? 5? 33 ?? 5? E8 ?? ?? ?? ?? 81 C? ?? ?? ?? ?? C9 C3 } + $block_7 = { 5? 8B ?? 5? 5? 33 ?? 5? 8B ?? ?? C7 ?? ?? ?? ?? ?? ?? 39 ?? ?? 0F 84 } + $block_8 = { 68 ?? ?? ?? ?? 8B ?? ?? E8 ?? ?? ?? ?? 89 ?? ?? 83 ?? ?? ?? 0F 84 } + $block_9 = { 68 ?? ?? ?? ?? 8D ?? ?? 5? 5? E8 ?? ?? ?? ?? 83 ?? ?? 85 ?? 0F 85 } + $block_10 = { 8B ?? ?? 5? 8B ?? ?? 5? 8D ?? ?? E8 ?? ?? ?? ?? 85 ?? 0F 84 } + $block_11 = { 5? 8B ?? 83 ?? ?? 89 ?? ?? C6 ?? ?? ?? 83 ?? ?? ?? 0F 84 } + $block_12 = { 8B ?? ?? 5? 5? 8B ?? 33 ?? 5? E8 ?? ?? ?? ?? C9 C3 } + $block_13 = { 8B ?? ?? E8 ?? ?? ?? ?? 0F B6 ?? ?? 85 ?? 0F 84 } + $block_14 = { 8B ?? ?? 83 ?? ?? 33 ?? 83 ?? ?? 39 ?? ?? 0F 87 } + $block_15 = { 8B ?? ?? 8B ?? ?? 83 ?? ?? 89 ?? ?? 85 ?? 0F 84 } + + condition: + hash.sha256(0, filesize) == "5a3684d67f5dd4bca879f376e086476dbd27689bd1c1daa6acbbde339fb6ccca" or + 12 of them +} + +rule RedOctoberPluginFileputexec { + meta: + Author = "Intezer Analyze" + Reference = "https://apt-ecosystem.com" + + strings: + $block_0 = { 0F B6 ?? ?? 0F B6 ?? 8A ?? ?? 4? 88 ?? ?? 88 ?? ?? 99 F7 ?? ?? FF 4? ?? 81 7? ?? ?? ?? ?? ?? 7C } + $block_1 = { 68 ?? ?? ?? ?? 8B ?? ?? 69 ?? ?? ?? ?? ?? 8D ?? ?? ?? ?? ?? ?? 5? FF 1? ?? ?? ?? ?? 85 ?? 0F 84 } + $block_2 = { 0F B6 ?? ?? 0F BE ?? ?? ?? ?? ?? 5? 0F B6 ?? 0F BE ?? ?? ?? ?? ?? 5? 68 ?? ?? ?? ?? 5? FF D? 83 } + $block_3 = { 5? 8B ?? 5? 5? 8B ?? ?? 8A ?? ?? ?? ?? ?? 8A ?? ?? ?? ?? ?? 5? 33 ?? 89 ?? ?? 39 ?? ?? 0F 8E } + $block_4 = { 8D ?? ?? ?? ?? ?? 5? 68 ?? ?? ?? ?? 8B ?? ?? 5? FF 1? ?? ?? ?? ?? 89 ?? ?? 83 ?? ?? ?? 0F 85 } + $block_5 = { 83 ?? ?? 33 ?? 6A ?? 5? 8B ?? F7 ?? 0F 90 ?? F7 ?? 0B ?? 5? E8 ?? ?? ?? ?? 8B ?? 5? 85 ?? 74 } + $block_6 = { 8B ?? ?? ?? ?? ?? 5? 68 ?? ?? ?? ?? 8B ?? ?? E8 ?? ?? ?? ?? 89 ?? ?? 83 ?? ?? ?? 0F 84 } + $block_7 = { 8B ?? ?? 8B ?? ?? 0F B6 ?? 0F B6 ?? ?? 0F B6 ?? ?? 03 ?? 03 ?? 81 E? ?? ?? ?? ?? 79 } + $block_8 = { 8B ?? ?? ?? ?? ?? 8A ?? ?? 5? 5? 33 ?? 5? E8 ?? ?? ?? ?? 81 C? ?? ?? ?? ?? C9 C3 } + $block_9 = { 8B ?? ?? ?? ?? ?? 8B ?? ?? 5? 5? 33 ?? 5? E8 ?? ?? ?? ?? 81 C? ?? ?? ?? ?? C9 C3 } + $block_10 = { 8B ?? ?? ?? ?? ?? 5? 5? 8A ?? 33 ?? 5? E8 ?? ?? ?? ?? 81 C? ?? ?? ?? ?? C9 C3 } + $block_11 = { 8B ?? ?? ?? ?? ?? 5? 5? 33 ?? 5? E8 ?? ?? ?? ?? 81 C? ?? ?? ?? ?? C9 C3 } + $block_12 = { 5? 8B ?? 5? 5? 33 ?? 5? 8B ?? ?? C7 ?? ?? ?? ?? ?? ?? 39 ?? ?? 0F 84 } + $block_13 = { 68 ?? ?? ?? ?? 8D ?? ?? 5? 5? E8 ?? ?? ?? ?? 83 ?? ?? 85 ?? 0F 85 } + $block_14 = { 88 ?? ?? 0F B6 ?? 8A ?? ?? 0F B6 ?? 03 ?? 81 E? ?? ?? ?? ?? 79 } + $block_15 = { 8B ?? ?? 5? 8B ?? ?? 5? 8D ?? ?? E8 ?? ?? ?? ?? 85 ?? 0F 84 } + $block_16 = { 0F B6 ?? 8A ?? ?? 30 ?? 8B ?? ?? 4? 89 ?? ?? 3B ?? ?? 7C } + $block_17 = { 5? 5? 5? 33 ?? 89 ?? ?? ?? 89 ?? ?? ?? 39 ?? ?? ?? 0F 84 } + $block_18 = { 5? 8B ?? ?? ?? ?? ?? 5? 5? FF 7? ?? ?? FF D? 3B ?? 0F 84 } + $block_19 = { 5? 8B ?? 83 ?? ?? 89 ?? ?? C6 ?? ?? ?? 83 ?? ?? ?? 0F 84 } + $block_20 = { 8B ?? ?? 5? 5? 8B ?? 33 ?? 5? E8 ?? ?? ?? ?? C9 C3 } + $block_21 = { 8B ?? ?? 83 ?? ?? 33 ?? 83 ?? ?? 39 ?? ?? 0F 87 } + $block_22 = { 8B ?? ?? 0F B6 ?? 5? FF 1? ?? ?? ?? ?? 85 ?? 75 } + $block_23 = { 8B ?? ?? E8 ?? ?? ?? ?? 0F B6 ?? ?? 85 ?? 0F 84 } + $block_24 = { 8B ?? ?? 8B ?? ?? 83 ?? ?? 89 ?? ?? 85 ?? 0F 84 } + $block_25 = { 8B ?? ?? 0F B6 ?? 5? FF 1? ?? ?? ?? ?? 85 ?? 74 } + + condition: + hash.sha256(0, filesize) == "b596d4e58b5af33fb4380d4663454f4e3196d86e18390edb8c6f77485be8e7be" or + 12 of them +} + +rule RedOctoberPluginFileInfo { + meta: + Author = "Intezer Analyze" + Reference = "https://apt-ecosystem.com" + + strings: + $block_0 = { 68 ?? ?? ?? ?? 8B ?? ?? 69 ?? ?? ?? ?? ?? 8D ?? ?? ?? ?? ?? ?? 5? FF 1? ?? ?? ?? ?? 85 ?? 0F 84 } + $block_1 = { 0F B6 ?? ?? 0F B6 ?? 8A ?? ?? 4? 88 ?? ?? 88 ?? ?? 99 F7 ?? ?? FF 4? ?? 81 7? ?? ?? ?? ?? ?? 7C } + $block_2 = { 5? 8B ?? 83 ?? ?? A1 ?? ?? ?? ?? 33 ?? 89 ?? ?? 5? 5? 8B ?? ?? 33 ?? 33 ?? 89 ?? ?? 3B ?? 0F 84 } + $block_3 = { 6A ?? 68 ?? ?? ?? ?? 8D ?? ?? ?? ?? ?? E8 ?? ?? ?? ?? 5? E8 ?? ?? ?? ?? 83 ?? ?? 85 ?? 0F 85 } + $block_4 = { 8D ?? ?? 5? 8B ?? ?? 83 ?? ?? E8 ?? ?? ?? ?? 5? 8D ?? ?? E8 ?? ?? ?? ?? 0F B6 ?? 85 ?? 0F 84 } + $block_5 = { 8D ?? ?? ?? ?? ?? 5? 68 ?? ?? ?? ?? 8B ?? ?? 5? FF 1? ?? ?? ?? ?? 89 ?? ?? 83 ?? ?? ?? 0F 85 } + $block_6 = { 8B ?? ?? C1 ?? ?? 6A ?? 83 ?? ?? 5? FF 7? ?? 8B ?? 6A ?? E8 ?? ?? ?? ?? 83 ?? ?? 85 ?? 0F 88 } + $block_7 = { 5? 8B ?? 5? 5? 8B ?? ?? 8A ?? ?? ?? ?? ?? 8A ?? ?? ?? ?? ?? 5? 33 ?? 89 ?? ?? 39 ?? ?? 0F 8E } + $block_8 = { 8B ?? ?? 33 ?? 6A ?? 5? F7 ?? 0F 90 ?? F7 ?? 0B ?? 5? E8 ?? ?? ?? ?? 5? 89 ?? ?? 3B ?? 74 } + $block_9 = { 8D ?? ?? 5? 8B ?? ?? 83 ?? ?? E8 ?? ?? ?? ?? 5? 8D ?? ?? E8 ?? ?? ?? ?? 0F B6 ?? 85 ?? 74 } + $block_10 = { 8B ?? ?? 03 ?? ?? 0F B6 ?? 0F AF ?? ?? 03 ?? ?? 89 ?? ?? 8B ?? ?? C1 ?? ?? 89 ?? ?? EB } + $block_11 = { 0F B6 ?? ?? 0F B6 ?? ?? C1 ?? ?? 0B ?? 8D ?? ?? 89 ?? ?? 89 ?? ?? ?? ?? ?? 3B ?? ?? 7C } + $block_12 = { 0F B6 ?? ?? 0F B6 ?? ?? 83 ?? ?? ?? C1 ?? ?? 0B ?? 33 ?? 80 F? ?? 0F 94 ?? 89 ?? ?? EB } + $block_13 = { 8B ?? ?? 8B ?? ?? 0F B6 ?? 0F B6 ?? ?? 0F B6 ?? ?? 03 ?? 03 ?? 81 E? ?? ?? ?? ?? 79 } + $block_14 = { 8B ?? ?? 89 ?? ?? ?? ?? ?? 0F B6 ?? ?? 0F B6 ?? ?? C1 ?? ?? 0B ?? 03 ?? 80 3? ?? 74 } + $block_15 = { 8B ?? ?? 03 ?? ?? 89 ?? ?? 83 ?? ?? 5? FF 7? ?? E8 ?? ?? ?? ?? 5? 5? 85 ?? 0F 85 } + $block_16 = { 8B ?? ?? ?? ?? ?? 33 ?? 5? 33 ?? 4? 5? E8 ?? ?? ?? ?? 81 C? ?? ?? ?? ?? C9 C2 } + $block_17 = { 8D ?? ?? ?? ?? ?? ?? 0F B6 ?? 8A ?? ?? ?? ?? ?? 4? 88 ?? 3B ?? ?? ?? ?? ?? 75 } + $block_18 = { 8B ?? ?? ?? ?? ?? 8B ?? ?? 5? 33 ?? 5? E8 ?? ?? ?? ?? 81 C? ?? ?? ?? ?? C9 C3 } + $block_19 = { 8B ?? ?? ?? ?? ?? 8B ?? ?? 33 ?? 5? E8 ?? ?? ?? ?? 81 C? ?? ?? ?? ?? C9 C3 } + $block_20 = { 8B ?? ?? 8D ?? ?? 8A ?? 88 ?? ?? 0F B6 ?? 89 ?? ?? 8B ?? ?? F6 ?? ?? ?? 75 } + $block_21 = { 8B ?? ?? ?? ?? ?? 8B ?? ?? 33 ?? 5? E8 ?? ?? ?? ?? 81 C? ?? ?? ?? ?? C9 C2 } + $block_22 = { 0F B6 ?? 8B ?? 33 ?? 83 ?? ?? 4? D3 ?? 8B ?? ?? C1 ?? ?? 8A ?? ?? 84 ?? 74 } + $block_23 = { 0F B6 ?? 33 ?? 8B ?? 83 ?? ?? 4? D3 ?? 8B ?? ?? C1 ?? ?? 8A ?? ?? 84 ?? 75 } + $block_24 = { 33 ?? 5? FF 7? ?? FF 1? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 89 ?? ?? 3B ?? 0F 85 } + $block_25 = { 0F B6 ?? ?? 0F B6 ?? ?? C1 ?? ?? 0B ?? 03 ?? 83 ?? ?? 89 ?? ?? 3B ?? ?? 7D } + $block_26 = { 0F B6 ?? ?? 0F B6 ?? ?? C1 ?? ?? 0B ?? 8B ?? 2B ?? 80 3? ?? 89 ?? ?? 72 } + $block_27 = { 0F B6 ?? ?? 0F B6 ?? ?? C1 ?? ?? 0B ?? 2B ?? 89 ?? ?? B8 ?? ?? ?? ?? E9 } + $block_28 = { 0F B6 ?? ?? 0F B6 ?? ?? 8B ?? ?? C1 ?? ?? 0B ?? 03 ?? 89 ?? ?? 3B ?? 75 } + $block_29 = { 8B ?? ?? ?? ?? ?? 5? 5? 33 ?? 5? E8 ?? ?? ?? ?? 81 C? ?? ?? ?? ?? C9 C3 } + $block_30 = { 0F B6 ?? ?? 0F B6 ?? ?? C1 ?? ?? 0B ?? 89 ?? ?? 03 ?? 3B ?? ?? 0F 8C } + $block_31 = { 8B ?? ?? ?? ?? ?? 5? 33 ?? 5? E8 ?? ?? ?? ?? 81 C? ?? ?? ?? ?? C9 C3 } + $block_32 = { 8B ?? ?? ?? ?? ?? 5? 33 ?? 5? E8 ?? ?? ?? ?? 81 C? ?? ?? ?? ?? C9 C2 } + $block_33 = { 6A ?? 8B ?? ?? 83 ?? ?? 5? 8B ?? ?? E8 ?? ?? ?? ?? 0F B6 ?? 85 ?? 74 } + $block_34 = { 8B ?? ?? ?? ?? ?? 33 ?? 33 ?? E8 ?? ?? ?? ?? 81 C? ?? ?? ?? ?? C9 C2 } + $block_35 = { 5? 8B ?? 5? 5? 33 ?? 5? 8B ?? ?? C7 ?? ?? ?? ?? ?? ?? 39 ?? ?? 0F 84 } + $block_36 = { 8D ?? ?? ?? ?? ?? ?? 0F B6 ?? 8A ?? ?? ?? ?? ?? 4? 88 ?? 3B ?? 75 } + $block_37 = { 5? 8B ?? 81 E? ?? ?? ?? ?? 5? 5? 8B ?? ?? 8B ?? 5? 3B ?? ?? 0F 83 } + $block_38 = { 5? 8B ?? 8B ?? ?? 0F B6 ?? 0F B6 ?? ?? ?? ?? ?? 5? 5? 5? 03 ?? E9 } + $block_39 = { 8B ?? ?? 8D ?? ?? 8B ?? 99 2B ?? 33 ?? D1 ?? 4? 2B ?? 8D ?? ?? EB } + $block_40 = { 0F B6 ?? ?? 0F B6 ?? ?? C1 ?? ?? 0B ?? 80 7? ?? ?? 89 ?? ?? 0F 85 } + $block_41 = { 8B ?? ?? 0F B6 ?? ?? 33 ?? 89 ?? ?? 8B ?? ?? 4? 89 ?? ?? 3B ?? 7C } + $block_42 = { 8A ?? 83 ?? ?? ?? 83 ?? ?? ?? 0F B6 ?? 89 ?? ?? 83 ?? ?? 0F 87 } + $block_43 = { 8B ?? ?? 0F B6 ?? 0F B6 ?? ?? C1 ?? ?? 0B ?? 03 ?? 3B ?? ?? 7D } + $block_44 = { 6A ?? 8B ?? ?? 5? FF 1? ?? ?? ?? ?? 89 ?? ?? 83 ?? ?? ?? 0F 84 } + $block_45 = { 88 ?? ?? 0F B6 ?? 8A ?? ?? 0F B6 ?? 03 ?? 81 E? ?? ?? ?? ?? 79 } + $block_46 = { 8B ?? ?? 5? 6A ?? FF 1? ?? ?? ?? ?? 89 ?? ?? 83 ?? ?? ?? 0F 84 } + $block_47 = { 8B ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? E8 ?? ?? ?? ?? 85 ?? 0F 86 } + $block_48 = { 8B ?? ?? 8B ?? ?? 4? 89 ?? ?? 0F B6 ?? F6 ?? ?? ?? 89 ?? ?? 74 } + $block_49 = { 8B ?? ?? 89 ?? ?? ?? ?? ?? 8D ?? ?? ?? ?? ?? 39 ?? ?? 0F 84 } + $block_50 = { 6A ?? 6A ?? 33 ?? E8 ?? ?? ?? ?? 8B ?? 5? 5? 3B ?? ?? 0F 82 } + $block_51 = { 68 ?? ?? ?? ?? 8D ?? ?? 5? 5? FF 1? ?? ?? ?? ?? 85 ?? 0F 84 } + $block_52 = { 8B ?? ?? 83 ?? ?? 89 ?? ?? 8B ?? ?? 0F B7 ?? 83 ?? ?? 74 } + $block_53 = { 0F B6 ?? 8A ?? ?? 30 ?? 8B ?? ?? 4? 89 ?? ?? 3B ?? ?? 7C } + $block_54 = { 8B ?? 8B ?? ?? BA ?? ?? ?? ?? 2B ?? 8D ?? ?? 3B ?? 0F 8C } + $block_55 = { 5? 5? 5? 33 ?? 89 ?? ?? ?? 89 ?? ?? ?? 39 ?? ?? ?? 0F 84 } + $block_56 = { 5? 8B ?? ?? ?? ?? ?? 5? 5? FF 7? ?? ?? FF D? 3B ?? 0F 84 } + $block_57 = { 5? 8B ?? 83 ?? ?? 89 ?? ?? C6 ?? ?? ?? 83 ?? ?? ?? 0F 84 } + $block_58 = { 8B ?? ?? 8B ?? ?? 83 ?? ?? 33 ?? 5? E8 ?? ?? ?? ?? C9 C3 } + $block_59 = { 8B ?? ?? 8B ?? ?? 5? 5? 33 ?? 5? E8 ?? ?? ?? ?? C9 C2 } + $block_60 = { 6A ?? 5? 5? FF 7? ?? FF 1? ?? ?? ?? ?? 83 ?? ?? 0F 84 } + $block_61 = { 8B ?? ?? 0F BE ?? 5? E8 ?? ?? ?? ?? 83 ?? ?? 85 ?? 74 } + $block_62 = { 8B ?? 8B ?? 2B ?? ?? BE ?? ?? ?? ?? 2B ?? 3B ?? 0F 8C } + $block_63 = { 8B ?? ?? FF 4? ?? 89 ?? ?? 8B ?? ?? 3B ?? ?? 0F 8D } + $block_64 = { 8B ?? ?? 89 ?? ?? 8B ?? ?? 89 ?? ?? 83 ?? ?? 0F 85 } + $block_65 = { 8B ?? ?? 4? 89 ?? ?? 8A ?? 0F B6 ?? 83 ?? ?? 0F 8F } + $block_66 = { 8B ?? ?? 33 ?? 89 ?? ?? 39 ?? ?? ?? ?? ?? 0F 85 } + $block_67 = { 8B ?? ?? 0F B6 ?? 5? FF 1? ?? ?? ?? ?? 85 ?? 74 } + $block_68 = { 8B ?? ?? 8B ?? ?? 8B ?? ?? FF 0? 3B ?? ?? 0F 83 } + $block_69 = { 8B ?? ?? 0F B6 ?? 5? FF 1? ?? ?? ?? ?? 85 ?? 75 } + $block_70 = { 0F B6 ?? 0F B6 ?? ?? C1 ?? ?? 0B ?? 3B ?? ?? 74 } + + condition: + hash.sha256(0, filesize) == "c870d08388e2786bf97667bf381d8a88c2fd9f94b64dc8c5ba4b715d2a2088ab" or + 12 of them +} + +rule RedOctoberPluginMetasploit { + meta: + Author = "Intezer Analyze" + Reference = "https://apt-ecosystem.com" + + strings: + $block_0 = { 0F B6 ?? ?? 0F B6 ?? 8A ?? ?? 4? 88 ?? ?? 88 ?? ?? 99 F7 ?? ?? FF 4? ?? 81 7? ?? ?? ?? ?? ?? 7C } + $block_1 = { 0F B6 ?? ?? 0F BE ?? ?? ?? ?? ?? 5? 0F B6 ?? 0F BE ?? ?? ?? ?? ?? 5? 68 ?? ?? ?? ?? 5? FF D? 83 } + $block_2 = { 68 ?? ?? ?? ?? 8B ?? ?? 69 ?? ?? ?? ?? ?? 8D ?? ?? ?? ?? ?? ?? 5? FF 1? ?? ?? ?? ?? 85 ?? 0F 84 } + $block_3 = { 68 ?? ?? ?? ?? 6A ?? 8D ?? ?? ?? ?? ?? 5? E8 ?? ?? ?? ?? 83 ?? ?? 8B ?? ?? 0F BE ?? 83 ?? ?? 74 } + $block_4 = { 5? 8B ?? 5? 5? 8B ?? ?? 8A ?? ?? ?? ?? ?? 8A ?? ?? ?? ?? ?? 5? 33 ?? 89 ?? ?? 39 ?? ?? 0F 8E } + $block_5 = { 8D ?? ?? ?? ?? ?? 5? 68 ?? ?? ?? ?? 8B ?? ?? 5? FF 1? ?? ?? ?? ?? 89 ?? ?? 83 ?? ?? ?? 0F 85 } + $block_6 = { 83 ?? ?? 33 ?? 6A ?? 5? 8B ?? F7 ?? 0F 90 ?? F7 ?? 0B ?? 5? E8 ?? ?? ?? ?? 8B ?? 5? 85 ?? 74 } + $block_7 = { 8B ?? ?? 8B ?? ?? 0F B6 ?? 0F B6 ?? ?? 0F B6 ?? ?? 03 ?? 03 ?? 81 E? ?? ?? ?? ?? 79 } + $block_8 = { 68 ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 81 C? ?? ?? ?? ?? 5? FF 1? ?? ?? ?? ?? 85 ?? 0F 84 } + $block_9 = { 8B ?? ?? 0F B7 ?? ?? 5? 8B ?? ?? 0F B7 ?? 5? 8B ?? ?? 5? 8B ?? ?? E8 ?? ?? ?? ?? EB } + $block_10 = { E8 ?? ?? ?? ?? 99 B9 ?? ?? ?? ?? F7 ?? 89 ?? ?? E8 ?? ?? ?? ?? 25 ?? ?? ?? ?? 79 } + $block_11 = { 8B ?? ?? 89 ?? ?? 8B ?? ?? 8B ?? 89 ?? ?? 8B ?? ?? 33 ?? 83 ?? ?? ?? 0F 94 ?? 88 } + $block_12 = { 8B ?? ?? ?? ?? ?? 8B ?? ?? 5? 5? 33 ?? 5? E8 ?? ?? ?? ?? 81 C? ?? ?? ?? ?? C9 C3 } + $block_13 = { 8B ?? ?? ?? ?? ?? 8A ?? ?? 5? 5? 33 ?? 5? E8 ?? ?? ?? ?? 81 C? ?? ?? ?? ?? C9 C3 } + $block_14 = { 8B ?? ?? ?? ?? ?? 5? 5? 8A ?? 33 ?? 5? E8 ?? ?? ?? ?? 81 C? ?? ?? ?? ?? C9 C3 } + $block_15 = { 8B ?? ?? 89 ?? ?? 8B ?? ?? 83 ?? ?? 89 ?? ?? 8B ?? ?? 0F B7 ?? 83 ?? ?? 74 } + $block_16 = { 8B ?? ?? ?? ?? ?? 5? 5? 33 ?? 5? E8 ?? ?? ?? ?? 81 C? ?? ?? ?? ?? C9 C3 } + $block_17 = { 5? 8B ?? 5? 5? 33 ?? 5? 8B ?? ?? C7 ?? ?? ?? ?? ?? ?? 39 ?? ?? 0F 84 } + $block_18 = { 68 ?? ?? ?? ?? 8D ?? ?? 5? 5? E8 ?? ?? ?? ?? 83 ?? ?? 85 ?? 0F 85 } + $block_19 = { 88 ?? ?? 0F B6 ?? 8A ?? ?? 0F B6 ?? 03 ?? 81 E? ?? ?? ?? ?? 79 } + $block_20 = { 8B ?? ?? ?? ?? ?? E8 ?? ?? ?? ?? 89 ?? ?? 83 ?? ?? ?? 0F 85 } + $block_21 = { 8B ?? ?? 5? 8B ?? ?? 5? 8D ?? ?? E8 ?? ?? ?? ?? 85 ?? 0F 84 } + $block_22 = { 5? 8B ?? 83 ?? ?? 89 ?? ?? C6 ?? ?? ?? 83 ?? ?? ?? 0F 84 } + $block_23 = { 0F B6 ?? 8A ?? ?? 30 ?? 8B ?? ?? 4? 89 ?? ?? 3B ?? ?? 7C } + $block_24 = { 8B ?? ?? 5? FF 1? ?? ?? ?? ?? 89 ?? ?? 83 ?? ?? ?? 0F 84 } + $block_25 = { 8B ?? ?? E8 ?? ?? ?? ?? 89 ?? ?? 83 ?? ?? ?? 0F 85 } + $block_26 = { 8B ?? ?? 5? 5? 8B ?? 33 ?? 5? E8 ?? ?? ?? ?? C9 C3 } + $block_27 = { 8B ?? ?? 83 ?? ?? 33 ?? 83 ?? ?? 39 ?? ?? 0F 87 } + $block_28 = { 8B ?? ?? E8 ?? ?? ?? ?? 0F B6 ?? ?? 85 ?? 0F 84 } + $block_29 = { 8B ?? ?? 0F B6 ?? 5? FF 1? ?? ?? ?? ?? 85 ?? 75 } + $block_30 = { 8B ?? ?? 8B ?? ?? 83 ?? ?? 89 ?? ?? 85 ?? 0F 84 } + $block_31 = { 8B ?? ?? 0F B6 ?? 5? FF 1? ?? ?? ?? ?? 85 ?? 74 } + + condition: + hash.sha256(0, filesize) == "82095ecc6099be283f9e211780d7100b732fc216383e59605804b6f0734db9ba" or + 12 of them +} + +rule RedOctoberPluginOfficeBDInstaller { + meta: + Author = "Intezer Analyze" + Reference = "https://apt-ecosystem.com" + + strings: + $block_0 = { 0F B6 ?? ?? 0F BE ?? ?? ?? ?? ?? 5? 0F B6 ?? 0F BE ?? ?? ?? ?? ?? 5? 68 ?? ?? ?? ?? 5? FF D? 83 } + $block_1 = { 83 ?? ?? 33 ?? 6A ?? 5? 8B ?? F7 ?? 0F 90 ?? F7 ?? 0B ?? 5? E8 ?? ?? ?? ?? 8B ?? 5? 85 ?? 74 } + $block_2 = { 8D ?? ?? ?? ?? ?? 5? 8D ?? ?? ?? ?? ?? 5? E8 ?? ?? ?? ?? 83 ?? ?? 0F B6 ?? 85 ?? 0F 84 } + $block_3 = { 8D ?? ?? 5? 68 ?? ?? ?? ?? 6A ?? 8B ?? ?? 5? 8B ?? ?? 5? FF 1? ?? ?? ?? ?? 85 ?? 0F 85 } + $block_4 = { 8B ?? ?? ?? ?? ?? 8B ?? ?? 5? 5? 33 ?? 5? E8 ?? ?? ?? ?? 81 C? ?? ?? ?? ?? C9 C3 } + $block_5 = { 8B ?? ?? ?? ?? ?? 8A ?? ?? 5? 5? 33 ?? 5? E8 ?? ?? ?? ?? 81 C? ?? ?? ?? ?? C9 C3 } + $block_6 = { 8B ?? ?? ?? ?? ?? 5? 5? 8A ?? 33 ?? 5? E8 ?? ?? ?? ?? 81 C? ?? ?? ?? ?? C9 C3 } + $block_7 = { 8B ?? ?? ?? ?? ?? 5? 5? 33 ?? 5? E8 ?? ?? ?? ?? 81 C? ?? ?? ?? ?? C9 C3 } + $block_8 = { 5? 8B ?? 5? 5? 33 ?? 5? 8B ?? ?? C7 ?? ?? ?? ?? ?? ?? 39 ?? ?? 0F 84 } + $block_9 = { 68 ?? ?? ?? ?? 8B ?? ?? E8 ?? ?? ?? ?? 89 ?? ?? 83 ?? ?? ?? 0F 84 } + $block_10 = { 68 ?? ?? ?? ?? 8D ?? ?? 5? 5? E8 ?? ?? ?? ?? 83 ?? ?? 85 ?? 0F 85 } + $block_11 = { 8D ?? ?? ?? ?? ?? 5? E8 ?? ?? ?? ?? 83 ?? ?? 0F B6 ?? 85 ?? 0F 84 } + $block_12 = { 8B ?? ?? 5? 8B ?? ?? 5? 8D ?? ?? E8 ?? ?? ?? ?? 85 ?? 0F 84 } + $block_13 = { 5? 8B ?? 83 ?? ?? 89 ?? ?? C6 ?? ?? ?? 83 ?? ?? ?? 0F 84 } + $block_14 = { 5? 5? 5? 33 ?? 89 ?? ?? ?? 89 ?? ?? ?? 39 ?? ?? ?? 0F 84 } + $block_15 = { 5? 8B ?? ?? ?? ?? ?? 5? 5? FF 7? ?? ?? FF D? 3B ?? 0F 84 } + $block_16 = { 8B ?? ?? 5? 5? 8B ?? 33 ?? 5? E8 ?? ?? ?? ?? C9 C3 } + $block_17 = { 8B ?? ?? E8 ?? ?? ?? ?? 0F B6 ?? ?? 85 ?? 0F 84 } + $block_18 = { 8B ?? ?? 8B ?? ?? 83 ?? ?? 89 ?? ?? 85 ?? 0F 84 } + $block_19 = { 8B ?? ?? 83 ?? ?? 33 ?? 83 ?? ?? 39 ?? ?? 0F 87 } + + condition: + hash.sha256(0, filesize) == "19830a143595d6c6791da1abd4126cba59b6c71f2d535227ba36b7298d276250" or + 12 of them +} + +rule RedOctoberPluginPOP3Client { + meta: + Author = "Intezer Analyze" + Reference = "https://apt-ecosystem.com" + + strings: + $block_0 = { 8B ?? 5? 5? 5? 8B ?? ?? ?? ?? ?? FF 0? ?? ?? ?? ?? 2B ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? B9 ?? ?? ?? ?? BA ?? ?? ?? ?? 4? 89 ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 8B ?? 89 ?? ?? ?? ?? ?? BA ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? FF 0? ?? ?? ?? ?? 03 ?? ?? ?? ?? ?? 03 ?? ?? ?? ?? ?? 8B ?? A3 ?? ?? ?? ?? A3 ?? ?? ?? ?? BE ?? ?? ?? ?? BF ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 03 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 8B ?? 2B ?? ?? ?? ?? ?? 4? 89 ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 4? 89 ?? ?? ?? ?? ?? BA ?? ?? ?? ?? 8B ?? A3 ?? ?? ?? ?? 8B ?? BB ?? ?? ?? ?? A3 ?? ?? ?? ?? 03 ?? ?? ?? ?? ?? B9 ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? B9 ?? ?? ?? ?? 68 ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 03 ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 8B ?? BB ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? A3 ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? B9 ?? ?? ?? ?? 8B ?? A3 ?? ?? ?? ?? A3 ?? ?? ?? ?? 8B ?? BA ?? ?? ?? ?? 8B ?? 8B ?? ?? ?? ?? ?? 2B ?? ?? ?? ?? ?? 8B ?? 8B ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 8B ?? A3 ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 2B ?? ?? ?? ?? ?? 4? 8B ?? 89 ?? ?? ?? ?? ?? 8B ?? A1 ?? ?? ?? ?? 8B ?? 89 ?? ?? ?? ?? ?? 8B ?? A3 ?? ?? ?? ?? 8B ?? 03 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 03 ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 03 ?? ?? ?? ?? ?? E8 ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 8B ?? 89 ?? ?? ?? ?? ?? 8B ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? FF 0? ?? ?? ?? ?? 8B ?? 8B ?? ?? ?? ?? ?? BB ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? BA ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 8B ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 03 ?? ?? ?? ?? ?? BE ?? ?? ?? ?? BB ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 03 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 8B ?? 89 ?? ?? ?? ?? ?? 03 ?? ?? ?? ?? ?? BB ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? BA ?? ?? ?? ?? FF 0? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 8B ?? 8B ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 8B ?? 89 ?? ?? ?? ?? ?? 8B ?? BF ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 2B ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? BF ?? ?? ?? ?? BF ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? BB ?? ?? ?? ?? 8B ?? BF ?? ?? ?? ?? B9 ?? ?? ?? ?? BB ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? FF 0? ?? ?? ?? ?? B9 ?? ?? ?? ?? 03 ?? ?? ?? ?? ?? BB ?? ?? ?? ?? 8B ?? BF ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 8B ?? 8B ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 03 ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 8B ?? 89 ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 4? FF 0? ?? ?? ?? ?? A1 ?? ?? ?? ?? B9 ?? ?? ?? ?? 8B ?? 8B ?? ?? ?? ?? ?? A1 ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? B8 ?? ?? ?? ?? FF 0? ?? ?? ?? ?? 8B ?? 8B ?? 8B ?? A3 ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? FF 0? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 03 ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? FF 0? ?? ?? ?? ?? 8B ?? 89 ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 03 ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 8B ?? 89 ?? ?? ?? ?? ?? FF 0? ?? ?? ?? ?? 8B ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 68 ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 4? 8B ?? 89 ?? ?? ?? ?? ?? FF 0? ?? ?? ?? ?? 8B ?? 89 ?? ?? ?? ?? ?? 8B ?? 89 ?? ?? ?? ?? ?? 8B ?? FF 0? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? A3 ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? FF 0? ?? ?? ?? ?? 4? FF 0? ?? ?? ?? ?? B9 ?? ?? ?? ?? B9 ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 8B ?? 8B ?? BB ?? ?? ?? ?? BE ?? ?? ?? ?? 8B ?? 2B ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? BE ?? ?? ?? ?? B9 ?? ?? ?? ?? BE ?? ?? ?? ?? 8B ?? 03 ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 8B ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? A1 ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? A3 ?? ?? ?? ?? 4? A3 ?? ?? ?? ?? 8B ?? 03 ?? ?? ?? ?? ?? FF 0? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 2B ?? ?? ?? ?? ?? 03 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? BA ?? ?? ?? ?? B9 ?? ?? ?? ?? 8B ?? 8B ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 03 ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? FF 0? ?? ?? ?? ?? A1 ?? ?? ?? ?? BB ?? ?? ?? ?? A3 ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 8B ?? 89 ?? ?? ?? ?? ?? 4? A1 ?? ?? ?? ?? BF ?? ?? ?? ?? A3 ?? ?? ?? ?? BE ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 4? 2B ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? BA ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 8B ?? BE ?? ?? ?? ?? B8 ?? ?? ?? ?? 8B ?? 2B ?? ?? ?? ?? ?? 8B ?? 03 ?? ?? ?? ?? ?? A3 ?? ?? ?? ?? BE ?? ?? ?? ?? 03 ?? ?? ?? ?? ?? 8B ?? 89 ?? ?? ?? ?? ?? E8 ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? FF 0? ?? ?? ?? ?? 03 ?? ?? ?? ?? ?? BB ?? ?? ?? ?? BF ?? ?? ?? ?? 4? 8B ?? ?? ?? ?? ?? FF 0? ?? ?? ?? ?? FF 0? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? B9 ?? ?? ?? ?? BE ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? BB ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 8B ?? 89 ?? ?? ?? ?? ?? BE ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 8B ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? BE ?? ?? ?? ?? BB ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? BE ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? BE ?? ?? ?? ?? 2B ?? ?? ?? ?? ?? 2B ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? B9 ?? ?? ?? ?? 8B ?? 8B ?? 2B ?? ?? ?? ?? ?? 03 ?? ?? ?? ?? ?? BB ?? ?? ?? ?? BB ?? ?? ?? ?? 4? BB ?? ?? ?? ?? 03 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 8B ?? B9 ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 03 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 8B ?? 8B ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? BA ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 4? 03 ?? ?? ?? ?? ?? BA ?? ?? ?? ?? 4? 89 ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? BA ?? ?? ?? ?? BB ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 8B ?? BA ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? BB ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 8B ?? 8B ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? BB ?? ?? ?? ?? 03 ?? ?? ?? ?? ?? FF 0? ?? ?? ?? ?? B9 ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? FF D? B9 ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 8B ?? 8B ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 4? 8B ?? BB ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 8B ?? BF ?? ?? ?? ?? 8B ?? 8B ?? BB ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? BA ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? BB ?? ?? ?? ?? 2B ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? BF ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 03 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 2B ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 8B ?? 8B ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 8B ?? FF 0? ?? ?? ?? ?? 8B ?? BA ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 8B ?? 2B ?? ?? ?? ?? ?? BA ?? ?? ?? ?? 8B ?? 8B ?? BF ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 2B ?? ?? ?? ?? ?? 03 ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? FF 0? ?? ?? ?? ?? 8B ?? 8B ?? ?? ?? ?? ?? 4? 8B ?? ?? ?? ?? ?? FF 0? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 2B ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 4? BE ?? ?? ?? ?? 03 ?? ?? ?? ?? ?? 8B ?? 8B ?? ?? ?? ?? ?? BF ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 8B ?? 03 ?? ?? ?? ?? ?? 8B ?? BE ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? B9 ?? ?? ?? ?? BE ?? ?? ?? ?? 8B ?? 8B ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 8B ?? 89 ?? ?? ?? ?? ?? 8B ?? 8B ?? BF ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? B9 ?? ?? ?? ?? 2B ?? ?? ?? ?? ?? 03 ?? ?? ?? ?? ?? BE ?? ?? ?? ?? 0B ?? 0F 84 } + $block_1 = { 8B ?? 5? 5? 5? 8B ?? 89 ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 03 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? A3 ?? ?? ?? ?? 8B ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 8B ?? 03 ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? BF ?? ?? ?? ?? A3 ?? ?? ?? ?? 4? 8B ?? ?? ?? ?? ?? BB ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? A3 ?? ?? ?? ?? BF ?? ?? ?? ?? BF ?? ?? ?? ?? B8 ?? ?? ?? ?? 4? 4? 8B ?? B9 ?? ?? ?? ?? 2B ?? ?? ?? ?? ?? 68 ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 8B ?? 89 ?? ?? ?? ?? ?? 2B ?? ?? ?? ?? ?? FF 0? ?? ?? ?? ?? 4? 8B ?? 8B ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? FF 0? ?? ?? ?? ?? B9 ?? ?? ?? ?? 8B ?? B8 ?? ?? ?? ?? BE ?? ?? ?? ?? 4? 8B ?? 8B ?? A1 ?? ?? ?? ?? 2B ?? ?? ?? ?? ?? B8 ?? ?? ?? ?? BB ?? ?? ?? ?? 8B ?? 89 ?? ?? ?? ?? ?? FF 0? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? BB ?? ?? ?? ?? 2B ?? ?? ?? ?? ?? B8 ?? ?? ?? ?? A3 ?? ?? ?? ?? B8 ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? FF 0? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 8B ?? A1 ?? ?? ?? ?? FF 0? ?? ?? ?? ?? FF 0? ?? ?? ?? ?? A1 ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 8B ?? 89 ?? ?? ?? ?? ?? B9 ?? ?? ?? ?? FF 0? ?? ?? ?? ?? E8 ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 8B ?? 8B ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 8B ?? FF 0? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? B9 ?? ?? ?? ?? 03 ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 8B ?? 89 ?? ?? ?? ?? ?? 8B ?? 8B ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? BF ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 8B ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? FF 0? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 8B ?? 8B ?? 4? 89 ?? ?? ?? ?? ?? 8B ?? 8B ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 4? 89 ?? ?? ?? ?? ?? 8B ?? FF 0? ?? ?? ?? ?? 2B ?? ?? ?? ?? ?? 8B ?? 8B ?? 8B ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 8B ?? 89 ?? ?? ?? ?? ?? 8B ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? B9 ?? ?? ?? ?? 2B ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 2B ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 8B ?? 03 ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 8B ?? 8B ?? ?? ?? ?? ?? 8B ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? BB ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 8B ?? BE ?? ?? ?? ?? 8B ?? 03 ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? BF ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? BE ?? ?? ?? ?? FF 0? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 4? 8B ?? 2B ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 8B ?? 8B ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 8B ?? 89 ?? ?? ?? ?? ?? BE ?? ?? ?? ?? BF ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? BE ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? BB ?? ?? ?? ?? 8B ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? BA ?? ?? ?? ?? B9 ?? ?? ?? ?? 4? A3 ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? A3 ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? B8 ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? BA ?? ?? ?? ?? 8B ?? 8B ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 2B ?? ?? ?? ?? ?? 8B ?? 8B ?? 8B ?? 8B ?? FF 0? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? A1 ?? ?? ?? ?? B9 ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? BE ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 2B ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 68 ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 4? BF ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 2B ?? ?? ?? ?? ?? FF 0? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? BF ?? ?? ?? ?? 03 ?? ?? ?? ?? ?? 03 ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? B8 ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 8B ?? B9 ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? BB ?? ?? ?? ?? A1 ?? ?? ?? ?? 8B ?? 8B ?? A1 ?? ?? ?? ?? BB ?? ?? ?? ?? BA ?? ?? ?? ?? BB ?? ?? ?? ?? A1 ?? ?? ?? ?? 8B ?? A1 ?? ?? ?? ?? B8 ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? A3 ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? BF ?? ?? ?? ?? BE ?? ?? ?? ?? FF 0? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 8B ?? FF 0? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 4? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? BB ?? ?? ?? ?? A3 ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 2B ?? ?? ?? ?? ?? 8B ?? B8 ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 2B ?? ?? ?? ?? ?? 4? BE ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? B8 ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? A3 ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? B8 ?? ?? ?? ?? 8B ?? 89 ?? ?? ?? ?? ?? 2B ?? ?? ?? ?? ?? 8B ?? 2B ?? ?? ?? ?? ?? 8B ?? 8B ?? 8B ?? 8B ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? E8 ?? ?? ?? ?? 8B ?? 8B ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? BE ?? ?? ?? ?? 4? 2B ?? ?? ?? ?? ?? BB ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 8B ?? 4? 8B ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? BF ?? ?? ?? ?? 2B ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 8B ?? 8B ?? B9 ?? ?? ?? ?? BE ?? ?? ?? ?? BA ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 8B ?? FF 0? ?? ?? ?? ?? 8B ?? 89 ?? ?? ?? ?? ?? 03 ?? ?? ?? ?? ?? BB ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 2B ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? BF ?? ?? ?? ?? BB ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? B9 ?? ?? ?? ?? BE ?? ?? ?? ?? BE ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 8B ?? 8B ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 03 ?? ?? ?? ?? ?? 8B ?? 8B ?? BF ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? BF ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 2B ?? ?? ?? ?? ?? BF ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 8B ?? 4? 89 ?? ?? ?? ?? ?? FF 0? ?? ?? ?? ?? 8B ?? 8B ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 2B ?? ?? ?? ?? ?? BE ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 8B ?? 89 ?? ?? ?? ?? ?? BF ?? ?? ?? ?? 8B ?? 8B ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 8B ?? 03 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 8B ?? 89 ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 2B ?? ?? ?? ?? ?? BF ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 2B ?? ?? ?? ?? ?? 4? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? FF D? 8B ?? BA ?? ?? ?? ?? BB ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? BE ?? ?? ?? ?? BF ?? ?? ?? ?? BF ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 8B ?? 89 ?? ?? ?? ?? ?? 2B ?? ?? ?? ?? ?? 8B ?? 03 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 8B ?? 4? 89 ?? ?? ?? ?? ?? 8B ?? BA ?? ?? ?? ?? 8B ?? 8B ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 8B ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 8B ?? 89 ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 8B ?? 4? BE ?? ?? ?? ?? BA ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 8B ?? 89 ?? ?? ?? ?? ?? BB ?? ?? ?? ?? FF 0? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 8B ?? 03 ?? ?? ?? ?? ?? 8B ?? 4? 03 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? FF 0? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 8B ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? BF ?? ?? ?? ?? 8B ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? BF ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 8B ?? BA ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? BF ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 03 ?? ?? ?? ?? ?? 8B ?? 0B ?? 0F 84 } + $block_2 = { 5? 8B ?? 5? 89 ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? FF 0? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? A1 ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 2B ?? ?? ?? ?? ?? BA ?? ?? ?? ?? BB ?? ?? ?? ?? FF 0? ?? ?? ?? ?? 8B ?? BE ?? ?? ?? ?? 8B ?? 03 ?? ?? ?? ?? ?? BE ?? ?? ?? ?? BA ?? ?? ?? ?? A3 ?? ?? ?? ?? 8B ?? 89 ?? ?? ?? ?? ?? A3 ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? A3 ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? A1 ?? ?? ?? ?? A3 ?? ?? ?? ?? B9 ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 03 ?? ?? ?? ?? ?? BF ?? ?? ?? ?? 8B ?? 8B ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? BE ?? ?? ?? ?? 8B ?? 89 ?? ?? ?? ?? ?? 8B ?? 4? 8B ?? ?? ?? ?? ?? A3 ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? B9 ?? ?? ?? ?? BA ?? ?? ?? ?? BE ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? BA ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 8B ?? ?? BA ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 2B ?? ?? ?? ?? ?? 8B ?? 8B ?? ?? ?? ?? ?? B9 ?? ?? ?? ?? 8B ?? 2B ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 8B ?? 89 ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 8B ?? 8B ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 4? 8B ?? BA ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 8B ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 8B ?? BF ?? ?? ?? ?? 03 ?? ?? ?? ?? ?? 8B ?? 4? 4? 2B ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 8B ?? 8B ?? FF 0? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? BA ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 8B ?? 8B ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 8B ?? 89 ?? ?? ?? ?? ?? 2B ?? ?? ?? ?? ?? 8B ?? ?? 2B ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? FF 0? ?? ?? ?? ?? 8B ?? 89 ?? ?? ?? ?? ?? 8B ?? 89 ?? ?? ?? ?? ?? 8B ?? BA ?? ?? ?? ?? 2B ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 2B ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? FF 0? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? BF ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 8B ?? BB ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? BA ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 8B ?? 8B ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? BF ?? ?? ?? ?? 4? 8B ?? ?? ?? ?? ?? FF 0? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 4? 8B ?? 8B ?? 8B ?? 83 ?? ?? 89 ?? ?? ?? ?? ?? 8B ?? 8B ?? ?? ?? ?? ?? 8B ?? 8B ?? BE ?? ?? ?? ?? 4? 8B ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 8B ?? 89 ?? ?? ?? ?? ?? 03 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 8B ?? BB ?? ?? ?? ?? 03 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 8B ?? 8B ?? 89 ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 03 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 8B ?? BF ?? ?? ?? ?? 8B ?? 8B ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? BF ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 8B ?? 8B ?? 03 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 8B ?? 89 ?? ?? ?? ?? ?? 4? 8B ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 85 ?? 89 ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 8B ?? 8B ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 4? 8B ?? ?? ?? ?? ?? 8B ?? FF 0? ?? ?? ?? ?? FF 0? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 8B ?? 89 ?? ?? ?? ?? ?? 8B ?? FF 0? ?? ?? ?? ?? FF 0? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? BF ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 8B ?? 89 ?? ?? ?? ?? ?? FF 0? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? BA ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? BF ?? ?? ?? ?? 2B ?? ?? ?? ?? ?? 03 ?? ?? ?? ?? ?? 2B ?? ?? ?? ?? ?? BB ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 8B ?? 2B ?? ?? ?? ?? ?? 2B ?? ?? ?? ?? ?? FF 0? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 8B ?? 8B ?? 8B ?? 89 ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? BE ?? ?? ?? ?? 8B ?? 8B ?? ?? FF 0? ?? ?? ?? ?? 8B ?? FF 0? ?? ?? ?? ?? 8B ?? 8B ?? 89 ?? ?? ?? ?? ?? 2B ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? BA ?? ?? ?? ?? FF 0? ?? ?? ?? ?? 4? 89 ?? ?? ?? ?? ?? BA ?? ?? ?? ?? BA ?? ?? ?? ?? 03 ?? ?? ?? ?? ?? BB ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 8B ?? 8B ?? ?? ?? ?? ?? 8B ?? 8B ?? 89 ?? ?? ?? ?? ?? BF ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? FF 0? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 8B ?? 8B ?? 8B ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 2B ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? BF ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 03 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 8B ?? 89 ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? BA ?? ?? ?? ?? 2B ?? ?? ?? ?? ?? 03 ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? BB ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 03 ?? ?? ?? ?? ?? BF ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 0F 84 } + $block_3 = { 8B ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 8B ?? 8B ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 8B ?? 8B ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 4? 89 ?? ?? ?? ?? ?? 2B ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 03 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? BF ?? ?? ?? ?? BF ?? ?? ?? ?? 8B ?? 4? 8B ?? ?? ?? ?? ?? BF ?? ?? ?? ?? 8B ?? 8B ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 03 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 4? 8A ?? 89 ?? ?? ?? ?? ?? 8B ?? 89 ?? ?? ?? ?? ?? BF ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 2B ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 8B ?? 89 ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 2B ?? ?? ?? ?? ?? BE ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? FF 0? ?? ?? ?? ?? 8B ?? 8B ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 03 ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 03 ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 4? BF ?? ?? ?? ?? FF 0? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? BF ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 4? 8B ?? 8B ?? 8B ?? 8B ?? 8B ?? ?? ?? ?? ?? BE ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 32 ?? 89 ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 2B ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? FF 0? ?? ?? ?? ?? 8B ?? 2B ?? ?? ?? ?? ?? BF ?? ?? ?? ?? BF ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 4? 89 ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? BB ?? ?? ?? ?? 2B ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 88 ?? 8B ?? 4? 2B ?? ?? ?? ?? ?? 03 ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? FF 0? ?? ?? ?? ?? BB ?? ?? ?? ?? 2B ?? ?? ?? ?? ?? 03 ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 8B ?? 8B ?? ?? ?? ?? ?? BB ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 8B ?? 8B ?? ?? ?? ?? ?? BF ?? ?? ?? ?? BF ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? FF 0? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? FF 0? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 4? 8B ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 2B ?? ?? ?? ?? ?? 8B ?? 8B ?? 03 ?? ?? ?? ?? ?? BB ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 8B ?? BE ?? ?? ?? ?? 8B ?? 8B ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 03 ?? ?? ?? ?? ?? 4? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 8B ?? 89 ?? ?? ?? ?? ?? 2B ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? BF ?? ?? ?? ?? 8B ?? 03 ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? BE ?? ?? ?? ?? BE ?? ?? ?? ?? FF 0? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? BE ?? ?? ?? ?? 2B ?? ?? ?? ?? ?? BB ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? BF ?? ?? ?? ?? BB ?? ?? ?? ?? 03 ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? BF ?? ?? ?? ?? 8B ?? 8B ?? BF ?? ?? ?? ?? 8B ?? 89 ?? ?? ?? ?? ?? BE ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 4? BE ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 8B ?? 8B ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 2B ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 8B ?? 8B ?? 89 ?? ?? ?? ?? ?? FF 0? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? BB ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 8B ?? 8B ?? ?? ?? ?? ?? 8B ?? 8B ?? 89 ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 2B ?? ?? ?? ?? ?? 8B ?? FF 0? ?? ?? ?? ?? BF ?? ?? ?? ?? BF ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? BF ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? FF 0? ?? ?? ?? ?? BB ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? BF ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 0B ?? 0F 85 } + $block_4 = { BA ?? ?? ?? ?? 2B ?? ?? ?? ?? ?? 2B ?? ?? ?? ?? ?? 8B ?? FF 0? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 4? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 4? 8B ?? ?? ?? ?? ?? BA ?? ?? ?? ?? 8B ?? 89 ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 8B ?? BF ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 8B ?? 8B ?? ?? ?? ?? ?? 32 ?? 8B ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 03 ?? ?? ?? ?? ?? 8B ?? 03 ?? ?? ?? ?? ?? 8B ?? 8B ?? 8B ?? 89 ?? ?? ?? ?? ?? 2B ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 2B ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 8B ?? BB ?? ?? ?? ?? BB ?? ?? ?? ?? BF ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 8B ?? 8B ?? ?? ?? ?? ?? 0F B6 ?? 8B ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? BF ?? ?? ?? ?? 2B ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? FF 0? ?? ?? ?? ?? 8B ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 8B ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? BF ?? ?? ?? ?? BF ?? ?? ?? ?? BF ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 2B ?? ?? ?? ?? ?? 8B ?? 03 ?? ?? ?? ?? ?? 8B ?? BF ?? ?? ?? ?? C1 ?? ?? FF 0? ?? ?? ?? ?? BF ?? ?? ?? ?? 4? 89 ?? ?? ?? ?? ?? 2B ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 2B ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 03 ?? ?? ?? ?? ?? 8B ?? BF ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? BB ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 03 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? BB ?? ?? ?? ?? 2B ?? ?? ?? ?? ?? 4? 89 ?? ?? ?? ?? ?? BB ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? BF ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? FF 0? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? BF ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 2B ?? ?? ?? ?? ?? 8B ?? 8B ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 8B ?? 8B ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 4? 89 ?? ?? ?? ?? ?? 8B ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 4? 8B ?? BB ?? ?? ?? ?? 8B ?? 4? 4? BF ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? BB ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 03 ?? ?? ?? ?? ?? BB ?? ?? ?? ?? 8B ?? 89 ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 8B ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 2B ?? ?? ?? ?? ?? 2B ?? ?? ?? ?? ?? BF ?? ?? ?? ?? FF 0? ?? ?? ?? ?? BB ?? ?? ?? ?? 2B ?? ?? ?? ?? ?? 33 ?? 03 ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? FF 0? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 2B ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 8B ?? BB ?? ?? ?? ?? BF ?? ?? ?? ?? BB ?? ?? ?? ?? 8B ?? 03 ?? ?? ?? ?? ?? 8B ?? 8B ?? ?? ?? ?? ?? 4? 8B ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? BA ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? FF 0? ?? ?? ?? ?? BB ?? ?? ?? ?? 4? 0F 85 } + $block_5 = { 83 ?? ?? 89 ?? ?? ?? ?? ?? BE ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? BE ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? BB ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 4? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? FF 0? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? BF ?? ?? ?? ?? 2B ?? ?? ?? ?? ?? 8B ?? 8B ?? 8B ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? BF ?? ?? ?? ?? B9 ?? ?? ?? ?? BF ?? ?? ?? ?? BF ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 8B ?? B9 ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 8B ?? 03 ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? FF 0? ?? ?? ?? ?? BE ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 4? 8B ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 8B ?? 2B ?? ?? ?? ?? ?? 2B ?? ?? ?? ?? ?? 8B ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? BA ?? ?? ?? ?? 8B ?? 2B ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 4? BB ?? ?? ?? ?? 8B ?? 8B ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 5? C9 C2 } + $block_6 = { BF ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 03 ?? ?? ?? ?? ?? A3 ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? B8 ?? ?? ?? ?? A3 ?? ?? ?? ?? FF 0? ?? ?? ?? ?? 4? 2B ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 03 ?? ?? ?? ?? ?? 4? 89 ?? ?? ?? ?? ?? FF 0? ?? ?? ?? ?? 8B ?? 8B ?? BE ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? BF ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? BB ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? B8 ?? ?? ?? ?? BA ?? ?? ?? ?? BE ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 8B ?? BF ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? B8 ?? ?? ?? ?? BA ?? ?? ?? ?? 8B ?? 2B ?? ?? ?? ?? ?? BF ?? ?? ?? ?? FF 0? ?? ?? ?? ?? 8B ?? A3 ?? ?? ?? ?? 03 ?? ?? ?? ?? ?? FF 0? ?? ?? ?? ?? B8 ?? ?? ?? ?? 4? 89 ?? ?? ?? ?? ?? 4? 03 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? FF 0? ?? ?? ?? ?? 8B ?? 81 F? ?? ?? ?? ?? 0F 85 } + $block_7 = { 8B ?? 4? BB ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 8B ?? B8 ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? FF 0? ?? ?? ?? ?? 8B ?? FF 0? ?? ?? ?? ?? A3 ?? ?? ?? ?? BF ?? ?? ?? ?? BF ?? ?? ?? ?? BB ?? ?? ?? ?? BE ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? BB ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 8B ?? 8B ?? 8B ?? ?? ?? ?? ?? 4? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 8B ?? BF ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 03 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? BE ?? ?? ?? ?? FF 0? ?? ?? ?? ?? FF 0? ?? ?? ?? ?? FF 0? ?? ?? ?? ?? B8 ?? ?? ?? ?? FF 0? ?? ?? ?? ?? A3 ?? ?? ?? ?? 8B ?? BF ?? ?? ?? ?? 8B ?? 8B ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? BF ?? ?? ?? ?? A3 ?? ?? ?? ?? FF 0? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 8B ?? BE ?? ?? ?? ?? 81 F? ?? ?? ?? ?? 0F 85 } + $block_8 = { 4? 00 ?? ?? 4? 5? 33 ?? 2E ?? 4? 4? 00 ?? 01 ?? 03 ?? ?? ?? ?? ?? ?? 0A ?? 0C ?? 0E 0F 10 ?? 12 ?? 14 ?? 16 17 18 ?? 1A ?? 1C ?? 1E 1F 20 ?? 22 ?? 24 ?? 26 ?? 28 ?? 2A ?? 2C ?? 2E ?? 30 ?? 32 ?? 34 ?? 36 ?? 38 ?? 3A ?? 3C ?? 3E ?? 4? 4? 4? 4? 4? 4? 4? 4? 4? 4? 4? 4? 4? 4? 4? 4? 5? 5? 5? 5? 5? 5? 5? 5? 5? 5? 5? 5? 5? 5? 5? 5? 60 61 62 ?? ?? 65 ?? ?? ?? ?? ?? 6B ?? ?? ?? ?? 70 } + $block_9 = { 14 ?? 16 17 18 ?? 1A ?? 1C ?? 1E 1F 20 ?? 22 ?? 24 ?? 26 ?? 28 ?? 2A ?? 2C ?? 2E ?? 30 ?? 32 ?? 34 ?? 36 ?? 38 ?? 3A ?? 3C ?? 3E ?? 4? 4? 4? 4? 4? 4? 4? 4? 4? 4? 4? 4? 4? 4? 4? 4? 5? 5? 5? 5? 5? 5? 5? 5? 5? 5? 5? 5? 5? 5? 5? 5? 60 61 62 ?? ?? 65 ?? ?? ?? ?? ?? 6B ?? ?? ?? ?? 70 } + + condition: + hash.sha256(0, filesize) == "c89b2bb62d13777aa6b1a4a22813e06907b26809d4745df963a760d365cc09cd" or + hash.sha256(0, filesize) == "1ac828db983ae799edf65e6b6bef81ceffd1e2079a6e1c5e6cf969a37f956698" or + 10 of them +} + +rule RedOctoberPluginCollectInfo { + meta: + Author = "Intezer Analyze" + Reference = "https://apt-ecosystem.com" + + strings: + $block_0 = { 6A ?? 8B ?? 99 6A ?? 5? 5? E8 ?? ?? ?? ?? 8B ?? ?? 5? 5? E8 ?? ?? ?? ?? 8B ?? 5? 5? 85 ?? 0F 84 } + $block_1 = { 0F B6 ?? ?? 0F BE ?? ?? ?? ?? ?? 5? 0F B6 ?? 0F BE ?? ?? ?? ?? ?? 5? 68 ?? ?? ?? ?? 5? FF D? 83 } + $block_2 = { 8B ?? ?? ?? 8D ?? ?? ?? 5? 4? 5? 68 ?? ?? ?? ?? 5? 5? 89 ?? ?? ?? FF 1? ?? ?? ?? ?? 85 ?? 0F 85 } + $block_3 = { 5? 5? 5? 33 ?? 8D ?? ?? ?? 5? 5? 5? 5? 5? 5? 8B ?? 89 ?? ?? ?? FF 1? ?? ?? ?? ?? 85 ?? 0F 85 } + $block_4 = { 83 ?? ?? 33 ?? 6A ?? 5? 8B ?? F7 ?? 0F 90 ?? F7 ?? 0B ?? 5? E8 ?? ?? ?? ?? 8B ?? 5? 85 ?? 74 } + $block_5 = { 8B ?? ?? 5? 68 ?? ?? ?? ?? E8 ?? ?? ?? ?? 88 ?? ?? ?? ?? ?? 0F B6 ?? ?? ?? ?? ?? 85 ?? 74 } + $block_6 = { 8D ?? ?? 5? 6A ?? E8 ?? ?? ?? ?? 6A ?? 6A ?? 8B ?? E8 ?? ?? ?? ?? 83 ?? ?? 85 ?? 0F 85 } + $block_7 = { 6A ?? 8D ?? ?? 5? 5? E8 ?? ?? ?? ?? 83 ?? ?? 8D ?? ?? 8B ?? E8 ?? ?? ?? ?? 85 ?? 0F 85 } + $block_8 = { 8B ?? ?? ?? ?? ?? ?? 5? 5? 5? 0F B6 ?? 5? 33 ?? E8 ?? ?? ?? ?? 81 C? ?? ?? ?? ?? C3 } + $block_9 = { 8D ?? ?? ?? 5? 5? 68 ?? ?? ?? ?? 5? 5? 89 ?? ?? ?? FF 1? ?? ?? ?? ?? 85 ?? 0F 84 } + $block_10 = { 8B ?? ?? ?? ?? ?? 8B ?? ?? 5? 5? 33 ?? 5? E8 ?? ?? ?? ?? 81 C? ?? ?? ?? ?? C9 C3 } + $block_11 = { 8B ?? ?? ?? ?? ?? 8A ?? ?? 5? 5? 33 ?? 5? E8 ?? ?? ?? ?? 81 C? ?? ?? ?? ?? C9 C3 } + $block_12 = { 8D ?? ?? E8 ?? ?? ?? ?? 8B ?? ?? 5? 5? 33 ?? 5? E8 ?? ?? ?? ?? 83 ?? ?? C9 C3 } + $block_13 = { 8B ?? ?? ?? ?? ?? 5? 5? 8A ?? 33 ?? 5? E8 ?? ?? ?? ?? 81 C? ?? ?? ?? ?? C9 C3 } + $block_14 = { 8B ?? ?? 6A ?? 8D ?? ?? ?? 5? 8B ?? 89 ?? ?? ?? E8 ?? ?? ?? ?? 85 ?? 0F 84 } + $block_15 = { 8B ?? ?? 8B ?? C1 ?? ?? 5? E8 ?? ?? ?? ?? 5? 33 ?? 89 ?? ?? 3B ?? 0F 84 } + $block_16 = { 8D ?? ?? ?? ?? ?? 5? 8B ?? ?? ?? ?? ?? 5? FF 1? ?? ?? ?? ?? 85 ?? 0F 84 } + $block_17 = { 8B ?? 8B ?? ?? 8B ?? FF D? 5? 6A ?? E8 ?? ?? ?? ?? 8B ?? 83 ?? ?? 0F 84 } + $block_18 = { 8B ?? ?? ?? ?? ?? 5? 5? 33 ?? 5? E8 ?? ?? ?? ?? 81 C? ?? ?? ?? ?? C9 C3 } + $block_19 = { 8D ?? ?? 89 ?? ?? 8B ?? ?? E8 ?? ?? ?? ?? F6 ?? ?? ?? 89 ?? ?? 0F 84 } + $block_20 = { 8B ?? ?? ?? ?? ?? 5? 33 ?? 5? E8 ?? ?? ?? ?? 81 C? ?? ?? ?? ?? C9 C3 } + $block_21 = { 68 ?? ?? ?? ?? 5? 8D ?? ?? ?? 5? E8 ?? ?? ?? ?? 83 ?? ?? 85 ?? 0F 85 } + $block_22 = { 8D ?? ?? ?? 5? 68 ?? ?? ?? ?? 5? 5? 5? FF 1? ?? ?? ?? ?? 85 ?? 0F 85 } + $block_23 = { 8D ?? ?? ?? ?? ?? ?? 5? 68 ?? ?? ?? ?? FF 1? ?? ?? ?? ?? 85 ?? 0F 84 } + $block_24 = { FF 7? ?? 8B ?? 8B ?? E8 ?? ?? ?? ?? 33 ?? 5? 89 ?? ?? 39 ?? ?? 0F 84 } + $block_25 = { 8D ?? ?? ?? 5? 5? C7 ?? ?? ?? ?? ?? ?? ?? E8 ?? ?? ?? ?? 85 ?? 0F 84 } + $block_26 = { 5? 8B ?? 5? 5? 33 ?? 5? 8B ?? ?? C7 ?? ?? ?? ?? ?? ?? 39 ?? ?? 0F 84 } + $block_27 = { 8B ?? 8B ?? ?? FF D? 8D ?? ?? 5? 8B ?? E8 ?? ?? ?? ?? 84 ?? 0F 84 } + $block_28 = { 0F 95 ?? 8B ?? ?? ?? 64 ?? ?? ?? ?? ?? ?? 5? 5? 5? 5? 83 ?? ?? C2 } + $block_29 = { 8B ?? ?? ?? 83 ?? ?? 5? E8 ?? ?? ?? ?? 8B ?? 83 ?? ?? 85 ?? 0F 84 } + $block_30 = { 68 ?? ?? ?? ?? 8D ?? ?? 5? 5? E8 ?? ?? ?? ?? 83 ?? ?? 85 ?? 0F 85 } + $block_31 = { 8B ?? ?? ?? ?? ?? 33 ?? E8 ?? ?? ?? ?? 81 C? ?? ?? ?? ?? C9 C3 } + $block_32 = { 5? 8B ?? 5? 5? 5? 8B ?? ?? 8B ?? 0F B6 ?? ?? 33 ?? 3B ?? 0F 8E } + $block_33 = { 8B ?? ?? ?? 8B ?? 8D ?? ?? ?? 5? 5? 8B ?? ?? FF D? 85 ?? 0F 85 } + $block_34 = { 6A ?? 68 ?? ?? ?? ?? FF 3? E8 ?? ?? ?? ?? 83 ?? ?? 85 ?? 0F 84 } + $block_35 = { 8D ?? ?? 68 ?? ?? ?? ?? 5? E8 ?? ?? ?? ?? 5? 5? 85 ?? 0F 85 } + $block_36 = { 5? 6A ?? 68 ?? ?? ?? ?? FF 1? ?? ?? ?? ?? 8B ?? 85 ?? 0F 84 } + $block_37 = { 8B ?? ?? 5? 8B ?? ?? 5? 8D ?? ?? E8 ?? ?? ?? ?? 85 ?? 0F 84 } + $block_38 = { 8B ?? 68 ?? ?? ?? ?? E8 ?? ?? ?? ?? 83 ?? ?? 85 ?? 0F 84 } + $block_39 = { 5? 8B ?? 83 ?? ?? 89 ?? ?? C6 ?? ?? ?? 83 ?? ?? ?? 0F 84 } + $block_40 = { 5? 6A ?? E8 ?? ?? ?? ?? 8B ?? 89 ?? ?? ?? 83 ?? ?? 0F 84 } + $block_41 = { 5? 5? 5? 8B ?? ?? ?? 33 ?? 8B ?? 89 ?? ?? ?? 3B ?? 0F 84 } + $block_42 = { 5? 5? 5? 8B ?? ?? ?? 32 ?? 8B ?? 88 ?? ?? ?? 85 ?? 0F 84 } + $block_43 = { 8D ?? ?? 5? 8B ?? ?? 5? E8 ?? ?? ?? ?? 83 ?? ?? 0F 85 } + $block_44 = { 6A ?? 8B ?? 2B ?? ?? 5? 5? 89 ?? ?? 5? 89 ?? ?? 0F 88 } + $block_45 = { 5? 8B ?? 83 ?? ?? 5? 8B ?? 33 ?? 5? 66 ?? ?? ?? 0F 85 } + $block_46 = { 5? 8D ?? ?? ?? 5? 5? E8 ?? ?? ?? ?? 8B ?? 3B ?? 0F 84 } + $block_47 = { 8B ?? ?? 5? 5? 33 ?? 5? E8 ?? ?? ?? ?? 83 ?? ?? C9 C3 } + $block_48 = { 8B ?? ?? 8B ?? ?? 5? 33 ?? 5? E8 ?? ?? ?? ?? C9 C3 } + $block_49 = { 8B ?? ?? 8B ?? E8 ?? ?? ?? ?? 89 ?? ?? 3B ?? 0F 84 } + $block_50 = { FF 7? ?? 8B ?? 8B ?? E8 ?? ?? ?? ?? 5? 85 ?? 0F 85 } + $block_51 = { 8B ?? ?? 80 7? ?? ?? 8B ?? ?? 0F 95 ?? 88 ?? ?? 8B } + $block_52 = { 8B ?? ?? 5? 5? 8B ?? 33 ?? 5? E8 ?? ?? ?? ?? C9 C3 } + $block_53 = { 8B ?? ?? ?? 4? 89 ?? ?? ?? 3B ?? ?? ?? ?? ?? 0F 82 } + $block_54 = { 0F B6 ?? 8B ?? ?? 8B ?? ?? 4? 3D ?? ?? ?? ?? 0F 87 } + $block_55 = { 8B ?? ?? 33 ?? 5? E8 ?? ?? ?? ?? 83 ?? ?? C9 C3 } + $block_56 = { 8B ?? ?? 8B ?? ?? 83 ?? ?? 89 ?? ?? 85 ?? 0F 84 } + $block_57 = { 6A ?? E8 ?? ?? ?? ?? 8B ?? 83 ?? ?? 3B ?? 0F 84 } + $block_58 = { 8B ?? ?? 8B ?? 5? 33 ?? 5? E8 ?? ?? ?? ?? C9 C3 } + $block_59 = { 0F B7 ?? ?? 0F B6 ?? ?? 5? 8D ?? ?? 83 ?? ?? 7D } + $block_60 = { 8B ?? 8B ?? E8 ?? ?? ?? ?? 89 ?? ?? 3B ?? 0F 84 } + $block_61 = { 8B ?? ?? 80 7? ?? ?? C7 ?? ?? ?? ?? ?? ?? 0F 85 } + $block_62 = { 5? 5? E8 ?? ?? ?? ?? 8B ?? 83 ?? ?? 3B ?? 0F 84 } + $block_63 = { 8B ?? ?? 83 ?? ?? 33 ?? 83 ?? ?? 39 ?? ?? 0F 87 } + $block_64 = { 8B ?? ?? ?? 01 ?? ?? ?? 89 ?? ?? ?? 3B ?? 0F 86 } + + condition: + hash.sha256(0, filesize) == "cf8b014c410edf2116fd54803ef9325c45d26d44160fa0feefa361a576aa7980" or + 12 of them +} + +rule RedOctoberPluginDocBackdoor { + meta: + Author = "Intezer Analyze" + Reference = "https://apt-ecosystem.com" + + strings: + $block_0 = { 5? 8B ?? 83 ?? ?? 89 ?? ?? C7 ?? ?? ?? ?? ?? ?? 8B ?? ?? 5? 68 ?? ?? ?? ?? E8 ?? ?? ?? ?? 83 ?? ?? 8B ?? ?? 5? FF 1? ?? ?? ?? ?? 8D ?? ?? ?? 89 ?? ?? 8B ?? ?? 5? 68 ?? ?? ?? ?? E8 ?? ?? ?? ?? 83 ?? ?? C7 ?? ?? ?? ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? 83 ?? ?? ?? 0F 84 } + $block_1 = { 5? 8B ?? B8 ?? ?? ?? ?? E8 ?? ?? ?? ?? A1 ?? ?? ?? ?? 33 ?? 89 ?? ?? 89 ?? ?? ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? 8B ?? ?? 5? 68 ?? ?? ?? ?? E8 ?? ?? ?? ?? 83 ?? ?? 83 ?? ?? ?? 0F 84 } + $block_2 = { 68 ?? ?? ?? ?? E8 ?? ?? ?? ?? 83 ?? ?? 8B ?? ?? 5? 8B ?? ?? 5? 8B ?? ?? 5? 8B ?? ?? 5? E8 ?? ?? ?? ?? 83 ?? ?? 8B ?? ?? 5? 8B ?? ?? 5? 8B ?? ?? 5? 8B ?? ?? 03 ?? ?? 5? E8 ?? ?? ?? ?? 83 ?? ?? 8D ?? ?? 5? 8D ?? ?? 5? 68 ?? ?? ?? ?? 8B ?? ?? 5? 8B ?? ?? 5? B9 ?? ?? ?? ?? E8 ?? ?? ?? ?? 85 ?? 0F 84 } + $block_3 = { 8B ?? ?? 5? 8B ?? ?? 5? FF 1? ?? ?? ?? ?? 8B ?? ?? 2B ?? ?? ?? ?? ?? 89 ?? ?? 8B ?? ?? 5? 6A ?? 8B ?? ?? 5? E8 ?? ?? ?? ?? 83 ?? ?? 8B ?? ?? 5? 8B ?? ?? 03 ?? ?? ?? ?? ?? 5? 8B ?? ?? 5? 8B ?? ?? 5? E8 ?? ?? ?? ?? 83 ?? ?? 0F B6 ?? ?? 83 ?? ?? 75 } + $block_4 = { 8B ?? ?? 2B ?? ?? 83 ?? ?? 89 ?? ?? 8B ?? ?? 5? 8B ?? ?? 03 ?? ?? 5? 8B ?? ?? 5? 8B ?? ?? 5? E8 ?? ?? ?? ?? 83 ?? ?? 8D ?? ?? 5? 68 ?? ?? ?? ?? 8B ?? ?? 5? 8B ?? ?? 5? B9 ?? ?? ?? ?? E8 ?? ?? ?? ?? 85 ?? 0F 84 } + $block_5 = { 68 ?? ?? ?? ?? E8 ?? ?? ?? ?? 83 ?? ?? 6A ?? 6A ?? 8D ?? ?? ?? ?? ?? 5? E8 ?? ?? ?? ?? 83 ?? ?? 6A ?? 6A ?? 8D ?? ?? ?? ?? ?? 5? E8 ?? ?? ?? ?? 83 ?? ?? C7 ?? ?? ?? ?? ?? ?? ?? ?? ?? 0F B6 ?? ?? 83 ?? ?? 75 } + $block_6 = { 8D ?? ?? ?? ?? ?? 5? FF 1? ?? ?? ?? ?? 83 ?? ?? 33 ?? BA ?? ?? ?? ?? F7 ?? 0F 90 ?? F7 ?? 0B ?? 5? E8 ?? ?? ?? ?? 83 ?? ?? 89 ?? ?? ?? ?? ?? 8B ?? ?? 8B ?? ?? ?? ?? ?? 89 ?? 83 ?? ?? ?? ?? ?? ?? 74 } + $block_7 = { 8B ?? ?? 5? 68 ?? ?? ?? ?? E8 ?? ?? ?? ?? 83 ?? ?? 8B ?? ?? 03 ?? ?? 89 ?? ?? 8B ?? ?? 5? 68 ?? ?? ?? ?? E8 ?? ?? ?? ?? 83 ?? ?? 8B ?? ?? 5? E8 ?? ?? ?? ?? 83 ?? ?? 89 ?? ?? 83 ?? ?? ?? 0F 84 } + $block_8 = { 68 ?? ?? ?? ?? E8 ?? ?? ?? ?? 83 ?? ?? 8B ?? ?? 5? FF 1? ?? ?? ?? ?? 8D ?? ?? ?? 89 ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 5? E8 ?? ?? ?? ?? 83 ?? ?? 89 ?? ?? 83 ?? ?? ?? 0F 84 } + $block_9 = { C7 ?? ?? ?? ?? ?? ?? ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? ?? ?? ?? 8D ?? ?? ?? ?? ?? 5? 8D ?? ?? ?? ?? ?? 5? 8B ?? ?? 5? 8B ?? ?? 5? E8 ?? ?? ?? ?? 83 ?? ?? 0F B6 ?? 85 ?? 74 } + + condition: + hash.sha256(0, filesize) == "bef87ae1f54d63f88c59f38e1725735db723b729d0dbbda2411d5b9779649415" or + 10 of them +} + +rule KillDisk { + meta: + Author = "Intezer Analyze" + Reference = "https://apt-ecosystem.com" + + strings: + $block_0 = { 8B ?? ?? ?? 8D ?? ?? ?? 5? 5? 5? 6A ?? 5? 89 ?? ?? ?? FF 1? ?? ?? ?? ?? 8B ?? ?? ?? 85 ?? 0F 84 } + $block_1 = { 8B ?? ?? ?? ?? ?? 5? FF D? 83 ?? ?? ?? 5? 0F 95 ?? ?? ?? FF 1? ?? ?? ?? ?? 80 7? ?? ?? ?? 0F 84 } + $block_2 = { 5? FF 1? ?? ?? ?? ?? 6A ?? FF 1? ?? ?? ?? ?? 5? FF 1? ?? ?? ?? ?? 83 ?? ?? 0F 95 ?? 84 ?? 75 } + $block_3 = { 8B ?? ?? ?? 8B ?? ?? ?? 03 ?? 03 ?? 03 ?? 01 ?? ?? ?? 83 ?? ?? 83 ?? ?? 89 ?? ?? ?? 0F 82 } + $block_4 = { 8B ?? ?? ?? 8D ?? ?? ?? 5? 33 ?? 5? 5? 6A ?? 5? 89 ?? ?? ?? FF 1? ?? ?? ?? ?? 85 ?? 0F 85 } + $block_5 = { 8B ?? ?? ?? ?? ?? ?? 85 ?? 0F 95 ?? 5? 33 ?? E8 ?? ?? ?? ?? 81 C? ?? ?? ?? ?? C3 } + $block_6 = { 8B ?? C1 ?? ?? 8B ?? F3 ?? 8B ?? 8B ?? ?? ?? 83 ?? ?? A9 ?? ?? ?? ?? F3 ?? 0F 85 } + $block_7 = { 68 ?? ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? ?? E8 ?? ?? ?? ?? 8B ?? 83 ?? ?? 85 ?? 0F 84 } + $block_8 = { 8B ?? ?? ?? 5? 5? 68 ?? ?? ?? ?? FF 1? ?? ?? ?? ?? 8B ?? 3B ?? 89 ?? ?? ?? 0F 84 } + $block_9 = { 8B ?? C1 ?? ?? 8B ?? F3 ?? 8B ?? 83 ?? ?? F3 ?? FF 1? ?? ?? ?? ?? 3C ?? 0F 85 } + $block_10 = { 68 ?? ?? ?? ?? FF D? 8B ?? ?? ?? 8B ?? 83 ?? ?? 83 ?? ?? 89 ?? ?? ?? 0F 86 } + $block_11 = { 5? 5? 6A ?? 5? 6A ?? 68 ?? ?? ?? ?? 5? FF 1? ?? ?? ?? ?? 8B ?? 3B ?? 0F 84 } + $block_12 = { 8B ?? ?? ?? 2B ?? B8 ?? ?? ?? ?? F7 ?? C1 ?? ?? 8B ?? C1 ?? ?? 03 ?? 0F 84 } + $block_13 = { 8B ?? ?? ?? 83 ?? ?? ?? ?? 83 ?? ?? 83 ?? ?? 3B ?? ?? ?? 89 ?? ?? ?? 0F 82 } + $block_14 = { 8B ?? ?? ?? 83 ?? ?? 83 ?? ?? 83 ?? ?? 3B ?? 89 ?? ?? ?? 89 ?? ?? ?? 0F 82 } + $block_15 = { 68 ?? ?? ?? ?? 8D ?? ?? ?? ?? ?? ?? 5? 5? FF 1? ?? ?? ?? ?? 85 ?? 0F 85 } + $block_16 = { 68 ?? ?? ?? ?? 8D ?? ?? ?? ?? ?? ?? 5? 5? FF 1? ?? ?? ?? ?? 85 ?? 0F 84 } + $block_17 = { 8B ?? C1 ?? ?? 8B ?? F3 ?? 8B ?? 83 ?? ?? F6 ?? ?? ?? ?? F3 ?? 0F 84 } + $block_18 = { 8B ?? ?? ?? 5? E8 ?? ?? ?? ?? 8B ?? 83 ?? ?? 3B ?? 89 ?? ?? ?? 0F 84 } + $block_19 = { 89 ?? ?? ?? 8D ?? ?? ?? 5? E8 ?? ?? ?? ?? 83 ?? ?? 84 ?? 0F 84 } + $block_20 = { 6A ?? 6A ?? 6A ?? 32 ?? FF 1? ?? ?? ?? ?? 8B ?? 85 ?? 0F 84 } + $block_21 = { 6A ?? 6A ?? 6A ?? 6A ?? FF 1? ?? ?? ?? ?? 8B ?? 85 ?? 0F 84 } + $block_22 = { 5? 8B ?? 83 ?? ?? 83 ?? ?? 5? 5? 8B ?? ?? 85 ?? 5? 0F 84 } + $block_23 = { 0F B7 ?? ?? ?? ?? ?? 66 ?? ?? ?? ?? 83 ?? ?? 66 ?? ?? 75 } + $block_24 = { 8B ?? ?? 68 ?? ?? ?? ?? 5? FF 1? ?? ?? ?? ?? 85 ?? 0F 85 } + $block_25 = { 8B ?? C1 ?? ?? F3 ?? 8B ?? 83 ?? ?? 85 ?? F3 ?? 0F 84 } + $block_26 = { 8B ?? ?? ?? 83 ?? ?? 83 ?? ?? 3B ?? 89 ?? ?? ?? 0F 82 } + $block_27 = { 8B ?? E8 ?? ?? ?? ?? 8B ?? 3B ?? 89 ?? ?? ?? 0F 84 } + $block_28 = { 8B ?? ?? ?? 3B ?? 8B ?? ?? ?? C6 ?? ?? ?? ?? 0F 87 } + $block_29 = { 5? FF 1? ?? ?? ?? ?? 83 ?? ?? 0F 95 ?? 84 ?? 0F 84 } + $block_30 = { 5? 6A ?? 6A ?? FF 1? ?? ?? ?? ?? 8B ?? 85 ?? 0F 84 } + $block_31 = { 8D ?? ?? ?? 5? 68 ?? ?? ?? ?? 5? FF D? 85 ?? 0F 84 } + $block_32 = { 0F B7 ?? 66 ?? ?? 83 ?? ?? 83 ?? ?? 66 ?? ?? 75 } + $block_33 = { 5? FF 1? ?? ?? ?? ?? 83 ?? ?? 0F 95 ?? 84 ?? 74 } + $block_34 = { 83 ?? ?? ?? ?? 83 ?? ?? ?? ?? 8B ?? ?? ?? 0F 85 } + $block_35 = { 68 ?? ?? ?? ?? 5? FF 1? ?? ?? ?? ?? 85 ?? 0F 85 } + + condition: + hash.sha256(0, filesize) == "26173c9ec8fd1c4f9f18f89683b23267f6f9d116196ed15655e9cb453af2890e" or + hash.sha256(0, filesize) == "8246f709efa922a485e1ca32d8b0d10dc752618e8b3fce4d3dd58d10e4a6a16d" or + 12 of them +} + +rule XData { + meta: + Author = "Intezer Analyze" + Reference = "https://apt-ecosystem.com" + + strings: + $block_0 = { 68 ?? ?? ?? ?? E8 ?? ?? ?? ?? CC 5? 8B ?? 5? 8B ?? ?? 5? 8B ?? 8B ?? ?? 5? 8B ?? ?? 3B ?? 0F 82 } + $block_1 = { 5? 5? 8D ?? ?? C7 ?? ?? ?? ?? ?? ?? 32 ?? C7 ?? ?? ?? ?? ?? ?? E8 ?? ?? ?? ?? 5? 5? 85 ?? 0F 84 } + $block_2 = { 68 ?? ?? ?? ?? 6A ?? 8D ?? ?? ?? ?? ?? 5? E8 ?? ?? ?? ?? 33 ?? 85 ?? 5? 0F 94 ?? 5? 8B ?? 5? C3 } + $block_3 = { 8D ?? ?? 8B ?? E8 ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 8B ?? 33 ?? ?? ?? ?? ?? 5? FF D? 85 ?? 0F 84 } + $block_4 = { 48 ?? ?? 48 ?? ?? ?? 0F 10 ?? ?? 0F 11 ?? 48 ?? ?? ?? ?? 48 ?? ?? ?? ?? 48 ?? ?? ?? 5? C3 } + $block_5 = { BA ?? ?? ?? ?? 8B ?? E8 ?? ?? ?? ?? 85 ?? 0F 44 ?? 8D ?? ?? E8 ?? ?? ?? ?? 8B ?? 85 ?? 74 } + $block_6 = { 68 ?? ?? ?? ?? B8 ?? ?? ?? ?? E8 ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 8B ?? ?? 33 ?? 85 ?? 0F 84 } + $block_7 = { 48 ?? ?? ?? ?? 0F B6 ?? 48 ?? ?? ?? ?? 48 ?? ?? ?? ?? 4C ?? ?? ?? ?? 48 ?? ?? ?? 5? C3 } + $block_8 = { 5? 8B ?? 5? 5? 5? 8B ?? 33 ?? 5? 33 ?? 33 ?? 0F B7 ?? ?? 8B ?? ?? ?? ?? ?? 66 ?? ?? 73 } + $block_9 = { 8D ?? ?? 89 ?? ?? 5? 6A ?? 5? B9 ?? ?? ?? ?? E8 ?? ?? ?? ?? 0F B6 ?? F7 ?? 5? 1B ?? 83 } + $block_10 = { 6A ?? FF 3? 5? E8 ?? ?? ?? ?? 83 ?? ?? 6A ?? 5? 89 ?? ?? B8 ?? ?? ?? ?? 66 ?? ?? 0F 85 } + $block_11 = { 8B ?? ?? 83 ?? ?? 8B ?? ?? 4? 89 ?? ?? 89 ?? ?? 89 ?? ?? 83 ?? ?? 89 ?? ?? 85 ?? 0F 89 } + $block_12 = { 8B ?? ?? 03 ?? ?? 0F B6 ?? 8B ?? ?? 03 ?? ?? 0F B6 ?? 33 ?? 8B ?? ?? 03 ?? ?? 88 ?? EB } + $block_13 = { 5? 8B ?? 5? 8B ?? ?? 5? 8B ?? ?? 8B ?? 83 ?? ?? 83 ?? ?? 5? 8D ?? ?? ?? ?? ?? ?? 0F 1F } + $block_14 = { 8D ?? ?? 5? FF 1? ?? ?? ?? ?? 8B ?? ?? 6A ?? 5? 4? 6A ?? 89 ?? ?? 5? 3B ?? ?? 0F 82 } + $block_15 = { 83 ?? ?? ?? 8D ?? ?? 6A ?? 6A ?? E8 ?? ?? ?? ?? 8B ?? ?? 4? 89 ?? ?? 83 ?? ?? 0F 8C } + $block_16 = { A1 ?? ?? ?? ?? 8D ?? ?? 33 ?? ?? ?? ?? ?? 6A ?? 6A ?? 5? 6A ?? FF D? 83 ?? ?? 0F 84 } + $block_17 = { 8B ?? ?? 8D ?? ?? 5? 33 ?? C7 ?? ?? ?? ?? ?? ?? E8 ?? ?? ?? ?? 83 ?? ?? 85 ?? 0F 84 } + $block_18 = { A1 ?? ?? ?? ?? 8B ?? 33 ?? ?? ?? ?? ?? 5? FF D? 66 ?? ?? ?? 8D ?? ?? 8D ?? ?? 0F 84 } + $block_19 = { 83 ?? ?? ?? 8D ?? ?? 0F 43 ?? ?? 33 ?? 5? 5? 6A ?? 5? E8 ?? ?? ?? ?? 83 ?? ?? 8A } + $block_20 = { 8B ?? ?? 33 ?? 2B ?? 99 C7 ?? ?? ?? ?? ?? ?? F7 ?? ?? 5? 89 ?? ?? B3 ?? 85 ?? 74 } + $block_21 = { 83 ?? ?? ?? 8D ?? ?? 0F 43 ?? ?? 33 ?? 5? 5? 5? 6A ?? E8 ?? ?? ?? ?? 83 ?? ?? 8A } + $block_22 = { 6A ?? 68 ?? ?? ?? ?? E8 ?? ?? ?? ?? 8B ?? 83 ?? ?? ?? 8B ?? ?? 83 ?? ?? ?? 0F 82 } + $block_23 = { 33 ?? FF 1? ?? ?? ?? ?? 48 ?? ?? 48 ?? ?? FF 1? ?? ?? ?? ?? 8B ?? 85 ?? 0F 84 } + $block_24 = { 48 ?? ?? ?? ?? 4D ?? ?? 48 ?? ?? ?? ?? 89 ?? ?? ?? E8 ?? ?? ?? ?? 84 ?? 0F 84 } + $block_25 = { A1 ?? ?? ?? ?? 8D ?? ?? ?? ?? ?? ?? 33 ?? ?? ?? ?? ?? 5? 5? FF D? 85 ?? 0F 84 } + $block_26 = { 33 ?? FF 1? ?? ?? ?? ?? 48 ?? ?? 48 ?? ?? FF 1? ?? ?? ?? ?? 48 ?? ?? 0F 84 } + $block_27 = { 83 ?? ?? ?? 8D ?? ?? 0F 43 ?? ?? 5? FF 7? ?? E8 ?? ?? ?? ?? 5? 5? 84 ?? 75 } + $block_28 = { 5? 8B ?? 81 E? ?? ?? ?? ?? 5? 5? 8B ?? 89 ?? ?? 5? 8B ?? 66 ?? ?? ?? 0F 84 } + $block_29 = { 8B ?? ?? 8B ?? ?? 8B ?? 85 ?? 8D ?? ?? 0F 45 ?? 8B ?? ?? 8D ?? ?? 85 ?? 74 } + $block_30 = { 6A ?? 68 ?? ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? E8 ?? ?? ?? ?? 83 ?? ?? ?? 0F 85 } + $block_31 = { 81 E? ?? ?? ?? ?? 8B ?? 03 ?? 03 ?? 99 2B ?? ?? 83 ?? ?? 01 ?? 11 ?? ?? 8B } + $block_32 = { 0F B6 ?? 8D ?? ?? 33 ?? C1 ?? ?? 0F B6 ?? 33 ?? ?? ?? ?? ?? ?? 83 ?? ?? 75 } + $block_33 = { A1 ?? ?? ?? ?? 8D ?? ?? ?? ?? ?? 33 ?? ?? ?? ?? ?? 5? 5? FF D? 85 ?? 0F 85 } + $block_34 = { 4? 8D ?? ?? ?? ?? ?? 8B ?? 89 ?? ?? 8B ?? 89 ?? ?? 8B ?? ?? 33 ?? 0F 1F } + $block_35 = { 48 ?? ?? ?? ?? 5? 48 ?? ?? ?? 49 ?? ?? 48 ?? ?? 49 ?? ?? ?? ?? 0F 82 } + $block_36 = { 8B ?? ?? 2B ?? 8B ?? ?? 3B ?? 89 ?? ?? 0F 47 ?? 8B ?? F7 ?? 3B ?? 76 } + $block_37 = { 5? 8D ?? ?? A5 A5 A5 A5 FF 7? ?? FF 1? ?? ?? ?? ?? 8B ?? ?? 33 ?? 8D } + $block_38 = { 8B ?? ?? 33 ?? 6A ?? 5? 89 ?? ?? 8B ?? ?? 2B ?? 99 F7 ?? 85 ?? 0F 84 } + $block_39 = { 6A ?? B8 ?? ?? ?? ?? E8 ?? ?? ?? ?? 8B ?? ?? 8B ?? ?? 85 ?? 0F 84 } + $block_40 = { 8D ?? ?? B9 ?? ?? ?? ?? E8 ?? ?? ?? ?? 8B ?? 89 ?? ?? 85 ?? 0F 84 } + $block_41 = { 68 ?? ?? ?? ?? E8 ?? ?? ?? ?? 8B ?? 83 ?? ?? 89 ?? ?? 85 ?? 0F 84 } + $block_42 = { 6A ?? 5? 8D ?? ?? ?? ?? ?? F3 ?? 8B ?? ?? ?? ?? ?? 85 ?? 0F 84 } + $block_43 = { 5? 8B ?? 5? 8B ?? ?? 5? 8B ?? 8B ?? ?? 5? 8B ?? ?? 3B ?? 0F 82 } + $block_44 = { 6A ?? B8 ?? ?? ?? ?? E8 ?? ?? ?? ?? 83 ?? ?? ?? ?? ?? ?? 0F 84 } + $block_45 = { 4? 83 ?? ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 3B ?? 0F 82 } + $block_46 = { 8D ?? ?? ?? ?? ?? ?? 89 ?? ?? 8D ?? ?? ?? ?? ?? 2B ?? 0F 1F } + $block_47 = { 6A ?? FF 7? ?? E8 ?? ?? ?? ?? 8B ?? 83 ?? ?? 89 ?? ?? 0F 1F } + $block_48 = { FF B? ?? ?? ?? ?? E8 ?? ?? ?? ?? 5? 3D ?? ?? ?? ?? 0F 83 } + $block_49 = { 8B ?? ?? 2B ?? 99 F7 ?? ?? 8B ?? ?? 4? 89 ?? ?? 3B ?? 72 } + $block_50 = { 83 ?? ?? ?? 8D ?? ?? 8D ?? ?? 0F 43 ?? ?? 83 ?? ?? ?? 72 } + $block_51 = { A1 ?? ?? ?? ?? 33 ?? ?? ?? ?? ?? 5? FF D? 3B ?? ?? 0F 85 } + $block_52 = { 48 ?? ?? ?? ?? 5? 48 ?? ?? ?? 49 ?? ?? 4D ?? ?? 0F 84 } + $block_53 = { FF B? ?? ?? ?? ?? E8 ?? ?? ?? ?? 8B ?? 5? 85 ?? 0F 84 } + $block_54 = { 48 ?? ?? FF 1? ?? ?? ?? ?? 4C ?? ?? 48 ?? ?? 0F 84 } + $block_55 = { 49 ?? ?? 48 ?? ?? 48 ?? ?? ?? BA ?? ?? ?? ?? 0F 1F } + $block_56 = { 8D ?? ?? ?? ?? ?? E8 ?? ?? ?? ?? 8B ?? 85 ?? 0F 85 } + $block_57 = { 5? FF 1? ?? ?? ?? ?? 83 ?? ?? 0F 95 ?? 84 ?? 0F 84 } + $block_58 = { 48 ?? ?? ?? ?? ?? ?? B8 ?? ?? ?? ?? 0F 44 ?? 8B } + $block_59 = { 8B ?? 41 ?? ?? 44 ?? ?? ?? 41 ?? ?? 3B ?? 0F 47 } + $block_60 = { 5? 5? 6A ?? FF 1? ?? ?? ?? ?? 8B ?? 85 ?? 0F 84 } + $block_61 = { 83 ?? ?? ?? 8D ?? ?? 8D ?? ?? 0F 43 ?? ?? 5? E8 } + + condition: + hash.sha256(0, filesize) == "ff07c0b13d10db6f897526dd05041bf089b1b9b706833722480309b9b22e5040" or + hash.sha256(0, filesize) == "d174f0c6ded55eb315320750aaa3152fc241acbfaef662bf691ffd0080327ab9" or + hash.sha256(0, filesize) == "92ad1b7965d65bfef751cf6e4e8ad4837699165626e25131409d4134f031a497" or + 12 of them +} + +rule Exaramel { + meta: + Author = "Intezer Analyze" + Reference = "https://apt-ecosystem.com" + + strings: + $block_0 = { 5? 8B ?? 8B ?? ?? 33 ?? 5? 8B ?? ?? 33 ?? 03 ?? 5? 8B ?? 2B ?? 3B ?? 8B ?? ?? 0F 47 ?? 85 ?? 74 } + $block_1 = { 8B ?? 8D ?? ?? 0F 10 ?? ?? 5? 83 ?? ?? 8B ?? 8B ?? 5? 0F 11 ?? 8B ?? ?? ?? ?? ?? FF D? 85 ?? 78 } + $block_2 = { 5? 68 ?? ?? ?? ?? 6A ?? 5? 6A ?? 6A ?? FF 7? ?? FF 1? ?? ?? ?? ?? 8B ?? 83 ?? ?? 0F 84 } + $block_3 = { 33 ?? 83 ?? ?? ?? 0F 94 ?? 89 ?? ?? 66 ?? ?? ?? 66 ?? ?? ?? 33 ?? 5? 8B ?? 5? C3 } + $block_4 = { 8D ?? ?? ?? ?? ?? 5? 68 ?? ?? ?? ?? 5? E8 ?? ?? ?? ?? 8B ?? 83 ?? ?? 85 ?? 0F 88 } + $block_5 = { FF 7? ?? 83 ?? ?? 83 ?? ?? 83 ?? ?? FF 1? ?? ?? ?? ?? 8B ?? ?? 89 ?? 85 ?? 0F 84 } + $block_6 = { 8B ?? ?? 8D ?? ?? 8D ?? ?? 83 ?? ?? 8D ?? ?? 83 ?? ?? 8D ?? ?? 89 ?? ?? 0F 1F } + $block_7 = { 8B ?? ?? 83 ?? ?? 0F 10 ?? ?? 8B ?? 8B ?? 5? 0F 11 ?? 8B ?? ?? ?? ?? ?? FF D? } + $block_8 = { FF 7? ?? FF D? 8B ?? 8B ?? 8B ?? ?? 33 ?? 8D ?? ?? 3B ?? 0F 47 ?? 85 ?? 74 } + $block_9 = { 5? 5? E8 ?? ?? ?? ?? 8B ?? E8 ?? ?? ?? ?? 8B ?? 6A ?? 6A ?? 85 ?? 0F 84 } + $block_10 = { 5? 6A ?? FF 1? ?? ?? ?? ?? 5? FF 1? ?? ?? ?? ?? 33 ?? 83 ?? ?? 0F 44 } + $block_11 = { 68 ?? ?? ?? ?? 68 ?? ?? ?? ?? 5? E8 ?? ?? ?? ?? 83 ?? ?? 85 ?? 0F 84 } + $block_12 = { 8D ?? ?? ?? ?? ?? 5? FF B? ?? ?? ?? ?? FF 1? ?? ?? ?? ?? 85 ?? 0F 85 } + $block_13 = { 5? 8B ?? 8B ?? ?? 33 ?? 8B ?? ?? 66 ?? ?? 0F B7 ?? 83 ?? ?? 75 } + $block_14 = { 8B ?? ?? 0F B7 ?? 83 ?? ?? 5? E8 ?? ?? ?? ?? 83 ?? ?? 85 ?? 74 } + $block_15 = { 83 ?? ?? B8 ?? ?? ?? ?? 66 ?? ?? 0F B7 ?? 66 ?? ?? 0F 84 } + $block_16 = { 66 ?? ?? ?? ?? ?? ?? ?? ?? ?? F6 ?? ?? ?? ?? ?? ?? 0F 84 } + $block_17 = { 8D ?? ?? 5? 5? E8 ?? ?? ?? ?? 83 ?? ?? 85 ?? 0F 88 } + $block_18 = { 5? 6A ?? 5? FF 1? ?? ?? ?? ?? 89 ?? 85 ?? 0F 84 } + + condition: + hash.sha256(0, filesize) == "2f12fd3fb35f8690eea80dd48de98660c55df7f5c26b49d0cc82aaf3635b0c7a" or + 12 of them +} + +rule TeleBotRust { + meta: + Author = "Intezer Analyze" + Reference = "https://apt-ecosystem.com" + + strings: + $block_0 = { F2 ?? ?? ?? ?? ?? ?? ?? F2 ?? ?? ?? ?? ?? ?? ?? F2 ?? ?? ?? ?? ?? ?? ?? ?? F2 ?? ?? ?? ?? ?? ?? ?? ?? F2 ?? ?? ?? ?? F2 ?? ?? ?? F2 ?? ?? ?? ?? F2 ?? ?? ?? ?? F2 ?? ?? ?? ?? F2 ?? ?? ?? ?? F2 ?? ?? ?? ?? F2 ?? ?? ?? ?? F2 ?? ?? ?? ?? F2 ?? ?? ?? ?? F2 ?? ?? ?? ?? F2 ?? ?? ?? ?? F2 ?? ?? ?? ?? F2 ?? ?? ?? ?? F2 ?? ?? ?? ?? F2 ?? ?? ?? ?? F2 ?? ?? ?? ?? ?? ?? ?? F2 ?? ?? ?? ?? ?? ?? ?? F2 ?? ?? ?? ?? ?? ?? ?? F2 ?? ?? ?? ?? ?? ?? ?? F2 ?? ?? ?? ?? ?? ?? ?? F2 ?? ?? ?? ?? ?? ?? ?? F2 ?? ?? ?? ?? ?? ?? ?? F2 ?? ?? ?? ?? ?? ?? ?? F2 ?? ?? ?? ?? ?? ?? ?? F2 ?? ?? ?? ?? ?? ?? ?? F2 ?? ?? ?? ?? ?? ?? ?? F2 ?? ?? ?? ?? ?? ?? ?? F2 ?? ?? ?? ?? ?? ?? ?? F2 ?? ?? ?? ?? ?? ?? ?? F2 ?? ?? ?? ?? ?? ?? ?? F2 ?? ?? ?? ?? ?? ?? ?? F2 ?? ?? ?? ?? ?? ?? ?? F2 ?? ?? ?? ?? ?? ?? ?? F2 ?? ?? ?? ?? ?? ?? ?? F2 ?? ?? ?? ?? ?? ?? ?? F2 ?? ?? ?? ?? ?? ?? ?? F2 ?? ?? ?? ?? ?? ?? ?? F2 ?? ?? ?? ?? ?? ?? ?? F2 ?? ?? ?? ?? ?? ?? ?? F2 ?? ?? ?? ?? ?? ?? ?? F2 ?? ?? ?? ?? ?? ?? ?? F2 ?? ?? ?? ?? ?? ?? ?? F2 ?? ?? ?? ?? ?? ?? ?? F2 ?? ?? ?? ?? ?? ?? ?? F2 ?? ?? ?? ?? ?? ?? ?? F2 ?? ?? ?? ?? ?? ?? ?? F2 ?? ?? ?? ?? ?? ?? ?? F2 ?? ?? ?? ?? ?? ?? ?? F2 ?? ?? ?? ?? ?? ?? ?? F2 ?? ?? ?? ?? ?? ?? ?? F2 ?? ?? ?? ?? ?? ?? ?? F2 ?? ?? ?? ?? ?? ?? ?? F2 ?? ?? ?? ?? ?? ?? ?? F2 ?? ?? ?? ?? ?? ?? ?? F2 ?? ?? ?? ?? ?? ?? ?? F2 ?? ?? ?? ?? ?? ?? ?? F2 ?? ?? ?? ?? ?? ?? ?? F2 ?? ?? ?? ?? ?? ?? ?? F2 ?? ?? ?? ?? ?? ?? ?? F2 ?? ?? ?? ?? ?? ?? ?? F2 ?? ?? ?? ?? ?? ?? ?? F2 ?? ?? ?? ?? ?? ?? ?? F2 ?? ?? ?? ?? ?? ?? ?? F2 ?? ?? ?? ?? ?? ?? ?? F2 ?? ?? ?? ?? ?? ?? ?? F2 ?? ?? ?? ?? ?? ?? ?? F2 ?? ?? ?? ?? ?? ?? ?? F2 ?? ?? ?? ?? ?? ?? ?? F2 ?? ?? ?? ?? ?? ?? ?? F2 ?? ?? ?? ?? ?? ?? ?? F2 ?? ?? ?? ?? ?? ?? ?? F2 ?? ?? ?? ?? ?? ?? ?? F2 ?? ?? ?? ?? ?? ?? ?? F2 ?? ?? ?? ?? ?? ?? ?? F2 ?? ?? ?? ?? ?? ?? ?? F2 ?? ?? ?? ?? ?? ?? ?? F2 ?? ?? ?? ?? ?? ?? ?? F2 ?? ?? ?? ?? ?? ?? ?? F2 ?? ?? ?? ?? ?? ?? ?? F2 ?? ?? ?? ?? ?? ?? ?? F2 ?? ?? ?? ?? ?? ?? ?? F2 ?? ?? ?? ?? ?? ?? ?? F2 ?? ?? ?? ?? ?? ?? ?? F2 ?? ?? ?? ?? ?? ?? ?? F2 ?? ?? ?? ?? ?? ?? ?? F2 ?? ?? ?? ?? ?? ?? ?? F2 ?? ?? ?? ?? ?? ?? ?? F2 ?? ?? ?? ?? ?? ?? ?? F2 ?? ?? ?? ?? ?? ?? ?? F2 ?? ?? ?? ?? ?? ?? ?? F2 ?? ?? ?? ?? ?? ?? ?? F2 ?? ?? ?? ?? ?? ?? ?? F2 ?? ?? ?? ?? ?? ?? ?? F2 ?? ?? ?? ?? ?? ?? ?? F2 ?? ?? ?? ?? ?? ?? ?? F2 ?? ?? ?? ?? ?? ?? ?? F2 ?? ?? ?? ?? ?? ?? ?? F2 ?? ?? ?? ?? ?? ?? ?? F2 ?? ?? ?? ?? ?? ?? ?? F2 ?? ?? ?? ?? ?? ?? ?? F2 ?? ?? ?? ?? ?? ?? ?? F2 ?? ?? ?? ?? ?? ?? ?? F2 ?? ?? ?? ?? ?? ?? ?? F2 ?? ?? ?? ?? ?? ?? ?? F2 ?? ?? ?? ?? ?? ?? ?? F2 ?? ?? ?? ?? ?? ?? ?? F2 ?? ?? ?? ?? ?? ?? ?? F2 ?? ?? ?? ?? ?? ?? ?? F2 ?? ?? ?? ?? ?? ?? ?? F2 ?? ?? ?? ?? ?? ?? ?? F2 ?? ?? ?? ?? ?? ?? ?? F2 ?? ?? ?? ?? ?? ?? ?? F2 ?? ?? ?? ?? ?? ?? ?? F2 ?? ?? ?? ?? ?? ?? ?? F2 ?? ?? ?? ?? ?? ?? ?? F2 ?? ?? ?? ?? ?? ?? ?? F2 ?? ?? ?? ?? ?? ?? ?? F2 ?? ?? ?? ?? ?? ?? ?? F2 ?? ?? ?? ?? ?? ?? ?? F2 ?? ?? ?? ?? ?? ?? ?? F2 ?? ?? ?? ?? ?? ?? ?? F2 ?? ?? ?? ?? ?? ?? ?? F2 ?? ?? ?? ?? ?? ?? ?? F2 ?? ?? ?? ?? ?? ?? ?? F2 ?? ?? ?? ?? ?? ?? ?? F2 ?? ?? ?? ?? ?? ?? ?? F2 ?? ?? ?? ?? ?? ?? ?? F2 ?? ?? ?? ?? ?? ?? ?? F2 ?? ?? ?? ?? ?? ?? ?? F2 ?? ?? ?? ?? ?? ?? ?? F2 ?? ?? ?? ?? ?? ?? ?? F2 ?? ?? ?? ?? ?? ?? ?? F2 ?? ?? ?? ?? ?? ?? ?? F2 ?? ?? ?? ?? ?? ?? ?? F2 ?? ?? ?? ?? ?? ?? ?? F2 ?? ?? ?? ?? ?? ?? ?? F2 ?? ?? ?? ?? ?? ?? ?? F2 ?? ?? ?? ?? ?? ?? ?? F2 ?? ?? ?? ?? ?? ?? ?? F2 ?? ?? ?? ?? ?? ?? ?? F2 ?? ?? ?? ?? ?? ?? ?? F2 ?? ?? ?? ?? ?? ?? ?? F2 ?? ?? ?? ?? ?? ?? ?? F2 ?? ?? ?? ?? ?? ?? ?? F2 ?? ?? ?? ?? ?? ?? ?? F2 ?? ?? ?? ?? ?? ?? ?? F2 ?? ?? ?? ?? ?? ?? ?? F2 ?? ?? ?? ?? ?? ?? ?? F2 ?? ?? ?? ?? ?? ?? ?? F2 ?? ?? ?? ?? ?? ?? ?? F2 ?? ?? ?? ?? ?? ?? ?? F2 ?? ?? ?? ?? ?? ?? ?? F2 ?? ?? ?? ?? ?? ?? ?? F2 ?? ?? ?? ?? ?? ?? ?? F2 ?? ?? ?? ?? ?? ?? ?? F2 ?? ?? ?? ?? ?? ?? ?? F2 ?? ?? ?? ?? ?? ?? ?? F2 ?? ?? ?? ?? ?? ?? ?? F2 ?? ?? ?? ?? ?? ?? ?? F2 ?? ?? ?? ?? ?? ?? ?? F2 ?? ?? ?? ?? ?? ?? ?? F2 ?? ?? ?? ?? ?? ?? ?? F2 ?? ?? ?? ?? ?? ?? ?? F2 ?? ?? ?? ?? ?? ?? ?? F2 ?? ?? ?? ?? ?? ?? ?? F2 ?? ?? ?? ?? ?? ?? ?? F2 ?? ?? ?? ?? ?? ?? ?? F2 ?? ?? ?? ?? ?? ?? ?? F2 ?? ?? ?? ?? ?? ?? ?? F2 ?? ?? ?? ?? ?? ?? ?? F2 ?? ?? ?? ?? ?? ?? ?? F2 ?? ?? ?? ?? ?? ?? ?? F2 ?? ?? ?? ?? ?? ?? ?? F2 ?? ?? ?? ?? ?? ?? ?? F2 ?? ?? ?? ?? ?? ?? ?? F2 ?? ?? ?? ?? ?? ?? ?? F2 ?? ?? ?? ?? ?? ?? ?? F2 ?? ?? ?? ?? ?? ?? ?? F2 ?? ?? ?? ?? ?? ?? ?? F2 ?? ?? ?? ?? ?? ?? ?? F2 ?? ?? ?? ?? ?? ?? ?? F2 ?? ?? ?? ?? ?? ?? ?? F2 ?? ?? ?? ?? ?? ?? ?? F2 ?? ?? ?? ?? ?? ?? ?? F2 ?? ?? ?? ?? ?? ?? ?? F2 ?? ?? ?? ?? ?? ?? ?? F2 ?? ?? ?? ?? ?? ?? ?? F2 ?? ?? ?? ?? ?? ?? ?? F2 ?? ?? ?? ?? ?? ?? ?? F2 ?? ?? ?? ?? ?? ?? ?? F2 ?? ?? ?? ?? ?? ?? ?? F2 ?? ?? ?? ?? ?? ?? ?? F2 ?? ?? ?? ?? ?? ?? ?? F2 ?? ?? ?? ?? ?? ?? ?? F2 ?? ?? ?? ?? ?? ?? ?? F2 ?? ?? ?? ?? ?? ?? ?? F2 ?? ?? ?? ?? ?? ?? ?? A1 ?? ?? ?? ?? 3B ?? ?? ?? ?? ?? ?? 0F 86 } + $block_1 = { 8A ?? ?? ?? ?? ?? ?? F2 ?? ?? ?? ?? ?? ?? ?? ?? F2 ?? ?? ?? ?? ?? F2 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? ?? 8D ?? ?? ?? ?? ?? ?? 8D ?? ?? ?? ?? ?? ?? 8D ?? ?? ?? ?? ?? ?? 88 ?? ?? ?? 0F B7 ?? ?? ?? ?? ?? ?? 66 ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? ?? 8B ?? ?? ?? 89 ?? ?? ?? ?? ?? ?? F2 ?? ?? ?? ?? ?? ?? ?? ?? F2 ?? ?? ?? ?? ?? ?? ?? ?? F2 ?? ?? ?? ?? ?? ?? ?? ?? F2 ?? ?? ?? ?? ?? F2 ?? ?? ?? ?? ?? 8A ?? ?? ?? ?? ?? ?? F2 ?? ?? ?? ?? ?? ?? ?? ?? F2 ?? ?? ?? ?? ?? ?? ?? ?? F2 ?? ?? ?? ?? ?? F2 ?? ?? ?? ?? ?? F2 ?? ?? ?? ?? ?? ?? ?? ?? F2 ?? ?? ?? ?? ?? ?? ?? ?? F2 ?? ?? ?? ?? ?? ?? ?? ?? F2 ?? ?? ?? ?? ?? 88 ?? ?? ?? ?? ?? ?? 88 ?? ?? ?? ?? ?? ?? 0F B7 ?? ?? ?? ?? ?? ?? 89 ?? 8B ?? ?? ?? F2 ?? ?? ?? ?? ?? ?? ?? ?? F2 ?? ?? ?? ?? ?? F2 ?? ?? ?? ?? ?? ?? ?? ?? F2 ?? ?? ?? ?? ?? 66 ?? ?? ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? ?? F2 ?? ?? ?? ?? ?? ?? ?? ?? F2 ?? ?? ?? ?? ?? F2 ?? ?? ?? ?? ?? ?? ?? ?? F2 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? ?? 8B ?? ?? ?? F2 ?? ?? ?? ?? ?? ?? ?? ?? F2 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? ?? F2 ?? ?? ?? ?? ?? ?? ?? ?? F2 ?? ?? ?? ?? ?? ?? ?? ?? F2 ?? ?? ?? ?? ?? ?? ?? ?? F2 ?? ?? ?? ?? ?? ?? ?? ?? F2 ?? ?? ?? ?? ?? ?? ?? ?? F2 ?? ?? ?? ?? ?? ?? ?? ?? F2 ?? ?? ?? ?? ?? ?? ?? ?? F2 ?? ?? ?? ?? ?? ?? ?? ?? F2 ?? ?? ?? ?? ?? ?? ?? ?? F2 ?? ?? ?? ?? ?? F2 ?? ?? ?? ?? ?? ?? ?? ?? F2 ?? ?? ?? ?? ?? F2 ?? ?? ?? ?? ?? ?? ?? ?? F2 ?? ?? ?? ?? ?? F2 ?? ?? ?? ?? ?? ?? ?? ?? F2 ?? ?? ?? ?? ?? F2 ?? ?? ?? ?? ?? ?? ?? ?? F2 ?? ?? ?? ?? ?? F2 ?? ?? ?? ?? ?? ?? ?? ?? F2 ?? ?? ?? ?? ?? F2 ?? ?? ?? ?? ?? ?? ?? ?? F2 ?? ?? ?? ?? ?? ?? ?? ?? F2 ?? ?? ?? ?? ?? ?? ?? ?? F2 ?? ?? ?? ?? ?? ?? ?? ?? F2 ?? ?? ?? ?? ?? ?? ?? ?? F2 ?? ?? ?? ?? ?? ?? ?? ?? F2 ?? ?? ?? ?? ?? ?? ?? ?? F2 ?? ?? ?? ?? ?? ?? ?? ?? F2 ?? ?? ?? ?? ?? ?? ?? ?? F2 ?? ?? ?? ?? ?? ?? ?? ?? F2 ?? ?? ?? ?? ?? ?? ?? ?? F2 ?? ?? ?? ?? ?? ?? ?? ?? F2 ?? ?? ?? ?? ?? ?? ?? ?? F2 ?? ?? ?? ?? ?? ?? ?? ?? F2 ?? ?? ?? ?? ?? ?? ?? ?? F2 ?? ?? ?? ?? ?? ?? ?? ?? F2 ?? ?? ?? ?? ?? ?? ?? ?? F2 ?? ?? ?? ?? ?? ?? ?? ?? F2 ?? ?? ?? ?? ?? ?? ?? ?? F2 ?? ?? ?? ?? ?? ?? ?? ?? F2 ?? ?? ?? ?? ?? ?? ?? ?? F2 ?? ?? ?? ?? ?? ?? ?? ?? 5? 5? E8 ?? ?? ?? ?? 83 ?? ?? 89 ?? E8 ?? ?? ?? ?? 83 ?? ?? ?? ?? ?? ?? ?? 75 } + $block_2 = { 8D ?? ?? ?? ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? 89 ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? ?? 8D ?? ?? ?? 5? 68 ?? ?? ?? ?? 68 ?? ?? ?? ?? 5? 5? E8 ?? ?? ?? ?? 83 ?? ?? 85 ?? 0F 85 } + $block_3 = { 07 00 ?? F8 06 00 ?? F8 06 00 ?? F8 06 00 ?? F8 06 00 ?? F8 06 00 ?? F8 06 00 ?? F8 06 00 ?? F8 06 00 ?? F8 06 00 ?? F8 06 00 ?? 3F 07 00 ?? 3F 07 00 ?? F8 06 00 ?? 3F 07 00 ?? F8 06 00 ?? 3F 07 00 ?? 3F 07 00 ?? F8 06 00 ?? F8 06 00 ?? F8 06 00 ?? F8 06 00 ?? F8 06 00 ?? F8 06 00 ?? F8 06 00 ?? F8 06 00 ?? F8 06 00 ?? F8 06 00 ?? F8 06 00 ?? F8 06 00 ?? F8 06 00 ?? F8 06 00 ?? F8 06 00 ?? F8 06 00 ?? F8 06 00 ?? F8 06 00 ?? F8 06 00 ?? F8 06 00 ?? F8 06 00 ?? F8 06 00 ?? F8 06 00 ?? F8 06 00 ?? F8 06 00 ?? F8 06 00 ?? 3F 07 00 ?? 3F 07 00 ?? 3F 07 00 ?? 3F 07 00 ?? F8 06 00 ?? 3F 07 00 ?? F8 06 00 ?? F8 06 00 ?? F8 06 00 ?? F8 06 00 ?? F8 06 00 ?? F8 06 00 ?? F8 06 00 ?? F8 06 00 ?? F8 06 00 ?? F8 06 00 ?? F8 06 00 ?? F8 06 00 ?? F8 06 00 ?? F8 06 00 ?? F8 06 00 ?? F8 06 00 ?? F8 06 00 ?? F8 06 00 ?? F8 06 00 ?? F8 06 00 ?? F8 06 00 ?? F8 06 00 ?? F8 06 00 ?? F8 06 00 ?? F8 06 00 ?? F8 06 00 ?? 3F 07 00 ?? 3F 07 00 ?? 3F 07 00 ?? 81 0? ?? ?? ?? ?? 00 ?? 61 0B ?? 00 ?? ?? 00 ?? 81 0? ?? ?? ?? ?? 00 ?? 61 0B ?? 00 ?? ?? 00 ?? 61 0B ?? 00 ?? ?? 00 ?? 61 0B ?? 00 ?? ?? 00 ?? 61 0B ?? 00 ?? ?? 00 ?? 61 0B ?? 00 ?? ?? 00 ?? 61 0B ?? 00 ?? ?? 00 ?? 61 0B ?? 00 ?? ?? 00 ?? 61 0B ?? 00 ?? ?? 00 ?? 61 0B ?? 00 ?? ?? 00 ?? 61 0B ?? 00 ?? ?? 00 ?? B7 ?? 00 ?? 61 0B ?? 00 ?? ?? 00 ?? 61 0B ?? 00 ?? ?? 00 ?? 61 0B ?? 00 ?? ?? 00 ?? 61 0B ?? 00 ?? ?? 00 ?? 61 0B ?? 00 ?? ?? 00 ?? 61 0B ?? 00 ?? ?? ?? ?? ?? 0B ?? 00 ?? ?? 00 ?? 61 0B ?? 00 ?? ?? 00 ?? 61 0B ?? 00 ?? ?? 00 ?? 61 0B ?? 00 ?? ?? 00 ?? 61 0B ?? 00 ?? ?? 00 ?? 5? 0B ?? 00 ?? ?? 00 ?? 61 0B ?? 00 ?? ?? 00 ?? 61 0B ?? 00 ?? ?? ?? ?? ?? 0B ?? 00 ?? ?? 00 ?? 61 0B ?? 00 ?? ?? 00 ?? 61 0B ?? 00 ?? ?? 00 ?? 61 0B ?? 00 ?? ?? 00 ?? 61 0B ?? 00 ?? ?? 00 ?? 61 0B ?? 00 ?? ?? 00 ?? 61 0B ?? 00 ?? ?? 00 ?? 61 0B ?? 00 ?? ?? 00 ?? 61 0B ?? 00 ?? ?? 00 ?? 61 0B ?? 00 ?? ?? 00 ?? 61 0B ?? 00 ?? ?? 00 ?? 61 0B ?? 00 ?? ?? 00 ?? 61 0B ?? 00 ?? ?? 00 ?? 61 0B ?? 00 ?? ?? 00 ?? B7 ?? 00 ?? 73 } + $block_4 = { F2 ?? ?? ?? ?? ?? ?? ?? ?? F2 ?? ?? ?? ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? ?? 8A ?? ?? ?? F2 ?? ?? ?? ?? ?? ?? ?? ?? F2 ?? ?? ?? ?? ?? ?? ?? ?? 88 ?? ?? ?? 0F B7 ?? ?? ?? F2 ?? ?? ?? ?? ?? ?? ?? ?? F2 ?? ?? ?? ?? ?? ?? ?? ?? 66 ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? ?? F2 ?? ?? ?? ?? ?? ?? ?? ?? F2 ?? ?? ?? ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? ?? 8A ?? ?? ?? F2 ?? ?? ?? ?? ?? ?? ?? ?? F2 ?? ?? ?? ?? ?? ?? ?? ?? F2 ?? ?? ?? ?? ?? ?? ?? ?? F2 ?? ?? ?? ?? ?? ?? ?? ?? F2 ?? ?? ?? ?? ?? ?? ?? ?? F2 ?? ?? ?? ?? ?? ?? ?? ?? 66 ?? ?? ?? ?? 66 ?? ?? ?? ?? ?? ?? ?? ?? 66 ?? ?? ?? ?? F2 ?? ?? ?? ?? ?? ?? ?? ?? 66 ?? ?? ?? ?? ?? ?? ?? ?? 66 ?? ?? ?? ?? 66 ?? ?? ?? ?? ?? ?? ?? ?? F2 ?? ?? ?? ?? ?? ?? ?? ?? F2 ?? ?? ?? ?? ?? ?? ?? ?? F2 ?? ?? ?? ?? ?? ?? ?? ?? F2 ?? ?? ?? ?? ?? ?? ?? ?? F2 ?? ?? ?? ?? ?? ?? ?? ?? F2 ?? ?? ?? ?? ?? ?? ?? ?? F2 ?? ?? ?? ?? ?? ?? ?? ?? F2 ?? ?? ?? ?? ?? ?? ?? ?? F2 ?? ?? ?? ?? ?? ?? ?? ?? F2 ?? ?? ?? ?? ?? ?? ?? ?? F2 ?? ?? ?? ?? ?? ?? ?? ?? F2 ?? ?? ?? ?? ?? ?? ?? ?? F2 ?? ?? ?? ?? ?? ?? ?? ?? F2 ?? ?? ?? ?? ?? ?? ?? ?? 88 ?? ?? ?? ?? ?? ?? 8A ?? ?? ?? F2 ?? ?? ?? ?? ?? ?? ?? ?? F2 ?? ?? ?? ?? ?? ?? ?? ?? 88 ?? ?? ?? ?? ?? ?? 0F B7 ?? ?? ?? F2 ?? ?? ?? ?? ?? ?? ?? ?? F2 ?? ?? ?? ?? ?? ?? ?? ?? 66 ?? ?? ?? ?? ?? ?? ?? 8B ?? ?? ?? F2 ?? ?? ?? ?? ?? ?? ?? ?? F2 ?? ?? ?? ?? ?? ?? ?? ?? F2 ?? ?? ?? ?? ?? ?? ?? ?? F2 ?? ?? ?? ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? ?? 8B ?? ?? ?? 89 ?? ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? ?? 8B ?? ?? ?? F2 ?? ?? ?? ?? ?? ?? ?? ?? F2 ?? ?? ?? ?? ?? ?? ?? ?? F2 ?? ?? ?? ?? ?? ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? 68 ?? ?? ?? ?? 8D ?? ?? ?? ?? ?? ?? 5? 8D ?? ?? ?? ?? ?? ?? 5? E8 ?? ?? ?? ?? 83 ?? ?? 85 ?? 0F 84 } + $block_5 = { E8 ?? ?? ?? ?? 83 ?? ?? 8B ?? ?? ?? 8B ?? ?? ?? 8B ?? ?? ?? 8B ?? ?? ?? 8B ?? ?? ?? C1 ?? ?? 89 ?? ?? ?? 89 ?? 0B ?? ?? ?? 31 ?? 89 ?? ?? ?? 8B ?? ?? ?? 89 ?? ?? 8B ?? ?? ?? 31 ?? 8B ?? ?? ?? 01 ?? 11 ?? 0F A4 ?? ?? 0F A4 ?? ?? 89 ?? 31 ?? 8B ?? ?? ?? 31 ?? 89 ?? ?? ?? 8B ?? ?? ?? 01 ?? 89 ?? ?? ?? 8B ?? ?? 11 ?? 89 ?? ?? ?? 89 ?? 0F A4 ?? ?? 0F A4 ?? ?? 8B ?? ?? ?? 33 ?? ?? ?? 33 ?? ?? ?? 01 ?? 11 ?? 89 ?? ?? 89 ?? 0F A4 ?? ?? 0F A4 ?? ?? 8B ?? ?? ?? 33 ?? ?? 31 ?? 01 ?? ?? ?? 89 ?? ?? ?? 89 ?? 11 ?? 33 ?? ?? ?? 0F A4 ?? ?? 0F A4 ?? ?? 8B ?? ?? 33 ?? ?? ?? 31 ?? 35 ?? ?? ?? ?? 89 ?? ?? ?? 89 ?? 33 ?? ?? ?? 01 ?? 89 ?? ?? ?? 11 ?? 0F A4 ?? ?? 0F A4 ?? ?? 8B ?? ?? ?? 31 ?? 8B ?? ?? ?? 89 ?? ?? 33 ?? ?? 01 ?? 89 ?? 11 ?? ?? ?? 89 ?? ?? ?? 0F A4 ?? ?? 0F A4 ?? ?? 8B ?? ?? ?? 33 ?? ?? ?? 31 ?? 01 ?? ?? 89 ?? 11 ?? 0F A4 ?? ?? 0F A4 ?? ?? 8B ?? ?? ?? 31 ?? 33 ?? ?? 89 ?? ?? ?? 89 ?? ?? ?? 89 ?? 01 ?? 11 ?? ?? ?? 0F A4 ?? ?? 0F A4 ?? ?? 89 ?? ?? ?? 8B ?? ?? ?? 31 ?? 8B ?? ?? ?? 31 ?? 01 ?? ?? 89 ?? 89 ?? 11 ?? 0F A4 ?? ?? 0F A4 ?? ?? 31 ?? 33 ?? ?? 01 ?? 89 ?? ?? ?? 89 ?? ?? ?? 8B ?? ?? ?? 89 ?? 8B ?? ?? ?? 89 ?? 11 ?? 0F A4 ?? ?? 89 ?? ?? ?? 0F A4 ?? ?? 31 ?? 8B ?? ?? ?? 31 ?? 89 ?? 01 ?? 11 ?? ?? 0F A4 ?? ?? 0F A4 ?? ?? 89 ?? ?? ?? 33 ?? ?? 31 ?? 8B ?? ?? ?? 01 ?? 89 ?? ?? ?? 8B ?? ?? ?? 89 ?? 11 ?? 0F A4 ?? ?? 89 ?? ?? ?? 0F A4 ?? ?? 31 ?? 8B ?? ?? ?? 31 ?? 89 ?? 01 ?? 11 ?? ?? 0F A4 ?? ?? 0F A4 ?? ?? 89 ?? 8B ?? ?? ?? 31 ?? 33 ?? ?? 01 ?? ?? ?? 89 ?? 11 ?? 03 ?? ?? ?? 89 ?? ?? ?? 89 ?? ?? ?? 11 ?? 8B ?? ?? ?? 8B ?? ?? 89 ?? ?? 85 ?? 0F 84 } + $block_6 = { 5? 8B ?? ?? ?? 5? 5? E8 ?? ?? ?? ?? 83 ?? ?? 5? E8 ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? ?? 8B ?? ?? ?? 8B ?? ?? ?? 85 ?? BF ?? ?? ?? ?? F2 ?? ?? ?? ?? ?? F2 ?? ?? ?? ?? ?? ?? ?? ?? 0F 45 ?? 0F 44 ?? 8B ?? ?? ?? 89 ?? ?? ?? ?? ?? ?? 8B ?? ?? ?? 0B ?? ?? ?? 0B ?? ?? ?? F2 ?? ?? ?? ?? ?? ?? ?? ?? F2 ?? ?? ?? ?? ?? ?? ?? ?? F2 ?? ?? ?? ?? ?? ?? ?? ?? F2 ?? ?? ?? ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? ?? 8B ?? ?? ?? 89 ?? ?? ?? ?? ?? ?? 8B ?? ?? 89 ?? ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? ?? 8B ?? ?? ?? 8B ?? ?? ?? 89 ?? ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? ?? 8B ?? ?? 8B ?? ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? ?? 66 ?? ?? ?? ?? ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? ?? F2 ?? ?? ?? ?? ?? ?? ?? ?? F2 ?? ?? ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? ?? 8D ?? ?? ?? ?? ?? ?? 8D ?? ?? ?? ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? 89 ?? E8 ?? ?? ?? ?? 83 ?? ?? ?? ?? ?? ?? ?? 75 } + $block_7 = { B9 ?? ?? ?? ?? E8 ?? ?? ?? ?? B9 ?? ?? ?? ?? E8 ?? ?? ?? ?? 89 ?? 5? 5? E8 ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? ?? F2 ?? ?? ?? ?? ?? ?? ?? ?? F2 ?? ?? ?? ?? ?? ?? ?? ?? 8D ?? ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? ?? F2 ?? ?? ?? ?? ?? ?? ?? ?? F2 ?? ?? ?? ?? ?? ?? ?? ?? E8 ?? ?? ?? ?? E8 ?? ?? ?? ?? 89 ?? 5? 6A ?? E8 ?? ?? ?? ?? 8B ?? ?? ?? 5? 5? E8 ?? ?? ?? ?? 5? 6A ?? E8 ?? ?? ?? ?? 89 ?? 5? 5? E8 ?? ?? ?? ?? B9 ?? ?? ?? ?? E8 ?? ?? ?? ?? E8 ?? ?? ?? ?? E8 ?? ?? ?? ?? E8 ?? ?? ?? ?? E8 ?? ?? ?? ?? B9 ?? ?? ?? ?? E8 ?? ?? ?? ?? B9 ?? ?? ?? ?? E8 ?? ?? ?? ?? B9 ?? ?? ?? ?? E8 ?? ?? ?? ?? B9 ?? ?? ?? ?? BA ?? ?? ?? ?? 68 ?? ?? ?? ?? E8 ?? ?? ?? ?? BA ?? ?? ?? ?? 89 ?? E8 ?? ?? ?? ?? B9 ?? ?? ?? ?? BA ?? ?? ?? ?? 68 ?? ?? ?? ?? E8 ?? ?? ?? ?? E8 ?? ?? ?? ?? E8 ?? ?? ?? ?? 89 ?? E8 ?? ?? ?? ?? E8 ?? ?? ?? ?? 89 ?? E8 ?? ?? ?? ?? B9 ?? ?? ?? ?? E8 ?? ?? ?? ?? 8B ?? ?? ?? E8 ?? ?? ?? ?? 8B ?? ?? ?? E8 ?? ?? ?? ?? 89 ?? E8 ?? ?? ?? ?? 89 ?? E8 ?? ?? ?? ?? E8 ?? ?? ?? ?? 89 ?? E8 ?? ?? ?? ?? 4? 31 ?? 89 ?? E8 ?? ?? ?? ?? B9 ?? ?? ?? ?? BA ?? ?? ?? ?? 5? 6A ?? 6A ?? E8 ?? ?? ?? ?? 89 ?? E8 ?? ?? ?? ?? 89 ?? E8 ?? ?? ?? ?? E8 ?? ?? ?? ?? 89 ?? E8 ?? ?? ?? ?? 0F 1F ?? 8C ?? 00 ?? B6 ?? 00 ?? 9E 1F 00 ?? A3 ?? ?? ?? ?? 1F 00 ?? 9A ?? ?? ?? ?? ?? ?? 00 ?? ?? 00 ?? 5? 21 ?? 00 ?? ?? 00 ?? EE 21 ?? 00 ?? ?? ?? ?? ?? 21 ?? 00 ?? 21 ?? 00 ?? 22 ?? 00 ?? ?? 00 } + $block_8 = { 5? 5? 5? E8 ?? ?? ?? ?? 83 ?? ?? 8B ?? ?? ?? ?? ?? ?? 0F 10 ?? ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? ?? 8D ?? ?? ?? ?? ?? ?? 66 ?? ?? ?? ?? ?? ?? ?? ?? 8D ?? ?? ?? ?? ?? ?? 89 ?? 0F B7 ?? 31 ?? 0F 11 ?? ?? ?? ?? ?? ?? 81 E? ?? ?? ?? ?? 83 ?? ?? B9 ?? ?? ?? ?? 0F 45 ?? 0F 94 ?? 8D ?? ?? ?? ?? ?? ?? 09 ?? 89 ?? 8B ?? ?? F2 ?? ?? ?? ?? F2 ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? ?? 89 ?? ?? F2 ?? ?? ?? ?? F2 ?? ?? ?? 66 ?? ?? ?? ?? ?? ?? ?? ?? 66 ?? ?? ?? ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? ?? 8B ?? ?? ?? 8D ?? ?? ?? ?? ?? ?? 66 ?? ?? ?? 89 ?? ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? ?? 66 ?? ?? ?? ?? 66 ?? ?? ?? ?? ?? ?? ?? ?? 66 ?? ?? ?? ?? ?? ?? ?? 66 ?? ?? ?? 66 ?? ?? ?? 66 ?? ?? ?? 66 ?? ?? ?? ?? ?? ?? ?? 66 ?? ?? ?? ?? 66 ?? ?? ?? 66 ?? ?? ?? 66 ?? ?? ?? ?? 66 ?? ?? ?? 66 ?? ?? ?? F2 ?? ?? ?? ?? ?? ?? ?? ?? 66 ?? ?? ?? F3 ?? ?? ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? ?? 89 ?? ?? 8B ?? ?? ?? F2 ?? ?? ?? 89 ?? ?? ?? ?? ?? ?? 8B ?? ?? ?? 89 ?? ?? ?? ?? ?? ?? 8B ?? ?? ?? 89 ?? ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? ?? F2 ?? ?? ?? ?? F2 ?? ?? ?? ?? ?? ?? ?? ?? F2 ?? ?? ?? F2 ?? ?? ?? ?? F2 ?? ?? ?? ?? ?? ?? ?? ?? F2 ?? ?? ?? ?? ?? ?? ?? ?? 5? 5? 8D ?? ?? ?? ?? ?? ?? 5? FF 5? ?? 83 ?? ?? 83 ?? ?? ?? ?? ?? ?? ?? 0F 84 } + $block_9 = { B9 ?? ?? ?? ?? E8 ?? ?? ?? ?? 8D ?? ?? B9 ?? ?? ?? ?? BA ?? ?? ?? ?? 5? 5? E8 ?? ?? ?? ?? B9 ?? ?? ?? ?? BA ?? ?? ?? ?? E8 ?? ?? ?? ?? B9 ?? ?? ?? ?? E8 ?? ?? ?? ?? E8 ?? ?? ?? ?? B9 ?? ?? ?? ?? BA ?? ?? ?? ?? 68 ?? ?? ?? ?? E8 ?? ?? ?? ?? 89 ?? 5? 6A ?? E8 ?? ?? ?? ?? B9 ?? ?? ?? ?? BA ?? ?? ?? ?? 68 ?? ?? ?? ?? E8 ?? ?? ?? ?? 89 ?? 89 ?? E8 ?? ?? ?? ?? 8B ?? ?? ?? 5? 6A ?? E8 ?? ?? ?? ?? E8 ?? ?? ?? ?? E8 ?? ?? ?? ?? 8B ?? ?? ?? 5? 6A ?? E8 ?? ?? ?? ?? 66 ?? A6 03 ?? 00 ?? 02 ?? 00 ?? 02 ?? 00 ?? 02 ?? 00 ?? 02 ?? 00 ?? 02 ?? 00 ?? 02 ?? 00 ?? 02 ?? 00 ?? 02 ?? 00 ?? 02 ?? 00 ?? 02 ?? 00 ?? 02 ?? 00 ?? ?? ?? ?? ?? 02 ?? 00 ?? 02 ?? 00 ?? 02 ?? 00 ?? 02 ?? 00 ?? 02 ?? 00 ?? 02 ?? 00 ?? 02 ?? 00 ?? 02 ?? 00 ?? 02 ?? 00 ?? 02 ?? 00 ?? 02 ?? 00 ?? 02 ?? 00 ?? 02 ?? 00 ?? 02 ?? 00 ?? 02 ?? 00 ?? ?? ?? ?? ?? 03 ?? 00 ?? ?? ?? ?? ?? 00 ?? 00 ?? ?? ?? ?? ?? 00 ?? 00 ?? ?? ?? ?? ?? 00 ?? 00 ?? ?? ?? ?? ?? 00 ?? 00 ?? ?? ?? ?? ?? 00 ?? 00 ?? ?? ?? ?? ?? 00 ?? 00 ?? ?? ?? ?? ?? 00 ?? 00 ?? ?? ?? ?? ?? 00 ?? 00 ?? ?? ?? ?? ?? 00 ?? 00 ?? ?? ?? ?? ?? 00 ?? 00 ?? ?? ?? ?? ?? 00 ?? 00 ?? ?? ?? ?? ?? 00 ?? 00 ?? ?? ?? ?? ?? 00 ?? 00 ?? ?? ?? ?? ?? 00 ?? 00 ?? ?? ?? ?? ?? 01 ?? 00 ?? ?? 00 ?? 9? 06 00 ?? 9? 06 00 ?? 9? 06 00 ?? 9? 06 00 ?? 9? 06 00 ?? 9? 06 00 ?? 9? 06 00 ?? 9? 06 00 ?? 9? 06 00 ?? 9? 06 00 ?? 7E } + + condition: + hash.sha256(0, filesize) == "1672b944cf80cc2b3f837a78988a335072e197104acb5bb8148834c37ce72c85" or + 10 of them +} + +rule CredRaptor { + meta: + Author = "Intezer Analyze" + Reference = "https://apt-ecosystem.com" + + strings: + $block_0 = { 8B ?? ?? ?? ?? ?? 8D ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 99 03 ?? 89 ?? ?? ?? ?? ?? 13 ?? 85 ?? 74 } + $block_1 = { 33 ?? C6 ?? ?? ?? 66 ?? ?? ?? 8B ?? ?? C7 ?? ?? ?? ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? 83 ?? ?? 0F 82 } + $block_2 = { 8B ?? ?? 8B ?? ?? 8B ?? ?? 0F B7 ?? ?? 8B ?? ?? 89 ?? ?? 8B ?? ?? 89 ?? ?? 89 ?? ?? 39 ?? ?? 7F } + $block_3 = { 8D ?? ?? ?? 8B ?? ?? ?? ?? ?? 2B ?? 5? 6A ?? 03 ?? 5? E8 ?? ?? ?? ?? 8B ?? 83 ?? ?? 85 ?? 0F 84 } + $block_4 = { 5? 8B ?? 5? 8B ?? ?? 0F B7 ?? ?? 8B ?? 83 ?? ?? 0F B6 ?? ?? ?? ?? ?? 5? 4? 5? 5? 83 ?? ?? 0F 87 } + $block_5 = { 5? 5? 8D ?? ?? ?? ?? ?? 5? 8B ?? ?? 8D ?? ?? ?? ?? ?? 5? 5? 5? 5? FF 1? ?? ?? ?? ?? 85 ?? 0F 84 } + $block_6 = { 0F B7 ?? ?? 8B ?? ?? ?? ?? ?? 4? 5? 8B ?? E8 ?? ?? ?? ?? 83 ?? ?? 89 ?? ?? ?? ?? ?? 85 ?? 0F 85 } + $block_7 = { 8B ?? ?? 8B ?? ?? 8B ?? 8B ?? ?? 5? 5? 5? 89 ?? ?? E8 ?? ?? ?? ?? 83 ?? ?? 89 ?? ?? 85 ?? 0F 84 } + $block_8 = { 5? 8B ?? 83 ?? ?? 5? 5? 8B ?? ?? 89 ?? ?? 8B ?? ?? 33 ?? 89 ?? ?? 89 ?? ?? 89 ?? ?? 39 ?? 0F 8E } + $block_9 = { 8B ?? C7 ?? ?? ?? ?? ?? ?? 99 0F 57 ?? 66 ?? ?? ?? ?? ?? 66 ?? ?? ?? ?? 89 ?? ?? 8D ?? ?? 89 } + $block_10 = { 85 ?? 0F 95 ?? 8B ?? ?? 64 ?? ?? ?? ?? ?? ?? 5? 5? 8B ?? ?? 33 ?? E8 ?? ?? ?? ?? 8B ?? 5? C2 } + $block_11 = { 8B ?? 0F B7 ?? ?? C1 ?? ?? 83 ?? ?? 89 ?? ?? 8B ?? E8 ?? ?? ?? ?? 8B ?? 89 ?? ?? 85 ?? 0F 84 } + $block_12 = { 8B ?? ?? 5? 8B ?? E8 ?? ?? ?? ?? 0F BF ?? ?? 8B ?? ?? 8B ?? ?? 83 ?? ?? 83 ?? ?? 39 ?? ?? 7F } + $block_13 = { 5? 8B ?? 83 ?? ?? 0F B6 ?? ?? ?? ?? ?? 5? 8B ?? F7 ?? ?? ?? ?? ?? ?? 89 ?? ?? 89 ?? ?? 0F 84 } + $block_14 = { 8B ?? ?? ?? ?? ?? 6A ?? 8D ?? ?? ?? ?? ?? 5? 6A ?? 5? 5? E8 ?? ?? ?? ?? 83 ?? ?? 85 ?? 0F 85 } + $block_15 = { 8D ?? ?? ?? ?? ?? ?? 8D ?? ?? ?? DD ?? ?? ?? ?? ?? 8B ?? ?? DD ?? ?? ?? ?? ?? 83 ?? ?? 0F 84 } + $block_16 = { 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 88 ?? ?? ?? ?? ?? 8B ?? 89 ?? ?? ?? ?? ?? 3B ?? ?? 0F 84 } + $block_17 = { 6A ?? 68 ?? ?? ?? ?? 68 ?? ?? ?? ?? 6A ?? 5? FF 1? ?? ?? ?? ?? 8B ?? 89 ?? ?? 85 ?? 0F 84 } + $block_18 = { 8B ?? ?? ?? ?? ?? C1 ?? ?? 5? E8 ?? ?? ?? ?? 8B ?? 83 ?? ?? 89 ?? ?? ?? ?? ?? 85 ?? 0F 84 } + $block_19 = { 6A ?? FF B? ?? ?? ?? ?? E8 ?? ?? ?? ?? 83 ?? ?? BA ?? ?? ?? ?? 85 ?? 0F 45 ?? 80 3? ?? 75 } + $block_20 = { 85 ?? 0F B6 ?? 68 ?? ?? ?? ?? BA ?? ?? ?? ?? 5? 0F 44 ?? FF 1? ?? ?? ?? ?? FF 7? ?? FF 1? } + $block_21 = { 8D ?? ?? BA ?? ?? ?? ?? 5? 68 ?? ?? ?? ?? 5? 5? 8B ?? E8 ?? ?? ?? ?? 83 ?? ?? 85 ?? 0F 84 } + $block_22 = { 8B ?? ?? 8D ?? ?? ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? E8 ?? ?? ?? ?? 8B ?? 89 ?? ?? 85 ?? 0F 84 } + $block_23 = { 8B ?? ?? 8B ?? ?? 0F B6 ?? ?? 8B ?? ?? 89 ?? ?? 8B ?? ?? F6 ?? ?? ?? 89 ?? ?? 89 ?? ?? 74 } + $block_24 = { 5? 8B ?? 8B ?? ?? 5? 5? 8B ?? 0F B7 ?? ?? 83 ?? ?? 0F B6 ?? ?? ?? ?? ?? 4? 83 ?? ?? 0F 87 } + $block_25 = { 5? 8B ?? 83 ?? ?? 8B ?? ?? 8B ?? 33 ?? 5? 33 ?? 89 ?? ?? 89 ?? ?? 89 ?? ?? 38 ?? ?? 0F 85 } + $block_26 = { 8B ?? ?? 5? E8 ?? ?? ?? ?? 8B ?? ?? 83 ?? ?? 89 ?? ?? E8 ?? ?? ?? ?? 89 ?? ?? 85 ?? 0F 84 } + $block_27 = { 8B ?? ?? 8B ?? ?? ?? ?? ?? 4? 83 ?? ?? 89 ?? ?? 89 ?? ?? ?? ?? ?? 3B ?? ?? ?? ?? ?? 0F 8C } + $block_28 = { 8B ?? ?? 8B ?? ?? 66 ?? ?? ?? 66 ?? ?? ?? ?? 8D ?? ?? 66 ?? ?? ?? 0F B7 ?? ?? 84 ?? 79 } + $block_29 = { 5? 8B ?? 8B ?? ?? 5? 5? 0F B7 ?? ?? 03 ?? ?? 8B ?? 0F B7 ?? ?? 8B ?? ?? 03 ?? 3B ?? 77 } + $block_30 = { 8D ?? ?? 8B ?? E8 ?? ?? ?? ?? 8B ?? ?? 5? E8 ?? ?? ?? ?? 8B ?? ?? 83 ?? ?? 85 ?? 0F 84 } + $block_31 = { 8B ?? 5? 0F BF ?? ?? 89 ?? ?? 5? 8B ?? ?? 4? E8 ?? ?? ?? ?? 83 ?? ?? 89 ?? ?? 85 ?? 74 } + $block_32 = { 8B ?? ?? ?? ?? ?? 33 ?? 3B ?? 0F 94 ?? 5? 8D ?? ?? E8 ?? ?? ?? ?? 83 ?? ?? 85 ?? 0F 85 } + $block_33 = { 8B ?? ?? 8D ?? ?? 0F B6 ?? ?? 5? 8B ?? 83 ?? ?? 5? 8D ?? ?? E8 ?? ?? ?? ?? 83 ?? ?? E9 } + $block_34 = { 5? 8B ?? 83 ?? ?? 5? 8B ?? ?? 5? 8B ?? 0F B7 ?? ?? 83 ?? ?? 80 B? ?? ?? ?? ?? ?? 0F 84 } + $block_35 = { 33 ?? 8B ?? E8 ?? ?? ?? ?? 8D ?? ?? ?? ?? ?? 5? E8 ?? ?? ?? ?? 83 ?? ?? 85 ?? 0F 84 } + $block_36 = { 8D ?? ?? ?? ?? ?? 5? FF B? ?? ?? ?? ?? 5? 6A ?? FF B? ?? ?? ?? ?? FF D? 85 ?? 0F 84 } + $block_37 = { 03 ?? ?? 5? 5? E8 ?? ?? ?? ?? 83 ?? ?? 89 ?? ?? 8B ?? ?? ?? ?? ?? 03 ?? 85 ?? 0F 84 } + $block_38 = { 8B ?? ?? 0F BF ?? ?? 8B ?? ?? 03 ?? 8D ?? ?? ?? E8 ?? ?? ?? ?? 89 ?? ?? 85 ?? 0F 84 } + $block_39 = { 5? 8B ?? 83 ?? ?? 8B ?? ?? 5? 8B ?? ?? 8B ?? ?? 03 ?? ?? 5? 8B ?? ?? 89 ?? ?? 0F 84 } + $block_40 = { 6A ?? 68 ?? ?? ?? ?? 68 ?? ?? ?? ?? 6A ?? 5? FF 1? ?? ?? ?? ?? 8B ?? 85 ?? 0F 84 } + $block_41 = { 8B ?? ?? 8B ?? ?? 8B ?? ?? 8B ?? ?? 89 ?? ?? 0F BF ?? ?? 33 ?? 89 ?? ?? 85 ?? 7E } + $block_42 = { 8B ?? ?? 8B ?? ?? 8B ?? 8B ?? ?? 4? 5? 8B ?? E8 ?? ?? ?? ?? 83 ?? ?? 85 ?? 0F 85 } + $block_43 = { 0F B6 ?? 89 ?? ?? 8B ?? ?? ?? ?? ?? 33 ?? 66 ?? ?? ?? 89 ?? 39 ?? ?? ?? ?? ?? 73 } + $block_44 = { 8B ?? ?? 8B ?? ?? 8B ?? ?? 8B ?? ?? 8D ?? ?? ?? ?? ?? E8 ?? ?? ?? ?? 85 ?? 0F 85 } + $block_45 = { 8B ?? ?? 33 ?? B9 ?? ?? ?? ?? 89 ?? ?? 89 ?? ?? E8 ?? ?? ?? ?? 8B ?? 3B ?? 0F 84 } + $block_46 = { 68 ?? ?? ?? ?? 6A ?? 5? 8B ?? 8B ?? E8 ?? ?? ?? ?? 8B ?? 83 ?? ?? 85 ?? 0F 84 } + $block_47 = { 0F B6 ?? ?? ?? ?? ?? 84 ?? B9 ?? ?? ?? ?? 0F 45 ?? A2 ?? ?? ?? ?? 84 ?? 0F 84 } + $block_48 = { 8D ?? ?? C7 ?? ?? ?? ?? ?? ?? 5? 5? FF 1? ?? ?? ?? ?? 85 ?? 0F 95 ?? 84 ?? 74 } + $block_49 = { 6A ?? 83 ?? ?? 8B ?? E8 ?? ?? ?? ?? 8B ?? 83 ?? ?? 8B ?? 89 ?? ?? 0B ?? 0F 84 } + $block_50 = { 8B ?? ?? 5? 5? 83 ?? ?? 5? E8 ?? ?? ?? ?? 8B ?? 83 ?? ?? 89 ?? ?? 85 ?? 0F 84 } + $block_51 = { 6A ?? 6A ?? 8B ?? E8 ?? ?? ?? ?? 33 ?? 83 ?? ?? 84 ?? 0F 95 ?? 8B ?? 85 ?? 74 } + $block_52 = { C7 ?? ?? ?? ?? ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 88 ?? ?? ?? ?? ?? 3B ?? 0F 84 } + $block_53 = { 8B ?? ?? 8B ?? 0F B7 ?? ?? 8B ?? ?? 83 ?? ?? 0F B6 ?? ?? ?? ?? ?? 83 ?? ?? 75 } + $block_54 = { 33 ?? 8B ?? E8 ?? ?? ?? ?? 8B ?? ?? 33 ?? C7 ?? ?? ?? ?? ?? ?? 39 ?? ?? 0F 8E } + $block_55 = { 5? 8B ?? 0F BE ?? ?? 83 ?? ?? 83 ?? ?? 5? 5? 5? 8B ?? 8B ?? 83 ?? ?? 0F 87 } + $block_56 = { 8D ?? ?? 89 ?? ?? 0F AF ?? C1 ?? ?? E8 ?? ?? ?? ?? 8B ?? 89 ?? ?? 85 ?? 75 } + $block_57 = { 0F B7 ?? ?? ?? ?? ?? 5? E8 ?? ?? ?? ?? 8B ?? 83 ?? ?? 89 ?? ?? 85 ?? 0F 84 } + $block_58 = { 0F B7 ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 89 ?? ?? 85 ?? 75 } + $block_59 = { 8A ?? ?? 2C ?? 4? 0F B6 ?? 8B ?? 8D ?? ?? 8D ?? ?? 89 ?? 8B ?? 8D ?? ?? 66 } + $block_60 = { 5? 5? 8D ?? ?? ?? ?? ?? E8 ?? ?? ?? ?? 83 ?? ?? ?? 8D ?? ?? 0F 43 ?? ?? 8D } + $block_61 = { 8B ?? ?? 8B ?? 8B ?? ?? 68 ?? ?? ?? ?? 68 ?? ?? ?? ?? 5? FF D? 85 ?? 0F 85 } + $block_62 = { 8B ?? ?? 8B ?? ?? 33 ?? 85 ?? 0F 95 ?? 5? E8 ?? ?? ?? ?? 83 ?? ?? 85 ?? 75 } + $block_63 = { 8B ?? ?? 0F B7 ?? ?? 8B ?? ?? 8B ?? ?? 8B ?? E8 ?? ?? ?? ?? 80 7? ?? ?? 74 } + $block_64 = { 8B ?? ?? 0F BF ?? ?? 8D ?? ?? 8B ?? ?? 8B ?? ?? 8B ?? ?? 89 ?? ?? 85 ?? 74 } + $block_65 = { 6A ?? B8 ?? ?? ?? ?? 8D ?? ?? ?? ?? ?? E8 ?? ?? ?? ?? 83 ?? ?? 85 ?? 0F 85 } + $block_66 = { 8B ?? ?? 8B ?? ?? ?? ?? ?? 83 ?? ?? ?? ?? ?? ?? 4? 89 ?? ?? 3B ?? ?? 0F 8C } + $block_67 = { 8B ?? ?? 8D ?? ?? 8B ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 8B ?? 3B ?? 0F 84 } + $block_68 = { 8D ?? ?? ?? ?? ?? 5? E8 ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 8B ?? 85 ?? 0F 8E } + $block_69 = { 8B ?? ?? 8B ?? ?? 8B ?? ?? 03 ?? 8B ?? ?? 89 ?? ?? 89 ?? ?? 85 ?? 0F 84 } + $block_70 = { 8B ?? ?? 8B ?? ?? B9 ?? ?? ?? ?? 01 ?? ?? 01 ?? ?? 89 ?? ?? 3B ?? 0F 85 } + $block_71 = { 8D ?? ?? ?? ?? ?? 68 ?? ?? ?? ?? 5? E8 ?? ?? ?? ?? 83 ?? ?? 85 ?? 0F 84 } + $block_72 = { 83 ?? ?? ?? 8D ?? ?? 0F 43 ?? ?? 89 ?? ?? ?? ?? ?? 8A ?? 3C ?? 0F 84 } + $block_73 = { 6A ?? 83 ?? ?? E8 ?? ?? ?? ?? 83 ?? ?? 89 ?? ?? 0B ?? 89 ?? ?? 0F 84 } + $block_74 = { 8B ?? ?? 8B ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 3B ?? ?? ?? ?? ?? 0F 83 } + $block_75 = { 0F B7 ?? ?? 33 ?? 8B ?? ?? 8B ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 0F 1F } + $block_76 = { 8D ?? ?? ?? ?? ?? 5? FF B? ?? ?? ?? ?? FF 1? ?? ?? ?? ?? 85 ?? 0F 85 } + $block_77 = { 8D ?? ?? C7 ?? ?? ?? ?? ?? 3B ?? C7 ?? ?? ?? ?? ?? 0F 94 ?? 84 ?? 75 } + $block_78 = { 8D ?? ?? ?? ?? ?? 5? FF B? ?? ?? ?? ?? FF 1? ?? ?? ?? ?? 85 ?? 0F 84 } + $block_79 = { 5? 8B ?? ?? 5? 0F B6 ?? ?? 33 ?? 89 ?? ?? 89 ?? ?? 66 ?? ?? ?? 0F 83 } + $block_80 = { 8B ?? ?? 6A ?? 68 ?? ?? ?? ?? 5? E8 ?? ?? ?? ?? 83 ?? ?? 85 ?? 0F 85 } + $block_81 = { E8 ?? ?? ?? ?? 0F B7 ?? B9 ?? ?? ?? ?? 66 ?? ?? 0F 94 ?? 84 ?? 75 } + $block_82 = { B9 ?? ?? ?? ?? B8 ?? ?? ?? ?? 3B ?? 0F 44 ?? 89 ?? ?? ?? ?? ?? EB } + $block_83 = { 8B ?? 0F BF ?? ?? 8B ?? ?? ?? 01 ?? ?? ?? ?? ?? F6 ?? ?? ?? ?? 74 } + $block_84 = { 5? 5? 8D ?? ?? E8 ?? ?? ?? ?? 83 ?? ?? ?? 8D ?? ?? 0F 43 ?? ?? 8D } + $block_85 = { 6A ?? 68 ?? ?? ?? ?? 5? E8 ?? ?? ?? ?? 83 ?? ?? 85 ?? 0F 85 } + $block_86 = { 8B ?? ?? 8D ?? ?? 8B ?? ?? 83 ?? ?? 0F 43 ?? 80 7? ?? ?? 74 } + $block_87 = { 68 ?? ?? ?? ?? E8 ?? ?? ?? ?? CC 8B ?? 83 ?? ?? 3B ?? ?? 74 } + $block_88 = { 66 ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 0F 95 ?? 83 ?? ?? 72 } + $block_89 = { 8B ?? ?? 33 ?? 38 ?? ?? 8B ?? ?? ?? 0F 94 ?? 3B ?? 0F 84 } + $block_90 = { FF B? ?? ?? ?? ?? E8 ?? ?? ?? ?? 83 ?? ?? 83 ?? ?? 0F 85 } + $block_91 = { 4? 89 ?? 8B ?? ?? 8B ?? 8D ?? ?? 89 ?? 88 ?? 0F B6 ?? EB } + $block_92 = { 6A ?? 6A ?? 5? FF 1? ?? ?? ?? ?? 83 ?? ?? 85 ?? 0F 85 } + $block_93 = { 5? 8B ?? 83 ?? ?? 80 B? ?? ?? ?? ?? ?? 5? 5? 5? 0F 85 } + $block_94 = { 8B ?? ?? ?? 8A ?? ?? 8B ?? 89 ?? ?? ?? F6 ?? ?? 0F 85 } + $block_95 = { E8 ?? ?? ?? ?? 0F B7 ?? 66 ?? ?? 0F 94 ?? 84 ?? 75 } + $block_96 = { 8B ?? ?? 8B ?? 2B ?? ?? F6 ?? ?? ?? 89 ?? ?? 0F 84 } + $block_97 = { 8B ?? C7 ?? ?? ?? ?? ?? ?? 8D ?? ?? 89 ?? ?? 0F 1F } + $block_98 = { FE ?? 88 ?? ?? 0F B6 ?? 8B ?? ?? ?? 89 ?? ?? EB } + $block_99 = { 4? 83 ?? ?? 89 ?? ?? ?? 89 ?? ?? ?? 85 ?? 0F 8F } + + condition: + hash.sha256(0, filesize) == "50b990f6555055a265fde98324759dbc74619d6a7c49b9fd786775299bf77d26" or + hash.sha256(0, filesize) == "b0df1c855db31dd29a1e9b40f8360e5036e848e023741e05114d46b7359ff6f6" or + 12 of them +} + +rule Keylogger { + meta: + Author = "Intezer Analyze" + Reference = "https://apt-ecosystem.com" + + strings: + $block_0 = { 40 ?? B8 ?? ?? ?? ?? E8 ?? ?? ?? ?? 48 ?? ?? 48 ?? ?? B9 ?? ?? ?? ?? B8 ?? ?? ?? ?? F3 ?? 48 ?? ?? ?? ?? ?? ?? 48 ?? ?? 48 ?? ?? ?? ?? ?? ?? ?? 41 ?? ?? ?? ?? ?? 33 ?? 48 ?? ?? ?? ?? E8 ?? ?? ?? ?? FF 1? ?? ?? ?? ?? 48 ?? ?? ?? ?? ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? 41 ?? ?? ?? ?? ?? 48 ?? ?? ?? ?? 48 ?? ?? ?? ?? ?? ?? ?? FF 1? ?? ?? ?? ?? 48 ?? ?? ?? ?? ?? ?? ?? 48 ?? ?? ?? ?? ?? ?? ?? FF 1? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? ?? 41 ?? ?? ?? ?? ?? 33 ?? 48 ?? ?? ?? ?? ?? ?? ?? E8 ?? ?? ?? ?? 41 ?? ?? ?? ?? ?? 33 ?? 48 ?? ?? ?? ?? ?? ?? ?? E8 ?? ?? ?? ?? 48 ?? ?? ?? ?? 48 ?? ?? ?? ?? ?? ?? E8 ?? ?? ?? ?? 85 ?? 0F 84 } + $block_1 = { E8 ?? ?? ?? ?? 48 ?? ?? ?? ?? 48 ?? ?? ?? ?? ?? ?? 48 ?? ?? 48 ?? ?? B9 ?? ?? ?? ?? F3 ?? C7 ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? 48 ?? ?? ?? ?? 48 ?? ?? ?? ?? ?? ?? ?? 48 ?? ?? ?? ?? ?? ?? 48 ?? ?? ?? ?? ?? ?? ?? 48 ?? ?? ?? ?? ?? ?? ?? 48 ?? ?? ?? ?? ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? 48 ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? 48 ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? 48 ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? 48 ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? 48 ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? 48 ?? ?? ?? ?? ?? ?? ?? FF 1? ?? ?? ?? ?? 0F B7 ?? 85 ?? 75 } + $block_2 = { 88 ?? ?? ?? 5? 48 ?? ?? ?? ?? ?? ?? 48 ?? ?? B9 ?? ?? ?? ?? B8 ?? ?? ?? ?? F3 ?? 0F B6 ?? ?? ?? ?? ?? ?? 48 ?? ?? ?? ?? ?? ?? 48 ?? ?? 48 ?? ?? ?? ?? ?? ?? ?? 41 ?? ?? ?? ?? ?? 33 ?? 48 ?? ?? ?? ?? E8 ?? ?? ?? ?? 0F B6 ?? ?? ?? ?? ?? ?? 83 ?? ?? 75 } + $block_3 = { 44 ?? ?? ?? ?? 4C ?? ?? ?? ?? 48 ?? ?? ?? ?? 48 ?? ?? ?? ?? 5? 5? 48 ?? ?? ?? ?? ?? ?? 48 ?? ?? B9 ?? ?? ?? ?? B8 ?? ?? ?? ?? F3 ?? 48 ?? ?? ?? ?? ?? ?? ?? 48 ?? ?? ?? ?? ?? ?? 48 ?? ?? 48 ?? ?? ?? ?? ?? ?? ?? E8 ?? ?? ?? ?? 0F B6 ?? 85 ?? 75 } + $block_4 = { 48 ?? ?? ?? ?? ?? ?? ?? 48 ?? ?? ?? ?? 48 ?? ?? ?? ?? 8B ?? 89 ?? ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? ?? 2D ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? ?? 83 ?? ?? ?? ?? ?? ?? ?? 0F 87 } + $block_5 = { 0F B6 ?? ?? ?? ?? ?? ?? 83 ?? ?? 48 ?? 48 ?? ?? ?? ?? ?? ?? 48 ?? ?? ?? 48 ?? ?? 48 ?? ?? ?? ?? E8 ?? ?? ?? ?? 48 ?? ?? ?? ?? ?? ?? 48 ?? ?? ?? ?? E8 ?? ?? ?? ?? E9 } + $block_6 = { 0F B6 ?? ?? ?? ?? ?? ?? 83 ?? ?? 48 ?? 48 ?? ?? ?? ?? ?? ?? 48 ?? ?? ?? 48 ?? ?? 48 ?? ?? ?? ?? E8 ?? ?? ?? ?? 48 ?? ?? ?? ?? ?? ?? 48 ?? ?? ?? ?? E8 ?? ?? ?? ?? EB } + $block_7 = { 88 ?? ?? ?? 5? 48 ?? ?? ?? 48 ?? ?? B9 ?? ?? ?? ?? B8 ?? ?? ?? ?? F3 ?? 0F B6 ?? ?? ?? ?? ?? ?? 83 ?? ?? ?? ?? ?? ?? 0F 84 } + $block_8 = { 48 ?? ?? ?? ?? ?? ?? E8 ?? ?? ?? ?? 48 ?? ?? ?? ?? ?? ?? 0F B7 ?? ?? ?? 83 ?? ?? 74 } + $block_9 = { 48 ?? ?? ?? ?? 48 ?? ?? ?? ?? ?? ?? E8 ?? ?? ?? ?? 83 ?? ?? ?? ?? ?? ?? ?? 0F 84 } + + condition: + hash.sha256(0, filesize) == "e3f134ae88f05463c4707a80f956a689fba7066bb5357f6d45cba312ad0db68e" or + 10 of them +} + +rule Telebot_Downloader { + meta: + Author = "Intezer Analyze" + Reference = "https://apt-ecosystem.com" + + strings: + $block_0 = { 8B ?? ?? ?? 8A ?? ?? ?? 0F B7 ?? ?? ?? C1 ?? ?? 83 ?? ?? ?? ?? 88 ?? ?? ?? 66 ?? ?? ?? ?? 0F 85 } + $block_1 = { BB ?? ?? ?? ?? 89 ?? 29 ?? 89 ?? ?? ?? 89 ?? 83 ?? ?? 29 ?? 89 ?? ?? ?? 89 ?? ?? ?? 39 ?? 0F 83 } + $block_2 = { 0F B6 ?? 8B ?? ?? ?? 4? 89 ?? ?? ?? 8A ?? ?? ?? ?? ?? 85 ?? 88 ?? ?? ?? ?? ?? ?? 88 ?? ?? ?? 74 } + $block_3 = { 66 ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? 85 ?? 0F 94 ?? 39 ?? 0F 94 ?? 08 ?? 80 F? ?? 88 ?? ?? ?? 74 } + $block_4 = { 0F 1F ?? ?? ?? 5? 5? 5? 5? 83 ?? ?? 8B ?? ?? ?? BA ?? ?? ?? ?? 8B ?? ?? 89 ?? F7 ?? 89 ?? 0F 80 } + $block_5 = { 8B ?? ?? ?? 8D ?? ?? ?? 89 ?? ?? ?? 89 ?? ?? ?? 8D ?? ?? ?? 89 ?? ?? ?? 89 ?? ?? ?? 39 ?? 0F 85 } + $block_6 = { 8D ?? ?? ?? 89 ?? 6A ?? 8D ?? ?? ?? 5? E8 ?? ?? ?? ?? 83 ?? ?? 8B ?? ?? ?? 83 ?? ?? ?? ?? 0F 85 } + $block_7 = { 8B ?? ?? 0F AF ?? ?? 89 ?? 8B ?? ?? 01 ?? 8B ?? ?? 89 ?? ?? ?? 89 ?? ?? ?? 8B ?? ?? 89 ?? ?? E8 } + $block_8 = { 8B ?? ?? ?? 8D ?? ?? ?? ?? ?? ?? 5? E8 ?? ?? ?? ?? 83 ?? ?? 0F B7 ?? ?? ?? ?? ?? ?? 80 F? ?? 75 } + $block_9 = { 8B ?? ?? 0F AF ?? ?? 89 ?? 8B ?? ?? 01 ?? 89 ?? ?? ?? 8B ?? ?? 89 ?? ?? 8B ?? ?? FF D? 85 ?? 7E } + $block_10 = { 8B ?? ?? ?? 89 ?? 8D ?? ?? ?? ?? ?? ?? 5? E8 ?? ?? ?? ?? 83 ?? ?? 83 ?? ?? ?? ?? ?? ?? ?? 0F 84 } + $block_11 = { 8B ?? ?? 89 ?? C1 ?? ?? 01 ?? C1 ?? ?? 89 ?? 8B ?? ?? 01 ?? 89 ?? ?? 8B ?? ?? 0F B6 ?? 3C ?? 75 } + $block_12 = { 8D ?? ?? 8D ?? ?? ?? ?? ?? ?? 8D ?? ?? ?? 89 ?? 5? E8 ?? ?? ?? ?? 83 ?? ?? 83 ?? ?? ?? ?? 0F 85 } + $block_13 = { 87 ?? 8D ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? ?? 89 ?? ?? 89 ?? 83 ?? ?? 89 ?? ?? ?? 83 ?? ?? 0F 85 } + $block_14 = { 8B ?? ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? ?? 89 ?? ?? 8B ?? 83 ?? ?? 0F 84 } + $block_15 = { 89 ?? ?? 89 ?? E8 ?? ?? ?? ?? 66 ?? ?? ?? ?? ?? 5? 5? 5? 5? 83 ?? ?? 8B ?? ?? ?? 85 ?? 0F 84 } + $block_16 = { 8B ?? ?? ?? F2 ?? ?? ?? ?? ?? 8B ?? ?? ?? 89 ?? ?? ?? F2 ?? ?? ?? ?? ?? 83 ?? ?? ?? ?? 0F 85 } + $block_17 = { 0F B6 ?? ?? ?? ?? ?? ?? 89 ?? 8B ?? ?? ?? ?? ?? C1 ?? ?? 83 ?? ?? C1 ?? ?? 09 ?? 39 ?? 0F 83 } + $block_18 = { 8B ?? ?? ?? 8B ?? ?? ?? 8B ?? ?? ?? E8 ?? ?? ?? ?? 6A ?? 6A ?? 5? E8 ?? ?? ?? ?? 85 ?? 0F 84 } + $block_19 = { 89 ?? E8 ?? ?? ?? ?? 0F 1F ?? ?? ?? ?? ?? 5? 5? 5? 5? 83 ?? ?? 8B ?? ?? ?? 89 ?? 85 ?? 0F 88 } + $block_20 = { C7 ?? ?? ?? ?? ?? C6 ?? ?? ?? E8 ?? ?? ?? ?? 6A ?? 6A ?? 5? E8 ?? ?? ?? ?? 89 ?? 85 ?? 0F 84 } + $block_21 = { 8B ?? ?? 8B ?? ?? ?? 8D ?? ?? 8B ?? ?? ?? 89 ?? 8D ?? ?? 83 ?? ?? 89 ?? ?? ?? 8D ?? ?? 0F 82 } + $block_22 = { 6A ?? 68 ?? ?? ?? ?? 6A ?? 6A ?? E8 ?? ?? ?? ?? 83 ?? ?? 89 ?? 89 ?? ?? ?? ?? ?? 85 ?? 0F 84 } + $block_23 = { 83 ?? ?? 31 ?? 0F 57 ?? 89 ?? 0F 29 ?? ?? ?? 0F 29 ?? ?? ?? 0F 29 ?? ?? ?? 0F 29 ?? ?? ?? 9? } + $block_24 = { 8B ?? ?? 8B ?? ?? 6A ?? 68 ?? ?? ?? ?? 5? 8D ?? ?? ?? 5? FF D? 83 ?? ?? 83 ?? ?? ?? ?? 0F 84 } + $block_25 = { 8B ?? ?? 35 ?? ?? ?? ?? 89 ?? 8B ?? ?? 80 F? ?? 89 ?? 89 ?? 09 ?? 85 ?? 0F 94 ?? 0F B6 ?? EB } + $block_26 = { 0F 1F ?? ?? 5? 5? FF 7? ?? ?? 8D ?? ?? ?? 5? E8 ?? ?? ?? ?? 83 ?? ?? 8B ?? ?? 83 ?? ?? 0F 85 } + $block_27 = { 0F BD ?? ?? ?? 0F BD ?? 83 ?? ?? 83 ?? ?? 29 ?? 8D ?? ?? 89 ?? 83 ?? ?? 89 ?? ?? ?? 0F 84 } + $block_28 = { 89 ?? ?? 89 ?? ?? ?? 8D ?? ?? 31 ?? 8D ?? ?? C7 ?? ?? ?? ?? ?? ?? ?? 0F 1F ?? 66 ?? ?? 75 } + $block_29 = { 66 ?? 5? 5? 5? 5? 81 E? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? ?? A1 ?? ?? ?? ?? 80 7? ?? ?? 0F 85 } + $block_30 = { 8D ?? ?? ?? 89 ?? 89 ?? ?? ?? E8 ?? ?? ?? ?? 8B ?? ?? ?? 8B ?? ?? ?? 8B ?? ?? 84 ?? 0F 85 } + $block_31 = { 66 ?? ?? ?? ?? ?? ?? ?? 66 ?? ?? ?? ?? ?? ?? ?? 66 ?? ?? ?? ?? ?? ?? ?? 89 ?? ?? ?? 0F 1F } + $block_32 = { BE ?? ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? ?? 89 ?? ?? ?? 29 ?? 39 ?? 89 ?? 0F 43 ?? 83 ?? ?? 72 } + $block_33 = { 8D ?? ?? 31 ?? 89 ?? 89 ?? 89 ?? ?? ?? 0F 1F ?? ?? ?? ?? ?? ?? 0F B6 ?? 8D ?? ?? 84 ?? 78 } + $block_34 = { 83 ?? ?? 0F B6 ?? 89 ?? 8D ?? ?? ?? 8D ?? ?? ?? 89 ?? ?? E8 ?? ?? ?? ?? 89 ?? 83 ?? ?? 8B } + $block_35 = { 0D ?? ?? ?? ?? 8D ?? ?? 89 ?? ?? ?? 89 ?? 8B ?? ?? 21 ?? 89 ?? ?? ?? 8B ?? ?? 85 ?? 0F 84 } + $block_36 = { 89 ?? 89 ?? E8 ?? ?? ?? ?? 5? 6A ?? 5? E8 ?? ?? ?? ?? 89 ?? 89 ?? 89 ?? ?? ?? 85 ?? 0F 84 } + $block_37 = { 8B ?? ?? ?? 8B ?? ?? ?? BD ?? ?? ?? ?? BB ?? ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? ?? 39 ?? 0F 84 } + $block_38 = { 89 ?? ?? ?? 8B ?? ?? ?? 4? 89 ?? ?? ?? 8B ?? ?? ?? 89 ?? 8B ?? ?? ?? 0F B6 ?? 83 ?? ?? 89 } + $block_39 = { 89 ?? E8 ?? ?? ?? ?? BE ?? ?? ?? ?? B9 ?? ?? ?? ?? 84 ?? 89 ?? ?? ?? C6 ?? ?? ?? ?? 0F 85 } + $block_40 = { 8B ?? ?? ?? 8B ?? ?? ?? E8 ?? ?? ?? ?? 68 ?? ?? ?? ?? 6A ?? 5? E8 ?? ?? ?? ?? 85 ?? 0F 84 } + $block_41 = { 8B ?? ?? ?? 8D ?? ?? ?? ?? ?? ?? 5? E8 ?? ?? ?? ?? 83 ?? ?? 83 ?? ?? ?? ?? ?? ?? ?? 0F 84 } + $block_42 = { 0F B6 ?? ?? 89 ?? 0F B6 ?? ?? ?? ?? ?? 4? 0F B6 ?? ?? ?? ?? ?? 3A ?? ?? ?? ?? ?? 89 ?? 74 } + $block_43 = { 8B ?? ?? BD ?? ?? ?? ?? 0F B6 ?? ?? ?? BB ?? ?? ?? ?? 89 ?? ?? ?? 24 ?? 3C ?? 89 ?? 75 } + $block_44 = { 5? 5? 83 ?? ?? 8B ?? ?? ?? ?? ?? ?? 89 ?? 89 ?? ?? B1 ?? 89 ?? ?? ?? 80 7? ?? ?? 0F 85 } + $block_45 = { 8D ?? ?? 89 ?? ?? E8 ?? ?? ?? ?? 0F B6 ?? 8B ?? ?? 89 ?? ?? 8B ?? ?? 8B ?? 83 ?? ?? 7F } + $block_46 = { 8B ?? ?? ?? 8B ?? ?? ?? 8D ?? ?? 85 ?? 89 ?? ?? ?? 0F 44 ?? 8D ?? ?? ?? 89 ?? 85 ?? 74 } + $block_47 = { 89 ?? ?? ?? 31 ?? 85 ?? 89 ?? BF ?? ?? ?? ?? 89 ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? ?? 0F 84 } + $block_48 = { E8 ?? ?? ?? ?? FF 7? ?? ?? 6A ?? 5? E8 ?? ?? ?? ?? 8B ?? ?? ?? 8B ?? ?? ?? 85 ?? 0F 84 } + $block_49 = { 0F 1F ?? ?? E8 ?? ?? ?? ?? 5? 6A ?? 5? E8 ?? ?? ?? ?? 8B ?? ?? ?? 8B ?? ?? ?? 39 ?? 75 } + $block_50 = { 80 7? ?? ?? ?? 0F 97 ?? 80 F? ?? 0F 97 ?? 3A ?? ?? ?? 18 ?? 80 C? ?? 20 ?? 20 ?? 0F B6 } + $block_51 = { 8B ?? ?? 0F B6 ?? 0F B6 ?? C1 ?? ?? 89 ?? 8B ?? ?? 83 ?? ?? 0F B6 ?? 0F B6 ?? 09 ?? EB } + $block_52 = { 89 ?? 83 ?? ?? BE ?? ?? ?? ?? 89 ?? ?? ?? 0F 42 ?? 8D ?? ?? 81 F? ?? ?? ?? ?? 0F 83 } + $block_53 = { 8D ?? ?? 8D ?? ?? 89 ?? ?? ?? 0F B6 ?? 89 ?? ?? ?? 89 ?? ?? 89 ?? ?? ?? 84 ?? 0F 88 } + $block_54 = { 8D ?? ?? C7 ?? ?? ?? ?? ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? ?? 83 ?? ?? 89 ?? ?? ?? 0F 84 } + $block_55 = { 0F 1F ?? ?? ?? 5? 5? 83 ?? ?? 8B ?? ?? ?? 8B ?? ?? ?? 8B ?? ?? 8B ?? ?? 80 3? ?? 75 } + $block_56 = { 8D ?? ?? ?? FF 7? ?? ?? FF 7? ?? ?? E8 ?? ?? ?? ?? 83 ?? ?? 0F B7 ?? ?? ?? 3C ?? 75 } + $block_57 = { 89 ?? BE ?? ?? ?? ?? 83 ?? ?? 0F 42 ?? 8D ?? ?? 89 ?? ?? ?? 81 F? ?? ?? ?? ?? 0F 83 } + $block_58 = { 8A ?? ?? ?? 88 ?? ?? ?? 0F B7 ?? ?? ?? 66 ?? ?? ?? ?? 8B ?? ?? 8B ?? F0 ?? ?? 0F 8E } + $block_59 = { C6 ?? ?? BB ?? ?? ?? ?? 8A ?? ?? ?? 88 ?? ?? 0F B7 ?? ?? ?? 66 ?? ?? ?? 89 ?? ?? C7 } + $block_60 = { 89 ?? ?? B1 ?? 86 ?? ?? 8B ?? ?? 8B ?? ?? E8 ?? ?? ?? ?? E8 ?? ?? ?? ?? 85 ?? 0F 84 } + $block_61 = { 8B ?? ?? ?? 8B ?? ?? 8D ?? ?? 89 ?? 0F B6 ?? C1 ?? ?? 09 ?? 83 ?? ?? 66 ?? ?? ?? 73 } + $block_62 = { 8B ?? ?? ?? C1 ?? ?? 66 ?? ?? C7 ?? ?? ?? ?? ?? ?? ?? 0F B7 ?? 09 ?? 31 ?? 89 ?? E9 } + $block_63 = { 8B ?? ?? 89 ?? 31 ?? 29 ?? 89 ?? 01 ?? 89 ?? ?? 39 ?? ?? 8B ?? ?? ?? 8B ?? ?? 0F 95 } + $block_64 = { 5? 5? 5? 5? 83 ?? ?? 8B ?? ?? ?? 8B ?? 8B ?? ?? 8B ?? 89 ?? 85 ?? 89 ?? ?? ?? 0F 84 } + $block_65 = { 31 ?? B0 ?? F0 ?? ?? ?? ?? ?? ?? ?? 0F B6 ?? C1 ?? ?? 0F B7 ?? 3D ?? ?? ?? ?? 0F 82 } + $block_66 = { 89 ?? 89 ?? C1 ?? ?? C1 ?? ?? C1 ?? ?? C1 ?? ?? 0F B6 ?? 0F B7 ?? 09 ?? 09 ?? 0F 85 } + $block_67 = { 89 ?? ?? ?? BF ?? ?? ?? ?? 89 ?? ?? ?? 29 ?? 89 ?? ?? ?? 8B ?? ?? ?? 83 ?? ?? 0F 85 } + $block_68 = { 8B ?? ?? ?? ?? ?? ?? E8 ?? ?? ?? ?? 6A ?? 6A ?? 5? E8 ?? ?? ?? ?? 89 ?? 85 ?? 0F 84 } + $block_69 = { 0F 1F ?? E8 ?? ?? ?? ?? FF 7? ?? ?? 6A ?? 5? E8 ?? ?? ?? ?? 8B ?? ?? 83 ?? ?? 0F 87 } + $block_70 = { 8B ?? ?? ?? BF ?? ?? ?? ?? BA ?? ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? ?? 89 ?? 39 ?? 0F 84 } + $block_71 = { 8B ?? ?? 89 ?? ?? E8 ?? ?? ?? ?? 0F B6 ?? 89 ?? ?? 8B ?? ?? 8B ?? ?? 3B ?? ?? 0F 87 } + $block_72 = { 0F 1F ?? ?? ?? ?? ?? B9 ?? ?? ?? ?? E8 ?? ?? ?? ?? 5? E8 ?? ?? ?? ?? 4? 85 ?? 0F 84 } + $block_73 = { 8B ?? ?? ?? 83 ?? ?? ?? 0F 94 ?? 80 7? ?? ?? BE ?? ?? ?? ?? 18 ?? 20 ?? 0F B6 ?? EB } + $block_74 = { 5? 5? 5? 5? 81 E? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? ?? 8B ?? ?? 83 ?? ?? 0B ?? ?? 0F 85 } + $block_75 = { 89 ?? B8 ?? ?? ?? ?? 83 ?? ?? 0F 42 ?? 8B ?? ?? ?? 8D ?? ?? 3D ?? ?? ?? ?? 0F 83 } + $block_76 = { 0F B6 ?? ?? 0F B6 ?? ?? ?? ?? ?? 8B ?? ?? ?? 0F B6 ?? ?? 4? 3A ?? ?? ?? ?? ?? 74 } + $block_77 = { 31 ?? 89 ?? ?? ?? 89 ?? ?? ?? 8D ?? ?? 89 ?? 89 ?? 29 ?? 29 ?? 89 ?? ?? ?? 0F 84 } + $block_78 = { 4? BF ?? ?? ?? ?? 85 ?? 89 ?? ?? ?? 0F 44 ?? ?? ?? 8D ?? ?? 8D ?? ?? 8D ?? ?? 89 } + $block_79 = { 0F B6 ?? ?? 89 ?? 89 ?? 89 ?? ?? 8B ?? ?? ?? 24 ?? 3C ?? 89 ?? BE ?? ?? ?? ?? 75 } + $block_80 = { 0F 1F ?? ?? 5? 89 ?? 83 ?? ?? 83 ?? ?? 8B ?? ?? 8B ?? ?? 8B ?? 8A ?? 80 F? ?? 74 } + $block_81 = { 8B ?? ?? ?? 0F B6 ?? ?? ?? 8B ?? ?? ?? 8B ?? ?? ?? 8B ?? ?? ?? C1 ?? ?? 09 ?? EB } + $block_82 = { 8B ?? ?? ?? BF ?? ?? ?? ?? 89 ?? ?? ?? 89 ?? ?? ?? 29 ?? 89 ?? ?? ?? 89 ?? 0F 1F } + $block_83 = { 8B ?? ?? ?? 0F B6 ?? ?? ?? 0F B6 ?? ?? ?? ?? ?? 89 ?? ?? ?? 81 F? ?? ?? ?? ?? 76 } + $block_84 = { 89 ?? E8 ?? ?? ?? ?? 0F 1F ?? ?? ?? ?? ?? ?? 5? 5? 5? 5? 89 ?? 8B ?? ?? 85 ?? 74 } + $block_85 = { 0F 1F ?? ?? ?? 8A ?? ?? ?? 81 E? ?? ?? ?? ?? 88 ?? 09 ?? 8A ?? ?? ?? 84 ?? 0F 85 } + $block_86 = { 8B ?? ?? 83 ?? ?? 5? 5? FF 7? ?? FF 5? ?? 83 ?? ?? 4? 83 ?? ?? 84 ?? B0 ?? 0F 84 } + $block_87 = { 8B ?? ?? ?? 8D ?? ?? 8B ?? 0F B6 ?? ?? 89 ?? ?? 66 ?? ?? ?? 89 ?? 04 ?? 3C ?? 72 } + $block_88 = { 8B ?? ?? 83 ?? ?? 0F B6 ?? 0F B6 ?? C1 ?? ?? 89 ?? 8B ?? ?? 0F B6 ?? 0F B6 ?? 09 } + $block_89 = { 8B ?? ?? ?? ?? ?? ?? B8 ?? ?? ?? ?? 8B ?? ?? 83 ?? ?? 0F 47 ?? 4? 39 ?? 0F 87 } + $block_90 = { 5? 89 ?? 5? 5? 5? 83 ?? ?? 83 ?? ?? 31 ?? 83 ?? ?? ?? 89 ?? 89 ?? ?? ?? 0F 84 } + $block_91 = { 89 ?? 83 ?? ?? 89 ?? ?? ?? 8B ?? 89 ?? ?? ?? 31 ?? 8B ?? ?? 89 ?? ?? ?? 0F 1F } + $block_92 = { 66 ?? ?? ?? ?? 0F 10 ?? 83 ?? ?? 66 ?? ?? ?? ?? 0F 11 ?? 83 ?? ?? 83 ?? ?? 75 } + $block_93 = { 89 ?? 83 ?? ?? 31 ?? 89 ?? ?? ?? 8B ?? 89 ?? ?? ?? 8B ?? ?? 89 ?? ?? ?? 0F 1F } + $block_94 = { 8B ?? ?? ?? 83 ?? ?? ?? ?? ?? ?? ?? 89 ?? ?? ?? 89 ?? ?? ?? 89 ?? ?? ?? 0F 84 } + $block_95 = { 8D ?? ?? ?? ?? ?? ?? 8D ?? ?? 89 ?? ?? 83 ?? ?? 01 ?? 8D ?? ?? 8D ?? ?? 0F 1F } + $block_96 = { 31 ?? 85 ?? 89 ?? ?? ?? 0F 95 ?? ?? ?? 0F 95 ?? 80 7? ?? ?? 88 ?? ?? ?? 0F 85 } + $block_97 = { 8D ?? ?? 89 ?? ?? E8 ?? ?? ?? ?? 89 ?? ?? 89 ?? ?? 8B ?? ?? 0F B6 ?? 3C ?? 74 } + $block_98 = { 3B ?? ?? ?? 8D ?? ?? ?? 89 ?? ?? ?? 89 ?? ?? ?? 8D ?? ?? ?? 89 ?? ?? ?? 0F 85 } + $block_99 = { 8B ?? ?? ?? 85 ?? 0F 94 ?? 89 ?? 29 ?? 0F 94 ?? 08 ?? 80 F? ?? 88 ?? ?? ?? 75 } + + condition: + hash.sha256(0, filesize) == "2ee5a743bd420aa04e0ea9ab7a25e1cc2c346a55d6a518f267896694d75539a2" or + 12 of them +} + +rule XTunnel { + meta: + Author = "Intezer Analyze" + Reference = "https://apt-ecosystem.com" + + strings: + $block_0 = { 8B ?? ?? 99 B9 ?? ?? ?? ?? F7 ?? 89 ?? ?? 8B ?? ?? 99 B9 ?? ?? ?? ?? F7 ?? 69 ?? ?? ?? ?? ?? 89 } + $block_1 = { 0F B7 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 8D ?? ?? ?? ?? ?? 5? 8B ?? ?? 83 ?? ?? E8 ?? ?? ?? ?? C7 } + $block_2 = { 0F B7 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 8D ?? ?? ?? ?? ?? 5? 8B ?? ?? E8 ?? ?? ?? ?? 83 ?? ?? 76 } + $block_3 = { 48 ?? ?? ?? 48 ?? ?? ?? 48 ?? ?? ?? ?? ?? ?? E8 ?? ?? ?? ?? 48 ?? ?? ?? ?? ?? ?? 48 ?? ?? 0F 85 } + $block_4 = { 8B ?? ?? 5? FF 1? ?? ?? ?? ?? 8B ?? ?? 8B ?? ?? 0F B7 ?? ?? 8B ?? ?? 80 7? ?? ?? 89 ?? ?? 75 } + $block_5 = { 8B ?? ?? 5? FF 1? ?? ?? ?? ?? 8B ?? ?? 0F B7 ?? ?? 8B ?? ?? 8B ?? ?? 80 7? ?? ?? 89 ?? ?? 75 } + $block_6 = { 0F B7 ?? ?? ?? ?? ?? 5? 5? 6A ?? 5? 5? 5? 5? 5? FF 1? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 3B ?? 75 } + $block_7 = { C7 ?? ?? ?? ?? ?? ?? ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? ?? ?? ?? 8B ?? ?? 0F BF ?? ?? 83 ?? ?? 74 } + $block_8 = { 48 ?? ?? ?? ?? ?? ?? ?? ?? ?? 48 ?? ?? ?? 48 ?? ?? ?? 48 ?? ?? ?? 48 ?? ?? ?? 48 ?? ?? 0F 87 } + $block_9 = { 0F B6 ?? ?? ?? ?? ?? 48 ?? ?? ?? ?? ?? ?? 48 ?? ?? ?? 48 ?? ?? 44 ?? ?? ?? ?? 44 ?? ?? 0F 8D } + $block_10 = { 8B ?? ?? 0F B7 ?? ?? ?? ?? ?? 8B ?? ?? 80 7? ?? ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 75 } + $block_11 = { 48 ?? ?? ?? 48 ?? ?? ?? 48 ?? ?? ?? 48 ?? ?? ?? 48 ?? ?? ?? 48 ?? ?? ?? 48 ?? ?? ?? 0F 83 } + $block_12 = { B8 ?? ?? ?? ?? B9 ?? ?? ?? ?? 48 ?? ?? ?? 48 ?? ?? ?? 41 ?? ?? ?? 41 ?? ?? ?? 0F 44 ?? 89 } + $block_13 = { 48 ?? ?? ?? 48 ?? ?? ?? E8 ?? ?? ?? ?? 48 ?? ?? ?? 48 ?? ?? ?? E8 ?? ?? ?? ?? A8 ?? 0F 85 } + $block_14 = { 48 ?? ?? ?? E8 ?? ?? ?? ?? 48 ?? ?? 48 ?? ?? ?? 48 ?? ?? ?? E8 ?? ?? ?? ?? 80 3? ?? 0F 85 } + $block_15 = { 5? 48 ?? ?? 48 ?? ?? ?? 48 ?? ?? ?? 48 ?? ?? ?? 48 ?? ?? ?? 48 ?? ?? ?? 48 ?? ?? ?? 0F 84 } + $block_16 = { 5? 48 ?? ?? 48 ?? ?? ?? 4C ?? ?? ?? 48 ?? ?? ?? 48 ?? ?? ?? 48 ?? ?? ?? ?? ?? ?? ?? 0F 85 } + $block_17 = { 8B ?? ?? 8B ?? 8B ?? ?? 6A ?? 6A ?? 6A ?? 5? 5? E8 ?? ?? ?? ?? 83 ?? ?? 83 ?? ?? 0F 84 } + $block_18 = { 8B ?? ?? 8B ?? 8B ?? ?? 6A ?? 6A ?? 6A ?? 5? 5? E8 ?? ?? ?? ?? 83 ?? ?? 83 ?? ?? 0F 85 } + $block_19 = { 4C ?? ?? ?? 48 ?? ?? ?? 48 ?? ?? ?? E8 ?? ?? ?? ?? 48 ?? ?? ?? 48 ?? ?? ?? ?? ?? 0F 84 } + $block_20 = { 5? 48 ?? ?? 48 ?? ?? ?? 48 ?? ?? ?? 48 ?? ?? ?? 48 ?? ?? ?? E8 ?? ?? ?? ?? A8 ?? 0F 85 } + $block_21 = { 5? 48 ?? ?? 48 ?? ?? ?? 48 ?? ?? ?? 48 ?? ?? ?? 48 ?? ?? ?? ?? ?? ?? 48 ?? ?? ?? 0F 84 } + $block_22 = { C7 ?? ?? ?? ?? ?? ?? 8B ?? ?? 8B ?? ?? 0F B7 ?? ?? 8B ?? ?? 80 7? ?? ?? 89 ?? ?? 75 } + $block_23 = { 8B ?? ?? ?? ?? ?? 5? B9 ?? ?? ?? ?? 8B ?? E8 ?? ?? ?? ?? 8B ?? 83 ?? ?? 85 ?? 0F 8F } + $block_24 = { 8B ?? ?? 8B ?? 8B ?? ?? 6A ?? 6A ?? 6A ?? 5? 5? E8 ?? ?? ?? ?? 83 ?? ?? 85 ?? 0F 8E } + $block_25 = { 0F B6 ?? ?? 48 ?? ?? ?? ?? ?? ?? 48 ?? ?? ?? 48 ?? ?? 44 ?? ?? ?? ?? 44 ?? ?? 0F 8D } + $block_26 = { 48 ?? ?? ?? E8 ?? ?? ?? ?? 48 ?? ?? E8 ?? ?? ?? ?? 0F BE ?? 81 F? ?? ?? ?? ?? 0F 85 } + $block_27 = { 48 ?? ?? ?? 48 ?? ?? ?? 48 ?? ?? ?? 48 ?? ?? ?? ?? ?? ?? 48 ?? ?? ?? 48 ?? ?? 0F 87 } + $block_28 = { 48 ?? ?? ?? ?? ?? ?? ?? E8 ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? ?? 23 ?? 8B ?? 85 ?? 0F 84 } + $block_29 = { 8B ?? ?? 0F B6 ?? ?? 8B ?? ?? 03 ?? ?? 0F B6 ?? 33 ?? 8B ?? ?? 03 ?? ?? 88 ?? E9 } + $block_30 = { 8B ?? ?? 8D ?? ?? 8B ?? 5? 68 ?? ?? ?? ?? 68 ?? ?? ?? ?? 5? FF 5? ?? 85 ?? 0F 88 } + $block_31 = { 48 ?? ?? ?? E8 ?? ?? ?? ?? 48 ?? ?? ?? 48 ?? ?? ?? 48 ?? ?? ?? 48 ?? ?? ?? 0F 83 } + $block_32 = { E8 ?? ?? ?? ?? 48 ?? ?? ?? ?? ?? ?? 48 ?? ?? ?? ?? ?? ?? 81 3? ?? ?? ?? ?? 0F 84 } + $block_33 = { 2B ?? 8B ?? ?? 5? 8B ?? 68 ?? ?? ?? ?? 5? E8 ?? ?? ?? ?? 83 ?? ?? 85 ?? 0F 85 } + $block_34 = { 2B ?? 5? 8B ?? ?? 8B ?? 68 ?? ?? ?? ?? 5? E8 ?? ?? ?? ?? 83 ?? ?? 85 ?? 0F 85 } + $block_35 = { 8B ?? ?? 2B ?? 8B ?? 5? 68 ?? ?? ?? ?? 5? E8 ?? ?? ?? ?? 83 ?? ?? 85 ?? 0F 85 } + $block_36 = { 8B ?? ?? ?? ?? ?? 5? E8 ?? ?? ?? ?? 83 ?? ?? 8B ?? E8 ?? ?? ?? ?? 84 ?? 0F 85 } + $block_37 = { 80 B? ?? ?? ?? ?? ?? 8B ?? ?? 8B ?? ?? ?? ?? ?? 8B ?? ?? 8B ?? 8B ?? ?? 0F 85 } + $block_38 = { 8B ?? ?? 0F B7 ?? ?? 5? FF 1? ?? ?? ?? ?? 66 ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? EB } + $block_39 = { 8B ?? ?? 0F B7 ?? ?? 5? FF 1? ?? ?? ?? ?? 5? 68 ?? ?? ?? ?? E8 ?? ?? ?? ?? 83 } + $block_40 = { 48 ?? ?? ?? 48 ?? ?? ?? 48 ?? ?? E8 ?? ?? ?? ?? 88 ?? ?? 8A ?? ?? A8 ?? 0F 85 } + $block_41 = { 48 ?? ?? ?? ?? ?? ?? 48 ?? ?? ?? 48 ?? ?? 0F B6 ?? ?? 81 F? ?? ?? ?? ?? 0F 85 } + $block_42 = { 48 ?? ?? ?? 48 ?? ?? ?? 8B ?? 48 ?? ?? ?? 2B ?? ?? 48 ?? ?? ?? 3B ?? ?? 0F 8E } + $block_43 = { 48 ?? ?? ?? ?? ?? ?? 48 ?? ?? ?? 48 ?? ?? E8 ?? ?? ?? ?? 3D ?? ?? ?? ?? 0F 84 } + $block_44 = { 48 ?? ?? ?? E8 ?? ?? ?? ?? 48 ?? ?? ?? 48 ?? ?? ?? 48 ?? ?? ?? ?? ?? ?? 0F 84 } + $block_45 = { 48 ?? ?? ?? E8 ?? ?? ?? ?? 48 ?? ?? E8 ?? ?? ?? ?? 48 ?? ?? 48 ?? ?? ?? 0F 85 } + $block_46 = { 48 ?? ?? ?? ?? ?? ?? 48 ?? ?? ?? 48 ?? ?? 0F B6 ?? ?? 81 F? ?? ?? ?? ?? 0F 84 } + $block_47 = { 48 ?? ?? ?? 48 ?? ?? ?? 48 ?? ?? ?? E8 ?? ?? ?? ?? 48 ?? ?? ?? 48 ?? ?? 0F 82 } + $block_48 = { 48 ?? ?? ?? 48 ?? ?? E8 ?? ?? ?? ?? 48 ?? ?? ?? 48 ?? ?? ?? 48 ?? ?? ?? 0F 87 } + $block_49 = { 48 ?? ?? ?? ?? ?? ?? B9 ?? ?? ?? ?? FF D? 81 B? ?? ?? ?? ?? ?? ?? ?? ?? 0F 8E } + $block_50 = { 8D ?? ?? 5? C7 ?? ?? ?? ?? ?? ?? 8B ?? 68 ?? ?? ?? ?? 5? FF 1? 85 ?? 0F 88 } + $block_51 = { 4C ?? ?? ?? 48 ?? ?? ?? 48 ?? ?? ?? E8 ?? ?? ?? ?? 48 ?? ?? ?? ?? ?? 0F 84 } + $block_52 = { 48 ?? ?? ?? ?? ?? ?? 0F BF ?? ?? 81 E? ?? ?? ?? ?? 81 F? ?? ?? ?? ?? 0F 84 } + $block_53 = { 48 ?? ?? ?? ?? ?? ?? 48 ?? ?? ?? 48 ?? ?? 0F B6 ?? 81 F? ?? ?? ?? ?? 0F 85 } + $block_54 = { 48 ?? ?? ?? 8B ?? ?? 89 ?? 4C ?? ?? ?? 48 ?? ?? ?? 49 ?? ?? 4C ?? ?? 0F 83 } + $block_55 = { 48 ?? ?? ?? ?? ?? ?? 48 ?? ?? ?? ?? ?? 48 ?? ?? E8 ?? ?? ?? ?? A8 ?? 0F 85 } + $block_56 = { 48 ?? ?? ?? 48 ?? ?? ?? 48 ?? ?? ?? 48 ?? ?? ?? 48 ?? ?? ?? 48 ?? ?? 0F 87 } + $block_57 = { 48 ?? ?? ?? 48 ?? ?? E8 ?? ?? ?? ?? 48 ?? ?? E8 ?? ?? ?? ?? 80 3? ?? 0F 85 } + $block_58 = { 48 ?? ?? ?? ?? ?? ?? 48 ?? ?? ?? 48 ?? ?? 0F B6 ?? 81 F? ?? ?? ?? ?? 0F 84 } + $block_59 = { 8B ?? ?? 8B ?? 5? 68 ?? ?? ?? ?? 5? E8 ?? ?? ?? ?? 83 ?? ?? 85 ?? 0F 85 } + $block_60 = { 8B ?? ?? 6A ?? 6A ?? 6A ?? 5? 5? E8 ?? ?? ?? ?? 83 ?? ?? 83 ?? ?? 0F 85 } + $block_61 = { 0F B7 ?? 8D ?? ?? ?? ?? ?? 8D ?? ?? 89 ?? ?? ?? ?? ?? E8 ?? ?? ?? ?? C7 } + $block_62 = { 48 ?? ?? ?? 48 ?? ?? ?? ?? ?? ?? 48 ?? ?? ?? ?? ?? ?? 48 ?? ?? ?? 0F 84 } + $block_63 = { 48 ?? ?? ?? ?? ?? ?? ?? ?? ?? 48 ?? ?? ?? 48 ?? ?? ?? 48 ?? ?? ?? 0F 87 } + $block_64 = { 4C ?? ?? ?? 48 ?? ?? ?? 48 ?? ?? ?? E8 ?? ?? ?? ?? 3D ?? ?? ?? ?? 0F 85 } + $block_65 = { 48 ?? ?? ?? ?? ?? ?? E8 ?? ?? ?? ?? 48 ?? ?? ?? 48 ?? ?? ?? ?? ?? 0F 84 } + $block_66 = { 8B ?? ?? 8B ?? 5? 5? 8B ?? ?? ?? ?? ?? E8 ?? ?? ?? ?? 83 ?? ?? 0F 85 } + $block_67 = { 8B ?? ?? 8B ?? 8B ?? ?? ?? ?? ?? 5? 5? E8 ?? ?? ?? ?? 83 ?? ?? 0F 85 } + $block_68 = { 8D ?? ?? ?? ?? ?? ?? 5? E8 ?? ?? ?? ?? 83 ?? ?? 89 ?? ?? 3B ?? 0F 84 } + $block_69 = { 41 ?? ?? ?? ?? ?? 48 ?? ?? ?? 48 ?? ?? ?? E8 ?? ?? ?? ?? A8 ?? 0F 85 } + $block_70 = { 48 ?? ?? ?? E8 ?? ?? ?? ?? 0F BE ?? 81 F? ?? ?? ?? ?? 41 ?? ?? ?? 44 } + $block_71 = { 48 ?? ?? ?? E8 ?? ?? ?? ?? 80 3? ?? 0F 95 ?? 80 F? ?? F6 ?? ?? 0F 85 } + $block_72 = { 8D ?? ?? ?? ?? ?? 5? 8D ?? ?? ?? ?? ?? E8 ?? ?? ?? ?? 84 ?? 0F 84 } + $block_73 = { 5? FF 1? ?? ?? ?? ?? 0F B7 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 5? E9 } + $block_74 = { E8 ?? ?? ?? ?? 8D ?? ?? ?? ?? ?? 5? E8 ?? ?? ?? ?? 5? 85 ?? 0F 85 } + $block_75 = { 6A ?? 6A ?? 5? 8B ?? ?? 5? 5? E8 ?? ?? ?? ?? 83 ?? ?? 85 ?? 0F 84 } + $block_76 = { 0F B6 ?? ?? ?? ?? ?? 8B ?? ?? 8B ?? ?? 8B ?? 0F B6 ?? ?? 3B ?? 7D } + $block_77 = { 8B ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 0F BF ?? ?? ?? 83 ?? ?? 0F 84 } + $block_78 = { C7 ?? ?? ?? ?? ?? ?? ?? ?? ?? 81 B? ?? ?? ?? ?? ?? ?? ?? ?? 0F 85 } + $block_79 = { 48 ?? ?? ?? ?? ?? ?? 48 ?? ?? ?? ?? ?? 48 ?? ?? ?? ?? ?? ?? 0F 84 } + $block_80 = { 48 ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 0F BA ?? ?? 48 ?? ?? ?? ?? 89 } + $block_81 = { 8B ?? ?? 68 ?? ?? ?? ?? 8D ?? ?? E8 ?? ?? ?? ?? 85 ?? 0F 85 } + $block_82 = { 8B ?? ?? 68 ?? ?? ?? ?? 8D ?? ?? E8 ?? ?? ?? ?? 85 ?? 0F 84 } + $block_83 = { 8B ?? ?? ?? ?? ?? 0F BF ?? ?? 83 ?? ?? 8B ?? ?? ?? ?? ?? 66 } + $block_84 = { BF ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 39 ?? ?? ?? ?? ?? 0F 8E } + $block_85 = { 0F B7 ?? ?? ?? ?? ?? 5? FF 1? ?? ?? ?? ?? 66 ?? ?? ?? 75 } + $block_86 = { 0F B6 ?? ?? 8B ?? ?? 8B ?? ?? 8B ?? 0F B6 ?? ?? 3B ?? 7D } + $block_87 = { 8B ?? ?? 0F B7 ?? ?? 8B ?? ?? 80 7? ?? ?? 89 ?? ?? 75 } + $block_88 = { 33 ?? B8 ?? ?? ?? ?? 33 ?? 66 ?? ?? ?? 39 ?? ?? 0F 86 } + $block_89 = { 33 ?? BA ?? ?? ?? ?? 33 ?? 66 ?? ?? ?? 39 ?? ?? 0F 86 } + $block_90 = { 8B ?? ?? 5? FF 1? ?? ?? ?? ?? 38 ?? ?? ?? ?? ?? 0F 85 } + $block_91 = { 48 ?? ?? ?? ?? ?? ?? ?? 83 ?? ?? ?? ?? ?? ?? 0F 85 } + $block_92 = { 48 ?? ?? ?? ?? 81 B? ?? ?? ?? ?? ?? ?? ?? ?? 0F 84 } + $block_93 = { 8B ?? ?? 8B ?? ?? 8B ?? 0F B6 ?? ?? 83 ?? ?? 0F 85 } + $block_94 = { 8B ?? ?? 8D ?? ?? 8B ?? 5? 5? FF 5? ?? 85 ?? 0F 88 } + $block_95 = { 8B ?? ?? 8B ?? ?? 8B ?? 0F B6 ?? 83 ?? ?? 0F 84 } + $block_96 = { 8B ?? ?? 83 ?? ?? E8 ?? ?? ?? ?? 39 ?? ?? 0F 83 } + $block_97 = { 8B ?? ?? 8B ?? ?? 8B ?? 0F B6 ?? 83 ?? ?? 0F 85 } + $block_98 = { 8B ?? ?? 8B ?? ?? 8B ?? 0F B6 ?? ?? 83 ?? ?? 74 } + $block_99 = { 0F B7 ?? ?? 5? FF 1? ?? ?? ?? ?? 66 ?? ?? ?? 75 } + + condition: + hash.sha256(0, filesize) == "fc224a6cca956a59812a13e53ba08a279996ea2ee194fe20fb10170ca5c2db6a" or + hash.sha256(0, filesize) == "1289ee3d29967f491542c0bdeff6974aad6b37932e91ff9c746fb220d5edb407" or + hash.sha256(0, filesize) == "b40909ac0b70b7bd82465dfc7761a6b4e0df55b894dd42290e3f72cb4280fa44" or + hash.sha256(0, filesize) == "854a522a113b6413ff4db5f0ba0aec98cba3c5ef386311660f6dabab26f6aa14" or + hash.sha256(0, filesize) == "35a4ba765653f05de95f51cd2cc2898dafdb2a82d750f51dd892c160eaf7fcd9" or + hash.sha256(0, filesize) == "c6a9db52a3855d980a7f383dbe2fb70300a12b7a3a4f0a995e2ebdef769eaaca" or + hash.sha256(0, filesize) == "79f977c8f815c5910df382b920460fd6448103923f4dc128fc56fdf3867c47b1" or + hash.sha256(0, filesize) == "20bf23ec9f25639f0e41a844448ced8fc5eb74ca017ef7ea920bdf6123ef21bd" or + hash.sha256(0, filesize) == "1c8869abf756e77e1b6d7d0ad5ca8f1cdce1a111315c3703e212fb3db174a6d5" or + hash.sha256(0, filesize) == "d2e947a39714478983764b270985d2529ff682ffec9ebac792158353caf90ed3" or + hash.sha256(0, filesize) == "60ee6fdca66444bdc2e4b00dc67a1b0fdee5a3cd9979815e0aab9ce6435262c6" or + hash.sha256(0, filesize) == "e46b038a1e735c4bf9aab5b8610ff38fa19670daf0bace985511acfc3a497459" or + hash.sha256(0, filesize) == "a37eda810ca92486bfb0e1f1b27adb7c9df57aafab686c000ae1d6ec5d6f6180" or + hash.sha256(0, filesize) == "730a0e3daf0b54f065bdd2ca427fbe10e8d4e28646a5dc40cbcfb15e1702ed9a" or + hash.sha256(0, filesize) == "4dd8ab2471337a56b431433b7e8db2a659dc5d9dc5481b4209c4cddd07d6dc2b" or + hash.sha256(0, filesize) == "53262019782e1ede6c8b3a4cdfdfffed1fc9abb99a0a39ff193c585450fac044" or + hash.sha256(0, filesize) == "c5f8236e578a2b877fe538b2ef6f4aeceeb1b9cb73bba4d02fd368a5eb85cfab" or + hash.sha256(0, filesize) == "a979c5094f75548043a22b174aa10e1f2025371bd9e1249679f052b168e194b3" or + hash.sha256(0, filesize) == "40ae43b7d6c413becc92b07076fa128b875c8dbb4da7c036639eccf5a9fc784f" or + hash.sha256(0, filesize) == "d2a6064429754571682f475b6b67f36526f1573d846182aab3516c2637fa1e81" or + hash.sha256(0, filesize) == "86356fa5be88673bcf6f75e9d80d5bfd1a4e8aa621c3565442997e7af3dbded6" or + hash.sha256(0, filesize) == "8c488b029188e3280ed3614346575a4a390e0dda002bca08c0335210a6202949" or + hash.sha256(0, filesize) == "4845761c9bed0563d0aa83613311191e075a9b58861e80392914d61a21bad976" or + hash.sha256(0, filesize) == "e2a850aeffc9a466c77ca3e39fd3ee4f74d593583666aea5b014aa6c50ca7af8" or + hash.sha256(0, filesize) == "a2c9041ee1918523e67dbaf1c514f98609d4dbe451ba08657653bb41946fc89d" or + hash.sha256(0, filesize) == "be2e58669dbdec916f7aaaf4d7c55d866c4f38ac290812b10d680d943bb5b757" or + hash.sha256(0, filesize) == "cee41e51e82f5ea3cd318e6cb7e1e2218a7a86a2fbf8ffa566e4c5158bc6dd02" or + hash.sha256(0, filesize) == "566ab945f61be016bfd9e83cc1b64f783b9b8deb891e6d504d3442bc8281b092" or + hash.sha256(0, filesize) == "688146426628260d32a6b4891d0900eab98c996e66018203d54270e2b76472b1" or + 12 of them +} + +rule XAgent { + meta: + Author = "Intezer Analyze" + Reference = "https://apt-ecosystem.com" + + strings: + $block_0 = { 89 ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? ?? ?? ?? 85 ?? 0F 84 } + $block_1 = { 0F B6 ?? ?? ?? ?? ?? 4B ?? ?? ?? 88 ?? 48 ?? ?? 48 ?? ?? ?? ?? ?? 4C ?? ?? ?? ?? 4C ?? ?? ?? 72 } + $block_2 = { 69 ?? ?? ?? ?? ?? 8D ?? ?? 48 ?? 49 ?? ?? 48 ?? ?? ?? 49 ?? ?? 48 ?? ?? 81 F? ?? ?? ?? ?? 0F 8E } + $block_3 = { 48 ?? ?? ?? ?? 48 ?? ?? ?? ?? 41 ?? ?? ?? ?? ?? 45 ?? ?? 48 ?? ?? ?? ?? ?? ?? FF D? 85 ?? 0F 85 } + $block_4 = { 8B ?? C7 ?? ?? ?? ?? ?? ?? E8 ?? ?? ?? ?? 8B ?? ?? 8B ?? 8B ?? 8B ?? ?? 5? FF D? 84 ?? 0F 84 } + $block_5 = { 48 ?? ?? 48 ?? ?? 48 ?? ?? ?? 49 ?? ?? 83 ?? ?? 49 ?? ?? 49 ?? ?? 0F B6 ?? ?? 88 ?? ?? ?? 75 } + $block_6 = { 68 ?? ?? ?? ?? FF 1? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 6A ?? 5? 5? FF 1? ?? ?? ?? ?? 85 ?? 0F 84 } + $block_7 = { 0F 10 ?? ?? ?? ?? ?? 0F 29 ?? ?? ?? 4C ?? ?? ?? ?? 4C ?? ?? 33 ?? 48 ?? ?? E8 ?? ?? ?? ?? EB } + $block_8 = { 4C ?? ?? ?? ?? 44 ?? ?? ?? ?? 4C ?? ?? ?? ?? 4C ?? ?? ?? ?? 4C ?? ?? ?? ?? 44 ?? ?? ?? 0F 1F } + $block_9 = { 0F B6 ?? ?? 0F B6 ?? ?? ?? C1 ?? ?? 33 ?? 0F B6 ?? ?? ?? C1 ?? ?? 33 ?? 83 ?? ?? 33 ?? C7 } + $block_10 = { 5? 0F B6 ?? 6A ?? 5? E8 ?? ?? ?? ?? 8B ?? ?? 5? 5? 5? 5? 89 ?? E8 ?? ?? ?? ?? 83 ?? ?? 5? } + $block_11 = { 48 ?? ?? E8 ?? ?? ?? ?? 48 ?? ?? 49 ?? ?? ?? ?? 4C ?? ?? 48 ?? ?? 41 ?? ?? ?? 84 ?? 0F 84 } + $block_12 = { 8B ?? 8B ?? ?? 8B ?? FF D? 66 ?? ?? ?? 8A ?? ?? 88 ?? ?? 0F B6 ?? 83 ?? ?? 83 ?? ?? 0F 87 } + $block_13 = { 48 ?? ?? ?? ?? 5? 5? 41 ?? 48 ?? ?? ?? 49 ?? ?? 49 ?? ?? 48 ?? ?? 4C ?? ?? 49 ?? ?? 0F 84 } + $block_14 = { 8B ?? ?? 8B ?? 83 ?? ?? 8A ?? ?? 30 ?? ?? ?? 8B ?? ?? FE ?? 0F B6 ?? 83 ?? ?? 3B ?? 72 } + $block_15 = { 5? 8B ?? 83 ?? ?? 8B ?? 83 ?? ?? ?? ?? ?? ?? 5? 8B ?? ?? B9 ?? ?? ?? ?? 89 ?? ?? 0F 86 } + $block_16 = { 8B ?? ?? 5? 6A ?? 6A ?? 8D ?? ?? ?? ?? ?? 5? 5? 5? 5? FF 1? ?? ?? ?? ?? 83 ?? ?? 0F 85 } + $block_17 = { 6A ?? 68 ?? ?? ?? ?? 8B ?? C6 ?? ?? ?? E8 ?? ?? ?? ?? 0F B6 ?? 83 ?? ?? 83 ?? ?? 0F 87 } + $block_18 = { 5? 8B ?? 83 ?? ?? 5? 8B ?? 8B ?? ?? 2B ?? ?? 5? C1 ?? ?? 5? C6 ?? ?? ?? 85 ?? 0F 84 } + $block_19 = { 8B ?? ?? ?? ?? ?? 8B ?? ?? 03 ?? 66 ?? ?? ?? 0F B6 ?? 4? 89 ?? ?? ?? ?? ?? 3B ?? 75 } + $block_20 = { 48 ?? ?? ?? ?? ?? ?? 48 ?? ?? ?? ?? 48 ?? ?? 48 ?? ?? ?? E8 ?? ?? ?? ?? 84 ?? 0F 85 } + $block_21 = { 2B ?? 8B ?? B8 ?? ?? ?? ?? F7 ?? 03 ?? C1 ?? ?? 8B ?? C1 ?? ?? 03 ?? 83 ?? ?? 0F 87 } + $block_22 = { 6A ?? 6A ?? 6A ?? 6A ?? 68 ?? ?? ?? ?? FF 1? ?? ?? ?? ?? 8B ?? 89 ?? ?? 85 ?? 0F 84 } + $block_23 = { 0F B6 ?? ?? 48 ?? ?? ?? ?? 4C ?? ?? ?? ?? 45 ?? ?? 4C ?? ?? ?? ?? 4D ?? ?? 84 ?? 74 } + $block_24 = { 4C ?? ?? ?? 48 ?? ?? ?? 48 ?? ?? ?? ?? E8 ?? ?? ?? ?? 9? 0F B7 ?? ?? ?? 66 ?? ?? 75 } + $block_25 = { 8B ?? 8B ?? ?? 8D ?? ?? 5? 8B ?? FF D? 0F B6 ?? ?? 8D ?? ?? C6 ?? ?? ?? 39 ?? ?? 75 } + $block_26 = { 2B ?? 8B ?? B8 ?? ?? ?? ?? F7 ?? 03 ?? C1 ?? ?? 8B ?? C1 ?? ?? 03 ?? 83 ?? ?? 0F 85 } + $block_27 = { 6A ?? 5? 8D ?? ?? 5? 8B ?? ?? ?? ?? ?? 83 ?? ?? E8 ?? ?? ?? ?? 0F B6 ?? ?? 4? 0F 84 } + $block_28 = { 8A ?? ?? 8B ?? ?? 2B ?? ?? FE ?? 88 ?? ?? 0F B6 ?? C1 ?? ?? 89 ?? ?? 3B ?? 0F 82 } + $block_29 = { 8D ?? ?? ?? ?? ?? ?? 2B ?? 8B ?? ?? ?? FE ?? 8D ?? ?? ?? 01 ?? 0F B6 ?? 3B ?? 72 } + $block_30 = { 5? 8B ?? E8 ?? ?? ?? ?? 6A ?? 6A ?? 6A ?? 6A ?? 5? FF 1? ?? ?? ?? ?? 85 ?? 0F 84 } + $block_31 = { 8D ?? ?? ?? ?? ?? 5? 5? FF 1? ?? ?? ?? ?? 8B ?? 89 ?? ?? ?? ?? ?? 83 ?? ?? 0F 84 } + $block_32 = { 41 ?? ?? ?? ?? ?? 48 ?? ?? ?? ?? ?? ?? 48 ?? ?? E8 ?? ?? ?? ?? 41 ?? ?? ?? 0F 85 } + $block_33 = { 5? 5? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? FF 1? ?? ?? ?? ?? 8B ?? 85 ?? 0F 84 } + $block_34 = { 48 ?? ?? ?? ?? ?? ?? 48 ?? ?? E8 ?? ?? ?? ?? 0F B6 ?? 48 ?? ?? ?? 48 ?? ?? 74 } + $block_35 = { 45 ?? ?? 48 ?? ?? ?? 48 ?? ?? ?? ?? ?? ?? 48 ?? ?? 48 ?? ?? ?? 48 ?? ?? 0F 84 } + $block_36 = { 33 ?? 44 ?? ?? ?? 48 ?? ?? ?? ?? E8 ?? ?? ?? ?? 48 ?? ?? ?? ?? 48 ?? ?? 0F 85 } + $block_37 = { 48 ?? ?? 48 ?? ?? FF 5? ?? 40 ?? ?? ?? 40 ?? ?? ?? 83 ?? ?? 66 ?? ?? ?? 0F 84 } + $block_38 = { 68 ?? ?? ?? ?? FF 1? ?? ?? ?? ?? 8B ?? ?? 8B ?? 8B ?? ?? FF D? 84 ?? 0F 84 } + $block_39 = { 8A ?? ?? 8B ?? ?? FE ?? 0F B6 ?? 88 ?? ?? 8B ?? ?? 2B ?? C1 ?? ?? 3B ?? 72 } + $block_40 = { 66 ?? ?? 66 ?? ?? 0F B6 ?? ?? 88 ?? ?? 0F B6 ?? ?? 83 ?? ?? 88 ?? ?? 5? EB } + $block_41 = { 8D ?? ?? ?? ?? ?? 5? 5? FF 1? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 83 ?? ?? 0F 84 } + $block_42 = { FF 1? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 2B ?? ?? ?? ?? ?? 3D ?? ?? ?? ?? 0F 86 } + $block_43 = { 5? 8B ?? ?? ?? ?? ?? 03 ?? 6A ?? 5? 89 ?? ?? FF 1? ?? ?? ?? ?? 85 ?? 0F 85 } + $block_44 = { 8B ?? ?? ?? ?? ?? 5? FF D? 8B ?? ?? 5? FF D? 5? FF D? 8B ?? ?? 85 ?? 0F 84 } + $block_45 = { 8A ?? ?? 8B ?? ?? 2B ?? ?? FE ?? 88 ?? ?? 0F B6 ?? C1 ?? ?? 3B ?? 0F 82 } + $block_46 = { 8B ?? ?? 2B ?? ?? 8B ?? ?? 0F B7 ?? BF ?? ?? ?? ?? C1 ?? ?? 3B ?? 0F 86 } + $block_47 = { 8B ?? ?? 83 ?? ?? ?? 83 ?? ?? ?? 83 ?? ?? 89 ?? ?? 3D ?? ?? ?? ?? 0F 82 } + $block_48 = { 8B ?? ?? ?? ?? ?? 8D ?? ?? ?? ?? ?? 5? 5? FF 1? ?? ?? ?? ?? 85 ?? 0F 85 } + $block_49 = { 41 ?? ?? 45 ?? ?? ?? 48 ?? ?? ?? 48 ?? ?? ?? 48 ?? ?? ?? 4C ?? ?? 0F 82 } + $block_50 = { 33 ?? 89 ?? ?? 89 ?? ?? 66 ?? ?? ?? C6 ?? ?? ?? 39 ?? ?? ?? ?? ?? 0F 82 } + $block_51 = { 8B ?? ?? ?? ?? ?? 68 ?? ?? ?? ?? 6A ?? 5? 5? FF D? 83 ?? ?? ?? 0F 82 } + $block_52 = { 45 ?? ?? 48 ?? ?? ?? 48 ?? ?? ?? 48 ?? ?? 48 ?? ?? ?? 48 ?? ?? 0F 84 } + $block_53 = { 8B ?? ?? FF D? 8B ?? ?? 03 ?? 8B ?? 0F AF ?? 89 ?? ?? 89 ?? ?? E9 } + $block_54 = { 5? 8B ?? 8B ?? ?? 0F B7 ?? 5? 5? 5? 8B ?? 33 ?? 33 ?? 66 ?? ?? 74 } + $block_55 = { 0F B6 ?? 8D ?? ?? ?? ?? ?? ?? 0F B6 ?? 03 ?? 81 E? ?? ?? ?? ?? 79 } + $block_56 = { 0F B7 ?? 8B ?? 81 E? ?? ?? ?? ?? 03 ?? 66 ?? ?? ?? 66 ?? ?? ?? 74 } + $block_57 = { 48 ?? ?? ?? ?? ?? ?? ?? 4C ?? ?? ?? 66 ?? ?? ?? ?? 40 ?? ?? 0F 84 } + $block_58 = { 33 ?? C7 ?? ?? ?? ?? ?? ?? 89 ?? ?? 66 ?? ?? ?? 39 ?? ?? 0F 82 } + $block_59 = { 48 ?? ?? ?? 48 ?? ?? 83 ?? ?? 0F B6 ?? ?? 30 ?? ?? 48 ?? ?? 75 } + $block_60 = { 6A ?? 5? E8 ?? ?? ?? ?? 83 ?? ?? 89 ?? ?? ?? ?? ?? 85 ?? 0F 84 } + $block_61 = { 8D ?? ?? 68 ?? ?? ?? ?? 5? E8 ?? ?? ?? ?? 83 ?? ?? 84 ?? 0F 84 } + $block_62 = { 6A ?? 68 ?? ?? ?? ?? 5? 5? 8D ?? ?? E8 ?? ?? ?? ?? 85 ?? 0F 84 } + $block_63 = { 40 ?? ?? ?? 48 ?? ?? ?? 48 ?? ?? ?? 48 ?? ?? ?? 48 ?? ?? 0F 83 } + $block_64 = { 48 ?? ?? ?? ?? ?? ?? FF 1? ?? ?? ?? ?? 48 ?? ?? 48 ?? ?? 0F 84 } + $block_65 = { 48 ?? ?? ?? ?? 48 ?? ?? 48 ?? ?? ?? E8 ?? ?? ?? ?? 84 ?? 0F 85 } + $block_66 = { 41 ?? ?? ?? 48 ?? ?? ?? 48 ?? ?? ?? 48 ?? ?? ?? 48 ?? ?? 0F 83 } + $block_67 = { 85 ?? 0F 94 ?? 84 ?? 0F 94 ?? 48 ?? ?? ?? ?? ?? ?? 84 ?? 0F 84 } + $block_68 = { 8B ?? ?? 0F B7 ?? ?? 8B ?? 8B ?? 8B ?? ?? FF D? 66 ?? ?? 75 } + $block_69 = { 8B ?? ?? 8B ?? ?? 8B ?? 8B ?? ?? FF D? 0F B7 ?? 66 ?? ?? 74 } + $block_70 = { 8B ?? ?? 5? 5? 5? 8B ?? E8 ?? ?? ?? ?? 8B ?? 83 ?? ?? 0F 84 } + $block_71 = { 48 ?? ?? ?? 48 ?? ?? ?? 66 ?? ?? ?? 0F 95 ?? 66 ?? ?? ?? 74 } + $block_72 = { FE ?? ?? 0F B6 ?? 8D ?? ?? ?? ?? ?? ?? 8A ?? 88 ?? 88 ?? 75 } + $block_73 = { 8B ?? ?? 8B ?? ?? 0F B6 ?? ?? 2B ?? C1 ?? ?? 3B ?? 0F 83 } + $block_74 = { 0F B6 ?? ?? 8B ?? 5? 5? 33 ?? 33 ?? 89 ?? ?? 89 ?? ?? 8B } + $block_75 = { 48 ?? ?? ?? ?? 48 ?? ?? ?? ?? 48 ?? ?? ?? ?? ?? ?? 0F 85 } + $block_76 = { 2B ?? D1 ?? 5? 5? 5? 8B ?? E8 ?? ?? ?? ?? 83 ?? ?? 0F 85 } + $block_77 = { 68 ?? ?? ?? ?? E8 ?? ?? ?? ?? FF 4? ?? 83 ?? ?? ?? 0F 82 } + $block_78 = { 0F B6 ?? ?? 0F B6 ?? ?? ?? C1 ?? ?? 03 ?? C1 ?? ?? EB } + $block_79 = { 8D ?? ?? ?? ?? ?? 5? 5? FF 1? ?? ?? ?? ?? 85 ?? 0F 85 } + $block_80 = { 8B ?? 8B ?? ?? 66 ?? ?? ?? 0F 95 ?? 66 ?? ?? ?? ?? 74 } + $block_81 = { 5? 8B ?? 5? 8B ?? ?? 0F B7 ?? 33 ?? 33 ?? 66 ?? ?? 74 } + $block_82 = { 8D ?? ?? ?? ?? ?? ?? 8B ?? F6 ?? ?? ?? ?? ?? ?? 0F 84 } + $block_83 = { 0F B6 ?? ?? 8A ?? ?? FE ?? ?? 88 ?? ?? ?? ?? ?? ?? 75 } + $block_84 = { 48 ?? ?? ?? 48 ?? ?? ?? 48 ?? ?? ?? 48 ?? ?? ?? 0F 86 } + $block_85 = { 4F ?? ?? ?? 48 ?? ?? ?? ?? ?? ?? 66 ?? ?? ?? ?? 0F 85 } + $block_86 = { 48 ?? ?? ?? 4C ?? ?? 48 ?? ?? 41 ?? ?? ?? 84 ?? 0F 84 } + $block_87 = { 5? 8B ?? 5? 8B ?? ?? 5? 33 ?? 89 ?? ?? 3B ?? 0F 86 } + $block_88 = { 0F B7 ?? C1 ?? ?? 4? 03 ?? 0F B7 ?? ?? 66 ?? ?? 75 } + $block_89 = { 8D ?? ?? ?? ?? ?? 5? FF 1? ?? ?? ?? ?? 85 ?? 0F 84 } + $block_90 = { 48 ?? ?? ?? ?? ?? ?? ?? 41 ?? ?? ?? ?? ?? ?? 0F 85 } + $block_91 = { 48 ?? ?? E8 ?? ?? ?? ?? 48 ?? ?? ?? 48 ?? ?? 0F 84 } + $block_92 = { 45 ?? ?? 48 ?? ?? ?? ?? ?? ?? 4C ?? ?? ?? ?? 0F 1F } + $block_93 = { 8B ?? ?? ?? ?? ?? 6A ?? FF D? 83 ?? ?? ?? 0F 84 } + $block_94 = { 8B ?? ?? 89 ?? ?? ?? ?? ?? 3D ?? ?? ?? ?? 0F 83 } + $block_95 = { 5? FF 1? ?? ?? ?? ?? 85 ?? 0F 95 ?? 3A ?? 0F 85 } + $block_96 = { 0F BE ?? 0F B6 ?? FE ?? 4? 66 ?? ?? ?? 3C ?? 72 } + $block_97 = { 49 ?? ?? ?? 44 ?? ?? 48 ?? ?? ?? 48 ?? ?? 0F 84 } + $block_98 = { 8B ?? ?? 8B ?? ?? 5? 5? C6 ?? ?? ?? ?? 5? C9 C3 } + $block_99 = { 48 ?? ?? ?? 4C ?? ?? 49 ?? ?? 41 ?? ?? ?? 0F 1F } + + condition: + hash.sha256(0, filesize) == "bf28267386a010197a50b65f24e815aa527f2adbc53c609d2b2a4f999a639413" or + hash.sha256(0, filesize) == "fa908ee3822dbda90d3b378ea3c4354eef8a27259ea3fe69a86f18e94f8742a2" or + hash.sha256(0, filesize) == "596c486fabc8581f788fe27dcd24fddee8fd8cc484e6744db68a29fa5a804cf6" or + hash.sha256(0, filesize) == "f2287ddc1376c1ffbf6652d06d115a42e041df1976b321142c0f92dbdb96e82e" or + hash.sha256(0, filesize) == "82fc44696d1c5ddfdd5338fcafb6a9dcf7a0796235cd58184d05a2f388ed7e9e" or + hash.sha256(0, filesize) == "d0e019229493a1cfb3ffc918a2d8ffcbaee31f9132293c95b1f8c1fd6d595054" or + hash.sha256(0, filesize) == "b5413aab02e9076e7a62fe53826b16147c3fa4d47b073e334311184e39d9a71e" or + hash.sha256(0, filesize) == "e00eaf295a28f5497dbb5cb8f647537b6e55dd66613505389c24e658d150972c" or + hash.sha256(0, filesize) == "1daeacb30433f88c52f21f2d323dd3c6b556b3611d29a34c6c72e4a8e714f86a" or + hash.sha256(0, filesize) == "261b0a5912965ea95b8ae02aae1e761a61f9ad3a9fb85ef781e62013d6a21368" or + hash.sha256(0, filesize) == "dd8facad6c0626b6c94e1cc891698d4982782a5564aae696a218c940b7b8d084" or + hash.sha256(0, filesize) == "02c7cf55fd5c5809ce2dce56085ba43795f2480423a4256537bfdfda0df85592" or + hash.sha256(0, filesize) == "fd39d2837b30e7233bc54598ff51bdc2f8c418fa5b94dea2cadb24cf40f395e5" or + hash.sha256(0, filesize) == "a0749f75ec464a86acd146a825d6ddf1c351f290860fe7bf6a47ce4fb2a085f1" or + hash.sha256(0, filesize) == "69691bc9ff36ccb46c2acef50edc393996a4c42bc6e9a86976050b9eff83dc00" or + hash.sha256(0, filesize) == "07393ac2e890772f70adf9e8d3aa07ab2f98e2726e3be275276dadd00daf5fc6" or + hash.sha256(0, filesize) == "1a09ce8a9210d2530d6ce1d59bfae2ac617ac89558cdcdcac15392d176e70c8d" or + hash.sha256(0, filesize) == "32717c2876f5622a562d548b55e09657f453b40d7aeb15bb738c789a4c4ee61d" or + hash.sha256(0, filesize) == "0abda721c4f1ca626f5d8bd2ce186aa98b197ca68d53e81cf152c32230345071" or + hash.sha256(0, filesize) == "a5b68575ac4fbe83c23ff991ad0d5389f51a2aef71ee3c2277985c68361cf1cc" or + hash.sha256(0, filesize) == "cee85e2fd2ca34a2f90bce9b50c400fe4fd14b536fd0ff26c0c3a9aad6e1904a" or + hash.sha256(0, filesize) == "45a872495dae7805bb537bc7a37a9bd604bf48b26496dbe35f4e13e200bad6a2" or + hash.sha256(0, filesize) == "2b6e280b4ff000dc0926d9586a8b3710697ed95112b2e465660e6409823e6bad" or + hash.sha256(0, filesize) == "3d13f2e5b241168005425b15410556bcf26d04078da6b2ef42bc0c2be7654bf8" or + hash.sha256(0, filesize) == "4182821d00485cbc5628bbdc41a76e8a956142021f6682549559d04636a17a3f" or + hash.sha256(0, filesize) == "b814fdbb7cfe6e5192fe1126835b903354d75bfb15a6c262ccc2caf13a8ce4b6" or + hash.sha256(0, filesize) == "8554e0894babf3c743b66aa2a07f9aa99893be131824ec72835b9fb11e0aeb39" or + hash.sha256(0, filesize) == "715f69916db9ff8fedf6630307f4ebb84aae6653fd0e593036517c5040d84dbe" or + hash.sha256(0, filesize) == "4096a8c13d6c492d9204cb11c294bb64b04a7636ca1e6257c2ae431d0c385cc2" or + hash.sha256(0, filesize) == "9ead4bc59075215f8e474d790cef4aa8dbc35815c7339011b956ecce6a84ff47" or + hash.sha256(0, filesize) == "7a5cb45a3efcebbf49e18c4b2397dc2bdff039d9127a8119abe4c2f85a85e1f0" or + hash.sha256(0, filesize) == "8a80c2f8dbffa1f2763547aac332746afb85b47f977780485d17d7eb2ea187b7" or + hash.sha256(0, filesize) == "608a428b7c7f32726b8239725fb7b7a7760b750ea89e2d66fa966b0797ea614e" or + hash.sha256(0, filesize) == "94c220653ea7421c60e3eafd753a9ae9d69b475d61230f2f403789d326309c24" or + hash.sha256(0, filesize) == "001d65185910ae8cd9e7e2472745e593be62b98eae3f5f2266a29c37e56daa1d" or + hash.sha256(0, filesize) == "b23193bff95c4e65af0c9848036eb80ef006503a78be842e921035f8d77eb5de" or + hash.sha256(0, filesize) == "52bf280be543485434945074ebc3d1e4f2ab15c0286c7a063c33ea39786a77e1" or + hash.sha256(0, filesize) == "b4f755c91c2790f4ab9bac4ee60725132323e13a2688f3d8939ae9ed4793d014" or + hash.sha256(0, filesize) == "dea3a99388e9c962de9ea1008ff35bc2dc66f67a911451e7b501183e360bb95e" or + hash.sha256(0, filesize) == "24e11c80f1d4c1e9db654d54cc784db6b5f4a126f9fe5e26c269fdc4009c8f29" or + hash.sha256(0, filesize) == "225e94f198bdfcf7550dc30881654f192e460dce88fe927fad8c5adb149eed25" or + hash.sha256(0, filesize) == "fc2dbfda41860b2385314c87e81f1ebb4f9ae1106b697e019841d8c3bf402570" or + hash.sha256(0, filesize) == "b8fd23432d615c451b0845a7d7b9b17b371da06627d390f501ca1fd58f9d1ac2" or + hash.sha256(0, filesize) == "8646a5330f516adce0c05ad019cf041cf79c1ca069048c3f8db94dcbdb00c408" or + hash.sha256(0, filesize) == "99d3f03fc6f048c74e58da6fb7ea1e831ba31d58194ad2463a7a6cd55da5f96b" or + hash.sha256(0, filesize) == "d11dcf98d78c8281fc7f4affc30a798d6fd7cb0fbdbd9daa8f004fbcd1deee28" or + hash.sha256(0, filesize) == "f97f2985ff599e073156e37cbd34024067680072ac18f9d2040c64eedbe38e4f" or + hash.sha256(0, filesize) == "858e7a7223d6ed91cfa89f5cae013f9a450d13cdc7adb1963072d6eb6cbad513" or + hash.sha256(0, filesize) == "c7661b27a06a3a8c471fbb060ab8cab25fa9546e0a4c5c1101fe8098b2ad11e9" or + hash.sha256(0, filesize) == "68065abd6482405614d245537600ea60857c6ec9febac4870486b5227589d35c" or + hash.sha256(0, filesize) == "8bca0031f3b691421cb15f9c6e71ce193355d2d8cf2b190438b6962761d0c6bb" or + hash.sha256(0, filesize) == "e031299fa1381b40c660b8cd831bb861654f900a1e2952b1a76bedf140972a81" or + hash.sha256(0, filesize) == "5f6b2a0d1d966fc4f1ed292b46240767f4acb06c13512b0061b434ae2a692fa1" or + hash.sha256(0, filesize) == "c19d266af9e33dae096e45e7624ab3a3f642c8de580e902fec9dac11bcb8d3fd" or + hash.sha256(0, filesize) == "8925aa5c9e912236f265f3d3f95b9fa8bbfd8dec1e381f168309056b23995d4c" or + hash.sha256(0, filesize) == "b1800cb1d4b755e05b0fca251b8c6da96bb85f8042f2d755b7f607cbeef58db8" or + hash.sha256(0, filesize) == "88a5377f829e45ed89767e2e4aaee853e587eb202528c963802893108b70fe3f" or + hash.sha256(0, filesize) == "e1b1143c0003c6905227df37d40aacbaecc2be8b9d86547650fe11bd47ca6989" or + hash.sha256(0, filesize) == "1228e9066819f115e8b2a6c1b75352566a6a5dc002d9d36a8c5b47758c9f6a45" or + hash.sha256(0, filesize) == "2d11e8d81bf776d668355ed15a596193d4bb10a42289ddb3223c1227b042d854" or + hash.sha256(0, filesize) == "1e6a0e542dcddec9d937c111c3ea6670e08c6606f869444d0702ec7f1363bff1" or + hash.sha256(0, filesize) == "bebe0be0cf8349706b2feb789572e035955209d5bf5d5fea0e5d29a7fbfdc7c4" or + hash.sha256(0, filesize) == "e2bea753318d715dfc2f186c49ae3e9c404d0f5df52e959ea546f78a3624bc3b" or + hash.sha256(0, filesize) == "9f06b3c694c8b398e2f47e98590a94d5daefbebfb5426fb3c99eb34aecb536b8" or + hash.sha256(0, filesize) == "0356f5fa9907ea060a7d6964e65f019896deb1c7e303b7ba04da1458dc73a842" or + hash.sha256(0, filesize) == "9a527274f99865a7d70487fe22e62f692f8b239d6cb80816b919734c7c741584" or + hash.sha256(0, filesize) == "c488f4946612c13601a1bed48fce0733645ae3ab5fda03395383160d44bde964" or + hash.sha256(0, filesize) == "d4525abc9dd2b7ab7f0c22e58a0117980039afdf15bed04bb0c637cd41fbfb9d" or + hash.sha256(0, filesize) == "72ee0330474c00ec15576112b33e8198b1272e0e3f44fce3800af79821b7e431" or + hash.sha256(0, filesize) == "8325cd6e26fb39cf7a08787e771a6cf708e0b45350d1ea239982af06db90804f" or + hash.sha256(0, filesize) == "280905558e848f5bb9ab923e6e44002480464a8bdeb50f00b6757e1fff8b46fb" or + hash.sha256(0, filesize) == "dea4e560017b4da05e8fd0a03ba74239723349934ee8fbd201a79be1ecf1c32d" or + hash.sha256(0, filesize) == "638e7ca68643d4b01432f0ecaaa0495b805cc3cccc17a753b0fa511d94a22bdd" or + hash.sha256(0, filesize) == "b93e55763bd8dec8944410e4e00d0f174640905b99629d8111819528593d1c2a" or + hash.sha256(0, filesize) == "aa2914cc937b6eb4e703955cbf576e8d783af2164ddd9ec759dd9ad2cc71d42a" or + hash.sha256(0, filesize) == "ee8636cfa3521c7f9cc7588221d1edc0eed7ba68256b72e3dc2a4a75a6bd5b87" or + hash.sha256(0, filesize) == "6c69b9bda696d416cb22b775f9a63f98dd4e634f003e3b0704cbb67721b13dde" or + hash.sha256(0, filesize) == "ea957d663dbc0b28844f6aa7dfdc5ac0110a4004ac46c87d0f1aa943ef253cfe" or + hash.sha256(0, filesize) == "ddab96e4a8e909065e05c4b6a73ba351ea45ad4806258f41ac3cecbcae8671a6" or + hash.sha256(0, filesize) == "6562e2ac60afa314cd463f771fcfb8be70f947f6e2b314b0c48187eebb33dd82" or + hash.sha256(0, filesize) == "a1c73ce193ffa5323aaef73fbabbc2a984e10900f09cf9fcb0cb11606a23c402" or + 12 of them +} + +rule SeduploaderPayload2 { + meta: + Author = "Intezer Analyze" + Reference = "https://apt-ecosystem.com" + + strings: + $block_0 = { 5? 8B ?? 83 ?? ?? 5? 5? 33 ?? 5? 6A ?? 68 ?? ?? ?? ?? E8 ?? ?? ?? ?? 8B ?? 83 ?? ?? 85 ?? 0F 84 } + $block_1 = { 5? 8B ?? 83 ?? ?? 5? 8D ?? ?? 33 ?? 5? 68 ?? ?? ?? ?? 89 ?? ?? E8 ?? ?? ?? ?? 5? 5? 85 ?? 0F 84 } + $block_2 = { 5? 8B ?? 83 ?? ?? 5? 5? 8B ?? 33 ?? 5? FF 7? ?? E8 ?? ?? ?? ?? FF 1? ?? ?? ?? ?? 83 ?? ?? 0F 84 } + $block_3 = { 6A ?? 68 ?? ?? ?? ?? 8B ?? E8 ?? ?? ?? ?? 5? FF 7? ?? 89 ?? ?? E8 ?? ?? ?? ?? 5? 5? 85 ?? 0F 84 } + $block_4 = { 0F B6 ?? 89 ?? ?? 8A ?? ?? ?? ?? ?? ?? 88 ?? ?? ?? ?? ?? ?? 88 ?? ?? ?? ?? ?? ?? 80 C? ?? 75 } + $block_5 = { 5? 8B ?? 83 ?? ?? 83 ?? ?? ?? 8D ?? ?? 5? 68 ?? ?? ?? ?? E8 ?? ?? ?? ?? 5? 5? 85 ?? 0F 84 } + $block_6 = { 5? 33 ?? 6A ?? 5? F7 ?? 0F 90 ?? F7 ?? 0B ?? 5? E8 ?? ?? ?? ?? 8B ?? 89 ?? ?? 5? 85 ?? 75 } + $block_7 = { 5? 8B ?? 83 ?? ?? 5? 5? 5? 8B ?? ?? 8B ?? 6A ?? 5? E8 ?? ?? ?? ?? 8B ?? 5? 5? 85 ?? 0F 84 } + $block_8 = { 5? 8B ?? 83 ?? ?? 5? 8B ?? ?? 5? 5? 6A ?? 5? 8B ?? E8 ?? ?? ?? ?? 8B ?? 5? 5? 85 ?? 0F 84 } + $block_9 = { 33 ?? 5? 5? 5? 68 ?? ?? ?? ?? FF 3? ?? ?? ?? ?? E8 ?? ?? ?? ?? 8B ?? 83 ?? ?? 85 ?? 0F 84 } + $block_10 = { FF 7? ?? E8 ?? ?? ?? ?? 5? E8 ?? ?? ?? ?? 5? E8 ?? ?? ?? ?? 83 ?? ?? 5? 5? 8B ?? 5? C9 C3 } + $block_11 = { 5? 8B ?? 83 ?? ?? 5? 8B ?? 6A ?? FF 7? ?? E8 ?? ?? ?? ?? FF 1? ?? ?? ?? ?? 83 ?? ?? 0F 84 } + $block_12 = { 5? 8B ?? 83 ?? ?? 5? 5? 5? 33 ?? 8D ?? ?? AB AB 8B ?? 33 ?? 33 ?? E8 ?? ?? ?? ?? 3B ?? 74 } + $block_13 = { 83 ?? ?? ?? 8D ?? ?? 5? FF 7? ?? FF D? 8B ?? ?? 33 ?? 84 ?? 0F 44 ?? 33 ?? 85 ?? 0F 94 } + $block_14 = { FF 7? ?? 5? FF 7? ?? E8 ?? ?? ?? ?? 5? 8B ?? E8 ?? ?? ?? ?? 83 ?? ?? 5? 8B ?? 5? C9 C3 } + $block_15 = { 5? 8B ?? 83 ?? ?? 5? 8B ?? C6 ?? ?? ?? 5? 89 ?? ?? E8 ?? ?? ?? ?? 8B ?? 85 ?? 0F 84 } + $block_16 = { 5? 8B ?? 83 ?? ?? 5? 5? 6A ?? FF 7? ?? 8B ?? E8 ?? ?? ?? ?? 8B ?? 5? 5? 85 ?? 0F 84 } + $block_17 = { 5? 8B ?? 83 ?? ?? 5? 6A ?? FF 7? ?? 8B ?? 89 ?? ?? E8 ?? ?? ?? ?? 5? 5? 85 ?? 0F 84 } + $block_18 = { 8B ?? ?? 8B ?? ?? 89 ?? ?? 8B ?? ?? 89 ?? 8B ?? ?? 5? 5? 89 ?? ?? 8B ?? ?? 5? C9 C2 } + $block_19 = { FF 7? ?? 5? FF 7? ?? E8 ?? ?? ?? ?? 33 ?? 4? 85 ?? 5? 0F 45 ?? E8 ?? ?? ?? ?? 83 } + $block_20 = { 81 7? ?? ?? ?? ?? ?? 8B ?? ?? 89 ?? ?? 8B ?? ?? 89 ?? ?? 89 ?? ?? 89 ?? ?? 0F 85 } + $block_21 = { 5? E8 ?? ?? ?? ?? 5? FF 7? ?? E8 ?? ?? ?? ?? 8B ?? ?? 83 ?? ?? 8B ?? ?? 0F B6 } + $block_22 = { 8D ?? ?? 89 ?? ?? 5? FF 7? ?? 5? E8 ?? ?? ?? ?? 8B ?? 83 ?? ?? 85 ?? 0F 84 } + $block_23 = { 8B ?? 83 ?? ?? 89 ?? 33 ?? 39 ?? 0F 45 ?? 03 ?? 89 ?? ?? 8D ?? ?? 3B ?? 72 } + $block_24 = { 8B ?? 33 ?? AB AB AB 83 ?? ?? ?? 83 ?? ?? ?? 8B ?? ?? C7 ?? ?? ?? ?? ?? EB } + $block_25 = { 8B ?? ?? 8B ?? ?? 89 ?? ?? 89 ?? ?? 8B ?? ?? 5? 5? 89 ?? 8B ?? ?? 5? C9 C2 } + $block_26 = { FF 7? ?? E8 ?? ?? ?? ?? 5? FF 7? ?? FF 1? ?? ?? ?? ?? 5? 5? 8B ?? 5? C9 C2 } + $block_27 = { 0F B6 ?? 89 ?? ?? 8A ?? ?? ?? ?? ?? ?? 0F B6 ?? 03 ?? 25 ?? ?? ?? ?? 79 } + $block_28 = { 5? 5? 6A ?? 68 ?? ?? ?? ?? E8 ?? ?? ?? ?? 8B ?? 83 ?? ?? 85 ?? 0F 84 } + $block_29 = { FF 7? ?? E8 ?? ?? ?? ?? FF 7? ?? E8 ?? ?? ?? ?? 8B ?? ?? 5? 5? C9 C2 } + $block_30 = { 8D ?? ?? ?? ?? ?? 68 ?? ?? ?? ?? 5? E8 ?? ?? ?? ?? 5? 5? 84 ?? 0F 85 } + $block_31 = { 8D ?? ?? 5? 8D ?? ?? 5? FF 7? ?? E8 ?? ?? ?? ?? 83 ?? ?? 85 ?? 0F 84 } + $block_32 = { 0F B7 ?? 8B ?? 81 E? ?? ?? ?? ?? 03 ?? 66 ?? ?? ?? 66 ?? ?? ?? 74 } + $block_33 = { 0F B6 ?? 8D ?? ?? ?? ?? ?? ?? 0F B6 ?? 03 ?? 81 E? ?? ?? ?? ?? 79 } + $block_34 = { 0F B7 ?? 8B ?? 66 ?? ?? ?? 25 ?? ?? ?? ?? 03 ?? 66 ?? ?? ?? 74 } + $block_35 = { 68 ?? ?? ?? ?? E8 ?? ?? ?? ?? 4? 89 ?? ?? 5? 5? 83 ?? ?? 0F 82 } + $block_36 = { 5? 68 ?? ?? ?? ?? 5? E8 ?? ?? ?? ?? 8B ?? 5? 5? 85 ?? 0F 84 } + $block_37 = { 5? 83 ?? ?? 6A ?? 5? E8 ?? ?? ?? ?? 8B ?? 5? 5? 85 ?? 0F 84 } + $block_38 = { FE ?? ?? 0F B6 ?? 8D ?? ?? ?? ?? ?? ?? 8A ?? 88 ?? 88 ?? 75 } + $block_39 = { 8B ?? ?? E8 ?? ?? ?? ?? 84 ?? 8B ?? ?? 8B ?? ?? 6A ?? 0F 85 } + $block_40 = { 68 ?? ?? ?? ?? E8 ?? ?? ?? ?? FF 4? ?? 83 ?? ?? ?? 0F 82 } + $block_41 = { 68 ?? ?? ?? ?? E8 ?? ?? ?? ?? 4? 89 ?? ?? 83 ?? ?? 0F 82 } + $block_42 = { 8D ?? ?? ?? ?? ?? 5? FF 7? ?? E8 ?? ?? ?? ?? 85 ?? 0F 85 } + $block_43 = { 0F B6 ?? ?? 8A ?? ?? FE ?? ?? 88 ?? ?? ?? ?? ?? ?? 75 } + $block_44 = { 5? 8B ?? 83 ?? ?? 5? 8B ?? 5? 33 ?? 8B ?? 85 ?? 0F 84 } + $block_45 = { FF 7? ?? FF 7? ?? FF 7? ?? FF 7? ?? FF 5? ?? 5? C9 C3 } + $block_46 = { 8B ?? ?? E8 ?? ?? ?? ?? 84 ?? 8B ?? ?? 8B ?? ?? 0F 85 } + $block_47 = { 8D ?? ?? 5? E8 ?? ?? ?? ?? 8B ?? ?? 5? 5? 5? 5? C9 C2 } + $block_48 = { 5? 89 ?? ?? E8 ?? ?? ?? ?? 8B ?? ?? 5? 85 ?? 0F 84 } + $block_49 = { 8B ?? 8B ?? ?? 66 ?? ?? 0F 95 ?? ?? 66 ?? ?? ?? 74 } + $block_50 = { 8D ?? ?? 5? E8 ?? ?? ?? ?? 8B ?? ?? 5? 5? 5? C9 C2 } + $block_51 = { 5? 89 ?? ?? E8 ?? ?? ?? ?? 33 ?? 5? 39 ?? ?? 0F 84 } + $block_52 = { 5? 8B ?? 5? 5? 8B ?? 5? 33 ?? 8B ?? ?? 85 ?? 0F 84 } + $block_53 = { 85 ?? 89 ?? 89 ?? ?? C7 ?? ?? ?? ?? ?? ?? 0F 44 } + $block_54 = { 8B ?? ?? 8B ?? ?? 5? 5? C6 ?? ?? ?? ?? 5? C9 C3 } + $block_55 = { 8B ?? 4? 99 F7 ?? 8B ?? 80 C? ?? 88 ?? 85 ?? 75 } + $block_56 = { 5? 8B ?? 5? 5? 8B ?? 5? 33 ?? 8B ?? 85 ?? 0F 84 } + $block_57 = { FF 7? ?? E8 ?? ?? ?? ?? 5? 8B ?? 5? 5? 5? C9 C3 } + $block_58 = { 5? 89 ?? ?? E8 ?? ?? ?? ?? 83 ?? ?? ?? 5? 0F 84 } + + condition: + hash.sha256(0, filesize) == "ef027405492bc0719437eb58c3d2774cc87845f30c40040bbebbcc09a4e3dd18" or + hash.sha256(0, filesize) == "aeeab3272a2ed2157ebf67f74c00fafc787a2b9bbaa17a03be1e23d4cb273632" or + hash.sha256(0, filesize) == "0ac7b666814fd016b3d21d7812f4a272104511f90ca666fa13e9fb6cefa603c7" or + hash.sha256(0, filesize) == "f50791f9909c542e4abb5e3f760c896995758a832b0699c23ca54b579a9f2108" or + hash.sha256(0, filesize) == "6b8c44ba1d8ed34b9c3ce7142f9a09a8b50aa1a40a45774bec23c0f59aad0117" or + hash.sha256(0, filesize) == "df47a939809f925475bc19804319652635848b8f346fb7dfd8c95c620595fe9f" or + hash.sha256(0, filesize) == "c3b2c7bbd2aa1e3100b9382ed78dfa0041af764e0e02013acdf282410b302ead" or + hash.sha256(0, filesize) == "69940a20ab9abb31a03fcefe6de92a16ed474bbdff3288498851afc12a834261" or + hash.sha256(0, filesize) == "11cd541511cc793e7416655cda1e100d0a70fb043dfe7f6664564b91733431d0" or + hash.sha256(0, filesize) == "8c47961181d9929333628af20bdd750021e925f40065374e6b876e3b8afbba57" or + hash.sha256(0, filesize) == "12e6642cf6413bdf5388bee663080fa299591b2ba023d069286f3be9647547c8" or + hash.sha256(0, filesize) == "0a842c40cdbbbc2bf5a6513e39a2bd8ea266f914ac93c958fda8c0d0048c4f94" or + hash.sha256(0, filesize) == "3b87bfb837339445987cdf2e97169cb0c63072dc1d5bffa8ffb4af108a410988" or + hash.sha256(0, filesize) == "3ac11a74275725a22c233cd974229d2b167c336da667410f7262b4926dabd31b" or + hash.sha256(0, filesize) == "dfa8a85e26c07a348a854130c652dcc6d29b203ee230ce0603c83d9f11bbcacc" or + hash.sha256(0, filesize) == "73db52c0d4e31a00030b47b4f0fa7125000b19c6c9d462c3d0ce0f9d68f04e4c" or + hash.sha256(0, filesize) == "b6fff95a74f9847f1a4282b38f148d80e4684d9c35d9ae79fad813d5dc0fd7a9" or + hash.sha256(0, filesize) == "430902c206ab08581de0500ad2f23a77e4915680edb8437c151c77bab6e6cbc3" or + hash.sha256(0, filesize) == "5a414a39851c4e22d4f9383211dfc080e16e2caffd90fa06dcbe51d11fdb0d6c" or + hash.sha256(0, filesize) == "853dbbba09e2463c45c0ad913d15d67d15792d888f81b4908b2216859342aa04" or + hash.sha256(0, filesize) == "500fa112a204b6abb365101013a17749ce83403c30cd37f7c6f94e693c2d492f" or + hash.sha256(0, filesize) == "57d230ddaf92e2d0504e5bb12abf52062114fb8980c5ecc413116b1d6ffedf1b" or + hash.sha256(0, filesize) == "eae782130b06d95f3373ff7d5c0977a8019960bdf80614c1aa7e324dc350428a" or + hash.sha256(0, filesize) == "1140c624fbfe28b9ef19fef2e9aa251adfbe8c157820d5f0356d88b4d80c2c88" or + 12 of them +} + +rule WinexeSVC { + meta: + Author = "Intezer Analyze" + Reference = "https://apt-ecosystem.com" + + strings: + $block_0 = { 31 ?? B9 ?? ?? ?? ?? 48 ?? ?? F3 ?? ?? 48 ?? ?? ?? 49 ?? ?? ?? 48 ?? ?? ?? ?? ?? ?? ?? 48 ?? ?? ?? ?? ?? ?? ?? 48 ?? ?? ?? ?? ?? ?? ?? 45 ?? ?? C7 ?? ?? ?? ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? 31 ?? 48 ?? ?? ?? ?? ?? ?? 48 ?? ?? ?? 4D ?? ?? 48 ?? ?? ?? 48 ?? ?? ?? ?? ?? ?? 48 ?? ?? ?? 48 ?? ?? ?? ?? ?? ?? 4C ?? ?? ?? ?? 48 ?? ?? ?? ?? 48 ?? ?? ?? ?? ?? ?? ?? ?? 48 ?? ?? ?? ?? ?? ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? ?? 48 ?? ?? ?? ?? ?? ?? ?? ?? FF 1? ?? ?? ?? ?? 85 ?? 0F 84 } + $block_1 = { B9 ?? ?? ?? ?? E8 ?? ?? ?? ?? 4C ?? ?? ?? 48 ?? ?? 48 ?? ?? ?? ?? ?? ?? ?? 45 ?? ?? 31 ?? 41 ?? ?? ?? ?? ?? BA ?? ?? ?? ?? 49 ?? ?? ?? ?? ?? ?? ?? 49 ?? ?? ?? ?? ?? ?? ?? 49 ?? ?? ?? ?? ?? ?? ?? 41 ?? ?? 45 ?? ?? 48 ?? ?? ?? 41 ?? ?? ?? ?? ?? 4C ?? ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? ?? BA ?? ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? ?? 48 ?? ?? FF D? 48 ?? ?? ?? 48 ?? ?? 0F 84 } + $block_2 = { 48 ?? ?? ?? ?? ?? ?? ?? 45 ?? ?? C7 ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? 4C ?? ?? ?? ?? ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? B9 ?? ?? ?? ?? 48 ?? ?? ?? ?? ?? ?? ?? 48 ?? ?? ?? ?? ?? ?? ?? 48 ?? ?? ?? ?? 48 ?? ?? FF 1? ?? ?? ?? ?? 85 ?? 89 ?? ?? ?? 0F 85 } + $block_3 = { FF 1? ?? ?? ?? ?? C1 ?? ?? 03 ?? ?? 48 ?? ?? ?? ?? ?? ?? 4C ?? ?? ?? ?? ?? ?? 48 ?? ?? 41 ?? ?? 89 ?? E8 ?? ?? ?? ?? 45 ?? ?? 4C ?? ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? ?? 41 ?? ?? ?? ?? ?? BA ?? ?? ?? ?? 48 ?? ?? 4C ?? ?? ?? ?? ?? ?? 41 ?? ?? 48 ?? ?? ?? 48 ?? ?? ?? 0F 84 } + $block_4 = { 48 ?? ?? ?? ?? ?? ?? 41 ?? ?? 48 ?? ?? E8 ?? ?? ?? ?? 45 ?? ?? 4C ?? ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? ?? 41 ?? ?? ?? ?? ?? BA ?? ?? ?? ?? 48 ?? ?? 41 ?? ?? 48 ?? ?? ?? 48 ?? ?? ?? 0F 84 } + $block_5 = { 0F 1F ?? ?? ?? ?? ?? ?? 48 ?? ?? ?? ?? ?? ?? 48 ?? ?? ?? 41 ?? ?? ?? ?? ?? BA ?? ?? ?? ?? FF D? 48 ?? ?? ?? 41 ?? ?? ?? ?? ?? BA ?? ?? ?? ?? FF D? BA ?? ?? ?? ?? 48 ?? ?? ?? 41 ?? ?? ?? ?? ?? FF D? 8B ?? ?? 85 ?? 0F 85 } + $block_6 = { 48 ?? ?? ?? ?? ?? ?? 48 ?? ?? ?? 41 ?? ?? ?? ?? ?? BA ?? ?? ?? ?? FF D? 48 ?? ?? ?? 41 ?? ?? ?? ?? ?? BA ?? ?? ?? ?? FF D? BA ?? ?? ?? ?? 48 ?? ?? ?? 41 ?? ?? ?? ?? ?? FF D? 8B ?? ?? 85 ?? 0F 85 } + $block_7 = { 48 ?? ?? 48 ?? ?? ?? 48 ?? ?? ?? 48 ?? ?? ?? 48 ?? ?? ?? FF 1? ?? ?? ?? ?? 48 ?? ?? 45 ?? ?? 48 ?? ?? ?? 41 ?? ?? ?? ?? ?? 48 ?? ?? ?? 48 ?? ?? ?? ?? 48 ?? ?? FF 1? ?? ?? ?? ?? 85 ?? 0F 84 } + $block_8 = { 89 ?? 48 ?? ?? ?? ?? C1 ?? ?? A9 ?? ?? ?? ?? 0F 44 ?? 49 ?? ?? ?? 89 ?? 4C ?? ?? ?? 00 ?? 48 ?? ?? 49 ?? ?? ?? 48 ?? ?? 45 ?? ?? 41 ?? ?? FF 1? ?? ?? ?? ?? 85 ?? 74 } + $block_9 = { 41 ?? 41 ?? 41 ?? 41 ?? 5? 5? 5? 5? 48 ?? ?? ?? ?? ?? ?? BA ?? ?? ?? ?? 48 ?? ?? B9 ?? ?? ?? ?? E8 ?? ?? ?? ?? 48 ?? ?? 48 ?? ?? 0F 84 } + + condition: + hash.sha256(0, filesize) == "a4a838150809d833f84ab590f2ef566be777d12655c1f2c5df17c895497262fa" or + hash.sha256(0, filesize) == "993d38b57284ebead293296c4aaf4ecffe4f8ac63ca115ae9463368b407cef97" or + 10 of them +} + +rule SeduploaderDropper { + meta: + Author = "Intezer Analyze" + Reference = "https://apt-ecosystem.com" + + strings: + $block_0 = { 48 ?? ?? FF 1? ?? ?? ?? ?? 4C ?? ?? 48 ?? ?? 41 ?? ?? FF 1? ?? ?? ?? ?? 48 ?? ?? 48 ?? ?? 0F 84 } + $block_1 = { 0F B7 ?? ?? 4C ?? ?? ?? 44 ?? ?? ?? 48 ?? ?? ?? ?? 33 ?? FF 1? ?? ?? ?? ?? 4C ?? ?? 48 ?? ?? 74 } + $block_2 = { 41 ?? ?? ?? 0F B6 ?? ?? ?? 88 ?? ?? ?? 88 ?? ?? ?? 8B ?? 0F B6 ?? ?? ?? 03 ?? 41 ?? ?? 7D } + $block_3 = { FF 1? ?? ?? ?? ?? 4C ?? ?? 41 ?? ?? 48 ?? ?? FF 1? ?? ?? ?? ?? 4C ?? ?? 48 ?? ?? 0F 84 } + $block_4 = { 0F B6 ?? 0F B6 ?? 0F AF ?? 8A ?? ?? 02 ?? ?? ?? ?? ?? 32 ?? 4? 88 ?? ?? 83 ?? ?? 72 } + $block_5 = { FF D? 5? 5? E8 ?? ?? ?? ?? 5? 5? 8B ?? ?? 5? 5? 33 ?? B0 ?? 5? E8 ?? ?? ?? ?? C9 C3 } + $block_6 = { FF 7? ?? 33 ?? 5? 5? FF 7? ?? 68 ?? ?? ?? ?? 5? FF 1? ?? ?? ?? ?? 83 ?? ?? 0F 9D } + $block_7 = { 40 ?? 5? 5? 5? 41 ?? 41 ?? 41 ?? 41 ?? 48 ?? ?? ?? 48 ?? ?? 3B ?? ?? 0F 83 } + $block_8 = { 5? 5? BE ?? ?? ?? ?? 8D ?? ?? A5 A5 A4 BE ?? ?? ?? ?? 8D ?? ?? A5 66 ?? 33 } + $block_9 = { 42 ?? ?? ?? ?? ?? 0F 95 ?? 83 ?? ?? 88 ?? ?? 48 ?? ?? ?? 49 ?? ?? 0F 87 } + $block_10 = { 42 ?? ?? ?? ?? 0F 95 ?? 83 ?? ?? 88 ?? ?? 48 ?? ?? ?? 49 ?? ?? 0F 87 } + $block_11 = { 6A ?? FF 7? ?? 6A ?? 5? 5? FF 7? ?? FF 1? ?? ?? ?? ?? 85 ?? 0F 85 } + $block_12 = { 42 ?? ?? ?? 83 ?? ?? 8D ?? ?? 89 ?? ?? 3B ?? ?? ?? ?? ?? ?? 0F 87 } + $block_13 = { 4C ?? ?? ?? 48 ?? ?? 8B ?? 48 ?? ?? FF 5? ?? 45 ?? ?? 84 ?? 0F 84 } + $block_14 = { 0F B6 ?? ?? ?? ?? ?? 03 ?? 03 ?? ?? 33 ?? 4? 89 ?? 83 ?? ?? 72 } + $block_15 = { 40 ?? ?? 0F B6 ?? 8A ?? ?? ?? 42 ?? ?? ?? ?? 44 ?? ?? ?? ?? 75 } + $block_16 = { 45 ?? ?? ?? 40 ?? ?? ?? 0F B6 ?? ?? ?? 44 ?? ?? 45 ?? ?? 7D } + $block_17 = { 49 ?? ?? 48 ?? ?? 45 ?? ?? 66 ?? ?? 48 ?? ?? 48 ?? ?? 0F 84 } + $block_18 = { 8B ?? 4D ?? ?? ?? 89 ?? ?? ?? ?? ?? ?? 41 ?? ?? ?? ?? 0F 86 } + $block_19 = { 8B ?? ?? ?? 33 ?? FF 1? ?? ?? ?? ?? 48 ?? ?? 48 ?? ?? 0F 84 } + $block_20 = { 6A ?? 5? 6A ?? 6A ?? FF 7? ?? FF D? 8B ?? 83 ?? ?? 0F 84 } + $block_21 = { 5? 8D ?? ?? 5? 5? FF 1? ?? ?? ?? ?? 83 ?? ?? ?? 5? 0F 85 } + $block_22 = { 42 ?? ?? ?? 83 ?? ?? 89 ?? ?? 48 ?? ?? ?? 49 ?? ?? 0F 87 } + $block_23 = { 4A ?? ?? ?? 83 ?? ?? 48 ?? ?? ?? 89 ?? ?? 49 ?? ?? 0F 87 } + $block_24 = { 0F B6 ?? ?? ?? ?? ?? 03 ?? 03 ?? 33 ?? 4? 83 ?? ?? 72 } + $block_25 = { 8B ?? 83 ?? ?? 4A ?? ?? ?? 8D ?? ?? 41 ?? ?? 0F 87 } + $block_26 = { 48 ?? ?? ?? 4C ?? ?? ?? 45 ?? ?? 49 ?? ?? 0F 87 } + $block_27 = { 4A ?? ?? ?? 83 ?? ?? 8D ?? ?? ?? 41 ?? ?? 0F 87 } + + condition: + hash.sha256(0, filesize) == "2884e438b4dbb3bcead37789908e2eb210ead820dfc03091dc7f46b50ddd1e5b" or + hash.sha256(0, filesize) == "69d5123a277dc1f618be5edcc95938a0df148c856d2e1231a07e2743bd683e01" or + hash.sha256(0, filesize) == "4bcd11142d5b9f96730715905152a645a1bf487921dd65618c354281512a4ae7" or + hash.sha256(0, filesize) == "63d0b28114f6277b901132bc1cc1f541a594ee72f27d95653c54e1b73382a5f6" or + hash.sha256(0, filesize) == "ff808d0a12676bfac88fd26f955154f8884f2bb7c534b9936510fd6296c543e8" or + 12 of them +} + +rule Seduploader { + meta: + Author = "Intezer Analyze" + Reference = "https://apt-ecosystem.com" + + strings: + $block_0 = { 6A ?? 68 ?? ?? ?? ?? 8B ?? E8 ?? ?? ?? ?? 5? FF 7? ?? 89 ?? ?? E8 ?? ?? ?? ?? 5? 5? 85 ?? 0F 84 } + $block_1 = { 0F B6 ?? 89 ?? ?? 8A ?? ?? ?? ?? ?? ?? 88 ?? ?? ?? ?? ?? ?? 88 ?? ?? ?? ?? ?? ?? 80 C? ?? 75 } + $block_2 = { 33 ?? 5? 5? 5? 68 ?? ?? ?? ?? FF 3? ?? ?? ?? ?? E8 ?? ?? ?? ?? 8B ?? 83 ?? ?? 85 ?? 0F 84 } + $block_3 = { 5? 8B ?? 83 ?? ?? 5? 8B ?? 6A ?? FF 7? ?? E8 ?? ?? ?? ?? FF 1? ?? ?? ?? ?? 83 ?? ?? 0F 84 } + $block_4 = { 5? 8B ?? 83 ?? ?? 5? 8B ?? ?? 5? 5? 6A ?? 5? 8B ?? E8 ?? ?? ?? ?? 8B ?? 5? 5? 85 ?? 0F 84 } + $block_5 = { 83 ?? ?? ?? 8D ?? ?? 5? FF 7? ?? FF D? 8B ?? ?? 33 ?? 84 ?? 0F 44 ?? 33 ?? 85 ?? 0F 94 } + $block_6 = { 5? 8B ?? 83 ?? ?? 5? 8B ?? C6 ?? ?? ?? 5? 89 ?? ?? E8 ?? ?? ?? ?? 8B ?? 85 ?? 0F 84 } + $block_7 = { 5? E8 ?? ?? ?? ?? 5? FF 7? ?? E8 ?? ?? ?? ?? 8B ?? ?? 83 ?? ?? 8B ?? ?? 0F B6 } + $block_8 = { 8B ?? 33 ?? AB AB AB 83 ?? ?? ?? 83 ?? ?? ?? 8B ?? ?? C7 ?? ?? ?? ?? ?? EB } + $block_9 = { 0F B6 ?? 89 ?? ?? 8A ?? ?? ?? ?? ?? ?? 0F B6 ?? 03 ?? 25 ?? ?? ?? ?? 79 } + $block_10 = { 0F B7 ?? 8B ?? 66 ?? ?? ?? 25 ?? ?? ?? ?? 03 ?? 66 ?? ?? ?? 74 } + $block_11 = { 5? 68 ?? ?? ?? ?? 5? E8 ?? ?? ?? ?? 8B ?? 5? 5? 85 ?? 0F 84 } + $block_12 = { 68 ?? ?? ?? ?? E8 ?? ?? ?? ?? 4? 89 ?? ?? 83 ?? ?? 0F 82 } + $block_13 = { 5? 89 ?? ?? E8 ?? ?? ?? ?? 8B ?? ?? 5? 85 ?? 0F 84 } + $block_14 = { 8B ?? 4? 99 F7 ?? 8B ?? 80 C? ?? 88 ?? 85 ?? 75 } + + condition: + hash.sha256(0, filesize) == "f5b3f920cdd1ea42905caf7f0894194aaf5096b9a90c77ac06139dcb42018f9e" or + 12 of them +} + +rule HideDRV { + meta: + Author = "Intezer Analyze" + Reference = "https://apt-ecosystem.com" + + strings: + $block_0 = { 45 ?? ?? 45 ?? ?? 48 ?? ?? ?? ?? 48 ?? ?? ?? ?? FF 1? ?? ?? ?? ?? 0F B6 ?? 85 ?? 75 } + $block_1 = { 48 ?? ?? ?? ?? 0F B7 ?? 48 ?? ?? ?? ?? E8 ?? ?? ?? ?? 89 ?? ?? ?? 83 ?? ?? ?? ?? 7D } + $block_2 = { 48 ?? ?? ?? ?? 48 ?? ?? ?? 48 ?? ?? ?? 8B ?? ?? E8 ?? ?? ?? ?? 0F B6 ?? 85 ?? 75 } + $block_3 = { 8B ?? ?? ?? 48 ?? ?? ?? ?? 0F B6 ?? ?? 88 ?? ?? ?? 0F B6 ?? ?? ?? 83 ?? ?? 74 } + $block_4 = { 48 ?? ?? ?? ?? 48 ?? ?? ?? BA ?? ?? ?? ?? E8 ?? ?? ?? ?? 0F B6 ?? 85 ?? 75 } + $block_5 = { 48 ?? ?? ?? ?? 48 ?? ?? ?? BA ?? ?? ?? ?? E8 ?? ?? ?? ?? 0F B6 ?? 85 ?? 74 } + $block_6 = { 48 ?? ?? ?? ?? 48 ?? ?? ?? 8B ?? ?? E8 ?? ?? ?? ?? 0F B6 ?? 85 ?? 75 } + $block_7 = { 48 ?? ?? ?? ?? 48 ?? ?? ?? 48 ?? ?? ?? 0F BF ?? ?? 83 ?? ?? 85 ?? 74 } + $block_8 = { BA ?? ?? ?? ?? 48 ?? ?? ?? ?? E8 ?? ?? ?? ?? 0F B6 ?? 85 ?? 0F 84 } + $block_9 = { 48 ?? ?? ?? ?? 48 ?? ?? ?? ?? FF 1? ?? ?? ?? ?? 33 ?? 85 ?? 0F 85 } + $block_10 = { BA ?? ?? ?? ?? 48 ?? ?? ?? ?? E8 ?? ?? ?? ?? 0F B6 ?? 85 ?? 75 } + $block_11 = { 8B ?? ?? ?? ?? ?? ?? 48 ?? ?? ?? ?? E8 ?? ?? ?? ?? 85 ?? 0F 84 } + $block_12 = { 89 ?? ?? ?? 48 ?? ?? ?? 0F B6 ?? ?? ?? ?? ?? 85 ?? 74 } + $block_13 = { 48 ?? ?? ?? ?? 48 ?? ?? ?? 0F B6 ?? ?? 83 ?? ?? 74 } + $block_14 = { 48 ?? ?? ?? ?? E8 ?? ?? ?? ?? 0F B6 ?? 85 ?? 75 } + + condition: + hash.sha256(0, filesize) == "4bfe2216ee63657312af1b2507c8f2bf362fdf1d63c88faba397e880c2e39430" or + 12 of them +} + +rule OLDBAIT { + meta: + Author = "Intezer Analyze" + Reference = "https://apt-ecosystem.com" + + strings: + $block_0 = { 8D ?? ?? 5? 6A ?? FF D? 8B ?? ?? ?? 5? 5? 5? 89 ?? ?? E8 ?? ?? ?? ?? 83 ?? ?? 8D ?? ?? 6A ?? 33 ?? 5? 89 ?? ?? ?? FF D? 89 ?? ?? 8B ?? 89 ?? 89 ?? ?? 6A ?? 89 ?? ?? 5? 89 ?? ?? E8 ?? ?? ?? ?? 5? 5? 83 ?? ?? 3B ?? 0F 85 } + $block_1 = { 8D ?? ?? 5? 6A ?? FF D? 8B ?? ?? ?? 5? 5? 5? 89 ?? ?? E8 ?? ?? ?? ?? 83 ?? ?? 8D ?? ?? 6A ?? 33 ?? 5? 89 ?? ?? ?? FF D? 89 ?? ?? 8B ?? 89 ?? 89 ?? ?? 6A ?? 89 ?? ?? 5? 89 ?? ?? E8 ?? ?? ?? ?? 8B ?? 83 ?? ?? 3B ?? 0F 85 } + $block_2 = { 5? 6A ?? 5? FF D? 5? 5? 8B ?? ?? ?? 89 ?? ?? 6A ?? 5? 89 ?? ?? ?? 89 ?? 89 ?? ?? 89 ?? ?? 89 ?? ?? E8 ?? ?? ?? ?? 8B ?? 83 ?? ?? 3B ?? 0F 84 } + $block_3 = { 5? 6A ?? 5? FF D? 8B ?? 8B ?? ?? ?? 89 ?? ?? 6A ?? 5? 89 ?? ?? ?? 89 ?? 89 ?? ?? 89 ?? ?? 89 ?? ?? E8 ?? ?? ?? ?? 8B ?? 83 ?? ?? 3B ?? 0F 84 } + $block_4 = { 8D ?? ?? 5? 6A ?? FF D? 8B ?? ?? ?? 5? 5? 5? 89 ?? E8 ?? ?? ?? ?? 83 ?? ?? 6A ?? 5? E8 ?? ?? ?? ?? 83 ?? ?? 89 ?? ?? ?? 85 ?? 0F 84 } + $block_5 = { 5? 5? 83 ?? ?? 5? E8 ?? ?? ?? ?? 83 ?? ?? 29 ?? 66 ?? ?? ?? ?? 68 ?? ?? ?? ?? 8D ?? ?? ?? 5? 5? FF 1? ?? ?? ?? ?? 5? 5? 85 ?? 0F 84 } + $block_6 = { 8B ?? 83 ?? ?? 5? E8 ?? ?? ?? ?? 83 ?? ?? 33 ?? 66 ?? ?? ?? ?? 68 ?? ?? ?? ?? 8D ?? ?? ?? 5? 5? FF 1? ?? ?? ?? ?? 8B ?? 85 ?? 0F 84 } + $block_7 = { 5? 8B ?? 83 ?? ?? 5? 5? 5? C7 ?? ?? ?? ?? ?? ?? 8D ?? ?? 89 ?? ?? 8B ?? ?? 8B ?? ?? FF 7? ?? 60 FC B2 ?? 33 } + $block_8 = { 30 ?? ?? 0F B6 ?? C1 ?? ?? D1 ?? 4? 0B ?? 3B ?? 72 } + + condition: + hash.sha256(0, filesize) == "10b02dfe93a30d5da0aab3559ec3a55dab6cd96e8ef7c4d1a8e86c59efe63634" or + hash.sha256(0, filesize) == "de006fffc2c0580844830436ee2bdce2f492072b72375b93867a1523c0275ecd" or + hash.sha256(0, filesize) == "360fc67cb295c0a79934f7899ed804424e0c6c4e316d7f3478f2f8c4386f5b68" or + hash.sha256(0, filesize) == "7313eaf95a8a8b4c206b9afe306e7c0675a21999921a71a5a16456894571d21d" or + 9 of them +} + +rule dropper { + meta: + Author = "Intezer Analyze" + Reference = "https://apt-ecosystem.com" + + strings: + $block_0 = { 5? 8B ?? 8B ?? ?? B9 ?? ?? ?? ?? A1 ?? ?? ?? ?? 85 ?? 0F 45 ?? A3 ?? ?? ?? ?? 8B ?? ?? 85 ?? 74 } + $block_1 = { 0F B6 ?? 88 ?? ?? 8B ?? ?? ?? ?? ?? 03 ?? 89 ?? ?? 03 ?? ?? 5? E8 ?? ?? ?? ?? 8B ?? 5? 85 ?? 75 } + $block_2 = { 80 B? ?? ?? ?? ?? ?? 8D ?? ?? 8D ?? ?? 0F 44 ?? 5? 5? 89 ?? ?? E8 ?? ?? ?? ?? 5? 5? 85 ?? 0F 85 } + $block_3 = { 8D ?? ?? ?? ?? ?? 5? 5? E8 ?? ?? ?? ?? 5? 5? 33 ?? 8B ?? 4? 8B ?? E8 ?? ?? ?? ?? 5? 85 ?? 0F 85 } + $block_4 = { 0F B7 ?? 4? 8B ?? 89 ?? ?? 81 E? ?? ?? ?? ?? 66 ?? ?? ?? 8B ?? 03 ?? ?? 89 ?? ?? 66 ?? ?? ?? 75 } + $block_5 = { 0F 28 ?? ?? ?? ?? ?? 8B ?? 0F 11 ?? ?? C7 ?? ?? ?? ?? ?? ?? 0F 28 ?? ?? ?? ?? ?? 0F 11 ?? ?? C7 } + $block_6 = { 5? 8B ?? 81 E? ?? ?? ?? ?? A1 ?? ?? ?? ?? 33 ?? 89 ?? ?? 5? 8B ?? 89 ?? ?? ?? ?? ?? 85 ?? 0F 84 } + $block_7 = { 0F 57 ?? 32 ?? 66 ?? ?? ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 89 } + $block_8 = { 8D ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? 5? FF B? ?? ?? ?? ?? FF 1? ?? ?? ?? ?? 8B ?? 85 ?? 0F 84 } + $block_9 = { 8D ?? ?? 0F B7 ?? 5? FF 7? ?? 89 ?? ?? 0F B7 ?? 5? 5? E8 ?? ?? ?? ?? 8B ?? ?? 83 ?? ?? 85 ?? 74 } + $block_10 = { 83 ?? ?? ?? 03 ?? 5? 8D ?? ?? 5? FF 5? ?? 8D ?? ?? 5? 8D ?? ?? 5? 6A ?? 6A ?? FF D? 85 ?? 0F 88 } + $block_11 = { 0F B6 ?? ?? 0F B6 ?? ?? C1 ?? ?? 0B ?? 0F B6 ?? ?? C1 ?? ?? 0B ?? 0F B6 ?? ?? C1 ?? ?? 0B ?? EB } + $block_12 = { 5? 8B ?? 81 E? ?? ?? ?? ?? A1 ?? ?? ?? ?? 33 ?? 89 ?? ?? 8B ?? ?? 5? 8B ?? ?? 5? 83 ?? ?? 0F 84 } + $block_13 = { 8B ?? C7 ?? ?? ?? ?? ?? ?? 2B ?? ?? F7 ?? ?? ?? ?? ?? ?? 89 ?? ?? 0F B6 ?? ?? ?? 89 ?? ?? 74 } + $block_14 = { 5? 8B ?? 83 ?? ?? 8B ?? 33 ?? 5? 5? 89 ?? ?? 89 ?? ?? 89 ?? ?? 89 ?? ?? 89 ?? ?? 38 ?? 0F 84 } + $block_15 = { 5? 8B ?? 81 E? ?? ?? ?? ?? A1 ?? ?? ?? ?? 33 ?? 89 ?? ?? 5? 5? 8B ?? ?? 83 ?? ?? 85 ?? 0F 84 } + $block_16 = { 5? 8B ?? 5? 5? 8B ?? ?? 5? 8B ?? ?? 5? 0F B7 ?? 80 7? ?? ?? 8B ?? ?? 8B ?? ?? 89 ?? ?? 0F 85 } + $block_17 = { 8B ?? 0F 57 ?? 8B ?? ?? 89 ?? ?? 83 ?? ?? 66 ?? ?? ?? ?? 5? 8B ?? ?? 89 ?? ?? 89 ?? ?? 0F 88 } + $block_18 = { 5? 8B ?? ?? ?? ?? ?? 5? 6A ?? BF ?? ?? ?? ?? 5? 6A ?? 5? FF D? 89 ?? ?? ?? ?? ?? 85 ?? 0F 84 } + $block_19 = { 80 B? ?? ?? ?? ?? ?? BB ?? ?? ?? ?? 8D ?? ?? 0F 44 ?? 5? 5? E8 ?? ?? ?? ?? 5? 5? 85 ?? 0F 85 } + $block_20 = { 8B ?? ?? ?? ?? ?? 8B ?? ?? 03 ?? ?? ?? ?? ?? 0F B7 ?? ?? C7 ?? ?? ?? ?? ?? ?? 66 ?? ?? ?? 74 } + $block_21 = { 8D ?? ?? 33 ?? 4? 3B ?? ?? 89 ?? ?? 8B ?? ?? 8B ?? ?? 0F B6 ?? 0F 4E ?? 89 ?? ?? 84 ?? 75 } + $block_22 = { 8B ?? ?? FF B? ?? ?? ?? ?? 4? 01 ?? 8D ?? ?? 5? 5? 5? E8 ?? ?? ?? ?? 83 ?? ?? 85 ?? 0F 88 } + $block_23 = { 8B ?? ?? 8D ?? ?? 81 F? ?? ?? ?? ?? 0F 42 ?? 81 F? ?? ?? ?? ?? 8D ?? ?? 0F 43 ?? 85 ?? 74 } + $block_24 = { 8A ?? 8D ?? ?? 30 ?? ?? 0F B6 ?? 30 ?? ?? 0F B6 ?? 30 ?? ?? 0F B6 ?? 30 ?? ?? 83 ?? ?? 75 } + $block_25 = { 3B ?? 8B ?? 6A ?? 5? 0F 4C ?? 3B ?? 0F 4C ?? 8A ?? ?? ?? 88 ?? ?? ?? 4? 4? 4? 83 ?? ?? 7C } + $block_26 = { 8B ?? 0F AF ?? ?? 8B ?? ?? 89 ?? ?? 8B ?? ?? 89 ?? ?? 81 E? ?? ?? ?? ?? 89 ?? ?? 85 ?? 7E } + $block_27 = { FF 7? ?? 8D ?? ?? ?? ?? ?? FF B? ?? ?? ?? ?? 5? E8 ?? ?? ?? ?? 8B ?? 83 ?? ?? 85 ?? 0F 85 } + $block_28 = { 8B ?? ?? 4? 8B ?? ?? 83 ?? ?? 4? 89 ?? ?? 89 ?? ?? 89 ?? 8B ?? ?? 89 ?? ?? 3B ?? ?? 0F 8C } + $block_29 = { 8B ?? ?? 0F 57 ?? 8B ?? 8B ?? ?? 8B ?? 66 ?? ?? ?? ?? 03 ?? 89 ?? ?? 89 ?? ?? 3B ?? 0F 8D } + $block_30 = { B9 ?? ?? ?? ?? 83 ?? ?? 2B ?? 8B ?? ?? 3B ?? 0F B6 ?? 8B ?? ?? 6A ?? 5? 0F 4F ?? 84 ?? 75 } + $block_31 = { 8D ?? ?? ?? ?? ?? 5? 6A ?? 5? E8 ?? ?? ?? ?? 83 ?? ?? 85 ?? 6A ?? 5? 0F 45 ?? 85 ?? 0F 85 } + $block_32 = { 5? 5? 8D ?? ?? 5? 8D ?? ?? 5? 8D ?? ?? 5? 8D ?? ?? 5? E8 ?? ?? ?? ?? 83 ?? ?? 85 ?? 0F 85 } + $block_33 = { 68 ?? ?? ?? ?? E8 ?? ?? ?? ?? 6A ?? 5? 85 ?? 5? 0F 45 ?? E8 ?? ?? ?? ?? 85 ?? 5? 5? 0F 45 } + $block_34 = { 0F BF ?? ?? 8B ?? ?? E8 ?? ?? ?? ?? 5? 8B ?? ?? ?? ?? ?? E8 ?? ?? ?? ?? 8B ?? 5? 85 ?? 74 } + $block_35 = { FF B? ?? ?? ?? ?? 5? 8D ?? ?? 5? 8B ?? ?? 5? 5? E8 ?? ?? ?? ?? 8B ?? 83 ?? ?? 85 ?? 0F 85 } + $block_36 = { 0F B7 ?? ?? ?? ?? ?? 5? 5? 5? FF 7? ?? E8 ?? ?? ?? ?? 83 ?? ?? F6 ?? ?? ?? ?? ?? ?? 75 } + $block_37 = { 8B ?? ?? 89 ?? ?? 8B ?? ?? F6 ?? ?? ?? 8B ?? ?? 8D ?? ?? 0F 45 ?? ?? 89 ?? ?? 85 ?? 74 } + $block_38 = { 8B ?? 8D ?? ?? ?? ?? ?? 2B ?? 5? 5? 5? E8 ?? ?? ?? ?? 83 ?? ?? 81 F? ?? ?? ?? ?? 0F 83 } + $block_39 = { 8B ?? ?? FF 7? ?? 8B ?? ?? 4? 03 ?? 5? 8D ?? ?? 5? E8 ?? ?? ?? ?? 83 ?? ?? 85 ?? 0F 85 } + $block_40 = { 8B ?? ?? 03 ?? ?? 03 ?? C7 ?? ?? ?? ?? ?? ?? 8D ?? ?? 3B ?? 8B ?? 0F 46 ?? 8D ?? ?? EB } + $block_41 = { 5? 8B ?? 83 ?? ?? BA ?? ?? ?? ?? 5? 5? 8B ?? 5? 8B ?? ?? 03 ?? 0F B7 ?? ?? 66 ?? ?? 75 } + $block_42 = { 68 ?? ?? ?? ?? FF 1? ?? ?? ?? ?? 8B ?? ?? 89 ?? ?? ?? ?? ?? 83 ?? ?? ?? ?? ?? ?? 0F 84 } + $block_43 = { 5? 8B ?? 83 ?? ?? A1 ?? ?? ?? ?? 33 ?? 89 ?? ?? 5? 8B ?? ?? B8 ?? ?? ?? ?? 85 ?? 0F 84 } + $block_44 = { 8B ?? ?? ?? ?? ?? 83 ?? ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 85 ?? 0F 84 } + $block_45 = { 8B ?? ?? ?? ?? ?? 6A ?? 5? 3B ?? 6A ?? 0F 42 ?? 83 ?? ?? 5? 0F 48 ?? 89 ?? ?? 85 ?? 7E } + $block_46 = { 8B ?? ?? 33 ?? 8B ?? ?? 33 ?? 89 ?? ?? 8B ?? ?? 4? 66 ?? ?? ?? 8B ?? ?? 89 ?? ?? 0F 83 } + $block_47 = { 8B ?? ?? ?? ?? ?? 0F B7 ?? C1 ?? ?? 6A ?? 88 ?? ?? 5? 88 ?? ?? 89 ?? ?? ?? ?? ?? EB } + $block_48 = { 6A ?? 8D ?? ?? ?? ?? ?? 5? 8D ?? ?? ?? ?? ?? 5? E8 ?? ?? ?? ?? 83 ?? ?? 85 ?? 0F 85 } + $block_49 = { 8D ?? ?? ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? ?? ?? ?? 5? 5? FF 1? ?? ?? ?? ?? 85 ?? 0F 84 } + $block_50 = { 8B ?? ?? 8B ?? ?? 5? 8B ?? 8B ?? 03 ?? 3B ?? 0F 4C ?? 89 ?? ?? 81 F? ?? ?? ?? ?? 7E } + $block_51 = { 5? 8B ?? 83 ?? ?? B8 ?? ?? ?? ?? 33 ?? 5? 5? 5? 8B ?? ?? 66 ?? ?? ?? ?? ?? ?? 0F 85 } + $block_52 = { 33 ?? 4? 6B ?? ?? 0F BE ?? ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 83 ?? ?? ?? ?? ?? ?? 7F } + $block_53 = { 8B ?? ?? 6A ?? 5? D3 ?? 03 ?? 5? 8D ?? ?? 5? E8 ?? ?? ?? ?? 8B ?? 5? 5? 85 ?? 0F 85 } + $block_54 = { 6A ?? 6A ?? 6A ?? 6A ?? 6A ?? 5? 5? E8 ?? ?? ?? ?? 8B ?? 83 ?? ?? 83 ?? ?? 0F 85 } + $block_55 = { 8D ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? 5? 5? FF 1? ?? ?? ?? ?? 8B ?? 85 ?? 0F 84 } + $block_56 = { 5? 6A ?? 8D ?? ?? ?? ?? ?? 5? 5? FF 1? ?? ?? ?? ?? 8D ?? ?? ?? ?? ?? 85 ?? 0F 84 } + $block_57 = { 8B ?? ?? 0F B6 ?? ?? FF 0? 8B ?? 8B ?? 2B ?? 03 ?? 89 ?? ?? 89 ?? ?? 3B ?? ?? 77 } + $block_58 = { 8B ?? ?? 8B ?? ?? 5? 8B ?? ?? 4? 0F B6 ?? ?? ?? 66 ?? ?? ?? ?? ?? ?? 83 ?? ?? 75 } + $block_59 = { 33 ?? 83 ?? ?? 0F 92 ?? F7 ?? 0B ?? 5? E8 ?? ?? ?? ?? A3 ?? ?? ?? ?? 5? 85 ?? 74 } + $block_60 = { 2B ?? 8D ?? ?? ?? ?? ?? 5? 5? 5? E8 ?? ?? ?? ?? 83 ?? ?? 81 F? ?? ?? ?? ?? 0F 83 } + $block_61 = { 2B ?? 8B ?? ?? 8D ?? ?? 3B ?? 0F 9D ?? FE ?? 24 ?? 4? 88 ?? ?? 4? 03 ?? 3B ?? 7C } + $block_62 = { 33 ?? 8D ?? ?? 5? 5? FF 7? ?? 89 ?? ?? FF 7? ?? 5? FF 1? ?? ?? ?? ?? 85 ?? 0F 84 } + $block_63 = { 5? 8B ?? 83 ?? ?? 8D ?? ?? 5? 8B ?? ?? FF 3? 5? E8 ?? ?? ?? ?? 5? 5? 85 ?? 0F 85 } + $block_64 = { 8B ?? 89 ?? ?? 8B ?? ?? 6A ?? 89 ?? ?? E8 ?? ?? ?? ?? 89 ?? ?? 5? 85 ?? 0F 84 } + $block_65 = { 8B ?? ?? BE ?? ?? ?? ?? 8D ?? ?? 83 ?? ?? A5 89 ?? ?? A5 A5 66 ?? 8B ?? ?? 8B } + $block_66 = { 8D ?? ?? 88 ?? ?? 5? 5? FF D? 0F 28 ?? ?? ?? ?? ?? A3 ?? ?? ?? ?? 8B ?? 0F 11 } + $block_67 = { 6B ?? ?? ?? 89 ?? ?? ?? ?? ?? 33 ?? 03 ?? ?? ?? ?? ?? 85 ?? 0F 95 ?? A8 ?? 74 } + $block_68 = { 8B ?? ?? 33 ?? 8B ?? ?? 8B ?? ?? 89 ?? ?? 3B ?? ?? 8B ?? ?? 0F 95 ?? 85 ?? 74 } + $block_69 = { 8B ?? ?? 6A ?? 5? 5? 83 ?? ?? 5? FF 7? ?? E8 ?? ?? ?? ?? 83 ?? ?? 85 ?? 0F 85 } + $block_70 = { 8B ?? ?? ?? ?? ?? 89 ?? 8B ?? 2B ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 3B ?? 0F 83 } + $block_71 = { 8D ?? ?? 5? 5? FF D? 0F 28 ?? ?? ?? ?? ?? A3 ?? ?? ?? ?? 8B ?? 0F 11 ?? ?? 66 } + $block_72 = { 8B ?? ?? ?? ?? ?? E8 ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 83 ?? ?? ?? ?? ?? ?? 0F 84 } + $block_73 = { 8A ?? ?? 24 ?? 0F B6 ?? 66 ?? ?? ?? ?? ?? ?? 66 ?? ?? ?? 66 ?? ?? 66 ?? ?? 66 } + $block_74 = { 5? 8B ?? 5? 8B ?? ?? 5? 8B ?? ?? ?? ?? ?? 8B ?? 39 ?? ?? 0F 4C ?? ?? 85 ?? 75 } + $block_75 = { 33 ?? 8B ?? 39 ?? ?? 0F 45 ?? ?? C6 ?? ?? ?? 8B ?? ?? F7 ?? ?? ?? ?? ?? ?? 74 } + $block_76 = { A1 ?? ?? ?? ?? FF 0? ?? ?? ?? ?? 3B ?? 5? 8B ?? 0F 45 ?? 39 ?? ?? ?? ?? ?? 7D } + $block_77 = { 0F B7 ?? ?? ?? ?? ?? 4? 3B ?? B8 ?? ?? ?? ?? 0F 47 ?? 66 ?? ?? ?? ?? ?? ?? 74 } + $block_78 = { 8B ?? ?? 03 ?? 2B ?? FF 8? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 89 ?? ?? 85 ?? 0F 85 } + $block_79 = { FF 7? ?? 8D ?? ?? ?? ?? ?? 6A ?? 6A ?? 5? E8 ?? ?? ?? ?? 83 ?? ?? 85 ?? 0F 85 } + $block_80 = { 4? 2B ?? 89 ?? ?? D3 ?? 8B ?? ?? 0B ?? 89 ?? ?? 6A ?? 5? 89 ?? ?? 3B ?? 0F 85 } + $block_81 = { 8B ?? ?? ?? ?? ?? 0F B6 ?? 0F B6 ?? ?? 66 ?? ?? ?? 66 ?? ?? 66 ?? ?? ?? 75 } + $block_82 = { 5? 8D ?? ?? ?? ?? ?? ?? 8B ?? 5? E8 ?? ?? ?? ?? 89 ?? ?? 5? 5? 85 ?? 0F 84 } + $block_83 = { 5? 8B ?? 83 ?? ?? 5? 5? 8B ?? 5? 89 ?? ?? E8 ?? ?? ?? ?? 8B ?? 85 ?? 0F 84 } + $block_84 = { 0F B6 ?? ?? ?? ?? ?? BA ?? ?? ?? ?? 4? C6 ?? ?? ?? ?? ?? ?? 83 ?? ?? 0F 85 } + $block_85 = { 0F 10 ?? ?? ?? 66 ?? ?? ?? ?? ?? ?? ?? 0F 11 ?? ?? ?? 83 ?? ?? 83 ?? ?? 72 } + $block_86 = { 83 ?? ?? ?? ?? ?? ?? 33 ?? 4? 6B ?? ?? 0F BE ?? ?? ?? ?? ?? ?? 83 ?? ?? 75 } + $block_87 = { 8B ?? ?? 8A ?? ?? ?? ?? ?? ?? 4? 88 ?? ?? 4? 8B ?? ?? 0F B7 ?? ?? 3B ?? 7C } + $block_88 = { 8B ?? ?? 83 ?? ?? 8B ?? ?? 83 ?? ?? 83 ?? ?? 89 ?? ?? 89 ?? ?? 85 ?? 0F 84 } + $block_89 = { 8B ?? ?? 2B ?? ?? 03 ?? ?? 01 ?? ?? 8B ?? ?? 89 ?? ?? ?? 4? 83 ?? ?? 0F 8C } + $block_90 = { 5? 8B ?? 83 ?? ?? 5? 5? 8B ?? 33 ?? 89 ?? ?? 89 ?? ?? 5? 8B ?? 85 ?? 0F 84 } + $block_91 = { 8A ?? ?? ?? ?? ?? 0F B7 ?? ?? ?? ?? ?? 0F B6 ?? ?? ?? ?? ?? 8B ?? 3C ?? 75 } + $block_92 = { 5? 8B ?? 5? 5? 8B ?? ?? 68 ?? ?? ?? ?? 5? E8 ?? ?? ?? ?? 5? 5? 85 ?? 0F 85 } + $block_93 = { 8B ?? ?? 89 ?? ?? 66 ?? ?? 33 ?? 8B ?? ?? 89 ?? ?? 89 ?? 39 ?? ?? 0F 8E } + $block_94 = { 68 ?? ?? ?? ?? 68 ?? ?? ?? ?? 6A ?? 5? E8 ?? ?? ?? ?? 5? 5? 85 ?? 0F 84 } + $block_95 = { 6A ?? 68 ?? ?? ?? ?? FF 7? ?? 6A ?? FF 1? ?? ?? ?? ?? 8B ?? 85 ?? 0F 84 } + $block_96 = { 80 3? ?? 8D ?? ?? 0F 44 ?? 85 ?? 8B ?? 8D ?? ?? 0F 4E ?? 8B ?? 85 ?? 7F } + $block_97 = { 8B ?? ?? ?? ?? ?? 8B ?? ?? 89 ?? ?? ?? ?? ?? 83 ?? ?? ?? ?? ?? ?? 0F 84 } + $block_98 = { 5? 8D ?? ?? 89 ?? ?? 5? 5? 89 ?? ?? E8 ?? ?? ?? ?? 8B ?? 5? 85 ?? 0F 85 } + $block_99 = { 8B ?? 8B ?? ?? 2B ?? 6A ?? 03 ?? E8 ?? ?? ?? ?? 89 ?? ?? 5? 85 ?? 0F 84 } + + condition: + hash.sha256(0, filesize) == "e1a3a012b332f0728e11f7bbb7429dece387a1244b3daaee6da6b4407c48caf7" or + 12 of them +} + +rule koadic { + meta: + Author = "Intezer Analyze" + Reference = "https://apt-ecosystem.com" + + strings: + $block_0 = { 5? 8B ?? 83 ?? ?? 81 E? ?? ?? ?? ?? 8B ?? ?? 8B ?? ?? 5? 5? 5? 5? FF 1? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 68 ?? ?? ?? ?? 8D ?? ?? ?? ?? ?? ?? 5? FF D? 8B ?? ?? ?? ?? ?? ?? 33 ?? 5? 5? 8D ?? ?? ?? ?? ?? ?? 5? 5? FF 1? ?? ?? ?? ?? 68 ?? ?? ?? ?? 8D ?? ?? ?? ?? ?? ?? 8D ?? ?? ?? ?? ?? ?? BB ?? ?? ?? ?? 5? 89 ?? ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? ?? FF D? 8D ?? ?? ?? 5? 68 ?? ?? ?? ?? 8D ?? ?? ?? 8D ?? ?? ?? ?? ?? ?? 5? 89 ?? ?? ?? 89 ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? ?? 89 ?? ?? ?? 89 ?? ?? ?? 89 ?? ?? ?? FF 1? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 85 ?? 0F 89 } + $block_1 = { C7 ?? ?? ?? ?? ?? ?? ?? 48 ?? ?? ?? ?? ?? ?? ?? 48 ?? ?? ?? ?? 4C ?? ?? ?? ?? ?? ?? ?? 4C ?? ?? ?? ?? ?? ?? ?? 48 ?? ?? ?? ?? ?? ?? 48 ?? ?? ?? ?? ?? ?? ?? 48 ?? ?? ?? ?? ?? ?? FF 9? ?? ?? ?? ?? 48 ?? ?? ?? ?? 48 ?? ?? ?? ?? ?? ?? ?? 48 ?? ?? ?? ?? ?? ?? ?? 48 ?? ?? ?? ?? ?? ?? ?? FF 5? ?? 48 ?? ?? ?? ?? 48 ?? ?? ?? ?? ?? ?? ?? 48 ?? ?? 48 ?? ?? ?? ?? 48 ?? ?? ?? ?? 41 ?? ?? ?? ?? ?? 4C ?? ?? ?? ?? ?? ?? ?? 48 ?? ?? ?? ?? ?? ?? ?? 48 ?? ?? ?? ?? ?? ?? ?? 48 ?? ?? FF 5? ?? 48 ?? ?? ?? ?? 48 ?? ?? ?? ?? ?? 0F 85 } + $block_2 = { 48 ?? ?? ?? ?? ?? ?? ?? 48 ?? ?? ?? ?? 48 ?? ?? E8 ?? ?? ?? ?? 48 ?? ?? ?? ?? ?? ?? ?? 48 ?? ?? ?? ?? ?? ?? ?? 48 ?? ?? ?? ?? 48 ?? ?? ?? ?? ?? ?? ?? 48 ?? ?? ?? ?? 48 ?? ?? 4C ?? ?? ?? ?? ?? ?? ?? 4C ?? ?? ?? ?? ?? ?? ?? 48 ?? ?? ?? ?? ?? ?? 48 ?? ?? ?? ?? 48 ?? ?? FF 5? ?? 48 ?? ?? ?? ?? 48 ?? ?? ?? ?? ?? ?? ?? 48 ?? ?? ?? 48 ?? ?? ?? ?? 48 ?? ?? ?? ?? E8 ?? ?? ?? ?? 48 ?? ?? ?? ?? 48 ?? ?? ?? ?? 48 ?? ?? 4C ?? ?? ?? ?? 48 ?? ?? ?? ?? 48 ?? ?? ?? ?? 48 ?? ?? FF 5? ?? 48 ?? ?? ?? ?? 48 ?? ?? ?? ?? ?? 0F 85 } + $block_3 = { C7 ?? ?? ?? ?? ?? ?? ?? 48 ?? ?? ?? ?? 48 ?? ?? ?? ?? 4C ?? ?? ?? ?? ?? ?? ?? 4C ?? ?? ?? ?? ?? ?? ?? 48 ?? ?? ?? ?? ?? ?? 48 ?? ?? ?? ?? 48 ?? ?? ?? ?? ?? ?? FF 9? ?? ?? ?? ?? 48 ?? ?? ?? ?? 48 ?? ?? ?? ?? 48 ?? ?? ?? ?? ?? ?? ?? 48 ?? ?? ?? ?? ?? ?? ?? FF 5? ?? 48 ?? ?? ?? ?? 48 ?? ?? ?? ?? 48 ?? ?? 48 ?? ?? ?? ?? ?? ?? ?? 48 ?? ?? ?? ?? 41 ?? ?? ?? ?? ?? 4C ?? ?? ?? ?? ?? ?? ?? 48 ?? ?? ?? ?? 48 ?? ?? ?? ?? 48 ?? ?? FF 5? ?? 48 ?? ?? ?? ?? 48 ?? ?? ?? ?? ?? 0F 85 } + $block_4 = { 48 ?? ?? ?? ?? ?? ?? ?? 48 ?? ?? 48 ?? ?? ?? ?? 48 ?? ?? ?? ?? 41 ?? ?? ?? ?? ?? 4C ?? ?? ?? ?? ?? ?? ?? 48 ?? ?? ?? ?? ?? ?? ?? 48 ?? ?? ?? ?? ?? ?? ?? 48 ?? ?? FF 5? ?? 48 ?? ?? ?? ?? 48 ?? ?? ?? ?? ?? 0F 85 } + $block_5 = { 0F B7 ?? ?? ?? 48 ?? ?? ?? ?? ?? ?? ?? 48 ?? ?? 48 ?? ?? ?? 48 ?? ?? ?? ?? ?? ?? ?? 48 ?? ?? ?? ?? ?? ?? ?? ?? 48 ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? 48 ?? ?? ?? ?? ?? ?? ?? ?? 48 ?? ?? ?? ?? ?? ?? ?? ?? 0F 84 } + $block_6 = { 48 ?? ?? ?? ?? ?? ?? ?? 48 ?? ?? 48 ?? ?? ?? ?? 48 ?? ?? ?? ?? 41 ?? ?? ?? ?? ?? 4C ?? ?? ?? ?? ?? ?? ?? 48 ?? ?? ?? ?? 48 ?? ?? ?? ?? ?? ?? ?? 48 ?? ?? FF 5? ?? 48 ?? ?? ?? ?? 48 ?? ?? ?? ?? ?? 0F 85 } + $block_7 = { 48 ?? ?? ?? ?? 48 ?? ?? 48 ?? ?? ?? ?? ?? ?? ?? 48 ?? ?? ?? ?? 41 ?? ?? ?? ?? ?? 4C ?? ?? ?? ?? ?? ?? ?? 48 ?? ?? ?? ?? 48 ?? ?? ?? ?? 48 ?? ?? FF 5? ?? 48 ?? ?? ?? ?? 48 ?? ?? ?? ?? ?? 0F 85 } + $block_8 = { 48 ?? ?? ?? ?? 48 ?? ?? 48 ?? ?? ?? ?? ?? ?? ?? ?? 41 ?? ?? ?? ?? ?? 4C ?? ?? ?? ?? ?? ?? ?? 48 ?? ?? ?? ?? 48 ?? ?? ?? ?? 48 ?? ?? FF 5? ?? 48 ?? ?? ?? ?? 48 ?? ?? ?? ?? ?? 0F 85 } + $block_9 = { 0F B7 ?? ?? ?? 48 ?? ?? ?? ?? ?? ?? ?? 48 ?? ?? 48 ?? ?? ?? 48 ?? ?? ?? ?? 48 ?? ?? ?? ?? ?? 0F 84 } + + condition: + hash.sha256(0, filesize) == "7ea33696c91761e95697549e0b0f84db2cf4033216cd16c3264b10daa31f598c" or + hash.sha256(0, filesize) == "430cbf950f9cea3f77374145f488a104f4ab664edca448effacbf2f8ba01b901" or + 10 of them +} + +rule SedrecoDropper { + meta: + Author = "Intezer Analyze" + Reference = "https://apt-ecosystem.com" + + strings: + $block_0 = { FF B? ?? ?? ?? ?? 6A ?? FF 3? ?? ?? ?? ?? FF 1? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 89 ?? 85 ?? 0F 84 } + $block_1 = { 68 ?? ?? ?? ?? BA ?? ?? ?? ?? B9 ?? ?? ?? ?? E8 ?? ?? ?? ?? 83 ?? ?? 5? FF D? 8B ?? 85 ?? 0F 84 } + $block_2 = { 41 ?? ?? ?? 48 ?? ?? 44 ?? ?? 46 ?? ?? ?? ?? ?? ?? ?? 48 ?? ?? ?? ?? ?? ?? 40 ?? ?? ?? 0F 1F } + $block_3 = { 4C ?? ?? ?? ?? 48 ?? ?? ?? ?? ?? ?? 48 ?? ?? ?? ?? ?? ?? FF 1? ?? ?? ?? ?? 85 ?? 0F 85 } + $block_4 = { 8D ?? ?? 5? 6A ?? 6A ?? FF 7? ?? FF 7? ?? FF 7? ?? FF 1? ?? ?? ?? ?? 85 ?? 0F 84 } + $block_5 = { 8B ?? 33 ?? F7 ?? 33 ?? 85 ?? 0F 95 ?? 33 ?? 33 ?? 89 ?? ?? 4? 03 ?? 89 ?? ?? 3B } + $block_6 = { 8B ?? ?? 8B ?? ?? 8D ?? ?? 5? 6A ?? 6A ?? 5? 5? 5? FF 1? ?? ?? ?? ?? 85 ?? 0F 84 } + $block_7 = { 8B ?? 33 ?? F7 ?? ?? 33 ?? 85 ?? 0F 95 ?? 33 ?? 89 ?? ?? 33 ?? 8D ?? ?? ?? EB } + $block_8 = { 4C ?? ?? ?? 41 ?? ?? ?? D1 ?? 49 ?? ?? ?? FF C? 8B ?? 8D ?? ?? 0F 1F } + $block_9 = { 8D ?? ?? ?? ?? ?? 5? 5? 6A ?? 5? 5? FF 1? ?? ?? ?? ?? 83 ?? ?? 0F 85 } + $block_10 = { 48 ?? ?? ?? ?? ?? ?? 48 ?? ?? FF 1? ?? ?? ?? ?? 85 ?? 0F 85 } + $block_11 = { 48 ?? ?? ?? ?? ?? ?? 48 ?? ?? FF 1? ?? ?? ?? ?? 85 ?? 0F 84 } + $block_12 = { 4C ?? ?? ?? ?? 4C ?? ?? ?? ?? 03 ?? 0F 1F ?? 44 ?? ?? 75 } + $block_13 = { 6A ?? 6A ?? 8D ?? ?? 5? 5? FF 1? ?? ?? ?? ?? 85 ?? 0F 84 } + $block_14 = { 6A ?? 6A ?? 6A ?? 5? FF 1? ?? ?? ?? ?? 83 ?? ?? ?? 0F 85 } + $block_15 = { 33 ?? 83 ?? ?? 0F 9F ?? 4? 83 ?? ?? 83 ?? ?? 89 ?? ?? EB } + $block_16 = { 45 ?? ?? ?? 46 ?? ?? ?? ?? ?? ?? ?? 41 ?? ?? ?? 0F 1F } + $block_17 = { 0F B6 ?? ?? 01 ?? ?? 0F B6 ?? 01 ?? ?? 83 ?? ?? 4? 75 } + $block_18 = { 8D ?? ?? 4C ?? ?? ?? ?? 4C ?? ?? ?? ?? 03 ?? 0F 1F } + $block_19 = { 8B ?? ?? ?? ?? ?? 5? FF 1? ?? ?? ?? ?? 85 ?? 0F 84 } + $block_20 = { E8 ?? ?? ?? ?? 0F B6 ?? 03 ?? 88 ?? ?? FE ?? EB } + $block_21 = { BF ?? ?? ?? ?? B8 ?? ?? ?? ?? 3B ?? 0F 4E ?? EB } + + condition: + hash.sha256(0, filesize) == "d403ded7c4acfffe8dc2a3ad8fb848f08388b4c3452104f6970835913d92166c" or + hash.sha256(0, filesize) == "fb3a3339e2ba82cb3dcdc43d0e49e7b8a26ced3a587f5ee15a256aee062e6e05" or + hash.sha256(0, filesize) == "2c81023a146d2b5003d2b0c617ebf2eb1501dc6e55fc6326e834f05f5558c0ec" or + hash.sha256(0, filesize) == "378ef276eeaa4a29dab46d114710fc14ba0a9f964f6d949bcbc5ed3267579892" or + hash.sha256(0, filesize) == "0d260a4ea865773a86b3fc0fe89df92c86289c0266b1dd5ab8e3174839cb94c2" or + 12 of them +} + +rule Downdelph { + meta: + Author = "Intezer Analyze" + Reference = "https://apt-ecosystem.com" + + strings: + $block_0 = { 5? 8B ?? 81 C? ?? ?? ?? ?? 5? 5? 33 ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? 89 ?? ?? 89 ?? ?? 8B ?? ?? 8B ?? ?? E8 ?? ?? ?? ?? 8B ?? ?? E8 ?? ?? ?? ?? 8B ?? ?? E8 ?? ?? ?? ?? 33 ?? 5? 68 ?? ?? ?? ?? 64 ?? ?? 64 ?? ?? 8B ?? E8 ?? ?? ?? ?? 6A ?? 6A ?? 6A ?? 6A ?? 68 ?? ?? ?? ?? E8 ?? ?? ?? ?? 89 ?? ?? 33 ?? 5? 68 ?? ?? ?? ?? 64 ?? ?? 64 ?? ?? 6A ?? 6A ?? 6A ?? 68 ?? ?? ?? ?? 6A ?? 6A ?? 8B ?? ?? E8 ?? ?? ?? ?? 5? 8B ?? ?? 5? E8 ?? ?? ?? ?? 89 ?? ?? 33 ?? 5? 68 ?? ?? ?? ?? 64 ?? ?? 64 ?? ?? 83 ?? ?? ?? 6A ?? 68 ?? ?? ?? ?? 6A ?? 68 ?? ?? ?? ?? 68 ?? ?? ?? ?? 8B ?? ?? E8 ?? ?? ?? ?? 5? 68 ?? ?? ?? ?? 8B ?? ?? 5? E8 ?? ?? ?? ?? 89 ?? ?? 33 ?? 5? 68 ?? ?? ?? ?? 64 ?? ?? 64 ?? ?? 68 ?? ?? ?? ?? 6A ?? 68 ?? ?? ?? ?? 8B ?? ?? 5? E8 ?? ?? ?? ?? 85 ?? 0F 84 } + $block_1 = { 5? 8B ?? 5? 5? 8B ?? 5? 8D ?? ?? 5? 5? E8 ?? ?? ?? ?? 8B ?? ?? 33 ?? 6A ?? 4? 5? F7 ?? 0F 90 ?? F7 ?? 0B ?? 5? E8 ?? ?? ?? ?? 8B ?? 8B ?? ?? 8D ?? ?? ?? 5? 6A ?? 5? E8 ?? ?? ?? ?? 8B ?? ?? F7 ?? 6A ?? 03 ?? 5? 5? E8 ?? ?? ?? ?? 5? FF 7? ?? 6A ?? 5? E8 ?? ?? ?? ?? 8B ?? ?? 83 ?? ?? 3B ?? 74 } + $block_2 = { 5? 8D ?? ?? 33 ?? E8 ?? ?? ?? ?? 6A ?? 8D ?? ?? E8 ?? ?? ?? ?? 6A ?? 8D ?? ?? E8 ?? ?? ?? ?? 6A ?? 8B ?? E8 ?? ?? ?? ?? 5? E8 ?? ?? ?? ?? 5? 8B ?? ?? E8 ?? ?? ?? ?? 8B ?? 85 ?? 0F 85 } + $block_3 = { 5? 8B ?? 81 E? ?? ?? ?? ?? A1 ?? ?? ?? ?? 33 ?? 89 ?? ?? 5? 5? BE ?? ?? ?? ?? 8D ?? ?? A5 A5 A4 BE ?? ?? ?? ?? 8D ?? ?? A5 66 ?? 33 } + $block_4 = { FF 7? ?? 8D ?? ?? 5? E8 ?? ?? ?? ?? 33 ?? 89 ?? ?? ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? 89 ?? ?? 66 ?? ?? ?? C6 ?? ?? ?? 83 ?? ?? 0F 84 } + $block_5 = { 5? 8B ?? 83 ?? ?? A1 ?? ?? ?? ?? 33 ?? 89 ?? ?? 5? 5? 5? BE ?? ?? ?? ?? 8D ?? ?? A5 A5 A4 BE ?? ?? ?? ?? 8D ?? ?? A5 66 ?? 33 } + $block_6 = { 6A ?? 6A ?? FF 3? E8 ?? ?? ?? ?? FF 3? 8D ?? ?? 5? E8 ?? ?? ?? ?? 83 ?? ?? 5? 8B ?? E8 ?? ?? ?? ?? 8B ?? 85 ?? 0F 84 } + $block_7 = { 68 ?? ?? ?? ?? B8 ?? ?? ?? ?? E8 ?? ?? ?? ?? 8B ?? 8B ?? ?? 4? 89 ?? ?? ?? ?? ?? 0F 84 } + $block_8 = { 0F BE ?? ?? ?? 6A ?? 99 5? F7 ?? 32 ?? ?? ?? 4? 88 ?? ?? ?? 83 ?? ?? 72 } + $block_9 = { FF 7? ?? 8D ?? ?? 5? E8 ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 83 ?? ?? 0F 84 } + + condition: + hash.sha256(0, filesize) == "cfc60d5db3bfb4ec462d5e4bd5222f04d7383d2c1aec1dc2a23e3c74a166a93d" or + hash.sha256(0, filesize) == "79a508ba42247ddf92accbf5987b1ffc7ba20cd11806d332979d8a8fe85abb04" or + hash.sha256(0, filesize) == "3e23201e6c52470e73a92af2ded12e6a5d1ad39538f41e762ca1c4b8d93c6d8d" or + hash.sha256(0, filesize) == "6ccc375923a00571dffca613a036f77a9fc1ee22d1fddffb90ab7adfbb6b75f1" or + hash.sha256(0, filesize) == "522fd9b35323af55113455d823571f71332e53dde988c2eb41395cf6b0c15805" or + 10 of them +} + +rule Coreshell { + meta: + Author = "Intezer Analyze" + Reference = "https://apt-ecosystem.com" + + strings: + $block_0 = { 5? 6A ?? 6A ?? 6A ?? 6A ?? 5? FF 1? ?? ?? ?? ?? 8B ?? FF 1? ?? ?? ?? ?? 85 ?? 89 ?? ?? ?? 0F 84 } + $block_1 = { A1 ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 0F AF ?? 69 ?? ?? ?? ?? ?? 2D ?? ?? ?? ?? 0F AF ?? 39 ?? 0F 84 } + $block_2 = { 8D ?? ?? ?? ?? ?? 5? 68 ?? ?? ?? ?? 6A ?? 8D ?? ?? ?? ?? ?? 5? 5? FF 1? ?? ?? ?? ?? 85 ?? 0F 85 } + $block_3 = { 8B ?? ?? ?? ?? ?? 8D ?? ?? ?? ?? ?? 5? 5? 89 ?? ?? ?? ?? ?? E8 ?? ?? ?? ?? 83 ?? ?? 85 ?? 0F 84 } + $block_4 = { 8D ?? ?? ?? ?? ?? 5? 5? 5? 68 ?? ?? ?? ?? 8D ?? ?? ?? ?? ?? 5? E8 ?? ?? ?? ?? 8B ?? 85 ?? 0F 85 } + $block_5 = { 5? E8 ?? ?? ?? ?? FF 7? ?? FF 1? ?? ?? ?? ?? 8B ?? 8D ?? ?? 5? 5? 89 ?? ?? FF 5? ?? 85 ?? 0F 85 } + $block_6 = { 68 ?? ?? ?? ?? BA ?? ?? ?? ?? B9 ?? ?? ?? ?? E8 ?? ?? ?? ?? 83 ?? ?? 5? FF D? 8B ?? 85 ?? 0F 84 } + $block_7 = { FF B? ?? ?? ?? ?? 6A ?? FF 3? ?? ?? ?? ?? FF 1? ?? ?? ?? ?? 8B ?? 89 ?? ?? ?? ?? ?? 85 ?? 0F 84 } + $block_8 = { 8B ?? ?? ?? ?? ?? 8D ?? ?? ?? ?? ?? 5? 8B ?? E8 ?? ?? ?? ?? 8B ?? 89 ?? ?? ?? ?? ?? 85 ?? 0F 85 } + $block_9 = { 8B ?? ?? ?? ?? ?? 5? 5? 5? 68 ?? ?? ?? ?? 8D ?? ?? ?? ?? ?? 5? E8 ?? ?? ?? ?? 8B ?? 85 ?? 0F 85 } + $block_10 = { 8B ?? 33 ?? F7 ?? ?? ?? ?? ?? 33 ?? 85 ?? 0F 95 ?? 33 ?? 89 ?? ?? ?? ?? ?? 33 ?? 8D ?? ?? ?? EB } + $block_11 = { 8B ?? ?? ?? ?? ?? ?? 8D ?? ?? ?? 5? 5? 5? 68 ?? ?? ?? ?? 5? E8 ?? ?? ?? ?? 8B ?? 85 ?? 0F 85 } + $block_12 = { 8B ?? ?? ?? ?? ?? 8D ?? ?? ?? ?? ?? 5? 6A ?? 68 ?? ?? ?? ?? 5? FF 1? ?? ?? ?? ?? 85 ?? 0F 84 } + $block_13 = { 8B ?? ?? ?? 8B ?? ?? ?? 5? 8D ?? ?? ?? 5? 5? 5? 6A ?? 5? 5? FF 1? ?? ?? ?? ?? 85 ?? 0F 84 } + $block_14 = { 8B ?? ?? ?? 8B ?? ?? ?? ?? ?? 5? 6A ?? 5? FF 1? ?? ?? ?? ?? 8B ?? 3B ?? 89 ?? ?? ?? 0F 84 } + $block_15 = { 8B ?? ?? ?? ?? ?? 0B ?? 83 ?? ?? 8A ?? ?? 8B ?? ?? 88 ?? ?? 8B ?? ?? 4? 4? 83 ?? ?? 0F 82 } + $block_16 = { 8B ?? ?? ?? 8B ?? ?? ?? 5? 8D ?? ?? ?? 5? 5? 5? 6A ?? 5? 5? FF 1? ?? ?? ?? ?? 3B ?? 0F 84 } + $block_17 = { E8 ?? ?? ?? ?? 99 B9 ?? ?? ?? ?? F7 ?? 8B ?? ?? ?? 4? 80 C? ?? 88 ?? ?? ?? 3B ?? ?? ?? 72 } + $block_18 = { 5? 8B ?? 83 ?? ?? 5? 5? 5? C7 ?? ?? ?? ?? ?? ?? 0F 6E ?? ?? 0F 72 ?? ?? 0F 7E ?? ?? EB } + $block_19 = { 8D ?? ?? ?? 8D ?? ?? ?? 5? 5? 68 ?? ?? ?? ?? 68 ?? ?? ?? ?? 5? FF D? FF D? 85 ?? 0F 85 } + $block_20 = { 6A ?? 8D ?? ?? ?? ?? ?? 5? C7 ?? ?? ?? ?? ?? ?? ?? ?? ?? FF 1? ?? ?? ?? ?? 85 ?? 0F 84 } + $block_21 = { B9 ?? ?? ?? ?? 33 ?? 8D ?? ?? ?? C6 ?? ?? ?? ?? F3 ?? 66 ?? AA 8B ?? ?? ?? 85 ?? 0F 84 } + $block_22 = { B9 ?? ?? ?? ?? 33 ?? 8D ?? ?? ?? 88 ?? ?? ?? F3 ?? 66 ?? AA 8B ?? ?? ?? 3B ?? 0F 84 } + $block_23 = { 5? 8B ?? 83 ?? ?? 8B ?? ?? 8B ?? ?? 5? 8B ?? 8B ?? 5? 33 ?? 5? 89 ?? ?? 3B ?? 0F 83 } + $block_24 = { 5? 8B ?? 83 ?? ?? 6A ?? FF 1? ?? ?? ?? ?? 6A ?? E8 ?? ?? ?? ?? 83 ?? ?? 85 ?? 0F 84 } + $block_25 = { 8D ?? ?? ?? 8D ?? ?? ?? 5? 5? 5? 68 ?? ?? ?? ?? 5? E8 ?? ?? ?? ?? 8B ?? 85 ?? 0F 85 } + $block_26 = { E8 ?? ?? ?? ?? 99 B9 ?? ?? ?? ?? F7 ?? 4? 83 ?? ?? 66 ?? ?? ?? ?? ?? ?? ?? 3B ?? 72 } + $block_27 = { B8 ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 31 ?? F7 ?? 0F AF ?? 01 ?? 89 ?? ?? ?? ?? ?? E9 } + $block_28 = { 8B ?? 33 ?? F7 ?? 33 ?? 85 ?? 0F 95 ?? 33 ?? 33 ?? 89 ?? ?? 4? 03 ?? 89 ?? ?? 3B } + $block_29 = { E8 ?? ?? ?? ?? 99 B9 ?? ?? ?? ?? F7 ?? 4? 80 C? ?? FF 8? ?? ?? ?? ?? 88 ?? ?? 75 } + $block_30 = { 8D ?? ?? 5? 6A ?? 6A ?? FF 7? ?? FF 7? ?? FF 7? ?? FF 1? ?? ?? ?? ?? 85 ?? 0F 84 } + $block_31 = { 8B ?? 33 ?? F7 ?? ?? 33 ?? 5? 85 ?? 0F 95 ?? 33 ?? 89 ?? ?? 33 ?? 8D ?? ?? ?? EB } + $block_32 = { 5? 8B ?? 83 ?? ?? C7 ?? ?? ?? ?? ?? ?? 0F 6E ?? ?? 0F 72 ?? ?? 0F 7E ?? ?? EB } + $block_33 = { FF 7? ?? 6A ?? FF 3? ?? ?? ?? ?? FF 1? ?? ?? ?? ?? 8B ?? ?? 89 ?? 85 ?? 0F 84 } + $block_34 = { 8D ?? ?? ?? 5? FF 1? ?? ?? ?? ?? 33 ?? 85 ?? 0F 98 ?? 8D ?? ?? ?? 8D ?? ?? 23 } + $block_35 = { 8B ?? ?? ?? ?? ?? 8D ?? ?? ?? ?? ?? 5? 5? 5? E8 ?? ?? ?? ?? 8B ?? 3B ?? 0F 85 } + $block_36 = { 6A ?? 6A ?? 8D ?? ?? ?? ?? ?? 5? 5? 6A ?? 5? 5? FF 1? ?? ?? ?? ?? 85 ?? 0F 84 } + $block_37 = { 8B ?? ?? ?? 8B ?? ?? ?? ?? ?? 5? 6A ?? 5? FF 1? ?? ?? ?? ?? 8B ?? 3B ?? 0F 84 } + $block_38 = { 8B ?? ?? ?? 33 ?? BE ?? ?? ?? ?? 89 ?? ?? ?? F7 ?? 3B ?? 89 ?? ?? ?? 0F 83 } + $block_39 = { 0F B6 ?? ?? ?? D2 ?? 8A ?? ?? ?? D2 ?? 8B ?? ?? 0A ?? 8B ?? ?? FF 4? ?? 88 } + $block_40 = { 8B ?? ?? 0F B6 ?? ?? 5? FF 3? ?? ?? ?? ?? FF 1? ?? ?? ?? ?? 5? 85 ?? 5? 74 } + $block_41 = { 8B ?? ?? ?? ?? ?? 9A ?? ?? ?? ?? ?? ?? 2F 9D FF D? FF D? 8B ?? 83 ?? ?? 75 } + $block_42 = { 8B ?? ?? ?? ?? ?? 4? 15 ?? ?? ?? ?? A6 01 ?? ?? 3A ?? ?? ?? 9E FF D? FF D? } + $block_43 = { 6A ?? 6A ?? 6A ?? 6A ?? 68 ?? ?? ?? ?? FF 1? ?? ?? ?? ?? 89 ?? 85 ?? 0F 84 } + $block_44 = { 8B ?? ?? 8D ?? ?? 5? 6A ?? 68 ?? ?? ?? ?? 5? FF 1? ?? ?? ?? ?? 85 ?? 0F 84 } + $block_45 = { 6A ?? 6A ?? 6A ?? 8D ?? ?? 5? FF 1? ?? ?? ?? ?? 89 ?? ?? 83 ?? ?? ?? 0F 84 } + $block_46 = { E8 ?? ?? ?? ?? 99 B9 ?? ?? ?? ?? F7 ?? 4? 83 ?? ?? 66 ?? ?? ?? ?? 3B ?? 72 } + $block_47 = { 8B ?? ?? ?? 4? 83 ?? ?? 3B ?? 89 ?? ?? ?? 8B ?? ?? ?? 89 ?? ?? ?? 0F 82 } + $block_48 = { FF 7? ?? E8 ?? ?? ?? ?? FF 7? ?? E8 ?? ?? ?? ?? 8B ?? ?? 5? 5? 5? C9 C2 } + $block_49 = { 0F B6 ?? ?? 88 ?? ?? 8B ?? ?? 0F B6 ?? ?? 30 ?? ?? 8B ?? ?? 4? 3B ?? 7C } + $block_50 = { 33 ?? 5? 85 ?? 5? 0F 94 ?? 5? 8B ?? ?? 33 ?? E8 ?? ?? ?? ?? 8B ?? 5? C3 } + $block_51 = { 68 ?? ?? ?? ?? A4 A4 4? 3F DC ?? 15 ?? ?? ?? ?? 5? FF D? 8B ?? 3B ?? 75 } + $block_52 = { 5? 8D ?? ?? ?? ?? ?? 5? 89 ?? ?? ?? ?? ?? FF 1? ?? ?? ?? ?? 85 ?? 0F 84 } + $block_53 = { 8B ?? ?? 33 ?? 85 ?? 5? 0F 94 ?? 5? 33 ?? 5? E8 ?? ?? ?? ?? 8B ?? 5? C2 } + $block_54 = { 8D ?? ?? ?? 5? FF 1? ?? ?? ?? ?? 33 ?? 85 ?? 0F 98 ?? 8D ?? ?? ?? 4? } + $block_55 = { FF 7? ?? 6A ?? FF 3? ?? ?? ?? ?? FF 1? ?? ?? ?? ?? 8B ?? 3B ?? 0F 84 } + $block_56 = { 8B ?? ?? ?? ?? ?? 05 ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 66 ?? ?? ?? 0F 83 } + $block_57 = { 6A ?? 8D ?? ?? 5? C7 ?? ?? ?? ?? ?? ?? FF 1? ?? ?? ?? ?? 85 ?? 0F 84 } + $block_58 = { 8B ?? 33 ?? B9 ?? ?? ?? ?? F7 ?? 8B ?? 83 ?? ?? 89 ?? ?? ?? 0F 83 } + $block_59 = { 8B ?? 33 ?? BB ?? ?? ?? ?? F7 ?? 8B ?? 83 ?? ?? 89 ?? ?? ?? 0F 83 } + $block_60 = { 8B ?? ?? ?? 8D ?? ?? ?? 5? 5? 5? E8 ?? ?? ?? ?? 8B ?? 3B ?? 0F 85 } + $block_61 = { 80 6? ?? ?? 6A ?? 5? 33 ?? 8D ?? ?? 39 ?? ?? F3 ?? 66 ?? AA 0F 84 } + $block_62 = { E8 ?? ?? ?? ?? 99 B9 ?? ?? ?? ?? F7 ?? 4? 80 C? ?? 4? 88 ?? ?? 75 } + $block_63 = { 68 ?? ?? ?? ?? 5? E8 ?? ?? ?? ?? 83 ?? ?? 3B ?? 89 ?? ?? ?? 0F 84 } + $block_64 = { 6A ?? 6A ?? FF 3? ?? ?? ?? ?? FF 1? ?? ?? ?? ?? 8B ?? 85 ?? 0F 84 } + $block_65 = { 68 ?? ?? ?? ?? 5? FF 1? ?? ?? ?? ?? 8B ?? 83 ?? ?? 3B ?? 0F 84 } + $block_66 = { FF 1? ?? ?? ?? ?? 33 ?? 85 ?? 0F 98 ?? 8D ?? ?? ?? 8D ?? ?? E9 } + $block_67 = { 5? 8B ?? 83 ?? ?? A1 ?? ?? ?? ?? 33 ?? 89 ?? ?? 83 ?? ?? 0F 84 } + $block_68 = { 6A ?? 8D ?? ?? 5? 5? FF 1? ?? ?? ?? ?? 83 ?? ?? 39 ?? ?? 0F 84 } + $block_69 = { FF 7? ?? E8 ?? ?? ?? ?? FF 7? ?? E8 ?? ?? ?? ?? 8B ?? ?? C9 C2 } + $block_70 = { 6A ?? 6A ?? 8D ?? ?? ?? 5? 5? FF 1? ?? ?? ?? ?? 85 ?? 0F 84 } + $block_71 = { 6A ?? 8D ?? ?? ?? 6A ?? 5? 5? FF 1? ?? ?? ?? ?? 85 ?? 0F 84 } + $block_72 = { 8D ?? ?? 5? 5? 6A ?? 5? 5? FF 1? ?? ?? ?? ?? 83 ?? ?? 0F 85 } + $block_73 = { C7 ?? ?? ?? ?? ?? ?? 0F 6E ?? ?? 0F 72 ?? ?? 0F 7E ?? ?? EB } + $block_74 = { 5? 64 ?? ?? ?? ?? ?? 5? 5? 8B ?? ?? 8B ?? ?? AD 8B ?? ?? E9 } + $block_75 = { 8B ?? ?? 03 ?? ?? 33 ?? B9 ?? ?? ?? ?? F7 ?? 39 ?? ?? 0F 83 } + $block_76 = { FF 1? ?? ?? ?? ?? 0F B6 ?? ?? 03 ?? ?? 8B ?? ?? 88 ?? ?? EB } + $block_77 = { 4? 83 ?? ?? 83 ?? ?? 3B ?? 89 ?? ?? ?? 89 ?? ?? ?? 0F 82 } + $block_78 = { B0 ?? 8A ?? ?? ?? ?? ?? F6 ?? ?? 88 ?? ?? ?? ?? ?? 0F 85 } + $block_79 = { 8B ?? ?? ?? ?? ?? 5? 5? E8 ?? ?? ?? ?? 8B ?? 3B ?? 0F 85 } + $block_80 = { FF 7? ?? E8 ?? ?? ?? ?? 8B ?? ?? 39 ?? ?? 89 ?? ?? 0F 85 } + $block_81 = { 6A ?? 6A ?? 8D ?? ?? 5? 5? FF 1? ?? ?? ?? ?? 85 ?? 0F 84 } + $block_82 = { 8B ?? ?? 8B ?? ?? ?? ?? ?? 89 ?? 81 3? ?? ?? ?? ?? 0F 85 } + $block_83 = { 33 ?? 83 ?? ?? 0F 9F ?? 4? 83 ?? ?? 83 ?? ?? 89 ?? ?? EB } + $block_84 = { 8B ?? ?? 8B ?? ?? 5? E8 ?? ?? ?? ?? 83 ?? ?? 85 ?? 0F 84 } + $block_85 = { 8B ?? ?? 2D ?? ?? ?? ?? 89 ?? ?? 3D ?? ?? ?? ?? 0F 87 } + $block_86 = { 81 E? ?? ?? ?? ?? 5? 5? 5? E8 ?? ?? ?? ?? 84 ?? 0F 85 } + $block_87 = { 33 ?? 5? 85 ?? 5? 5? 0F 94 ?? 5? 81 C? ?? ?? ?? ?? C2 } + $block_88 = { 83 ?? ?? ?? 4? 83 ?? ?? 89 ?? ?? 89 ?? ?? 3B ?? 0F 82 } + $block_89 = { FF 1? ?? ?? ?? ?? 0F B6 ?? 03 ?? 88 ?? ?? FE ?? EB } + $block_90 = { 8B ?? ?? 4? 83 ?? ?? 89 ?? ?? 89 ?? ?? 3B ?? 0F 82 } + $block_91 = { 8B ?? ?? ?? 5? 5? E8 ?? ?? ?? ?? 8B ?? 3B ?? 0F 85 } + $block_92 = { 8B ?? ?? ?? ?? ?? 5? FF 9? ?? ?? ?? ?? 85 ?? 0F 84 } + $block_93 = { 4? 83 ?? ?? 3B ?? 89 ?? ?? ?? 89 ?? ?? ?? 0F 82 } + $block_94 = { 8B ?? ?? ?? ?? ?? 81 3? ?? ?? ?? ?? 0F 95 ?? 88 } + $block_95 = { 8B ?? ?? ?? ?? ?? FF D? 3B ?? ?? ?? ?? ?? 0F 86 } + $block_96 = { FF 7? ?? E8 ?? ?? ?? ?? 8B ?? ?? 5? 5? 5? C9 C2 } + $block_97 = { E8 ?? ?? ?? ?? 0F B6 ?? 03 ?? 88 ?? ?? FE ?? EB } + $block_98 = { 8B ?? ?? 83 ?? ?? ?? E8 ?? ?? ?? ?? 85 ?? 0F 84 } + $block_99 = { BF ?? ?? ?? ?? B8 ?? ?? ?? ?? 3B ?? 0F 4E ?? EB } + + condition: + hash.sha256(0, filesize) == "29cc2e69f65b9ce5fe04eb9b65942b2dabf48e41770f0a49eb698271b99d2787" or + hash.sha256(0, filesize) == "5ac044cf6bab6ebfdda66f92d3b420f5f6d4629a535d80e43705ab55f3b03ea0" or + hash.sha256(0, filesize) == "31a0906b0d8b07167129e134009dc307c2d92522da5709e52b67d3c5a70adf93" or + hash.sha256(0, filesize) == "4f26e4178b078a4be3842e3b86bf5299c7f7ad386a226b4da5a2cca5c9129f6d" or + hash.sha256(0, filesize) == "dbfeaebd4e716bf6a0f2518b7edba3dda475f2de7ef70c3ff6399cfee2e47ec0" or + hash.sha256(0, filesize) == "ce554d57333bdbccebb5e2e8d16a304947981e48ea2a5cc3d5f4ced7c1f56df3" or + hash.sha256(0, filesize) == "e6d09ce32cc62b6f17279204fac1771a6eb35077bb79471115e8dfed2c86cd75" or + hash.sha256(0, filesize) == "7f6f9645499f5840b59fb59525343045abf91bc57183aae459dca98dc8216965" or + hash.sha256(0, filesize) == "102b0158bcd5a8b64de44d9f765193dd80df1504e398ce52d37b7c8c33f2552a" or + hash.sha256(0, filesize) == "d5debe5d88e76a409b9bc3f69a02a7497d333934d66f6aaa30eb22e45b81a9ab" or + hash.sha256(0, filesize) == "eb5ab0c73b28d7b7c7e29411609b7686813f3bf629ec3a764bfdf2f9a19b5341" or + hash.sha256(0, filesize) == "d54173be095b688016528f18dc97f2d583efcf5ce562ec766afc0b294eb51ac7" or + hash.sha256(0, filesize) == "1b3dd8aaafd750aa85185dc52672b26d67d662796847d7cbb01a35b565e74d35" or + hash.sha256(0, filesize) == "4af1736b26052d95cbd106ee1a667e2ce3346f78783f1231df19282a5e738348" or + hash.sha256(0, filesize) == "c8087186a215553d2f95c68c03398e17e67517553f6e9a8adc906faa51bce946" or + hash.sha256(0, filesize) == "7edeedea096e890d59ed8435db6760dc7fa4d55f9d039fefd473ba1e43ba5838" or + hash.sha256(0, filesize) == "7695f20315f84bb1d940149b17dd58383210ea3498450b45fefa22a450e79683" or + hash.sha256(0, filesize) == "4536650c9c5e5e1bb57d9bedf7f9a543d6f09addf857f0d802fb64e437b6844a" or + hash.sha256(0, filesize) == "e917166adf6e1135444f327d8fff6ec6c6a8606d65dda4e24c2f416d23b69d45" or + hash.sha256(0, filesize) == "6cd30c85dd8a64ca529c6eab98a757fb326de639a39b597414d5340285ba91c6" or + hash.sha256(0, filesize) == "9392776d6d8e697468ab671b43dce2b7baf97057b53bd3517ecd77a081eff67d" or + hash.sha256(0, filesize) == "1fa3e580eabfcf7ffc8f59d96ee0d6b4ab96a7a33ab73558e454d7ce79147c41" or + hash.sha256(0, filesize) == "51dae85f5971dbdeb601c974350b80ec1104f304f08893d80e24a52279e1edc7" or + hash.sha256(0, filesize) == "744f2a1e1a62dff2a8d5bd273304a4d21ee37a3c9b0bdcffeeca50374bd10a39" or + hash.sha256(0, filesize) == "d58f2a799552aff8358e9c63a4345ea971b27edd14b8eac825db30a8321d1a7a" or + hash.sha256(0, filesize) == "f6d107a65479bb5e8a6d885739ae4c2dcc46e9b468e5d8f388dadfc7f57719fc" or + hash.sha256(0, filesize) == "69e9fd2edc1b752117c1d864b18cfa0cca6443825d909ef483a3664f851f5bc8" or + hash.sha256(0, filesize) == "4a9efdfa479c8092fefee182eb7d285de23340e29e6966f1a7302a76503799a2" or + hash.sha256(0, filesize) == "0c7cdbfc5226c3b94b17f70f5a82da016c054fe12b050ee7f3c28db900ea98a5" or + hash.sha256(0, filesize) == "423a0799efe41b28a8b765fa505699183c8278d5a7bf07658b3bd507bfa5346f" or + hash.sha256(0, filesize) == "966660738c9e3ec103c2f8fe361c8ac20647cacaa5153197fa1917e9da99082e" or + hash.sha256(0, filesize) == "1b5b7c0818ca68e7107ab18d89476314d854b02f0809f8c530fb4334a864c594" or + hash.sha256(0, filesize) == "1bab1a3e0e501d3c14652ecf60870e483ed4e90e500987c35489f17a44fef26c" or + hash.sha256(0, filesize) == "67ecc3b8c6057090c7982883e8d9d0389a8a8f6e8b00f9e9b73c45b008241322" or + hash.sha256(0, filesize) == "22c3718bf7df29555098738f77c3139dae39dcdd34b39dab72df04ade4cffa7f" or + hash.sha256(0, filesize) == "03ed773bde6c6a1ac3b24bde6003322df8d41d3d1c85109b8669c430b58d2f69" or + 12 of them +} + +rule SedrecoPayload { + meta: + Author = "Intezer Analyze" + Reference = "https://apt-ecosystem.com" + + strings: + $block_0 = { 8D ?? ?? 5? 6A ?? 68 ?? ?? ?? ?? 8B ?? ?? 5? A1 ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? FF D? 85 ?? 0F 84 } + $block_1 = { 48 ?? ?? ?? ?? ?? ?? 48 ?? ?? ?? ?? ?? ?? FF 9? ?? ?? ?? ?? 4C ?? ?? ?? ?? ?? ?? 4D ?? ?? 0F 84 } + $block_2 = { 8B ?? ?? ?? 83 ?? ?? 8B ?? 48 ?? ?? ?? ?? 48 ?? ?? ?? 0F B6 ?? ?? 89 ?? ?? ?? 83 ?? ?? ?? ?? 74 } + $block_3 = { 33 ?? 33 ?? 89 ?? ?? ?? 8B ?? ?? 89 ?? ?? ?? 8B ?? ?? 89 ?? ?? ?? 48 ?? ?? ?? ?? 0F 9C ?? 89 } + $block_4 = { 8B ?? ?? ?? ?? ?? 68 ?? ?? ?? ?? 5? FF D? 8B ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 85 ?? 0F 84 } + $block_5 = { A1 ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? FF D? 8B ?? A1 ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 3B ?? 0F 84 } + $block_6 = { 8D ?? ?? ?? ?? ?? 5? 5? B9 ?? ?? ?? ?? E8 ?? ?? ?? ?? 8B ?? 89 ?? ?? ?? ?? ?? 85 ?? 0F 84 } + $block_7 = { 48 ?? ?? ?? ?? ?? ?? ?? B9 ?? ?? ?? ?? FF 9? ?? ?? ?? ?? 85 ?? 48 ?? ?? ?? ?? ?? ?? 0F 84 } + $block_8 = { 48 ?? ?? ?? ?? ?? ?? ?? B9 ?? ?? ?? ?? 48 ?? ?? ?? ?? ?? ?? FF 9? ?? ?? ?? ?? 85 ?? 0F 84 } + $block_9 = { 48 ?? ?? ?? ?? 48 ?? ?? ?? ?? ?? ?? ?? 48 ?? ?? ?? ?? ?? ?? FF 9? ?? ?? ?? ?? 85 ?? 0F 85 } + $block_10 = { 48 ?? ?? ?? ?? 48 ?? ?? ?? ?? 48 ?? ?? 48 ?? ?? ?? ?? ?? ?? FF 9? ?? ?? ?? ?? 85 ?? 0F 85 } + $block_11 = { 48 ?? ?? ?? ?? ?? ?? 48 ?? ?? ?? ?? ?? ?? FF 9? ?? ?? ?? ?? 48 ?? ?? ?? ?? ?? ?? ?? 0F 84 } + $block_12 = { 48 ?? ?? ?? ?? ?? ?? 48 ?? ?? ?? 45 ?? ?? 45 ?? ?? 48 ?? ?? FF 9? ?? ?? ?? ?? 85 ?? 0F 84 } + $block_13 = { 8D ?? ?? 8B ?? ?? 03 ?? 8B ?? ?? 89 ?? ?? 0F B6 ?? ?? ?? 89 ?? ?? 89 ?? ?? 85 ?? 0F 84 } + $block_14 = { 8D ?? ?? ?? ?? ?? 5? A1 ?? ?? ?? ?? 68 ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? FF D? 85 ?? 0F 84 } + $block_15 = { 68 ?? ?? ?? ?? FF 3? ?? ?? ?? ?? FF D? 8B ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 85 ?? 0F 84 } + $block_16 = { 8D ?? ?? C1 ?? ?? 89 ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 3B ?? 0F 86 } + $block_17 = { 41 ?? ?? ?? ?? ?? 44 ?? ?? 48 ?? ?? 48 ?? ?? ?? ?? 4D ?? ?? 44 ?? ?? ?? ?? 85 ?? 0F 84 } + $block_18 = { 48 ?? ?? ?? ?? ?? ?? 48 ?? ?? ?? ?? ?? ?? 33 ?? FF 9? ?? ?? ?? ?? 8B ?? 83 ?? ?? 0F 84 } + $block_19 = { 8B ?? ?? ?? 8B ?? ?? ?? 03 ?? 8B ?? 33 ?? B9 ?? ?? ?? ?? F7 ?? 8B ?? 39 ?? ?? ?? 0F 83 } + $block_20 = { 4C ?? ?? ?? ?? ?? ?? ?? FF 9? ?? ?? ?? ?? 48 ?? ?? ?? ?? ?? ?? 4C ?? ?? 48 ?? ?? 0F 84 } + $block_21 = { C7 ?? ?? ?? ?? ?? ?? 8B ?? ?? 68 ?? ?? ?? ?? FF D? E8 ?? ?? ?? ?? 8B ?? 85 ?? 0F 85 } + $block_22 = { 6A ?? 6A ?? 8D ?? ?? 5? 6A ?? A1 ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? FF D? 83 ?? ?? 0F 84 } + $block_23 = { 8B ?? ?? 5? 6A ?? 8B ?? ?? ?? ?? ?? 5? FF 1? ?? ?? ?? ?? 8B ?? ?? 89 ?? 85 ?? 0F 84 } + $block_24 = { 8B ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 6A ?? 6A ?? 8D ?? ?? ?? 5? 5? FF D? 85 ?? 0F 84 } + $block_25 = { 8D ?? ?? 5? 5? 6A ?? 5? 5? 8B ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? FF D? 83 ?? ?? 0F 85 } + $block_26 = { 5? 8D ?? ?? ?? 5? 5? 8D ?? ?? ?? 68 ?? ?? ?? ?? 5? 5? FF 1? ?? ?? ?? ?? 85 ?? 0F 85 } + $block_27 = { 68 ?? ?? ?? ?? 68 ?? ?? ?? ?? BE ?? ?? ?? ?? 5? E8 ?? ?? ?? ?? 83 ?? ?? 85 ?? 0F 85 } + $block_28 = { 8D ?? ?? ?? ?? ?? 5? 5? B9 ?? ?? ?? ?? E8 ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 85 ?? 0F 84 } + $block_29 = { 48 ?? ?? ?? ?? 48 ?? ?? ?? ?? ?? ?? FF 9? ?? ?? ?? ?? 83 ?? ?? ?? ?? ?? ?? ?? 0F 84 } + $block_30 = { 8B ?? ?? ?? ?? ?? ?? 48 ?? ?? ?? 8B ?? ?? ?? 03 ?? ?? ?? 3B ?? ?? ?? ?? ?? ?? 0F 87 } + $block_31 = { 8B ?? ?? ?? ?? ?? 5? A1 ?? ?? ?? ?? 8B ?? ?? 6A ?? 5? FF D? 8B ?? 83 ?? ?? 0F 84 } + $block_32 = { 6A ?? 6A ?? 8D ?? ?? ?? 5? A1 ?? ?? ?? ?? 5? 8B ?? ?? ?? ?? ?? FF D? 85 ?? 0F 84 } + $block_33 = { 8D ?? ?? 5? 5? 6A ?? 5? 5? A1 ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? FF D? 83 ?? ?? 0F 85 } + $block_34 = { 0F 57 ?? 5? 8B ?? ?? 66 ?? ?? ?? ?? ?? ?? ?? 66 ?? ?? ?? ?? ?? ?? ?? 85 ?? 0F 85 } + $block_35 = { 48 ?? ?? ?? ?? 48 ?? ?? ?? ?? ?? ?? E8 ?? ?? ?? ?? 8B ?? 89 ?? ?? ?? 85 ?? 0F 84 } + $block_36 = { A1 ?? ?? ?? ?? 68 ?? ?? ?? ?? 5? FF D? 8B ?? ?? ?? ?? ?? 89 ?? ?? 85 ?? 0F 84 } + $block_37 = { 5? A1 ?? ?? ?? ?? 6A ?? FF 3? ?? ?? ?? ?? 8B ?? ?? FF D? 8B ?? 83 ?? ?? 0F 84 } + $block_38 = { FF 7? ?? 6A ?? FF 3? ?? ?? ?? ?? FF 1? ?? ?? ?? ?? 8B ?? ?? 89 ?? 85 ?? 0F 84 } + $block_39 = { 8B ?? ?? ?? 8B ?? ?? ?? 03 ?? 8B ?? 33 ?? B9 ?? ?? ?? ?? F7 ?? 39 ?? ?? 0F 83 } + $block_40 = { 8B ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? FF D? 8B ?? A1 ?? ?? ?? ?? 3B ?? 0F 84 } + $block_41 = { 0F B7 ?? ?? ?? 66 ?? ?? ?? ?? ?? ?? 48 ?? ?? ?? ?? 48 ?? ?? ?? 5? 5? 5? C3 } + $block_42 = { 8B ?? ?? ?? 4? 8A ?? 4? 88 ?? ?? ?? 8A ?? ?? ?? 83 ?? ?? 89 ?? ?? ?? 0F 85 } + $block_43 = { A1 ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? FF D? 0F B6 ?? 03 ?? 88 ?? ?? FE ?? EB } + $block_44 = { 8B ?? ?? ?? ?? ?? 4? 83 ?? ?? 89 ?? ?? ?? ?? ?? 3B ?? ?? ?? ?? ?? 0F 82 } + $block_45 = { A1 ?? ?? ?? ?? 8B ?? ?? 68 ?? ?? ?? ?? FF D? A1 ?? ?? ?? ?? 85 ?? 0F 84 } + $block_46 = { A1 ?? ?? ?? ?? 68 ?? ?? ?? ?? 8B ?? ?? FF D? A1 ?? ?? ?? ?? 85 ?? 0F 84 } + $block_47 = { 5? 8B ?? 83 ?? ?? ?? 5? 8B ?? ?? 5? 8B ?? 5? C7 ?? ?? ?? ?? ?? ?? 0F 84 } + $block_48 = { 33 ?? 8B ?? 89 ?? ?? ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? ?? ?? ?? 85 ?? 0F 84 } + $block_49 = { A1 ?? ?? ?? ?? 6A ?? 8B ?? ?? ?? ?? ?? 6A ?? 6A ?? 5? FF D? 85 ?? 0F 84 } + $block_50 = { 48 ?? ?? ?? ?? ?? ?? FF 9? ?? ?? ?? ?? 0F B6 ?? 03 ?? 88 ?? ?? FE ?? EB } + $block_51 = { 8B ?? ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? ?? 83 ?? ?? ?? ?? ?? ?? ?? 0F 84 } + $block_52 = { 8B ?? ?? ?? ?? ?? ?? 8B ?? ?? ?? 03 ?? 8B ?? 3B ?? ?? ?? ?? ?? ?? 0F 83 } + $block_53 = { 8B ?? ?? ?? ?? ?? ?? 48 ?? ?? ?? 8B ?? ?? ?? ?? ?? ?? 39 ?? ?? ?? 0F 86 } + $block_54 = { BF ?? ?? ?? ?? 5? 8D ?? ?? E8 ?? ?? ?? ?? 8B ?? 89 ?? ?? 85 ?? 0F 84 } + $block_55 = { 48 ?? ?? ?? ?? E8 ?? ?? ?? ?? 48 ?? ?? ?? ?? 48 ?? ?? ?? ?? ?? 0F 84 } + $block_56 = { 0F B6 ?? ?? ?? C6 ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? ?? 48 ?? ?? ?? ?? E8 } + $block_57 = { 33 ?? 48 ?? ?? ?? ?? ?? ?? 48 ?? ?? ?? ?? ?? ?? FF 5? ?? 85 ?? 0F 84 } + $block_58 = { 83 ?? ?? ?? 8B ?? ?? 4? 83 ?? ?? 89 ?? ?? 89 ?? ?? 3B ?? ?? 0F 82 } + $block_59 = { 48 ?? ?? ?? ?? ?? ?? 48 ?? ?? ?? 48 ?? ?? FF 5? ?? 83 ?? ?? 0F 85 } + $block_60 = { 48 ?? ?? ?? ?? 8D ?? ?? 48 ?? ?? 8D ?? ?? 0F B6 ?? ?? 40 ?? ?? 74 } + $block_61 = { 68 ?? ?? ?? ?? 8D ?? ?? E8 ?? ?? ?? ?? 8B ?? 89 ?? ?? 85 ?? 0F 84 } + $block_62 = { 8D ?? ?? 8B ?? 5? E8 ?? ?? ?? ?? 8B ?? ?? C6 ?? ?? ?? 3B ?? 0F 86 } + $block_63 = { 83 ?? ?? 5? 5? 8D ?? ?? ?? ?? ?? 5? E8 ?? ?? ?? ?? 85 ?? 0F 84 } + $block_64 = { 48 ?? ?? ?? ?? 48 ?? ?? ?? ?? ?? ?? E8 ?? ?? ?? ?? 85 ?? 0F 84 } + $block_65 = { 8B ?? ?? ?? 48 ?? ?? ?? 48 ?? ?? ?? ?? 48 ?? ?? ?? ?? ?? 0F 84 } + $block_66 = { 44 ?? ?? ?? ?? ?? ?? ?? 48 ?? ?? ?? ?? ?? ?? ?? 48 ?? ?? 0F 84 } + $block_67 = { 8B ?? ?? 0F B6 ?? ?? ?? 03 ?? 01 ?? ?? 89 ?? ?? 85 ?? 0F 84 } + $block_68 = { 8B ?? ?? A1 ?? ?? ?? ?? 8B ?? ?? 5? 5? FF D? 83 ?? ?? 0F 85 } + $block_69 = { 83 ?? ?? 5? 5? 8D ?? ?? ?? ?? ?? E8 ?? ?? ?? ?? 85 ?? 0F 84 } + $block_70 = { 4C ?? ?? 8D ?? ?? 48 ?? ?? ?? ?? E8 ?? ?? ?? ?? 85 ?? 0F 84 } + $block_71 = { 68 ?? ?? ?? ?? 8D ?? ?? E8 ?? ?? ?? ?? 89 ?? ?? 85 ?? 0F 84 } + $block_72 = { 4? 8B ?? BE ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 3B ?? ?? 0F 83 } + $block_73 = { 8B ?? ?? 5? FF 1? ?? ?? ?? ?? 8D ?? ?? ?? 29 ?? ?? 0F 88 } + $block_74 = { B9 ?? ?? ?? ?? 01 ?? ?? 29 ?? ?? 4? 89 ?? ?? 3B ?? 0F 82 } + $block_75 = { FF 7? ?? A1 ?? ?? ?? ?? 5? 8B ?? ?? FF D? 83 ?? ?? 0F 85 } + $block_76 = { FF 1? ?? ?? ?? ?? 33 ?? 89 ?? ?? ?? 3D ?? ?? ?? ?? 0F 85 } + $block_77 = { 0F B6 ?? ?? 01 ?? ?? 0F B6 ?? 01 ?? ?? 83 ?? ?? 4? 75 } + $block_78 = { 8B ?? ?? 8D ?? ?? 03 ?? 2B ?? 89 ?? ?? 83 ?? ?? 0F 83 } + $block_79 = { 8D ?? ?? BA ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 3B ?? 0F 83 } + $block_80 = { 48 ?? ?? ?? ?? 48 ?? ?? ?? ?? 0F BE ?? ?? 85 ?? 0F 84 } + $block_81 = { 48 ?? ?? ?? ?? ?? ?? ?? 48 ?? ?? ?? ?? ?? ?? ?? 0F 1F } + $block_82 = { A1 ?? ?? ?? ?? 8B ?? ?? FF D? 3D ?? ?? ?? ?? 0F 85 } + $block_83 = { 8B ?? ?? 8A ?? ?? ?? 0F B6 ?? 8D ?? ?? 83 ?? ?? 77 } + $block_84 = { 48 ?? ?? ?? ?? ?? ?? FF 5? ?? 3D ?? ?? ?? ?? 0F 85 } + $block_85 = { 0F B7 ?? ?? ?? 0F B7 ?? ?? ?? ?? ?? 03 ?? 8B ?? 66 } + $block_86 = { 8B ?? ?? ?? 48 ?? ?? ?? ?? ?? ?? ?? 0F B6 ?? ?? 89 } + $block_87 = { 0F B6 ?? ?? 03 ?? 0F B6 ?? 03 ?? 83 ?? ?? 4? 75 } + $block_88 = { 8D ?? ?? 81 F? ?? ?? ?? ?? B8 ?? ?? ?? ?? 0F 44 } + $block_89 = { 0F B6 ?? ?? 03 ?? 0F B6 ?? 03 ?? 8D ?? ?? 4? 75 } + $block_90 = { 89 ?? ?? ?? ?? ?? ?? 3B ?? ?? ?? ?? ?? ?? 0F 83 } + $block_91 = { 8B ?? ?? ?? ?? ?? ?? 39 ?? ?? ?? ?? ?? ?? 0F 8D } + $block_92 = { 8D ?? ?? ?? 41 ?? ?? 03 ?? 2B ?? 83 ?? ?? 0F 83 } + $block_93 = { 8B ?? ?? ?? ?? ?? ?? 39 ?? ?? ?? ?? ?? ?? 0F 83 } + $block_94 = { 8B ?? ?? ?? ?? ?? ?? 39 ?? ?? ?? ?? ?? ?? 0F 87 } + + condition: + hash.sha256(0, filesize) == "ba1c02aa6c12794a33c4742e62cbda3c17def08732f3fbaeb801f1806770b9a0" or + hash.sha256(0, filesize) == "19d05f9a5eacb4acd748cfbf7640b842fd6ed1f4f25dc5bbe592e0e802f7ab0f" or + hash.sha256(0, filesize) == "74c404cfc6e8c752635b4d8a0488d0fb6801c7096fa5c1173660da0b05f44f9e" or + hash.sha256(0, filesize) == "37bf2c811842972314956434449fd294e793b43c1a7b37cfe41af4fcc07d329d" or + hash.sha256(0, filesize) == "11097a7a3336e0ab124fa921b94e3d51c4e9e4424e140e96127bfcf1c10ef110" or + hash.sha256(0, filesize) == "69a49e535d635b55efdc1c0e5e923891832089ab1fec0ea406f4798605e42ef1" or + hash.sha256(0, filesize) == "43e0f9b4cb9186ededff44a79db89627ce1be2fcd0d96d727aca525a0736efc9" or + hash.sha256(0, filesize) == "9a508287e3089d1d838271c9f19e659ea2d4b0a47de7faa7ad09191a758de862" or + hash.sha256(0, filesize) == "0260ed46bdf7d903ac06292a39568040fed63f4aae0a723216e53a2b29730052" or + hash.sha256(0, filesize) == "a939510f362c50cafee4d5a8d6c7db555a819e78e9f7614a243f6adc59190745" or + hash.sha256(0, filesize) == "a64340b35668f375a321cb7ee0e027391d875f64cf4f3780c83fb4e84a43c8f9" or + hash.sha256(0, filesize) == "baaf5fa70b68ec9c1847d8784227e0f2dcf48d02a203f7cbffc113f4cec0f006" or + hash.sha256(0, filesize) == "3580a48e47119fd36913b0108cce9b20a1adf0a2458c2b33f0d9a7df1fe140ef" or + hash.sha256(0, filesize) == "02be8ba0c1d64099f0529dab3251ee6e5602493085e54abe739659abc2ea050c" or + hash.sha256(0, filesize) == "a9dc96d45702538c2086a749ba2fb467ba8d8b603e513bdef62a024dfeb124cb" or + hash.sha256(0, filesize) == "c808c38fd8157e3e0fadadd6a1748e302bd0e69429697625f53ad692c539b241" or + 12 of them +} + +rule SeduploaderPayload { + meta: + Author = "Intezer Analyze" + Reference = "https://apt-ecosystem.com" + + strings: + $block_0 = { 5? 8B ?? 83 ?? ?? 5? 5? 33 ?? 5? 6A ?? 68 ?? ?? ?? ?? E8 ?? ?? ?? ?? 8B ?? 83 ?? ?? 85 ?? 0F 84 } + $block_1 = { 5? 8B ?? 83 ?? ?? 5? 8D ?? ?? 33 ?? 5? 68 ?? ?? ?? ?? 89 ?? ?? E8 ?? ?? ?? ?? 5? 5? 85 ?? 0F 84 } + $block_2 = { 5? 8B ?? 83 ?? ?? 83 ?? ?? ?? 8D ?? ?? 5? 68 ?? ?? ?? ?? E8 ?? ?? ?? ?? 5? 5? 85 ?? 0F 84 } + $block_3 = { 5? 33 ?? 6A ?? 5? F7 ?? 0F 90 ?? F7 ?? 0B ?? 5? E8 ?? ?? ?? ?? 8B ?? 89 ?? ?? 5? 85 ?? 75 } + $block_4 = { 5? 8B ?? 83 ?? ?? 5? 5? 5? 8B ?? ?? 8B ?? 6A ?? 5? E8 ?? ?? ?? ?? 8B ?? 5? 5? 85 ?? 0F 84 } + $block_5 = { FF 7? ?? 5? FF 7? ?? E8 ?? ?? ?? ?? 33 ?? 4? 85 ?? 5? 0F 45 ?? E8 ?? ?? ?? ?? 83 } + $block_6 = { 8B ?? 83 ?? ?? 89 ?? 33 ?? 39 ?? 0F 45 ?? 03 ?? 89 ?? ?? 8D ?? ?? 3B ?? 72 } + $block_7 = { 8D ?? ?? 89 ?? ?? 5? FF 7? ?? 5? E8 ?? ?? ?? ?? 8B ?? 83 ?? ?? 85 ?? 0F 84 } + $block_8 = { 5? 5? 6A ?? 68 ?? ?? ?? ?? E8 ?? ?? ?? ?? 8B ?? 83 ?? ?? 85 ?? 0F 84 } + $block_9 = { 5? 68 ?? ?? ?? ?? 5? E8 ?? ?? ?? ?? 8B ?? 5? 5? 85 ?? 0F 84 } + $block_10 = { 5? 83 ?? ?? 6A ?? 5? E8 ?? ?? ?? ?? 8B ?? 5? 5? 85 ?? 0F 84 } + $block_11 = { 5? 8B ?? 83 ?? ?? 5? 8B ?? 5? 33 ?? 8B ?? 85 ?? 0F 84 } + $block_12 = { 85 ?? 89 ?? 89 ?? ?? C7 ?? ?? ?? ?? ?? ?? 0F 44 } + + condition: + hash.sha256(0, filesize) == "de660457cab011deedf4c1a142021b8702ab94ce71dc5e0c75300253e7db3ee0" or + 12 of them +} + +rule CarbonDropper_v3_71_ { + meta: + Author = "Intezer Analyze" + Reference = "https://apt-ecosystem.com" + + strings: + $block_0 = { 5? 8B ?? 81 E? ?? ?? ?? ?? 0F B6 ?? ?? ?? ?? ?? A1 ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 89 ?? ?? A1 ?? ?? ?? ?? 88 ?? ?? 8B ?? ?? ?? ?? ?? 89 ?? ?? 8A ?? ?? ?? ?? ?? 5? 89 ?? ?? 66 ?? ?? ?? ?? ?? 89 ?? ?? 0F B6 ?? ?? ?? ?? ?? 88 ?? ?? 8B ?? ?? ?? ?? ?? 5? 66 ?? ?? ?? A1 ?? ?? ?? ?? 33 ?? 5? 89 ?? ?? 8B ?? ?? ?? ?? ?? 88 ?? ?? 8B ?? ?? ?? ?? ?? 89 ?? ?? A1 ?? ?? ?? ?? 68 ?? ?? ?? ?? 89 ?? ?? 89 ?? ?? 66 ?? ?? ?? ?? ?? ?? 89 ?? ?? 33 ?? 8D ?? ?? ?? ?? ?? 5? 5? C7 ?? ?? ?? ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? 66 ?? ?? ?? C6 ?? ?? ?? 89 ?? ?? 89 ?? ?? 89 ?? ?? 89 ?? ?? 66 ?? ?? ?? 88 ?? ?? 89 ?? ?? 89 ?? ?? 89 ?? ?? 89 ?? ?? 89 ?? ?? 89 ?? ?? E8 ?? ?? ?? ?? 83 ?? ?? 8D ?? ?? 5? 8D ?? ?? 5? 8D ?? ?? 5? 8D ?? ?? 5? 8D ?? ?? 5? 8D ?? ?? 5? 8D ?? ?? 5? 8D ?? ?? 5? 8D ?? ?? 5? 8D ?? ?? ?? ?? ?? 68 ?? ?? ?? ?? 5? FF 1? ?? ?? ?? ?? 83 ?? ?? 68 ?? ?? ?? ?? 5? 8D ?? ?? ?? ?? ?? 5? E8 ?? ?? ?? ?? 83 ?? ?? 6A ?? 6A ?? 5? 5? C7 ?? ?? ?? ?? ?? ?? ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? ?? ?? ?? FF 1? ?? ?? ?? ?? 5? 5? 6A ?? 8D ?? ?? ?? ?? ?? 5? FF 1? ?? ?? ?? ?? 84 ?? 74 } + $block_1 = { 5? 8B ?? 83 ?? ?? B8 ?? ?? ?? ?? E8 ?? ?? ?? ?? 5? 5? 5? 33 ?? 68 ?? ?? ?? ?? 8D ?? ?? ?? ?? ?? ?? 5? 5? C6 ?? ?? ?? ?? 89 ?? ?? ?? 89 ?? ?? ?? 89 ?? ?? ?? 89 ?? ?? ?? 8D ?? ?? 89 ?? ?? ?? 89 ?? ?? ?? C6 ?? ?? ?? ?? 89 ?? ?? ?? E8 ?? ?? ?? ?? 83 ?? ?? 68 ?? ?? ?? ?? 8D ?? ?? ?? ?? ?? ?? 5? 5? E8 ?? ?? ?? ?? 83 ?? ?? 68 ?? ?? ?? ?? 8D ?? ?? ?? ?? ?? ?? 5? 5? E8 ?? ?? ?? ?? 83 ?? ?? 68 ?? ?? ?? ?? 8D ?? ?? ?? ?? ?? ?? 5? 5? E8 ?? ?? ?? ?? 83 ?? ?? 68 ?? ?? ?? ?? 8D ?? ?? ?? ?? ?? ?? 5? 5? E8 ?? ?? ?? ?? 83 ?? ?? 68 ?? ?? ?? ?? 8D ?? ?? ?? ?? ?? ?? 5? 5? E8 ?? ?? ?? ?? 83 ?? ?? 68 ?? ?? ?? ?? 8D ?? ?? ?? ?? ?? ?? 5? 5? E8 ?? ?? ?? ?? 83 ?? ?? 68 ?? ?? ?? ?? 8D ?? ?? ?? ?? ?? ?? 5? 5? E8 ?? ?? ?? ?? 83 ?? ?? 68 ?? ?? ?? ?? 8D ?? ?? ?? 5? 5? E8 ?? ?? ?? ?? 83 ?? ?? 68 ?? ?? ?? ?? 8D ?? ?? ?? ?? ?? ?? 5? 5? E8 ?? ?? ?? ?? 83 ?? ?? 33 ?? 89 ?? ?? ?? 89 ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? ?? 8D ?? ?? ?? 5? 6A ?? 5? 68 ?? ?? ?? ?? 68 ?? ?? ?? ?? FF 1? ?? ?? ?? ?? 85 ?? 0F 85 } + $block_2 = { 5? 8B ?? 81 E? ?? ?? ?? ?? 5? 5? 33 ?? 5? 68 ?? ?? ?? ?? 8D ?? ?? ?? ?? ?? 5? 5? 89 ?? ?? 89 ?? ?? 89 ?? ?? 89 ?? ?? 89 ?? ?? 88 ?? ?? E8 ?? ?? ?? ?? 33 ?? 68 ?? ?? ?? ?? 8D ?? ?? ?? ?? ?? 5? 5? 89 ?? ?? 89 ?? ?? 89 ?? ?? 89 ?? ?? 89 ?? ?? E8 ?? ?? ?? ?? 33 ?? 68 ?? ?? ?? ?? 8D ?? ?? ?? ?? ?? 5? 5? 89 ?? ?? 89 ?? ?? 89 ?? ?? 89 ?? ?? 89 ?? ?? 89 ?? ?? 89 ?? ?? 89 ?? ?? 89 ?? ?? 89 ?? ?? E8 ?? ?? ?? ?? 68 ?? ?? ?? ?? 8D ?? ?? ?? ?? ?? 5? 5? E8 ?? ?? ?? ?? 68 ?? ?? ?? ?? 8D ?? ?? ?? ?? ?? 5? 5? E8 ?? ?? ?? ?? 33 ?? 83 ?? ?? 89 ?? ?? 89 ?? ?? 89 ?? ?? 89 ?? ?? 89 ?? ?? 39 ?? ?? 0F 84 } + $block_3 = { 5? 8B ?? 81 E? ?? ?? ?? ?? 5? 5? 5? 33 ?? 68 ?? ?? ?? ?? 8D ?? ?? ?? ?? ?? 5? 5? 89 ?? ?? C6 ?? ?? ?? E8 ?? ?? ?? ?? 68 ?? ?? ?? ?? 8D ?? ?? ?? ?? ?? 5? 5? E8 ?? ?? ?? ?? 68 ?? ?? ?? ?? 8D ?? ?? ?? ?? ?? 5? 5? E8 ?? ?? ?? ?? 8B ?? ?? 83 ?? ?? 85 ?? 0F 84 } + $block_4 = { 0F B7 ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 5? 8D ?? ?? 68 ?? ?? ?? ?? 5? FF D? 83 ?? ?? 6A ?? 8D ?? ?? 5? 8D ?? ?? 5? 8D ?? ?? 5? 8D ?? ?? 5? 68 ?? ?? ?? ?? 8D ?? ?? ?? ?? ?? 5? 8D ?? ?? 5? FF 1? ?? ?? ?? ?? 85 ?? 0F 84 } + $block_5 = { FF 1? ?? ?? ?? ?? 83 ?? ?? 5? FF 1? ?? ?? ?? ?? 83 ?? ?? 5? FF 1? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 83 ?? ?? 68 ?? ?? ?? ?? FF D? 83 ?? ?? 8B ?? 68 ?? ?? ?? ?? 89 ?? ?? ?? FF D? 83 ?? ?? 89 ?? ?? ?? 3B ?? 0F 84 } + $block_6 = { 5? 6A ?? FF D? 5? FF 1? ?? ?? ?? ?? 8B ?? ?? 5? 6A ?? FF D? 5? FF D? 8B ?? ?? 5? 6A ?? 8B ?? FF D? 5? FF D? 89 ?? ?? 8B ?? ?? 5? 6A ?? FF D? 5? FF D? 85 ?? 0F 84 } + $block_7 = { 68 ?? ?? ?? ?? FF 1? ?? ?? ?? ?? 8B ?? 83 ?? ?? 5? 68 ?? ?? ?? ?? 6A ?? 5? 6A ?? 6A ?? 5? 89 ?? ?? FF 1? ?? ?? ?? ?? 8B ?? 83 ?? ?? 0F 84 } + $block_8 = { 8B ?? ?? ?? 8B ?? ?? ?? 5? 5? 6A ?? 6A ?? 68 ?? ?? ?? ?? 5? FF 1? ?? ?? ?? ?? 85 ?? 0F 85 } + $block_9 = { 68 ?? ?? ?? ?? 8D ?? ?? ?? ?? ?? ?? 5? 5? FF 1? ?? ?? ?? ?? 89 ?? ?? ?? 85 ?? 0F 85 } + + condition: + hash.sha256(0, filesize) == "3b8bd0a0c6069f2d27d759340721b78fd289f92e0a13965262fea4e8907af122" or + 10 of them +} + +rule Mosquito { + meta: + Author = "Intezer Analyze" + Reference = "https://apt-ecosystem.com" + + strings: + $block_0 = { 33 ?? 8D ?? ?? ?? BA ?? ?? ?? ?? F7 ?? 0F 90 ?? F7 ?? 0B ?? 5? E8 ?? ?? ?? ?? 83 ?? ?? 85 ?? 76 } + $block_1 = { 8D ?? ?? ?? 5? 68 ?? ?? ?? ?? 6A ?? 5? 68 ?? ?? ?? ?? 89 ?? ?? ?? FF 1? ?? ?? ?? ?? 3B ?? 0F 8C } + $block_2 = { 8B ?? 89 ?? ?? 8D ?? ?? 5? 68 ?? ?? ?? ?? 6A ?? FF 1? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 85 ?? 0F 84 } + $block_3 = { E8 ?? ?? ?? ?? 8B ?? ?? ?? 8B ?? ?? 8B ?? 8B ?? ?? 83 ?? ?? 5? 8B ?? ?? ?? 5? FF D? 85 ?? 0F 84 } + $block_4 = { C7 ?? ?? ?? ?? ?? ?? ?? 89 ?? ?? ?? 8B ?? ?? ?? 89 ?? ?? ?? E8 ?? ?? ?? ?? 8B ?? 3B ?? 0F 85 } + $block_5 = { 8B ?? ?? 8B ?? 8B ?? ?? 8D ?? ?? ?? 5? 8D ?? ?? ?? ?? ?? ?? 5? FF D? 8B ?? ?? ?? 85 ?? 0F 85 } + $block_6 = { 8D ?? ?? ?? 5? FF 1? ?? ?? ?? ?? 8B ?? ?? ?? 8B ?? 8B ?? ?? 5? FF D? 8B ?? ?? ?? 85 ?? 0F 85 } + $block_7 = { 8D ?? ?? ?? 5? 8D ?? ?? ?? 5? 5? 5? 68 ?? ?? ?? ?? 8B ?? E8 ?? ?? ?? ?? 8B ?? 3B ?? 0F 85 } + $block_8 = { 2B ?? D1 ?? 5? 8D ?? ?? ?? E8 ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? ?? 8B ?? ?? ?? 3B ?? 0F 86 } + $block_9 = { 8B ?? 8D ?? ?? ?? 5? 8D ?? ?? ?? 5? 6A ?? 6A ?? 5? 8B ?? ?? FF D? 83 ?? ?? ?? ?? 0F 84 } + $block_10 = { 8D ?? ?? ?? 5? BB ?? ?? ?? ?? 8B ?? 8D ?? ?? ?? E8 ?? ?? ?? ?? 8B ?? 83 ?? ?? 0F 84 } + $block_11 = { 8B ?? ?? ?? 33 ?? 33 ?? C7 ?? ?? ?? ?? ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? ?? 85 ?? 0F 84 } + $block_12 = { 8B ?? ?? ?? ?? ?? ?? 8D ?? ?? ?? 5? 5? 6A ?? 5? 5? FF 1? ?? ?? ?? ?? 85 ?? 0F 84 } + $block_13 = { 5? 68 ?? ?? ?? ?? FF D? FF 1? ?? ?? ?? ?? 33 ?? 83 ?? ?? 0F 95 ?? 8B ?? 3B ?? 74 } + $block_14 = { 2B ?? ?? B8 ?? ?? ?? ?? F7 ?? 03 ?? C1 ?? ?? 8B ?? C1 ?? ?? 03 ?? 83 ?? ?? 0F 83 } + $block_15 = { 8D ?? ?? ?? 5? 8B ?? 8D ?? ?? ?? E8 ?? ?? ?? ?? 8B ?? 83 ?? ?? 0F 84 } + $block_16 = { 8D ?? ?? ?? ?? ?? ?? 5? E8 ?? ?? ?? ?? 8B ?? 89 ?? ?? ?? 85 ?? 0F 84 } + $block_17 = { 5? E8 ?? ?? ?? ?? 83 ?? ?? 8B ?? E8 ?? ?? ?? ?? 8B ?? 3B ?? 0F 85 } + $block_18 = { 8D ?? ?? ?? 5? 5? FF 1? ?? ?? ?? ?? 8B ?? 89 ?? ?? ?? 3B ?? 0F 84 } + $block_19 = { 8B ?? ?? ?? 89 ?? ?? ?? 89 ?? ?? ?? 88 ?? ?? ?? ?? ?? 3B ?? 0F 84 } + $block_20 = { 68 ?? ?? ?? ?? 8D ?? ?? ?? ?? ?? ?? 5? E8 ?? ?? ?? ?? 85 ?? 0F 85 } + $block_21 = { 5? E8 ?? ?? ?? ?? 83 ?? ?? 8B ?? E8 ?? ?? ?? ?? 8B ?? 85 ?? 0F 85 } + $block_22 = { 5? 5? 5? 6A ?? 5? 5? 5? 6A ?? 5? FF 1? ?? ?? ?? ?? 85 ?? 0F 8C } + $block_23 = { E8 ?? ?? ?? ?? 83 ?? ?? 8B ?? E8 ?? ?? ?? ?? 8B ?? 3B ?? 0F 85 } + $block_24 = { 68 ?? ?? ?? ?? 8D ?? ?? ?? 5? 5? FF 1? ?? ?? ?? ?? 85 ?? 0F 84 } + $block_25 = { 8B ?? ?? 8B ?? 8B ?? ?? FF D? 8B ?? ?? 2B ?? 83 ?? ?? 0F 82 } + $block_26 = { 2B ?? D1 ?? B9 ?? ?? ?? ?? 2B ?? 8B ?? ?? ?? 3B ?? 0F 87 } + $block_27 = { 83 ?? ?? 89 ?? ?? ?? ?? ?? ?? 39 ?? ?? ?? ?? ?? ?? 0F 87 } + $block_28 = { 33 ?? 89 ?? ?? ?? E8 ?? ?? ?? ?? 8B ?? 85 ?? 0F 85 } + $block_29 = { 8B ?? ?? ?? FF 4? ?? ?? 01 ?? 03 ?? 3B ?? ?? 0F 83 } + $block_30 = { 0F B7 ?? 66 ?? ?? 83 ?? ?? 83 ?? ?? 66 ?? ?? 75 } + $block_31 = { 0F B7 ?? B9 ?? ?? ?? ?? 83 ?? ?? 66 ?? ?? 0F 84 } + + condition: + hash.sha256(0, filesize) == "bdcc7e900f10986cdb6dc7762de35b4f07f2ee153a341bef843b866e999d73a3" or + hash.sha256(0, filesize) == "2bc291368b3819de13a3aa8365f22de94acebf2f93133c38bfdade770c9d8f1e" or + hash.sha256(0, filesize) == "443cd03b37fca8a5df1bbaa6320649b441ca50d1c1fcc4f5a7b94b95040c73d1" or + hash.sha256(0, filesize) == "b4249f6af24ea89976f3f7d9e3a605ccfbfe768069891f62c48df950d9212093" or + hash.sha256(0, filesize) == "f9b83eff6d705c214993be9575f8990aa8150128a815e849c6faee90df14a0ea" or + hash.sha256(0, filesize) == "a2af1e9af48c4fa52a52ffba734ffeaa46c17d7320137d51dbd15539cc4cef8b" or + hash.sha256(0, filesize) == "62209d2f0ceeff20534292d5a58ed532c960579b75927321f4f7c7e7079dd06a" or + hash.sha256(0, filesize) == "a41a80cd7a485e5bcb038b0170e70a25040c71a41dad4bc2c8f3915fbcbeac0c" or + hash.sha256(0, filesize) == "555efee854fd1ffe71bc6130ec51995f89ceb93b9ee0e6e22d9c911d0adf7699" or + 12 of them +} + +rule CarbonLoader_v3_77_ { + meta: + Author = "Intezer Analyze" + Reference = "https://apt-ecosystem.com" + + strings: + $block_0 = { 40 ?? 5? 5? 41 ?? 41 ?? 41 ?? 48 ?? ?? ?? ?? ?? ?? ?? 48 ?? ?? ?? ?? ?? ?? 45 ?? ?? 4C ?? ?? 48 ?? ?? 48 ?? ?? ?? ?? ?? ?? 33 ?? 41 ?? ?? ?? ?? ?? 44 ?? ?? ?? ?? ?? ?? 44 ?? ?? ?? ?? ?? ?? 44 ?? ?? ?? ?? ?? ?? 41 ?? ?? 45 ?? ?? E8 ?? ?? ?? ?? 33 ?? 48 ?? ?? ?? ?? ?? ?? 41 ?? ?? ?? ?? ?? 48 ?? ?? ?? ?? 48 ?? ?? ?? ?? 89 ?? ?? ?? E8 ?? ?? ?? ?? 33 ?? 48 ?? ?? ?? ?? ?? ?? 41 ?? ?? ?? ?? ?? 48 ?? ?? ?? ?? 48 ?? ?? ?? ?? 48 ?? ?? ?? 48 ?? ?? ?? 48 ?? ?? ?? E8 ?? ?? ?? ?? 48 ?? ?? ?? ?? ?? ?? 33 ?? 41 ?? ?? ?? ?? ?? E8 ?? ?? ?? ?? 48 ?? ?? ?? 33 ?? 41 ?? ?? ?? ?? ?? E8 ?? ?? ?? ?? 33 ?? 48 ?? ?? ?? ?? 48 ?? ?? ?? ?? 89 ?? ?? ?? 4D ?? ?? 0F 84 } + $block_1 = { 8B ?? ?? ?? ?? ?? 48 ?? ?? ?? ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? FF C? 48 ?? ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 48 ?? ?? C7 ?? ?? ?? ?? ?? ?? ?? ?? ?? 48 ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? FF 1? ?? ?? ?? ?? 45 ?? ?? 45 ?? ?? 33 ?? 33 ?? FF 1? ?? ?? ?? ?? 48 ?? ?? ?? ?? ?? ?? 48 ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? 48 ?? ?? ?? ?? ?? ?? 48 ?? ?? ?? ?? ?? ?? 48 ?? ?? ?? ?? ?? ?? 48 ?? ?? 0F 84 } + $block_2 = { 44 ?? ?? ?? ?? ?? ?? ?? 48 ?? ?? ?? ?? ?? ?? 48 ?? ?? ?? ?? FF 1? ?? ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? ?? 48 ?? ?? ?? ?? 48 ?? ?? ?? ?? 48 ?? ?? ?? ?? ?? ?? 4C ?? ?? ?? ?? ?? ?? 48 ?? ?? ?? ?? 48 ?? ?? ?? ?? ?? ?? 48 ?? ?? ?? ?? ?? ?? 48 ?? ?? ?? ?? 41 ?? ?? ?? ?? ?? 48 ?? ?? ?? ?? FF 1? ?? ?? ?? ?? 85 ?? 0F 84 } + $block_3 = { 40 ?? 48 ?? ?? ?? ?? ?? ?? 48 ?? ?? ?? ?? ?? ?? ?? 33 ?? 33 ?? 41 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? ?? E8 ?? ?? ?? ?? 48 ?? ?? ?? ?? 33 ?? 41 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? E8 ?? ?? ?? ?? 48 ?? ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? ?? FF 1? ?? ?? ?? ?? 85 ?? 0F 84 } + $block_4 = { 33 ?? 48 ?? ?? ?? 48 ?? ?? 66 ?? ?? 48 ?? ?? ?? ?? ?? ?? 48 ?? ?? 48 ?? ?? ?? 48 ?? ?? ?? ?? ?? ?? 48 ?? ?? ?? 48 ?? ?? ?? ?? ?? ?? 48 ?? ?? ?? 0F B7 ?? ?? ?? ?? ?? 66 ?? ?? ?? FF 1? ?? ?? ?? ?? 48 ?? ?? 48 ?? ?? 74 } + $block_5 = { 33 ?? 48 ?? ?? ?? 48 ?? ?? ?? ?? ?? ?? 66 ?? ?? 48 ?? ?? ?? ?? ?? ?? 48 ?? ?? ?? ?? ?? ?? 48 ?? ?? ?? 8B ?? ?? ?? ?? ?? 48 ?? ?? ?? ?? ?? ?? 89 ?? ?? FF 1? ?? ?? ?? ?? 4C ?? ?? 48 ?? ?? ?? 0F 84 } + $block_6 = { 48 ?? ?? ?? ?? ?? ?? 48 ?? ?? ?? ?? ?? ?? ?? 45 ?? ?? FF 1? ?? ?? ?? ?? 48 ?? ?? ?? ?? ?? ?? 48 ?? ?? 0F 84 } + $block_7 = { 4C ?? ?? ?? 48 ?? ?? ?? ?? ?? ?? 48 ?? ?? ?? ?? 4C ?? ?? FF 1? ?? ?? ?? ?? 83 ?? ?? 0F 85 } + $block_8 = { 48 ?? ?? ?? ?? ?? ?? 48 ?? ?? ?? ?? ?? ?? 41 ?? ?? ?? ?? ?? FF 1? ?? ?? ?? ?? 85 ?? 0F 84 } + $block_9 = { 48 ?? ?? ?? 48 ?? ?? ?? ?? 33 ?? 48 ?? ?? 66 ?? ?? 48 ?? ?? 48 ?? ?? 0F 84 } + + condition: + hash.sha256(0, filesize) == "050685f211158109fb1b17096b3739750e74049fe9057ad3503d96174b42891a" or + 10 of them +} + +rule CarbonLoader_v3_71_ { + meta: + Author = "Intezer Analyze" + Reference = "https://apt-ecosystem.com" + + strings: + $block_0 = { 40 ?? 5? 5? 41 ?? 41 ?? 41 ?? 48 ?? ?? ?? ?? ?? ?? ?? 48 ?? ?? ?? ?? ?? ?? 45 ?? ?? 4C ?? ?? 48 ?? ?? 48 ?? ?? ?? ?? ?? ?? 33 ?? 41 ?? ?? ?? ?? ?? 44 ?? ?? ?? ?? ?? ?? 44 ?? ?? ?? ?? ?? ?? 44 ?? ?? ?? ?? ?? ?? 41 ?? ?? 45 ?? ?? E8 ?? ?? ?? ?? 33 ?? 48 ?? ?? ?? ?? ?? ?? 41 ?? ?? ?? ?? ?? 48 ?? ?? ?? ?? 48 ?? ?? ?? ?? 89 ?? ?? ?? E8 ?? ?? ?? ?? 33 ?? 48 ?? ?? ?? ?? ?? ?? 41 ?? ?? ?? ?? ?? 48 ?? ?? ?? ?? 48 ?? ?? ?? ?? 48 ?? ?? ?? 48 ?? ?? ?? 48 ?? ?? ?? E8 ?? ?? ?? ?? 48 ?? ?? ?? ?? ?? ?? 33 ?? 41 ?? ?? ?? ?? ?? E8 ?? ?? ?? ?? 48 ?? ?? ?? 33 ?? 41 ?? ?? ?? ?? ?? E8 ?? ?? ?? ?? 33 ?? 48 ?? ?? ?? ?? 48 ?? ?? ?? ?? 89 ?? ?? ?? 4D ?? ?? 0F 84 } + $block_1 = { 44 ?? ?? ?? ?? ?? ?? ?? 48 ?? ?? ?? ?? ?? ?? 48 ?? ?? ?? ?? FF 1? ?? ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? ?? 48 ?? ?? ?? ?? 48 ?? ?? ?? ?? 48 ?? ?? ?? ?? ?? ?? 4C ?? ?? ?? ?? ?? ?? 48 ?? ?? ?? ?? 48 ?? ?? ?? ?? ?? ?? 48 ?? ?? ?? ?? ?? ?? 48 ?? ?? ?? ?? 41 ?? ?? ?? ?? ?? 48 ?? ?? ?? ?? FF 1? ?? ?? ?? ?? 85 ?? 0F 84 } + $block_2 = { 40 ?? 48 ?? ?? ?? ?? ?? ?? 48 ?? ?? ?? ?? ?? ?? ?? 33 ?? 33 ?? 41 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? ?? E8 ?? ?? ?? ?? 48 ?? ?? ?? ?? 33 ?? 41 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? E8 ?? ?? ?? ?? 48 ?? ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? ?? FF 1? ?? ?? ?? ?? 85 ?? 0F 84 } + $block_3 = { 33 ?? 48 ?? ?? ?? 48 ?? ?? 66 ?? ?? 48 ?? ?? ?? ?? ?? ?? 48 ?? ?? 48 ?? ?? ?? 48 ?? ?? ?? ?? ?? ?? 48 ?? ?? ?? 48 ?? ?? ?? ?? ?? ?? 48 ?? ?? ?? 0F B7 ?? ?? ?? ?? ?? 66 ?? ?? ?? FF 1? ?? ?? ?? ?? 48 ?? ?? 48 ?? ?? 74 } + $block_4 = { 33 ?? 48 ?? ?? ?? 48 ?? ?? ?? ?? ?? ?? 66 ?? ?? 48 ?? ?? ?? ?? ?? ?? 48 ?? ?? ?? ?? ?? ?? 48 ?? ?? ?? 8B ?? ?? ?? ?? ?? 48 ?? ?? ?? ?? ?? ?? 89 ?? ?? FF 1? ?? ?? ?? ?? 4C ?? ?? 48 ?? ?? ?? 0F 84 } + $block_5 = { 48 ?? ?? ?? ?? ?? ?? 48 ?? ?? ?? ?? ?? ?? ?? 45 ?? ?? FF 1? ?? ?? ?? ?? 48 ?? ?? ?? ?? ?? ?? 48 ?? ?? 0F 84 } + $block_6 = { 48 ?? ?? ?? ?? ?? ?? 48 ?? ?? ?? ?? ?? ?? 41 ?? ?? ?? ?? ?? FF 1? ?? ?? ?? ?? 85 ?? 0F 84 } + $block_7 = { 4C ?? ?? ?? 48 ?? ?? ?? ?? ?? ?? 48 ?? ?? ?? ?? 4C ?? ?? FF 1? ?? ?? ?? ?? 83 ?? ?? 0F 85 } + $block_8 = { 48 ?? ?? ?? 48 ?? ?? ?? ?? 33 ?? 48 ?? ?? 66 ?? ?? 48 ?? ?? 48 ?? ?? 0F 84 } + $block_9 = { 0F B7 ?? ?? ?? ?? ?? ?? 48 ?? ?? ?? 66 ?? ?? ?? ?? ?? ?? ?? 66 ?? ?? 75 } + + condition: + hash.sha256(0, filesize) == "ba9a87ba0ad1a4f4e81583a1449b20bf703cdbee6b1a639c13f4cbcd1b9eb57f" or + hash.sha256(0, filesize) == "31b176b9906211c14ee5b9cff4c56f71866ec47d7f7c783aeb31692168d66566" or + hash.sha256(0, filesize) == "1a488c6824bd39f3568346b2aaf3f6666f41b1d4961a2d77360c7c65c7978b5e" or + hash.sha256(0, filesize) == "02f9501cb01b375e752a9cc4aa5ee084a504944bdc853e1bdfc860dd76e0d198" or + 10 of them +} + +rule UroburosVirtualBoxDriver { + meta: + Author = "Intezer Analyze" + Reference = "https://apt-ecosystem.com" + + strings: + $block_0 = { 8B ?? 48 ?? ?? ?? 48 ?? ?? ?? ?? E8 ?? ?? ?? ?? 8B ?? ?? ?? 48 ?? ?? ?? 3B ?? 0F 46 ?? 85 ?? 74 } + $block_1 = { 48 ?? ?? E8 ?? ?? ?? ?? 48 ?? ?? 48 ?? ?? ?? ?? E8 ?? ?? ?? ?? 49 ?? ?? ?? 48 ?? ?? 0F 85 } + $block_2 = { 48 ?? ?? ?? E8 ?? ?? ?? ?? 4D ?? ?? ?? 4C ?? ?? ?? ?? 48 ?? ?? ?? ?? 48 ?? ?? ?? ?? 0F 84 } + $block_3 = { 8B ?? 48 ?? ?? ?? ?? 41 ?? ?? C1 ?? ?? 48 ?? ?? ?? ?? E8 ?? ?? ?? ?? 85 ?? 8B ?? 0F 88 } + $block_4 = { 45 ?? ?? ?? 45 ?? ?? ?? 65 ?? ?? ?? ?? ?? ?? ?? 4C ?? ?? ?? ?? 33 ?? 0F B6 ?? 3B ?? 74 } + $block_5 = { 48 ?? ?? 49 ?? ?? ?? 4D ?? ?? ?? 45 ?? ?? ?? E8 ?? ?? ?? ?? 49 ?? ?? ?? 48 ?? ?? 0F 84 } + $block_6 = { B8 ?? ?? ?? ?? 0F A2 3D ?? ?? ?? ?? 89 ?? ?? ?? 89 ?? ?? ?? 89 ?? ?? ?? 89 ?? ?? ?? 72 } + $block_7 = { B8 ?? ?? ?? ?? 0F A2 0F BA ?? ?? 89 ?? ?? ?? 89 ?? ?? ?? 89 ?? ?? ?? 89 ?? ?? ?? 72 } + $block_8 = { 48 ?? ?? ?? ?? C1 ?? ?? 41 ?? ?? 48 ?? ?? ?? ?? E8 ?? ?? ?? ?? 85 ?? 8B ?? 0F 88 } + $block_9 = { 8B ?? B8 ?? ?? ?? ?? 81 F? ?? ?? ?? ?? 0F 44 ?? 48 ?? ?? ?? ?? 48 ?? ?? ?? 5? C3 } + $block_10 = { 48 ?? ?? ?? ?? 8B ?? 41 ?? ?? 48 ?? ?? ?? ?? E8 ?? ?? ?? ?? 85 ?? 8B ?? 0F 88 } + $block_11 = { 49 ?? ?? ?? 49 ?? ?? ?? 45 ?? ?? 48 ?? ?? 4D ?? ?? ?? 4C ?? ?? 48 ?? ?? 0F 84 } + $block_12 = { 33 ?? 0F A2 83 ?? ?? 89 ?? ?? ?? 89 ?? ?? ?? 89 ?? ?? ?? 89 ?? ?? ?? 72 } + $block_13 = { 48 ?? ?? ?? ?? ?? ?? ?? FF 1? ?? ?? ?? ?? B8 ?? ?? ?? ?? 85 ?? 0F 49 } + $block_14 = { B9 ?? ?? ?? ?? 48 ?? ?? ?? ?? E8 ?? ?? ?? ?? 48 ?? ?? 48 ?? ?? 0F 84 } + $block_15 = { 4C ?? ?? ?? 48 ?? ?? ?? 49 ?? ?? E8 ?? ?? ?? ?? 48 ?? ?? 0F 85 } + $block_16 = { 40 ?? 5? 48 ?? ?? ?? 48 ?? ?? ?? 48 ?? ?? 48 ?? ?? 0F 84 } + $block_17 = { 8B ?? 48 ?? ?? ?? ?? 48 ?? ?? ?? 0F 92 ?? 84 ?? 0F 84 } + $block_18 = { 48 ?? ?? ?? ?? E8 ?? ?? ?? ?? 48 ?? ?? 48 ?? ?? 0F 84 } + $block_19 = { 48 ?? ?? ?? E8 ?? ?? ?? ?? 49 ?? ?? ?? 48 ?? ?? 0F 84 } + $block_20 = { 48 ?? ?? ?? ?? E8 ?? ?? ?? ?? 85 ?? 8B ?? 0F 88 } + + condition: + hash.sha256(0, filesize) == "cf3a7d4285d65bf8688215407bce1b51d7c6b22497f09021f0fce31cbeb78986" or + 12 of them +} + +rule CarbonCommunicationLibrary_v3_62_ { + meta: + Author = "Intezer Analyze" + Reference = "https://apt-ecosystem.com" + + strings: + $block_0 = { 8B ?? ?? ?? ?? ?? ?? 48 ?? ?? ?? ?? ?? ?? 48 ?? ?? 83 ?? ?? 83 ?? ?? 89 ?? ?? ?? ?? ?? ?? 0F 8C } + $block_1 = { 8B ?? 48 ?? ?? ?? ?? ?? ?? 8D ?? ?? 4C ?? ?? 4C ?? ?? FF 1? ?? ?? ?? ?? 48 ?? ?? 48 ?? ?? 0F 84 } + $block_2 = { 48 ?? ?? FF 1? ?? ?? ?? ?? 49 ?? ?? 33 ?? 89 ?? ?? ?? FF 1? ?? ?? ?? ?? 49 ?? ?? 48 ?? ?? 0F 84 } + $block_3 = { 8D ?? ?? ?? 5? 8D ?? ?? ?? 5? 8D ?? ?? ?? 5? 68 ?? ?? ?? ?? E8 ?? ?? ?? ?? 83 ?? ?? 84 ?? 0F 84 } + $block_4 = { 5? 68 ?? ?? ?? ?? 6A ?? 5? 5? 68 ?? ?? ?? ?? FF 7? ?? FF 1? ?? ?? ?? ?? 83 ?? ?? 89 ?? ?? 0F 84 } + $block_5 = { 48 ?? ?? ?? E8 ?? ?? ?? ?? 48 ?? ?? ?? ?? 48 ?? ?? ?? E8 ?? ?? ?? ?? 45 ?? ?? 41 ?? ?? 0F 85 } + $block_6 = { 48 ?? ?? ?? ?? ?? ?? ?? 0F B7 ?? ?? ?? ?? ?? ?? 48 ?? ?? E8 ?? ?? ?? ?? 49 ?? ?? 48 ?? ?? 75 } + $block_7 = { 48 ?? ?? ?? ?? ?? ?? 4D ?? ?? 41 ?? ?? FF 1? ?? ?? ?? ?? 48 ?? ?? 48 ?? ?? ?? ?? ?? ?? 0F 84 } + $block_8 = { 41 ?? ?? 41 ?? ?? 41 ?? ?? 41 ?? ?? 3B ?? 0F 4C ?? 41 ?? ?? 2B ?? 83 ?? ?? 85 ?? 48 ?? ?? 7E } + $block_9 = { 41 ?? ?? 44 ?? ?? 41 ?? ?? 45 ?? ?? 41 ?? ?? 41 ?? ?? 0F 4C ?? 8B ?? 2B ?? 85 ?? 48 ?? ?? 7E } + $block_10 = { 44 ?? ?? ?? ?? 48 ?? ?? ?? ?? 48 ?? ?? ?? ?? ?? ?? ?? 45 ?? ?? 44 ?? ?? 48 ?? ?? ?? ?? 0F 85 } + $block_11 = { 48 ?? ?? ?? ?? 5? 5? 5? 41 ?? 41 ?? 41 ?? 41 ?? 48 ?? ?? ?? 48 ?? ?? 48 ?? ?? 83 ?? ?? 0F 8E } + $block_12 = { 48 ?? ?? ?? ?? ?? ?? BA ?? ?? ?? ?? FF 1? ?? ?? ?? ?? 40 ?? ?? ?? 85 ?? 0F 44 ?? 40 ?? ?? 74 } + $block_13 = { 48 ?? ?? ?? ?? ?? ?? 48 ?? ?? ?? ?? ?? ?? ?? 41 ?? ?? ?? ?? ?? E8 ?? ?? ?? ?? 40 ?? ?? 0F 84 } + $block_14 = { FF 7? ?? FF 1? ?? ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? FF 7? ?? FF 1? ?? ?? ?? ?? 85 ?? 5? 5? 0F 85 } + $block_15 = { FF 7? ?? FF 7? ?? FF 1? ?? ?? ?? ?? 5? 68 ?? ?? ?? ?? E8 ?? ?? ?? ?? 83 ?? ?? 39 ?? ?? 0F 84 } + $block_16 = { 48 ?? ?? ?? ?? ?? ?? E8 ?? ?? ?? ?? 48 ?? ?? ?? ?? ?? ?? ?? E8 ?? ?? ?? ?? 48 ?? ?? 0F 86 } + $block_17 = { 89 ?? ?? E8 ?? ?? ?? ?? 48 ?? ?? 99 83 ?? ?? 03 ?? 83 ?? ?? 2B ?? 49 ?? ?? 8D ?? ?? ?? 75 } + $block_18 = { 48 ?? ?? FF 1? ?? ?? ?? ?? 48 ?? ?? ?? ?? ?? ?? 48 ?? ?? FF 1? ?? ?? ?? ?? 49 ?? ?? 0F 85 } + $block_19 = { 8B ?? 33 ?? 45 ?? ?? 21 ?? ?? ?? 99 45 ?? ?? 45 ?? ?? 4D ?? ?? 41 ?? ?? 85 ?? 4C ?? ?? 7E } + $block_20 = { 8B ?? 99 F7 ?? 83 ?? ?? ?? 8A ?? 83 ?? ?? ?? 33 ?? 4? 89 ?? ?? 88 ?? ?? 85 ?? 89 ?? ?? 7E } + $block_21 = { 48 ?? ?? ?? ?? ?? ?? 4C ?? ?? BA ?? ?? ?? ?? FF 1? ?? ?? ?? ?? 48 ?? ?? 48 ?? ?? 0F 84 } + $block_22 = { 48 ?? ?? FF 1? ?? ?? ?? ?? 48 ?? ?? 33 ?? 89 ?? ?? ?? FF 1? ?? ?? ?? ?? 48 ?? ?? 0F 84 } + $block_23 = { 44 ?? ?? ?? ?? 48 ?? ?? ?? ?? 48 ?? ?? 41 ?? ?? ?? 49 ?? ?? E8 ?? ?? ?? ?? 3B ?? 0F 84 } + $block_24 = { 8B ?? ?? ?? ?? ?? 48 ?? ?? ?? 8D ?? ?? 41 ?? ?? ?? 3B ?? 48 ?? ?? ?? ?? ?? ?? ?? 0F 8C } + $block_25 = { 44 ?? ?? 4C ?? ?? 33 ?? 48 ?? ?? C7 ?? ?? ?? ?? ?? ?? ?? FF 1? ?? ?? ?? ?? 85 ?? 0F 85 } + $block_26 = { 4C ?? ?? ?? ?? ?? ?? 33 ?? 8B ?? FF 1? ?? ?? ?? ?? 48 ?? ?? 48 ?? ?? ?? ?? ?? ?? 0F 84 } + $block_27 = { 48 ?? ?? B8 ?? ?? ?? ?? 83 ?? ?? ?? 0F 45 ?? 48 ?? ?? ?? E8 ?? ?? ?? ?? 48 ?? ?? ?? 83 } + $block_28 = { 44 ?? ?? ?? 48 ?? ?? ?? ?? ?? ?? ?? 41 ?? ?? ?? 0F B6 ?? ?? 2B ?? ?? ?? ?? ?? ?? 75 } + $block_29 = { 48 ?? ?? FF 1? ?? ?? ?? ?? 48 ?? ?? 33 ?? 44 ?? ?? FF 1? ?? ?? ?? ?? 48 ?? ?? 0F 84 } + $block_30 = { 8B ?? ?? E8 ?? ?? ?? ?? 48 ?? ?? ?? ?? 8B ?? ?? 99 2B ?? 83 ?? ?? F7 ?? 8D ?? ?? EB } + $block_31 = { 5? FF 7? ?? E8 ?? ?? ?? ?? 5? 4? 5? FF 7? ?? 5? E8 ?? ?? ?? ?? 83 ?? ?? 3B ?? 0F 85 } + $block_32 = { 45 ?? ?? 49 ?? ?? 45 ?? ?? 49 ?? ?? 4C ?? ?? ?? ?? 48 ?? ?? ?? ?? 4C ?? ?? 0F 8E } + $block_33 = { 48 ?? ?? FF 1? ?? ?? ?? ?? 49 ?? ?? 33 ?? 8B ?? FF 1? ?? ?? ?? ?? 49 ?? ?? 0F 84 } + $block_34 = { 41 ?? ?? 48 ?? ?? 41 ?? ?? 3B ?? 0F 4C ?? FF 1? ?? ?? ?? ?? 48 ?? ?? 48 ?? ?? 74 } + $block_35 = { 49 ?? ?? 8B ?? 48 ?? ?? ?? 83 ?? ?? 0F A3 ?? ?? 41 ?? ?? 44 ?? ?? ?? 41 ?? ?? 79 } + $block_36 = { 48 ?? ?? ?? 45 ?? ?? 41 ?? ?? ?? ?? ?? 49 ?? ?? FF 1? ?? ?? ?? ?? 83 ?? ?? 0F 84 } + $block_37 = { 4C ?? ?? ?? ?? ?? ?? ?? BA ?? ?? ?? ?? FF 1? ?? ?? ?? ?? 49 ?? ?? 48 ?? ?? 0F 84 } + $block_38 = { 8B ?? ?? 89 ?? ?? 2B ?? ?? 03 ?? ?? 5? FF 1? ?? ?? ?? ?? 85 ?? 5? 89 ?? ?? 0F 84 } + $block_39 = { 0F B6 ?? 23 ?? ?? 8B ?? ?? D3 ?? 8B ?? ?? D2 ?? 08 ?? ?? FF 4? ?? 83 ?? ?? ?? 7C } + $block_40 = { 8B ?? ?? ?? ?? ?? BF ?? ?? ?? ?? 8D ?? ?? ?? ?? ?? 5? 5? FF D? 85 ?? 5? 5? 0F 84 } + $block_41 = { 48 ?? ?? ?? ?? ?? ?? E8 ?? ?? ?? ?? E8 ?? ?? ?? ?? 48 ?? ?? ?? ?? ?? ?? 0F B6 } + $block_42 = { 48 ?? ?? ?? 48 ?? ?? ?? ?? ?? ?? ?? 45 ?? ?? FF 1? ?? ?? ?? ?? 41 ?? ?? 0F 85 } + $block_43 = { 5? FF 1? ?? ?? ?? ?? 5? 5? 5? 89 ?? ?? ?? FF D? 3B ?? 5? 5? 89 ?? ?? ?? 0F 84 } + $block_44 = { FF 4? ?? 81 6? ?? ?? ?? ?? ?? FF 4? ?? 29 ?? ?? 4? 83 ?? ?? ?? 89 ?? ?? 0F 8F } + $block_45 = { 8B ?? ?? ?? ?? ?? ?? 8D ?? ?? FF 1? ?? ?? ?? ?? 48 ?? ?? 48 ?? ?? ?? 0F 84 } + $block_46 = { 48 ?? ?? ?? ?? 41 ?? ?? ?? ?? ?? 49 ?? ?? 45 ?? ?? 41 ?? ?? 48 ?? ?? 0F 84 } + $block_47 = { 48 ?? ?? ?? 48 ?? ?? ?? ?? 8B ?? ?? 89 ?? ?? ?? 8B ?? ?? 39 ?? ?? 0F 8F } + $block_48 = { 8B ?? ?? 33 ?? 89 ?? ?? 8B ?? ?? ?? ?? ?? 3B ?? 89 ?? ?? 89 ?? ?? 0F 8E } + $block_49 = { 5? 8B ?? 83 ?? ?? A1 ?? ?? ?? ?? 5? 5? 33 ?? 33 ?? 3B ?? 89 ?? ?? 0F 84 } + $block_50 = { FF 7? ?? 6A ?? FF 3? ?? ?? ?? ?? FF 1? ?? ?? ?? ?? 3B ?? 89 ?? ?? 0F 84 } + $block_51 = { E8 ?? ?? ?? ?? 99 B9 ?? ?? ?? ?? F7 ?? 5? FF 1? ?? ?? ?? ?? 83 ?? ?? 72 } + $block_52 = { 8B ?? ?? ?? ?? ?? ?? 45 ?? ?? 41 ?? ?? 69 ?? ?? ?? ?? ?? 3B ?? 0F 87 } + $block_53 = { 83 ?? ?? ?? ?? ?? ?? ?? 48 ?? ?? ?? ?? 48 ?? ?? ?? ?? ?? ?? ?? 0F 87 } + $block_54 = { 48 ?? ?? ?? ?? ?? ?? 48 ?? ?? ?? ?? FF 1? ?? ?? ?? ?? 48 ?? ?? 0F 84 } + $block_55 = { 48 ?? ?? ?? E8 ?? ?? ?? ?? 48 ?? ?? E8 ?? ?? ?? ?? 85 ?? 8B ?? 0F 85 } + $block_56 = { 8B ?? 99 F7 ?? ?? 33 ?? 89 ?? ?? 88 ?? ?? 89 ?? ?? 3B ?? 89 ?? ?? 7E } + $block_57 = { 8B ?? 99 B9 ?? ?? ?? ?? F7 ?? 8B ?? ?? ?? 8B ?? 2B ?? 89 ?? ?? ?? EB } + $block_58 = { 48 ?? ?? ?? ?? ?? ?? ?? 49 ?? ?? FF 1? ?? ?? ?? ?? 83 ?? ?? 0F 84 } + $block_59 = { 48 ?? ?? ?? ?? ?? ?? 33 ?? FF 1? ?? ?? ?? ?? 33 ?? 48 ?? ?? 0F 84 } + $block_60 = { 48 ?? ?? ?? ?? 83 ?? ?? 48 ?? ?? ?? ?? 0F 93 ?? 48 ?? ?? ?? 5? C3 } + $block_61 = { C6 ?? ?? ?? ?? ?? ?? ?? 0F B7 ?? ?? 66 ?? ?? ?? ?? 48 ?? ?? ?? 75 } + $block_62 = { 8B ?? ?? 03 ?? ?? 5? 99 2B ?? 5? 8B ?? ?? 8B ?? D1 ?? 3B ?? 5? 7D } + $block_63 = { 5? 8B ?? 83 ?? ?? 5? 33 ?? 5? 8B ?? ?? 39 ?? 89 ?? 89 ?? ?? 0F 84 } + $block_64 = { 5? 8B ?? 83 ?? ?? 5? 8B ?? ?? 33 ?? 39 ?? 5? 89 ?? 89 ?? ?? 0F 84 } + $block_65 = { 5? FF 1? ?? ?? ?? ?? 5? 5? 5? 89 ?? ?? ?? FF D? 85 ?? 5? 5? 0F 84 } + $block_66 = { 0F B7 ?? ?? ?? 5? FF 7? ?? ?? E8 ?? ?? ?? ?? 8B ?? 85 ?? 5? 5? 74 } + $block_67 = { 8B ?? ?? 83 ?? ?? 5? 8B ?? ?? 03 ?? E8 ?? ?? ?? ?? 85 ?? 5? 0F 84 } + $block_68 = { 48 ?? ?? ?? ?? ?? ?? 48 ?? ?? FF 1? ?? ?? ?? ?? 49 ?? ?? 0F 85 } + $block_69 = { 8B ?? ?? ?? 41 ?? ?? ?? ?? 0F BA ?? ?? 83 ?? ?? 41 ?? ?? 0F 8E } + $block_70 = { 48 ?? ?? ?? ?? 45 ?? ?? 45 ?? ?? FF 1? ?? ?? ?? ?? 85 ?? 0F 85 } + $block_71 = { 48 ?? ?? 44 ?? ?? ?? ?? ?? ?? ?? 4C ?? ?? ?? ?? ?? ?? ?? 0F 8F } + $block_72 = { 8B ?? 85 ?? 0F 44 ?? C1 ?? ?? 89 ?? ?? 48 ?? ?? ?? 48 ?? ?? 75 } + $block_73 = { 5? FF 1? ?? ?? ?? ?? 5? 5? 5? 89 ?? ?? FF D? 3B ?? 5? 5? 0F 84 } + $block_74 = { 8B ?? ?? ?? ?? ?? 33 ?? 3B ?? 89 ?? ?? 89 ?? ?? 89 ?? ?? 0F 8E } + $block_75 = { 8B ?? E8 ?? ?? ?? ?? 8B ?? ?? 2B ?? 4? 99 F7 ?? 8B ?? 03 ?? EB } + $block_76 = { E8 ?? ?? ?? ?? 99 B9 ?? ?? ?? ?? F7 ?? 5? FF 1? ?? ?? ?? ?? EB } + $block_77 = { 8B ?? ?? ?? 45 ?? ?? 41 ?? ?? 69 ?? ?? ?? ?? ?? 3B ?? 0F 87 } + $block_78 = { 8B ?? ?? 0F B6 ?? ?? 8D ?? ?? ?? ?? ?? ?? FF 0? 4? 3B ?? 7C } + $block_79 = { FF 3? ?? ?? ?? ?? FF 7? ?? E8 ?? ?? ?? ?? 85 ?? 5? 5? 0F 85 } + $block_80 = { FF 7? ?? 6A ?? FF 3? ?? ?? ?? ?? FF D? 3B ?? 89 ?? ?? 0F 84 } + $block_81 = { 68 ?? ?? ?? ?? FF 7? ?? FF 1? ?? ?? ?? ?? 85 ?? 5? 5? 0F 85 } + $block_82 = { 49 ?? ?? 33 ?? FF 1? ?? ?? ?? ?? 49 ?? ?? 48 ?? ?? 0F 85 } + $block_83 = { 49 ?? ?? 33 ?? FF 1? ?? ?? ?? ?? 49 ?? ?? 48 ?? ?? 0F 84 } + $block_84 = { B9 ?? ?? ?? ?? FF 1? ?? ?? ?? ?? 48 ?? ?? 48 ?? ?? 0F 84 } + $block_85 = { 48 ?? ?? ?? ?? FF 1? ?? ?? ?? ?? 48 ?? ?? 4C ?? ?? 0F 85 } + $block_86 = { 8B ?? ?? ?? ?? ?? ?? 99 83 ?? ?? 33 ?? 2B ?? 83 ?? ?? 75 } + $block_87 = { 48 ?? ?? ?? ?? ?? ?? 48 ?? ?? E8 ?? ?? ?? ?? 85 ?? 0F 85 } + $block_88 = { 5? 5? FF 3? ?? ?? ?? ?? FF D? 3B ?? A3 ?? ?? ?? ?? 0F 84 } + $block_89 = { E8 ?? ?? ?? ?? 99 B9 ?? ?? ?? ?? F7 ?? 8B ?? ?? 2B ?? 2B } + $block_90 = { 45 ?? ?? 48 ?? ?? 48 ?? ?? 41 ?? ?? 85 ?? 8B ?? 0F 85 } + $block_91 = { 44 ?? ?? 48 ?? ?? 48 ?? ?? 41 ?? ?? 85 ?? 8B ?? 0F 85 } + $block_92 = { 48 ?? ?? ?? ?? ?? ?? 33 ?? E8 ?? ?? ?? ?? 3A ?? 0F 84 } + $block_93 = { 49 ?? ?? ?? FF 1? ?? ?? ?? ?? 48 ?? ?? 48 ?? ?? 0F 84 } + $block_94 = { 49 ?? ?? FF 1? ?? ?? ?? ?? 48 ?? ?? 48 ?? ?? 0F 84 } + $block_95 = { 48 ?? ?? ?? ?? ?? ?? E8 ?? ?? ?? ?? 48 ?? ?? 0F 84 } + $block_96 = { 48 ?? ?? E8 ?? ?? ?? ?? 49 ?? ?? 48 ?? ?? 0F 85 } + $block_97 = { 0F B6 ?? ?? 49 ?? ?? 44 ?? ?? ?? ?? 48 ?? ?? 7C } + $block_98 = { 48 ?? ?? ?? ?? FF 1? ?? ?? ?? ?? 49 ?? ?? 0F 84 } + $block_99 = { 41 ?? ?? 99 83 ?? ?? 03 ?? 83 ?? ?? 2B ?? 0F 85 } + + condition: + hash.sha256(0, filesize) == "7a68a6357868f19f698dacd12dea49655f9651fb01e2de4042e8bbc97095c121" or + hash.sha256(0, filesize) == "c58d57f5ce9ca7689e6b71d3dcb48b2caf41a9e7105bb68bae113218869dd6a0" or + hash.sha256(0, filesize) == "8d20dd4433821eaeb1b2bec5911ba3633e656ca56ae50b75d35b2d52ea55b2cb" or + 12 of them +} + +rule Agent_BTZ { + meta: + Author = "Intezer Analyze" + Reference = "https://apt-ecosystem.com" + + strings: + $block_0 = { 66 ?? ?? ?? D1 ?? 66 ?? ?? ?? ?? ?? ?? ?? 66 ?? ?? 66 ?? ?? 83 ?? ?? 25 ?? ?? ?? ?? 0F B7 ?? 79 } + $block_1 = { 8B ?? ?? 8B ?? ?? 5? 68 ?? ?? ?? ?? 5? 5? E8 ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 83 ?? ?? 85 ?? 0F 84 } + $block_2 = { 83 ?? ?? 5? 5? 5? 5? 8B ?? 68 ?? ?? ?? ?? 6A ?? 5? E8 ?? ?? ?? ?? 8B ?? ?? 83 ?? ?? 85 ?? 0F 84 } + $block_3 = { 0F B7 ?? ?? ?? 5? 8D ?? ?? ?? ?? ?? ?? 5? A1 ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? FF D? 83 ?? ?? 4? EB } + $block_4 = { 2B ?? D1 ?? 8D ?? ?? 8B ?? E8 ?? ?? ?? ?? 5? B8 ?? ?? ?? ?? E8 ?? ?? ?? ?? 83 ?? ?? 85 ?? 0F 85 } + $block_5 = { 5? 68 ?? ?? ?? ?? 6A ?? 5? 6A ?? 68 ?? ?? ?? ?? 5? FF 1? ?? ?? ?? ?? 83 ?? ?? 89 ?? ?? ?? 0F 84 } + $block_6 = { E8 ?? ?? ?? ?? 33 ?? F7 ?? 8B ?? 03 ?? 9B 8B ?? ?? 64 ?? ?? ?? ?? ?? ?? 5? 5? 5? 8B ?? 5? C2 } + $block_7 = { 6A ?? 5? 5? E8 ?? ?? ?? ?? 8B ?? ?? 5? E8 ?? ?? ?? ?? 83 ?? ?? 8B ?? 81 F? ?? ?? ?? ?? 0F 8D } + $block_8 = { 8B ?? ?? ?? ?? ?? 8D ?? ?? ?? ?? ?? ?? 5? 8B ?? ?? 8D ?? ?? ?? ?? ?? ?? 5? FF D? 3B ?? 0F 84 } + $block_9 = { 8B ?? ?? 5? E8 ?? ?? ?? ?? 83 ?? ?? 8B ?? 89 ?? ?? 89 ?? ?? 8D ?? ?? 5? 5? FF D? 85 ?? 0F 85 } + $block_10 = { E8 ?? ?? ?? ?? 99 B9 ?? ?? ?? ?? F7 ?? 80 C? ?? 88 ?? ?? ?? ?? ?? ?? 4? 81 F? ?? ?? ?? ?? 72 } + $block_11 = { 3B ?? 89 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? C6 ?? ?? ?? ?? C6 ?? ?? ?? ?? C6 ?? ?? ?? ?? 0F 84 } + $block_12 = { 66 ?? ?? ?? ?? ?? ?? ?? 66 ?? ?? ?? 66 ?? ?? 66 ?? ?? 83 ?? ?? 25 ?? ?? ?? ?? 0F B7 ?? 79 } + $block_13 = { 0F B7 ?? 8B ?? 66 ?? ?? 66 ?? ?? 83 ?? ?? 66 ?? ?? C1 ?? ?? 83 ?? ?? 83 ?? ?? 0F B7 ?? 75 } + $block_14 = { 6A ?? 8D ?? ?? 5? 8D ?? ?? ?? ?? ?? 5? A1 ?? ?? ?? ?? 8B ?? ?? FF D? 83 ?? ?? 85 ?? 0F 85 } + $block_15 = { BF ?? ?? ?? ?? 8D ?? ?? ?? ?? ?? 8D ?? ?? E8 ?? ?? ?? ?? C6 ?? ?? ?? 8B ?? ?? 85 ?? 0F 84 } + $block_16 = { 8D ?? ?? 6A ?? 5? C7 ?? ?? ?? ?? ?? ?? FF D? 5? 8B ?? FF 1? ?? ?? ?? ?? 33 ?? 3B ?? 0F 84 } + $block_17 = { E8 ?? ?? ?? ?? 8B ?? 8B ?? E8 ?? ?? ?? ?? E8 ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 83 ?? ?? 0F 85 } + $block_18 = { 8B ?? ?? ?? ?? ?? 8B ?? ?? 81 E? ?? ?? ?? ?? 5? 8D ?? ?? ?? 5? 5? FF D? 83 ?? ?? 0F 84 } + $block_19 = { 89 ?? ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? 3B ?? 0F 84 } + $block_20 = { 8D ?? ?? ?? ?? ?? 5? 5? 8B ?? ?? ?? ?? ?? 8B ?? ?? FF D? 83 ?? ?? 89 ?? ?? 85 ?? 0F 85 } + $block_21 = { 8B ?? ?? 5? E8 ?? ?? ?? ?? 83 ?? ?? 8D ?? ?? 8B ?? 8B ?? ?? 5? 5? FF 5? ?? 85 ?? 0F 85 } + $block_22 = { 8B ?? ?? 5? FF 1? ?? ?? ?? ?? 8B ?? ?? 68 ?? ?? ?? ?? 5? FF 1? ?? ?? ?? ?? 85 ?? 0F 85 } + $block_23 = { 6A ?? 8D ?? ?? ?? ?? ?? 5? A1 ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? FF D? 83 ?? ?? 85 ?? 0F 84 } + $block_24 = { 8D ?? ?? ?? ?? ?? 5? 8B ?? ?? ?? ?? ?? 5? 8B ?? ?? ?? ?? ?? 8B ?? ?? FF D? 85 ?? 0F 85 } + $block_25 = { BA ?? ?? ?? ?? 66 ?? ?? ?? B8 ?? ?? ?? ?? 66 ?? ?? ?? 33 ?? 66 ?? ?? ?? 39 ?? ?? 0F 85 } + $block_26 = { E8 ?? ?? ?? ?? 8B ?? 8B ?? 0F AF ?? 4? 33 ?? F7 ?? 4? 01 ?? ?? ?? 81 F? ?? ?? ?? ?? 72 } + $block_27 = { 0F B7 ?? ?? ?? ?? ?? ?? 0F B7 ?? ?? ?? 0F B7 ?? 33 ?? 5? C1 ?? ?? 5? 0B ?? 5? 5? C3 } + $block_28 = { 0F B6 ?? ?? 0F B6 ?? ?? 83 ?? ?? 03 ?? 03 ?? C1 ?? ?? 0B ?? 0F BE ?? ?? ?? ?? ?? EB } + $block_29 = { 8D ?? ?? 8B ?? ?? 8D ?? ?? 8D ?? ?? 8D ?? ?? 8B ?? ?? ?? C1 ?? ?? 03 ?? 3B ?? 0F 8C } + $block_30 = { 8B ?? ?? 8B ?? E8 ?? ?? ?? ?? 5? B8 ?? ?? ?? ?? E8 ?? ?? ?? ?? 83 ?? ?? 85 ?? 0F 85 } + $block_31 = { 66 ?? ?? ?? ?? ?? ?? ?? 66 ?? ?? 66 ?? ?? 0F B7 ?? 0F B7 ?? C1 ?? ?? 0B ?? 5? C3 } + $block_32 = { 33 ?? 0F B7 ?? 8B ?? C1 ?? ?? 0B ?? B9 ?? ?? ?? ?? BF ?? ?? ?? ?? F3 ?? 33 ?? EB } + $block_33 = { 8D ?? ?? ?? ?? ?? ?? 68 ?? ?? ?? ?? 5? E8 ?? ?? ?? ?? 8B ?? 83 ?? ?? 85 ?? 0F 84 } + $block_34 = { 68 ?? ?? ?? ?? 89 ?? ?? ?? 89 ?? ?? ?? FF 1? ?? ?? ?? ?? 85 ?? 89 ?? ?? ?? 0F 84 } + $block_35 = { 0F B7 ?? ?? C1 ?? ?? 0F B7 ?? ?? 0B ?? 8B ?? ?? 89 ?? ?? ?? ?? ?? 80 3? ?? 0F 85 } + $block_36 = { 88 ?? 83 ?? ?? 6A ?? 5? E8 ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 83 ?? ?? 3B ?? 0F 84 } + $block_37 = { E8 ?? ?? ?? ?? 8B ?? 8B ?? 0F AF ?? 4? 99 F7 ?? 4? 03 ?? 81 F? ?? ?? ?? ?? 7C } + $block_38 = { C6 ?? ?? ?? 5? 5? 5? E8 ?? ?? ?? ?? 83 ?? ?? C1 ?? ?? 8D ?? ?? 83 ?? ?? 0F 82 } + $block_39 = { 8D ?? ?? 5? 5? 8B ?? ?? ?? ?? ?? 8B ?? ?? FF D? 83 ?? ?? 89 ?? ?? 85 ?? 0F 85 } + $block_40 = { 8D ?? ?? 5? 5? 8B ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? FF D? 89 ?? ?? 85 ?? 0F 84 } + $block_41 = { 8D ?? ?? ?? ?? ?? E8 ?? ?? ?? ?? 8B ?? 5? E8 ?? ?? ?? ?? 83 ?? ?? 85 ?? 0F 84 } + $block_42 = { C6 ?? ?? ?? 33 ?? 89 ?? ?? 89 ?? ?? 88 ?? ?? 8B ?? 8B ?? D3 ?? 83 ?? ?? 0F 84 } + $block_43 = { 0F BE ?? 33 ?? 81 E? ?? ?? ?? ?? C1 ?? ?? 33 ?? ?? ?? ?? ?? ?? 4? 4? 85 ?? 75 } + $block_44 = { 8B ?? ?? 5? E8 ?? ?? ?? ?? 83 ?? ?? 8B ?? 8D ?? ?? 5? 5? FF D? 85 ?? 0F 85 } + $block_45 = { 8B ?? ?? 5? 8B ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? FF D? 83 ?? ?? 85 ?? 0F 84 } + $block_46 = { 8D ?? ?? ?? ?? ?? 5? E8 ?? ?? ?? ?? 83 ?? ?? 89 ?? ?? ?? ?? ?? 3B ?? 0F 85 } + $block_47 = { E8 ?? ?? ?? ?? 68 ?? ?? ?? ?? 8B ?? FF 1? ?? ?? ?? ?? 3D ?? ?? ?? ?? 0F 8D } + $block_48 = { 0F B7 ?? ?? ?? ?? ?? ?? 66 ?? ?? 8D ?? ?? 81 E? ?? ?? ?? ?? 0F B7 ?? 79 } + $block_49 = { 85 ?? C6 ?? ?? ?? ?? C6 ?? ?? ?? ?? C6 ?? ?? ?? ?? C6 ?? ?? ?? ?? 0F 84 } + $block_50 = { 81 E? ?? ?? ?? ?? 5? 5? 33 ?? 5? 68 ?? ?? ?? ?? 39 ?? ?? ?? ?? ?? 0F 85 } + $block_51 = { 5? 5? FF 1? ?? ?? ?? ?? 8B ?? ?? ?? 33 ?? 8D ?? ?? ?? 0F AF ?? 85 ?? 76 } + $block_52 = { 8D ?? ?? 5? 5? A1 ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? FF D? 8B ?? 85 ?? 0F 84 } + $block_53 = { 5? 8B ?? C1 ?? ?? 89 ?? ?? 0F B6 ?? ?? ?? 8B ?? 81 E? ?? ?? ?? ?? 79 } + $block_54 = { 66 ?? ?? 66 ?? ?? 0F B7 ?? 0F B7 ?? 0F B7 ?? C1 ?? ?? 0B ?? 5? 5? C3 } + $block_55 = { 68 ?? ?? ?? ?? 6A ?? 5? E8 ?? ?? ?? ?? 8B ?? ?? 83 ?? ?? 85 ?? 0F 84 } + $block_56 = { 8D ?? ?? 5? 5? 8B ?? ?? ?? ?? ?? 8B ?? ?? FF D? 83 ?? ?? 85 ?? 0F 85 } + $block_57 = { 8D ?? ?? ?? ?? ?? 5? 6A ?? 8B ?? ?? ?? ?? ?? 5? FF D? 83 ?? ?? 0F 85 } + $block_58 = { DF ?? ?? ?? DF ?? ?? ?? D8 ?? DC ?? ?? ?? ?? ?? DF ?? F6 ?? ?? 0F 85 } + $block_59 = { BA ?? ?? ?? ?? D3 ?? 8B ?? ?? C1 ?? ?? 0F B7 ?? ?? 23 ?? 3B ?? 75 } + $block_60 = { 8D ?? ?? 5? 8B ?? 5? E8 ?? ?? ?? ?? 83 ?? ?? 89 ?? ?? 3B ?? 0F 84 } + $block_61 = { 5? 5? 8B ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? FF D? 8B ?? 3B ?? 0F 84 } + $block_62 = { 8B ?? ?? ?? ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? 85 ?? 0F 84 } + $block_63 = { 88 ?? 83 ?? ?? 6A ?? 5? E8 ?? ?? ?? ?? 8B ?? 83 ?? ?? 3B ?? 0F 84 } + $block_64 = { 8A ?? ?? 0F BE ?? 34 ?? 03 ?? 88 ?? ?? 0F BE ?? 03 ?? 4? 3B ?? 72 } + $block_65 = { 8B ?? ?? ?? 83 ?? ?? C1 ?? ?? 8D ?? ?? 89 ?? ?? ?? 3B ?? 0F 86 } + $block_66 = { 83 ?? ?? 6A ?? 5? E8 ?? ?? ?? ?? 8B ?? 83 ?? ?? 85 ?? 0F 84 } + $block_67 = { 8D ?? ?? ?? ?? ?? ?? 5? E8 ?? ?? ?? ?? 83 ?? ?? 85 ?? 0F 84 } + $block_68 = { C7 ?? ?? ?? ?? ?? ?? ?? 89 ?? ?? ?? 88 ?? ?? ?? 3B ?? 0F 85 } + $block_69 = { 8B ?? ?? ?? ?? ?? 8D ?? ?? 5? 6A ?? 5? FF D? 83 ?? ?? 0F 85 } + $block_70 = { 68 ?? ?? ?? ?? 5? E8 ?? ?? ?? ?? 8B ?? 83 ?? ?? 85 ?? 0F 85 } + $block_71 = { 8B ?? ?? ?? ?? ?? 8B ?? ?? 5? FF 1? ?? ?? ?? ?? 85 ?? 0F 8E } + $block_72 = { 8B ?? ?? ?? 8D ?? ?? ?? 5? 5? 5? E8 ?? ?? ?? ?? 85 ?? 0F 84 } + $block_73 = { 5? 8B ?? ?? ?? ?? ?? 8B ?? ?? FF D? 39 ?? ?? ?? ?? ?? 0F 85 } + $block_74 = { 68 ?? ?? ?? ?? 5? E8 ?? ?? ?? ?? 83 ?? ?? 8B ?? 85 ?? 0F 85 } + $block_75 = { C1 ?? ?? C7 ?? ?? ?? ?? ?? ?? ?? 89 ?? ?? ?? 85 ?? 0F 86 } + $block_76 = { 8D ?? ?? ?? ?? ?? ?? 5? FF 1? ?? ?? ?? ?? 83 ?? ?? 0F 85 } + $block_77 = { 8B ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? 85 ?? 0F 84 } + $block_78 = { 68 ?? ?? ?? ?? 5? FF 1? ?? ?? ?? ?? 85 ?? 89 ?? ?? 0F 84 } + $block_79 = { 8D ?? ?? ?? ?? ?? ?? 5? FF 1? ?? ?? ?? ?? 83 ?? ?? 0F 84 } + $block_80 = { 5? A1 ?? ?? ?? ?? 8B ?? ?? FF D? 39 ?? ?? ?? ?? ?? 0F 85 } + $block_81 = { 68 ?? ?? ?? ?? 5? FF 1? ?? ?? ?? ?? 8B ?? 85 ?? 0F 84 } + $block_82 = { 68 ?? ?? ?? ?? 5? E8 ?? ?? ?? ?? 83 ?? ?? 85 ?? 0F 85 } + $block_83 = { 4? C1 ?? ?? 8D ?? ?? ?? 0F B7 ?? 33 ?? 66 ?? ?? 0F 83 } + $block_84 = { 8B ?? ?? 5? 5? 33 ?? 5? E8 ?? ?? ?? ?? 83 ?? ?? C9 C3 } + $block_85 = { 4? 0F B7 ?? 0F B7 ?? 0F B7 ?? ?? ?? BA ?? ?? ?? ?? 8D } + $block_86 = { 0F B7 ?? 66 ?? ?? ?? 66 ?? ?? 0F B7 ?? 66 ?? ?? 73 } + $block_87 = { 8B ?? ?? ?? 83 ?? ?? 89 ?? ?? ?? 3B ?? ?? ?? 0F 82 } + $block_88 = { 8B ?? ?? ?? ?? ?? ?? 8D ?? ?? 3D ?? ?? ?? ?? 0F 86 } + $block_89 = { 0F B6 ?? 83 ?? ?? C1 ?? ?? 4? 0F AF ?? 4? 85 ?? 75 } + $block_90 = { 83 ?? ?? 5? 8B ?? ?? ?? E8 ?? ?? ?? ?? 85 ?? 0F 85 } + $block_91 = { 5? 6A ?? E8 ?? ?? ?? ?? 8B ?? 83 ?? ?? 85 ?? 0F 84 } + $block_92 = { 6A ?? E8 ?? ?? ?? ?? 8B ?? 83 ?? ?? 85 ?? 0F 84 } + $block_93 = { 4? 99 2B ?? D1 ?? 8D ?? ?? 81 E? ?? ?? ?? ?? 79 } + $block_94 = { 4? 0F B7 ?? 0F B7 ?? C1 ?? ?? 33 ?? 85 ?? 0F 8E } + $block_95 = { 8B ?? ?? ?? ?? ?? ?? 0F BF ?? 66 ?? ?? ?? ?? 77 } + $block_96 = { 8D ?? ?? ?? ?? ?? ?? 6A ?? 5? FF D? 85 ?? 0F 84 } + $block_97 = { 8B ?? ?? ?? D1 ?? 8D ?? ?? ?? 8B ?? 3B ?? 0F 83 } + $block_98 = { C6 ?? ?? ?? ?? ?? ?? 80 B? ?? ?? ?? ?? ?? 0F 85 } + $block_99 = { 8D ?? ?? ?? 5? 5? FF 1? ?? ?? ?? ?? 3B ?? 0F 84 } + + condition: + hash.sha256(0, filesize) == "6ad78f069c3619d0d18eef8281219679f538cfe0c1b6d40b244beb359762cf96" or + hash.sha256(0, filesize) == "6798b3278ae926b0145ee342ee9840d0b2e6ba11ff995c2bc84d3c6eb3e55ff4" or + hash.sha256(0, filesize) == "bae62f7f96c4cc300ec685f42eb451388cf50a13aa624b3f2a019d071fddaeb1" or + hash.sha256(0, filesize) == "49c5c798689d4a54e5b7099b647b0596fb96b996a437bb8241b5dd76e974c24e" or + hash.sha256(0, filesize) == "a59222bf08fb3ef323b813c4f884b995c8831210d7f947f6d8778d587ce76045" or + hash.sha256(0, filesize) == "cb993d5b90d9a5bd569177ee60e71e3b4639019f46ddd2a9fb8e890565335f66" or + hash.sha256(0, filesize) == "cf5e73c4517c8547732f01a6fd614f9ad1aa628b9fc6a82d3b2f222f7b2a0433" or + hash.sha256(0, filesize) == "03479db12f2d1948193ee22cbea216705d5f3dba6416c5d1e2b3aab3f269d4c1" or + hash.sha256(0, filesize) == "fe73c1b35c624fb62c24fcd8c251723337eed4bbc8fa8bc12d2df621e8908604" or + hash.sha256(0, filesize) == "9e9fbc3085a126405185e7e028889a39640e3c924d2384b2428454fd475a1860" or + hash.sha256(0, filesize) == "80ed95992ad658a48480a895b1d07bd786bbdabc04e91c060896e3a06647c191" or + hash.sha256(0, filesize) == "15580d72045b0806d99cde386e42bf3f078746c4194b0932efc6fcdb9104898d" or + hash.sha256(0, filesize) == "05dc66031e4276bc20010743d8cd0ee36e4064cf087b6b4617fefb86a4702873" or + hash.sha256(0, filesize) == "89db8a69ff030600f26d5c875785d20f15d45331d007733be9a2422261d16cea" or + hash.sha256(0, filesize) == "69690f609140db503463daf6a3699f1bf3e2a5a6049cefe7e6437f762040e548" or + hash.sha256(0, filesize) == "d49f2aa4db1972b5e6a9ab81a1fb28eb43cf5c2a714a5d6caddd91fcbfc2e332" or + hash.sha256(0, filesize) == "c0de0fec34da3e9ca92c47bfadf723ab75c90fe02ceb3455d74155badfcb3380" or + hash.sha256(0, filesize) == "d401aec6175aa34c773dee269cb881d00a8868b75a8fd6437d3b86cc2db8180d" or + hash.sha256(0, filesize) == "636106ef35adeddfb60763b0316d67d11ef6845fcc6879adc23465cb20ed97c5" or + hash.sha256(0, filesize) == "e88970fa4892150441c1616028982fe63c875f149cd490c3c910a1c091d3ad49" or + hash.sha256(0, filesize) == "7c08e72dc458191de61d5245ecfdc9e6b7c1f1f0ad8e4a7c04ab114503f88114" or + hash.sha256(0, filesize) == "fd3829e670125d22c74ce0c989808f6bb1da32e4645d6ae3de672678d2060101" or + hash.sha256(0, filesize) == "730b196431d4953cd5e3c4468637429a05b350f7d508c3ec0a982bec4c60d5ab" or + hash.sha256(0, filesize) == "63658c331ac38322935d6dcde8bd892aa99084a0cea91bbef3b7789b02bf8d0e" or + hash.sha256(0, filesize) == "0e3f899dcb2328fa8b2be2c4fcc3fbe5f62d0f8728f23e306ebec1c4c94c9180" or + hash.sha256(0, filesize) == "211ebdbf5821f69f40bc8d37c1bd7c52e6cae42126d48ffbcb09c046054ae2d1" or + hash.sha256(0, filesize) == "df5cc17e0efb2e4c2a85494a1f60672f3191820ef2caea81bcb031970c3f412e" or + hash.sha256(0, filesize) == "3a6c1aa367476ea1a6809814cf534e094035f88ac5fb759398b783f3929a0db2" or + hash.sha256(0, filesize) == "1cc5a57c19dc68342d1676fe759ab509df3eeff797cdbbf43e3c16c305ab162c" or + hash.sha256(0, filesize) == "303de69b0bc23556fc5dd63a184e5f59556b72fa1f6e3967584f4f18e2a604ec" or + hash.sha256(0, filesize) == "529d08b500a7687bb973c757fbfbc2c2790fbee52f060ca0575b8caf57ab0bf1" or + 12 of them +} + +rule Kazuar { + meta: + Author = "Intezer Analyze" + Reference = "https://apt-ecosystem.com" + + strings: + $block_0 = { 89 ?? B8 ?? ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? E8 ?? ?? ?? ?? 89 ?? ?? B8 ?? ?? ?? ?? 8D ?? ?? E8 ?? ?? ?? ?? 89 ?? B8 ?? ?? ?? ?? E8 ?? ?? ?? ?? 8B ?? ?? 89 ?? ?? ?? 89 ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? ?? 89 ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? 89 ?? ?? ?? FF D? 83 ?? ?? 3D ?? ?? ?? ?? 0F 85 } + $block_1 = { 4? C7 ?? ?? ?? ?? ?? ?? ?? 4? 8D ?? ?? ?? ?? ?? E8 ?? ?? ?? ?? 4? 8D ?? ?? ?? ?? ?? 4? 8D ?? ?? ?? 4? 89 ?? E8 ?? ?? ?? ?? 4? 8D ?? ?? ?? ?? ?? 4? 89 ?? E8 ?? ?? ?? ?? 31 ?? 4? 89 ?? ?? ?? 4? 89 ?? ?? ?? 4? 89 ?? 4? 31 ?? 4? FF D? 3D ?? ?? ?? ?? 89 ?? 0F 85 } + $block_2 = { 8B ?? ?? 4? 01 ?? 4? 01 ?? 0F B7 ?? ?? 8B ?? ?? 4? 8D ?? ?? 8B ?? ?? 4? 01 ?? EB } + $block_3 = { C7 ?? ?? ?? ?? ?? ?? ?? 89 ?? ?? FF 1? ?? ?? ?? ?? 85 ?? 5? 5? 0F 94 } + $block_4 = { E8 ?? ?? ?? ?? 0F BE ?? 4? FF C? 4? 31 ?? 4? 69 ?? ?? ?? ?? ?? EB } + $block_5 = { E8 ?? ?? ?? ?? 0F B7 ?? 4? FF C? 4? 31 ?? 4? 69 ?? ?? ?? ?? ?? EB } + + condition: + hash.sha256(0, filesize) == "49e0356272b9f8a30ec24a6e271f94e11668d7a48704bb9aed64f61b4b9b343c" or + hash.sha256(0, filesize) == "743b3347dc86b4a4aa6510648076eeca9eec0ff23c1294b3931263c990bcb5e6" or + 6 of them +} + +rule OutlookBackdoor { + meta: + Author = "Intezer Analyze" + Reference = "https://apt-ecosystem.com" + + strings: + $block_0 = { 0F B6 ?? ?? 8B ?? C6 ?? ?? C1 ?? ?? 8A ?? ?? ?? ?? ?? 4? 88 ?? 4? 83 ?? ?? 8A ?? ?? ?? ?? ?? EB } + $block_1 = { 8B ?? ?? ?? 8D ?? ?? ?? 5? 8D ?? ?? ?? 5? 8B ?? ?? ?? E8 ?? ?? ?? ?? 8B ?? 39 ?? ?? ?? 0F 84 } + $block_2 = { B8 ?? ?? ?? ?? E8 ?? ?? ?? ?? 83 ?? ?? 8B ?? ?? 83 ?? ?? ?? 5? 5? 0F B7 ?? 5? 66 ?? ?? 0F 84 } + $block_3 = { 8D ?? ?? ?? 5? 68 ?? ?? ?? ?? 5? 5? 5? 6A ?? 68 ?? ?? ?? ?? 5? FF 1? ?? ?? ?? ?? 3B ?? 0F 85 } + $block_4 = { 5? 83 ?? ?? B8 ?? ?? ?? ?? E8 ?? ?? ?? ?? 81 E? ?? ?? ?? ?? 5? 33 ?? 39 ?? ?? ?? ?? ?? 0F 84 } + $block_5 = { B8 ?? ?? ?? ?? E8 ?? ?? ?? ?? 0F B6 ?? ?? 83 ?? ?? 5? F7 ?? 5? 1B ?? 23 ?? ?? 5? 8B ?? 75 } + $block_6 = { 5? FF 1? ?? ?? ?? ?? FF 7? ?? E8 ?? ?? ?? ?? 5? 8B ?? ?? 5? 64 ?? ?? ?? ?? ?? ?? 5? C9 C2 } + $block_7 = { 8B ?? 8D ?? ?? ?? 5? 33 ?? 5? C7 ?? ?? ?? ?? ?? ?? ?? 8B ?? 5? FF 5? ?? 39 ?? ?? ?? 0F 84 } + $block_8 = { 68 ?? ?? ?? ?? 68 ?? ?? ?? ?? E8 ?? ?? ?? ?? 5? 5? 8B ?? ?? 5? 64 ?? ?? ?? ?? ?? ?? C9 C2 } + $block_9 = { FF 7? ?? 8B ?? ?? FF 7? ?? 5? E8 ?? ?? ?? ?? 33 ?? BF ?? ?? ?? ?? AB AB AB 83 ?? ?? AB 33 } + $block_10 = { 68 ?? ?? ?? ?? FF 7? ?? FF D? 83 ?? ?? ?? 89 ?? ?? 8D ?? ?? 5? 6A ?? FF D? 83 ?? ?? 0F 85 } + $block_11 = { 5? 6A ?? 8D ?? ?? E8 ?? ?? ?? ?? 8B ?? ?? 8B ?? 5? 5? 64 ?? ?? ?? ?? ?? ?? 5? C9 C3 } + $block_12 = { 6A ?? 6A ?? E8 ?? ?? ?? ?? 8B ?? ?? 2B ?? ?? 6A ?? 99 5? F7 ?? FF 7? ?? 3B ?? 0F 83 } + $block_13 = { 8D ?? ?? 5? 88 ?? ?? E8 ?? ?? ?? ?? 8B ?? ?? 8B ?? 5? 5? 64 ?? ?? ?? ?? ?? ?? C9 C2 } + $block_14 = { 0F B6 ?? ?? C1 ?? ?? 0B ?? 8A ?? ?? ?? ?? ?? 88 ?? 4? FF 4? ?? 80 E? ?? C0 ?? ?? EB } + $block_15 = { 6A ?? 6A ?? 8D ?? ?? E8 ?? ?? ?? ?? 8B ?? ?? 8B ?? ?? 5? 64 ?? ?? ?? ?? ?? ?? C9 C2 } + $block_16 = { 6A ?? 5? 8D ?? ?? E8 ?? ?? ?? ?? 8B ?? ?? 8B ?? ?? 5? 5? 64 ?? ?? ?? ?? ?? ?? C9 C2 } + $block_17 = { 5? 33 ?? 33 ?? 38 ?? ?? 5? 0F 94 ?? 5? 6A ?? FF 7? ?? FF 1? ?? ?? ?? ?? 38 ?? ?? 75 } + $block_18 = { 8B ?? ?? 5? 68 ?? ?? ?? ?? FF 7? ?? 5? E8 ?? ?? ?? ?? 83 ?? ?? 5? 5? 83 ?? ?? C9 C2 } + $block_19 = { B8 ?? ?? ?? ?? E8 ?? ?? ?? ?? 8B ?? ?? 5? 5? 5? 64 ?? ?? ?? ?? ?? ?? 83 ?? ?? C9 C2 } + $block_20 = { 5? 8B ?? 83 ?? ?? 5? 5? BE ?? ?? ?? ?? 8D ?? ?? A5 A5 A5 A4 33 ?? 5? 89 ?? ?? 5? } + $block_21 = { 0F B6 ?? ?? 8B ?? C1 ?? ?? 0B ?? 8A ?? ?? ?? ?? ?? 88 ?? 4? FF 4? ?? 3B ?? ?? 73 } + $block_22 = { 8D ?? ?? ?? ?? ?? ?? 5? FF B? ?? ?? ?? ?? ?? FF 1? ?? ?? ?? ?? 33 ?? 85 ?? 0F 85 } + $block_23 = { 6A ?? 6A ?? 8D ?? ?? E8 ?? ?? ?? ?? 8B ?? ?? 5? 5? 5? 64 ?? ?? ?? ?? ?? ?? C9 C2 } + $block_24 = { 0F B7 ?? 8B ?? 66 ?? ?? 66 ?? ?? 83 ?? ?? C1 ?? ?? 66 ?? ?? 4? 4? 4? 0F B7 ?? 75 } + $block_25 = { B8 ?? ?? ?? ?? E8 ?? ?? ?? ?? A1 ?? ?? ?? ?? 81 E? ?? ?? ?? ?? 4? 5? 5? 5? 0F 84 } + $block_26 = { 8B ?? ?? ?? 8B ?? 8D ?? ?? ?? 5? 68 ?? ?? ?? ?? 5? FF 9? ?? ?? ?? ?? 85 ?? 0F 85 } + $block_27 = { 6A ?? 6A ?? 8D ?? ?? E8 ?? ?? ?? ?? 8B ?? ?? 5? 5? 5? 64 ?? ?? ?? ?? ?? ?? C9 C3 } + $block_28 = { 8B ?? ?? ?? 8B ?? 6A ?? FF 1? 8B ?? FF 4? ?? ?? 8B ?? FF 5? ?? 39 ?? ?? ?? 0F 82 } + $block_29 = { 01 ?? ?? ?? 8B ?? ?? ?? 0F B6 ?? 8B ?? 29 ?? ?? ?? 5? 8B ?? FF 5? ?? 84 ?? 74 } + $block_30 = { 6A ?? 5? 5? FF 7? ?? 8D ?? ?? ?? E8 ?? ?? ?? ?? 8B ?? ?? ?? 2B ?? ?? ?? 0F 84 } + $block_31 = { 8B ?? ?? ?? 0F B6 ?? ?? 33 ?? 5? 4? 8D ?? ?? ?? E8 ?? ?? ?? ?? 8B ?? ?? ?? 8B } + $block_32 = { 89 ?? ?? ?? 8D ?? ?? 99 6A ?? 5? F7 ?? 8B ?? ?? ?? 8D ?? ?? C1 ?? ?? 3B ?? 7E } + $block_33 = { 8D ?? ?? E8 ?? ?? ?? ?? 8B ?? ?? 8B ?? ?? 5? 5? 64 ?? ?? ?? ?? ?? ?? 5? C9 C3 } + $block_34 = { 6A ?? 8D ?? ?? E8 ?? ?? ?? ?? 8B ?? ?? 5? 5? 64 ?? ?? ?? ?? ?? ?? 5? C9 C3 } + $block_35 = { 6A ?? 5? 2B ?? 8B ?? ?? 2B ?? 01 ?? ?? C6 ?? ?? 83 ?? ?? 4? 39 ?? ?? 0F 8D } + $block_36 = { B8 ?? ?? ?? ?? E8 ?? ?? ?? ?? 83 ?? ?? 5? 33 ?? 83 ?? ?? ?? 89 ?? ?? 0F 85 } + $block_37 = { 0F B7 ?? ?? ?? ?? ?? ?? 0F B7 ?? 33 ?? 5? 0F B7 ?? C1 ?? ?? 5? 0B ?? 5? C3 } + $block_38 = { 88 ?? 83 ?? ?? 6A ?? 5? 89 ?? ?? E8 ?? ?? ?? ?? 5? 5? 89 ?? ?? 3B ?? 0F 84 } + $block_39 = { 8D ?? ?? ?? ?? ?? 5? 33 ?? E8 ?? ?? ?? ?? 66 ?? 0F B7 ?? 66 ?? ?? ?? 5? 7E } + $block_40 = { FF 7? ?? E8 ?? ?? ?? ?? 8B ?? 5? 8D ?? ?? 5? 5? 89 ?? ?? FF D? 85 ?? 0F 85 } + $block_41 = { 5? 8B ?? 5? 8B ?? C1 ?? ?? 89 ?? ?? 0F B6 ?? ?? 8B ?? 81 E? ?? ?? ?? ?? 79 } + $block_42 = { 5? FF 1? ?? ?? ?? ?? 8B ?? ?? 5? 8B ?? 5? 5? 64 ?? ?? ?? ?? ?? ?? C9 C2 } + $block_43 = { 66 ?? ?? ?? 66 ?? ?? 0F B7 ?? 0F B7 ?? ?? 0F B7 ?? C1 ?? ?? 0B ?? C9 C3 } + $block_44 = { 8B ?? ?? 8A ?? ?? ?? 88 ?? ?? 0F BE ?? 5? E8 ?? ?? ?? ?? 5? 85 ?? 74 } + $block_45 = { 5? 8D ?? ?? ?? ?? ?? 5? E8 ?? ?? ?? ?? 33 ?? 89 ?? ?? 39 ?? ?? 0F 84 } + $block_46 = { 0F 94 ?? 22 ?? 88 ?? ?? C6 ?? ?? ?? C6 ?? ?? ?? BB ?? ?? ?? ?? EB } + $block_47 = { 89 ?? ?? ?? 8D ?? ?? 99 6A ?? 5? F7 ?? 8D ?? ?? C1 ?? ?? 3B ?? 7E } + $block_48 = { 8D ?? ?? E8 ?? ?? ?? ?? 8B ?? ?? 5? 5? 64 ?? ?? ?? ?? ?? ?? C9 C2 } + $block_49 = { 8B ?? ?? 33 ?? 4? D3 ?? 8B ?? C1 ?? ?? 0F B7 ?? ?? 23 ?? 3B ?? 75 } + $block_50 = { FF 7? ?? FF 1? ?? ?? ?? ?? 8B ?? ?? 64 ?? ?? ?? ?? ?? ?? C9 C2 } + $block_51 = { 5? FF 1? ?? ?? ?? ?? 8B ?? ?? 5? 5? 64 ?? ?? ?? ?? ?? ?? C9 C3 } + $block_52 = { A1 ?? ?? ?? ?? 2B ?? ?? ?? ?? ?? 6A ?? 99 5? F7 ?? 85 ?? 0F 86 } + $block_53 = { 8B ?? 83 ?? ?? 6A ?? 99 5? 2B ?? F7 ?? 4? 0F AF ?? 03 ?? 5? } + $block_54 = { 33 ?? 4? D3 ?? 8B ?? ?? C1 ?? ?? 0F B7 ?? ?? 23 ?? 3B ?? 75 } + $block_55 = { 8B ?? ?? ?? ?? ?? 68 ?? ?? ?? ?? 5? FF D? 8B ?? 85 ?? 0F 84 } + $block_56 = { E8 ?? ?? ?? ?? 8B ?? ?? 8B ?? 5? 64 ?? ?? ?? ?? ?? ?? C9 C3 } + $block_57 = { 8B ?? ?? 8A ?? ?? 99 6A ?? 5? F7 ?? 0F B6 ?? 83 ?? ?? 74 } + $block_58 = { 8B ?? ?? 2B ?? ?? 6A ?? 99 5? F7 ?? FF 7? ?? 3B ?? 0F 83 } + $block_59 = { 5? 8B ?? 83 ?? ?? 0F B7 ?? 5? 33 ?? 5? 8B ?? 66 ?? ?? 74 } + $block_60 = { 8B ?? ?? 83 ?? ?? 6A ?? C1 ?? ?? 5? 89 ?? ?? 3B ?? 0F 86 } + $block_61 = { 68 ?? ?? ?? ?? 5? E8 ?? ?? ?? ?? 8B ?? 5? 5? 85 ?? 0F 85 } + $block_62 = { 8B ?? ?? ?? 8B ?? 8D ?? ?? ?? 5? 5? FF 5? ?? 3B ?? 0F 85 } + $block_63 = { 8B ?? ?? ?? 8B ?? 8D ?? ?? ?? 5? 5? FF 5? ?? 85 ?? 0F 84 } + $block_64 = { 8B ?? ?? ?? 8B ?? 8D ?? ?? ?? 5? 5? FF 5? ?? 85 ?? 0F 85 } + $block_65 = { FF 4? ?? ?? FF 4? ?? ?? FF 4? ?? ?? 39 ?? ?? ?? 0F 8F } + $block_66 = { 8B ?? ?? 5? 5? 64 ?? ?? ?? ?? ?? ?? 5? 83 ?? ?? C9 C3 } + $block_67 = { 8B ?? ?? ?? 03 ?? 89 ?? ?? ?? 89 ?? ?? ?? 3B ?? 0F 83 } + $block_68 = { 80 7? ?? ?? 0F 94 ?? 83 ?? ?? ?? 22 ?? 8A ?? 3C ?? 75 } + $block_69 = { 8B ?? ?? 5? 33 ?? 5? 4? 64 ?? ?? ?? ?? ?? ?? 5? C9 C2 } + $block_70 = { 8B ?? ?? 5? 5? 64 ?? ?? ?? ?? ?? ?? 5? 83 ?? ?? C9 C2 } + $block_71 = { 4? C1 ?? ?? 8D ?? ?? ?? 0F B7 ?? 33 ?? 66 ?? ?? 0F 83 } + $block_72 = { 8B ?? ?? 6A ?? 5? 8D ?? ?? ?? ?? ?? F3 ?? 5? 5? C9 C3 } + $block_73 = { 8D ?? ?? 5? E8 ?? ?? ?? ?? 5? 89 ?? ?? ?? 3B ?? 0F 84 } + $block_74 = { 5? 8B ?? 83 ?? ?? 5? 5? 8B ?? 8B ?? 5? 83 ?? ?? 0F 84 } + $block_75 = { 8B ?? ?? 8D ?? ?? 5? E8 ?? ?? ?? ?? 8B ?? ?? C9 C3 } + $block_76 = { 8B ?? ?? 5? 8B ?? 5? 64 ?? ?? ?? ?? ?? ?? 5? C9 C2 } + $block_77 = { 8B ?? ?? 8B ?? 5? 5? 5? 64 ?? ?? ?? ?? ?? ?? C9 C2 } + $block_78 = { 8B ?? ?? 5? 5? 33 ?? 64 ?? ?? ?? ?? ?? ?? 5? C9 C2 } + $block_79 = { 8B ?? ?? 5? 5? 8B ?? 64 ?? ?? ?? ?? ?? ?? 5? C9 C2 } + $block_80 = { 8B ?? ?? 5? 8B ?? 5? 5? 64 ?? ?? ?? ?? ?? ?? C9 C3 } + $block_81 = { 5? 5? 0F B6 ?? ?? ?? 8D ?? ?? 25 ?? ?? ?? ?? 5? 79 } + $block_82 = { 8B ?? ?? 5? 5? 8B ?? 5? 64 ?? ?? ?? ?? ?? ?? C9 C3 } + $block_83 = { 8B ?? ?? 8B ?? ?? 5? 64 ?? ?? ?? ?? ?? ?? 5? C9 C3 } + $block_84 = { 68 ?? ?? ?? ?? 5? E8 ?? ?? ?? ?? 5? 5? 85 ?? 0F 85 } + $block_85 = { 8B ?? ?? 8B ?? 8B ?? 89 ?? ?? FF 5? ?? 85 ?? 0F 86 } + $block_86 = { 83 ?? ?? ?? 80 3? ?? 0F 94 ?? ?? 80 7? ?? ?? 74 } + $block_87 = { 8B ?? ?? 5? 8B ?? 5? 64 ?? ?? ?? ?? ?? ?? C9 C2 } + $block_88 = { 8B ?? ?? 8B ?? ?? 5? 64 ?? ?? ?? ?? ?? ?? C9 C2 } + $block_89 = { 0F B6 ?? ?? 8B ?? 5? 8B ?? FF 5? ?? 84 ?? 0F 84 } + $block_90 = { 8B ?? ?? 8B ?? ?? 8B ?? ?? 5? 5? 89 ?? 5? C9 C3 } + $block_91 = { 4? 99 2B ?? D1 ?? 8D ?? ?? 81 E? ?? ?? ?? ?? 79 } + $block_92 = { 8B ?? E8 ?? ?? ?? ?? 81 7? ?? ?? ?? ?? ?? 0F 86 } + $block_93 = { 8B ?? ?? ?? 8B ?? 5? FF 5? ?? 39 ?? ?? ?? 0F 84 } + $block_94 = { 8B ?? ?? 5? 64 ?? ?? ?? ?? ?? ?? 83 ?? ?? C9 C3 } + + condition: + hash.sha256(0, filesize) == "863f298f367a82853a58f9dad4c477956f48fdd9328a93e1aeee1df22da80493" or + hash.sha256(0, filesize) == "f1998b3c322e35006b6a6ba1c23807a3f9bc8058ee50efea059278a06fa4a4eb" or + 12 of them +} + +rule Gazer { + meta: + Author = "Intezer Analyze" + Reference = "https://apt-ecosystem.com" + + strings: + $block_0 = { 5? 68 ?? ?? ?? ?? FF 7? ?? 5? E8 ?? ?? ?? ?? 83 ?? ?? 8B ?? 68 ?? ?? ?? ?? 5? FF D? 85 ?? 0F 85 } + $block_1 = { 8D ?? ?? 5? 8D ?? ?? 5? 68 ?? ?? ?? ?? 68 ?? ?? ?? ?? E8 ?? ?? ?? ?? 8B ?? 83 ?? ?? 3B ?? 0F 84 } + $block_2 = { FF 3? ?? ?? ?? ?? 21 ?? ?? ?? 21 ?? ?? ?? E8 ?? ?? ?? ?? 83 ?? ?? ?? ?? ?? ?? 89 ?? ?? ?? 0F 86 } + $block_3 = { 5? 8D ?? ?? 5? 5? 68 ?? ?? ?? ?? 5? 5? 5? 68 ?? ?? ?? ?? FF 7? ?? FF 1? ?? ?? ?? ?? 85 ?? 0F 85 } + $block_4 = { FF 3? ?? ?? ?? ?? FF 4? ?? 89 ?? ?? 89 ?? ?? E8 ?? ?? ?? ?? 89 ?? ?? 39 ?? ?? ?? ?? ?? 0F 86 } + $block_5 = { 8B ?? ?? 5? 5? 83 ?? ?? 5? 5? 6A ?? 5? 6A ?? FF 1? ?? ?? ?? ?? 8B ?? 89 ?? ?? 3B ?? 0F 84 } + $block_6 = { 8B ?? ?? 8B ?? 6A ?? 5? 5? FF 5? ?? 8B ?? 8B ?? ?? 8B ?? 5? FF 5? ?? FF 5? ?? 3B ?? 0F 8C } + $block_7 = { FF 7? ?? FF D? 01 ?? ?? FF 4? ?? 0F BF ?? ?? 6B ?? ?? 8D ?? ?? ?? ?? ?? ?? 5? 89 ?? ?? 5? } + $block_8 = { 6A ?? 5? 66 ?? ?? ?? 8D ?? ?? ?? 5? 5? 6A ?? C7 ?? ?? ?? ?? ?? E8 ?? ?? ?? ?? 84 ?? 0F 84 } + $block_9 = { 5? 8D ?? ?? 5? 8D ?? ?? 5? 68 ?? ?? ?? ?? 5? E8 ?? ?? ?? ?? 8B ?? 83 ?? ?? 3B ?? 0F 84 } + $block_10 = { 8D ?? ?? 5? 8D ?? ?? 5? 68 ?? ?? ?? ?? 5? E8 ?? ?? ?? ?? 83 ?? ?? 89 ?? ?? 3B ?? 0F 84 } + $block_11 = { 68 ?? ?? ?? ?? 68 ?? ?? ?? ?? 5? E8 ?? ?? ?? ?? 83 ?? ?? E8 ?? ?? ?? ?? 83 ?? ?? 0F 84 } + $block_12 = { 8D ?? ?? 5? FF 7? ?? 6A ?? 6A ?? 68 ?? ?? ?? ?? FF 7? ?? FF 1? ?? ?? ?? ?? 85 ?? 0F 84 } + $block_13 = { 8B ?? ?? ?? FF 4? ?? ?? 8B ?? ?? ?? ?? ?? 4? 33 ?? F7 ?? 89 ?? ?? ?? 39 ?? ?? ?? 0F 82 } + $block_14 = { 68 ?? ?? ?? ?? 68 ?? ?? ?? ?? FF 7? ?? E8 ?? ?? ?? ?? 83 ?? ?? 89 ?? ?? ?? 3B ?? 0F 84 } + $block_15 = { 8D ?? ?? 5? 68 ?? ?? ?? ?? 5? FF 1? 8B ?? 8B ?? ?? 8B ?? 5? FF 5? ?? 3B ?? 0F 8C } + $block_16 = { E8 ?? ?? ?? ?? FF 7? ?? ?? 8B ?? ?? ?? ?? ?? E8 ?? ?? ?? ?? 8B ?? 5? 3B ?? 0F 84 } + $block_17 = { 6A ?? 5? 01 ?? ?? 01 ?? ?? 01 ?? ?? 01 ?? ?? 0F B7 ?? ?? FF 4? ?? 39 ?? ?? 72 } + $block_18 = { 8B ?? ?? 8B ?? ?? ?? ?? ?? 03 ?? 5? 6A ?? FF 7? ?? FF D? 89 ?? ?? 3B ?? 0F 84 } + $block_19 = { 6A ?? 8D ?? ?? 5? 68 ?? ?? ?? ?? FF 7? ?? E8 ?? ?? ?? ?? 83 ?? ?? 85 ?? 0F 84 } + $block_20 = { 5? 6A ?? E8 ?? ?? ?? ?? 5? 5? 0F BE ?? 83 ?? ?? 0F AF ?? 03 ?? 4? 4? 3B ?? 72 } + $block_21 = { 0F B7 ?? ?? 0F B7 ?? ?? 2B ?? 5? FF 1? ?? ?? ?? ?? 33 ?? F7 ?? ?? 5? 85 ?? 74 } + $block_22 = { 8D ?? ?? 5? 89 ?? ?? 8B ?? ?? 6A ?? FF 3? FF 1? ?? ?? ?? ?? 8B ?? 85 ?? 0F 84 } + $block_23 = { 8D ?? ?? ?? 5? FF 7? ?? ?? 5? 6A ?? FF 7? ?? ?? FF 1? ?? ?? ?? ?? 85 ?? 0F 84 } + $block_24 = { 5? FF 7? ?? 6A ?? 6A ?? 68 ?? ?? ?? ?? FF 7? ?? FF 1? ?? ?? ?? ?? 85 ?? 0F 84 } + $block_25 = { 6A ?? 5? 01 ?? ?? 01 ?? ?? 01 ?? ?? 03 ?? 0F B7 ?? ?? FF 4? ?? 39 ?? ?? 72 } + $block_26 = { 8B ?? ?? FF 4? ?? 8B ?? ?? ?? ?? ?? 4? 33 ?? F7 ?? 89 ?? ?? 39 ?? ?? 0F 82 } + $block_27 = { 8D ?? ?? ?? 5? 6A ?? 6A ?? 6A ?? FF 7? ?? ?? FF 1? ?? ?? ?? ?? 85 ?? 0F 85 } + $block_28 = { 5? 5? 5? 5? 6A ?? FF 7? ?? FF 1? ?? ?? ?? ?? 8B ?? 89 ?? ?? 3B ?? 0F 84 } + $block_29 = { FF 7? ?? FF 7? ?? FF 1? ?? ?? ?? ?? 8B ?? 0F AF ?? FF 4? ?? 39 ?? ?? 7C } + $block_30 = { 8D ?? ?? ?? 5? 6A ?? FF 1? ?? ?? ?? ?? 5? FF 1? ?? ?? ?? ?? 85 ?? 0F 84 } + $block_31 = { 8D ?? ?? 5? 5? 5? 68 ?? ?? ?? ?? FF 7? ?? FF 1? ?? ?? ?? ?? 85 ?? 0F 85 } + $block_32 = { 68 ?? ?? ?? ?? 68 ?? ?? ?? ?? E8 ?? ?? ?? ?? 5? 5? 89 ?? ?? 3B ?? 0F 84 } + $block_33 = { FF 3? ?? ?? ?? ?? FF 7? ?? E8 ?? ?? ?? ?? 5? 5? 89 ?? ?? 3B ?? 0F 84 } + $block_34 = { 8D ?? ?? 5? E8 ?? ?? ?? ?? 8B ?? 8D ?? ?? A5 A5 A5 5? 38 ?? ?? 0F 84 } + $block_35 = { FF 7? ?? 8B ?? ?? ?? ?? ?? 6A ?? FF 3? FF D? 8B ?? ?? 0F B7 ?? 4? 74 } + $block_36 = { A1 ?? ?? ?? ?? FF 7? ?? 89 ?? ?? E8 ?? ?? ?? ?? 8B ?? 5? 3B ?? 0F 84 } + $block_37 = { 8D ?? ?? 5? 5? 5? 68 ?? ?? ?? ?? 68 ?? ?? ?? ?? FF D? 85 ?? 0F 85 } + $block_38 = { 0F B7 ?? ?? 5? E8 ?? ?? ?? ?? 5? 66 ?? ?? ?? 5? 4? FF D? 3B ?? 7E } + $block_39 = { FF 4? ?? ?? 6A ?? 6A ?? FF 3? FF 1? ?? ?? ?? ?? 8B ?? 85 ?? 0F 84 } + $block_40 = { 68 ?? ?? ?? ?? FF 3? ?? ?? ?? ?? E8 ?? ?? ?? ?? 5? 5? 85 ?? 0F 84 } + $block_41 = { 8D ?? ?? ?? 5? 5? FF 1? ?? ?? ?? ?? 5? 5? FF 7? ?? ?? 85 ?? 0F 84 } + $block_42 = { 5? 5? 8D ?? ?? 5? BF ?? ?? ?? ?? 5? FF 1? ?? ?? ?? ?? 85 ?? 0F 85 } + $block_43 = { FF 3? ?? ?? ?? ?? 5? 5? 5? FF 1? ?? ?? ?? ?? 89 ?? ?? 3B ?? 0F 84 } + $block_44 = { 8B ?? ?? A1 ?? ?? ?? ?? C1 ?? ?? 03 ?? 89 ?? ?? 39 ?? ?? 0F 84 } + $block_45 = { 6A ?? 6A ?? FF 3? FF 1? ?? ?? ?? ?? A3 ?? ?? ?? ?? 85 ?? 0F 84 } + $block_46 = { 5? 8B ?? ?? ?? ?? ?? 6A ?? FF 3? FF D? 8B ?? ?? 0F B7 ?? 4? 74 } + $block_47 = { 0F B7 ?? ?? 83 ?? ?? ?? 33 ?? 8D ?? ?? ?? 66 ?? ?? ?? 0F 83 } + $block_48 = { 5? 8D ?? ?? 5? 6A ?? 8D ?? ?? 5? FF 7? ?? FF D? 85 ?? 0F 84 } + $block_49 = { 8D ?? ?? 5? BF ?? ?? ?? ?? 5? FF 1? ?? ?? ?? ?? 85 ?? 0F 85 } + $block_50 = { 5? FF 1? ?? ?? ?? ?? 0F B6 ?? 83 ?? ?? ?? 33 ?? 4? 85 ?? 7E } + $block_51 = { 5? 8B ?? ?? ?? ?? ?? 5? FF 3? FF D? 8B ?? ?? 0F B7 ?? 4? 74 } + $block_52 = { 83 ?? ?? ?? ?? 83 ?? ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 0F 86 } + $block_53 = { 8B ?? ?? 8D ?? ?? 5? 5? FF 7? ?? E8 ?? ?? ?? ?? 84 ?? 0F 84 } + $block_54 = { 8D ?? ?? 5? 5? FF 1? ?? ?? ?? ?? 5? 5? FF 7? ?? 85 ?? 0F 84 } + $block_55 = { FF 3? ?? ?? ?? ?? FF 7? ?? FF 1? ?? ?? ?? ?? 85 ?? 0F 85 } + $block_56 = { FF 7? ?? ?? 6A ?? 5? FF 1? ?? ?? ?? ?? 8B ?? 85 ?? 0F 84 } + $block_57 = { 8B ?? ?? 8B ?? ?? 5? 8B ?? ?? 5? 0F B7 ?? ?? 2B ?? 2B } + $block_58 = { 8B ?? 5? 5? 5? FF D? 5? FF 1? ?? ?? ?? ?? 85 ?? 0F 84 } + $block_59 = { FF 7? ?? ?? E8 ?? ?? ?? ?? 5? 89 ?? ?? ?? 3B ?? 0F 84 } + $block_60 = { FF 7? ?? FF 7? ?? E8 ?? ?? ?? ?? 5? 5? 85 ?? 0F 84 } + $block_61 = { 68 ?? ?? ?? ?? FF D? E8 ?? ?? ?? ?? 83 ?? ?? 0F 84 } + $block_62 = { 8B ?? 6A ?? 5? 33 ?? D1 ?? 89 ?? ?? F6 ?? ?? 0F 84 } + $block_63 = { 5? 6A ?? FF 3? FF D? 8B ?? ?? ?? 0F B7 ?? 4? 0F 84 } + $block_64 = { 6A ?? 6A ?? FF 7? ?? FF D? 89 ?? ?? 3B ?? 0F 84 } + $block_65 = { FF 7? ?? E8 ?? ?? ?? ?? 5? 89 ?? ?? 3B ?? 0F 84 } + $block_66 = { 8D ?? ?? 5? E8 ?? ?? ?? ?? 5? 5? 8A ?? 5? C9 C3 } + $block_67 = { 5? 8B ?? 83 ?? ?? 5? 5? 33 ?? 5? 39 ?? ?? 0F 84 } + $block_68 = { 5? 8B ?? ?? 5? 5? 64 ?? ?? ?? ?? ?? ?? 5? C9 C3 } + $block_69 = { FF 7? ?? 5? FF 7? ?? FF D? 5? 5? 33 ?? 5? C9 C2 } + + condition: + hash.sha256(0, filesize) == "4a941b881e917cd41477e2d4549fc8e217cd883773f2c703186e5525dc4d6c07" or + hash.sha256(0, filesize) == "364593bebe015945002f6affec90154a69cb051d59ac7557f076930375fb054f" or + hash.sha256(0, filesize) == "29e80fbdd60e723f69d111d72d3436b84d835add2fff26f52d426b5a8f4e17d1" or + hash.sha256(0, filesize) == "2007aa72dfe0c6c93beb44f737b85b6cd487175e7abc6b717dae9344bed46c6c" or + hash.sha256(0, filesize) == "02e28a176dd2ad9507e8d76b739af6fa2f1f7c373e70adbd70a44e8b137e58f8" or + 12 of them +} + +rule PenquinTurla { + meta: + Author = "Intezer Analyze" + Reference = "https://apt-ecosystem.com" + + strings: + $block_0 = { 89 ?? ?? BE ?? ?? ?? ?? B8 ?? ?? ?? ?? 89 ?? ?? ?? 89 ?? ?? ?? E8 ?? ?? ?? ?? 85 ?? 89 ?? 0F 84 } + $block_1 = { 89 ?? ?? ?? 8B ?? ?? ?? 8B ?? ?? ?? 89 ?? ?? 89 ?? ?? ?? 89 ?? ?? ?? E8 ?? ?? ?? ?? 85 ?? 0F 84 } + $block_2 = { 83 ?? ?? ?? 89 ?? 89 ?? C1 ?? ?? 8B ?? ?? C1 ?? ?? 30 ?? 0F B6 ?? 0F B6 ?? ?? 0F B6 ?? 39 ?? 74 } + $block_3 = { 5? 31 ?? B9 ?? ?? ?? ?? 5? 5? 83 ?? ?? 8D ?? ?? ?? FC 8B ?? ?? ?? F3 ?? A1 ?? ?? ?? ?? 85 ?? 75 } + $block_4 = { C7 ?? ?? ?? ?? ?? ?? B8 ?? ?? ?? ?? 89 ?? ?? ?? E8 ?? ?? ?? ?? A3 ?? ?? ?? ?? 31 ?? 85 ?? 0F 84 } + $block_5 = { 0F B7 ?? ?? ?? 8B ?? ?? ?? ?? ?? ?? 81 E? ?? ?? ?? ?? 83 ?? ?? 3D ?? ?? ?? ?? 66 ?? ?? ?? ?? 7E } + $block_6 = { 89 ?? 89 ?? 8B ?? D3 ?? 83 ?? ?? 0F B6 ?? ?? ?? 89 ?? D3 ?? 09 ?? 89 ?? 83 ?? ?? FF 4? ?? ?? 75 } + $block_7 = { 5? 89 ?? 5? 31 ?? 5? 31 ?? 5? 83 ?? ?? 89 ?? 89 ?? ?? 4? 8D ?? ?? C6 ?? ?? ?? 0F BE ?? 85 ?? 74 } + $block_8 = { 01 ?? 8D ?? ?? 01 ?? 89 ?? ?? 8D ?? ?? 89 ?? ?? 89 ?? ?? ?? FF 5? ?? BA ?? ?? ?? ?? 85 ?? 0F 84 } + $block_9 = { 89 ?? ?? 8D ?? ?? ?? ?? ?? ?? 89 ?? 83 ?? ?? 31 ?? 29 ?? 8B ?? 8D ?? ?? ?? 89 ?? ?? 85 ?? 0F 84 } + $block_10 = { 89 ?? ?? ?? 8B ?? ?? ?? ?? ?? 89 ?? ?? ?? 8B ?? ?? ?? ?? ?? 89 ?? ?? E8 ?? ?? ?? ?? 85 ?? 0F 88 } + $block_11 = { FF 4? ?? 89 ?? 89 ?? C1 ?? ?? 8B ?? ?? C1 ?? ?? 30 ?? 0F B6 ?? 0F B6 ?? ?? 0F B6 ?? 39 ?? 0F 84 } + $block_12 = { E8 ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 0F B7 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 66 ?? ?? ?? ?? ?? ?? E9 } + $block_13 = { 8B ?? ?? ?? ?? ?? 8D ?? ?? 8B ?? ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 83 ?? ?? 83 ?? ?? 0F 86 } + $block_14 = { F6 ?? ?? ?? ?? ?? ?? 89 ?? 8B ?? ?? ?? 8B ?? ?? ?? 89 ?? ?? 8B ?? ?? ?? 89 ?? ?? 89 ?? ?? 0F 85 } + $block_15 = { 0F B7 ?? ?? C1 ?? ?? 25 ?? ?? ?? ?? 0F 95 ?? ?? ?? ?? ?? 89 ?? 80 8? ?? ?? ?? ?? ?? 85 ?? 0F 85 } + $block_16 = { 8B ?? ?? 88 ?? 80 E? ?? 0F B6 ?? ?? ?? ?? ?? 24 ?? 08 ?? 88 ?? ?? ?? ?? ?? 0F B6 ?? 88 ?? ?? E9 } + $block_17 = { 0F B6 ?? ?? ?? 89 ?? 4? 30 ?? ?? ?? ?? ?? 31 ?? 81 F? ?? ?? ?? ?? 0F 9D ?? 4? 4? 21 ?? 39 ?? 7C } + $block_18 = { 8B ?? ?? FF 4? ?? 8B ?? ?? 89 ?? ?? 0F B6 ?? 88 ?? ?? ?? 8B ?? ?? 4? 8B ?? ?? 89 ?? ?? 39 ?? 72 } + $block_19 = { 0F B6 ?? 31 ?? 31 ?? 89 ?? ?? ?? 31 ?? 4? 89 ?? ?? ?? 31 ?? BD ?? ?? ?? ?? 89 ?? ?? ?? 88 ?? E9 } + $block_20 = { FF 8? ?? ?? ?? ?? 31 ?? 8B ?? ?? ?? ?? ?? 83 ?? ?? ?? ?? ?? ?? 0F 95 ?? 85 ?? 8D ?? ?? ?? 0F 84 } + $block_21 = { C7 ?? ?? ?? ?? ?? ?? ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? ?? ?? ?? 0F B6 ?? ?? ?? ?? ?? 41 ?? ?? ?? 75 } + $block_22 = { 48 ?? ?? ?? ?? ?? ?? BE ?? ?? ?? ?? E8 ?? ?? ?? ?? 48 ?? ?? ?? ?? ?? ?? 48 ?? ?? 48 ?? ?? 0F 84 } + $block_23 = { 41 ?? 5? 5? 48 ?? ?? BE ?? ?? ?? ?? 48 ?? ?? ?? ?? ?? ?? 48 ?? ?? ?? E8 ?? ?? ?? ?? 85 ?? 0F 85 } + $block_24 = { 64 ?? ?? ?? ?? ?? ?? ?? ?? 48 ?? ?? ?? ?? ?? ?? 48 ?? ?? ?? 48 ?? ?? 83 ?? ?? ?? ?? ?? ?? 0F 84 } + $block_25 = { 48 ?? ?? ?? ?? ?? ?? 48 ?? ?? ?? ?? ?? ?? 48 ?? ?? ?? ?? E8 ?? ?? ?? ?? 48 ?? ?? 48 ?? ?? 0F 84 } + $block_26 = { 48 ?? ?? ?? 48 ?? ?? ?? ?? ?? ?? ?? 4C ?? ?? 48 ?? ?? ?? ?? 48 ?? ?? E8 ?? ?? ?? ?? 85 ?? 0F 85 } + $block_27 = { 48 ?? ?? E8 ?? ?? ?? ?? 29 ?? 8D ?? ?? 83 ?? ?? 41 ?? ?? 44 ?? ?? ?? 41 ?? ?? ?? 4D ?? ?? 0F 84 } + $block_28 = { 48 ?? ?? ?? ?? ?? ?? B9 ?? ?? ?? ?? 48 ?? ?? F3 ?? B9 ?? ?? ?? ?? 0F 97 ?? 0F 92 ?? 38 ?? 0F 84 } + $block_29 = { 48 ?? 49 ?? ?? FF C? 48 ?? ?? ?? ?? ?? ?? 89 ?? 8B ?? ?? ?? ?? ?? E8 ?? ?? ?? ?? 4C ?? ?? 0F 85 } + $block_30 = { BA ?? ?? ?? ?? BE ?? ?? ?? ?? BF ?? ?? ?? ?? E8 ?? ?? ?? ?? 85 ?? 89 ?? 89 ?? ?? ?? ?? ?? 0F 88 } + $block_31 = { 48 ?? ?? ?? ?? ?? ?? B8 ?? ?? ?? ?? 0F 05 C7 ?? ?? ?? ?? ?? ?? ?? ?? ?? 4C ?? ?? ?? ?? ?? ?? 89 } + $block_32 = { 4C ?? ?? 48 ?? ?? 41 ?? ?? ?? ?? ?? 41 ?? ?? ?? ?? ?? B8 ?? ?? ?? ?? 0F 05 48 ?? ?? ?? ?? ?? 76 } + $block_33 = { 0F BE ?? 83 ?? ?? 8D ?? ?? ?? ?? ?? ?? 8D ?? ?? 40 ?? ?? ?? 8D ?? ?? ?? ?? ?? ?? 89 ?? ?? ?? 74 } + $block_34 = { C7 ?? ?? ?? ?? ?? ?? 8B ?? ?? 8B ?? ?? 8B ?? ?? 89 ?? 39 ?? 89 ?? ?? 89 ?? ?? 89 ?? ?? 0F 84 } + $block_35 = { 89 ?? ?? ?? 8B ?? ?? ?? B9 ?? ?? ?? ?? 89 ?? ?? ?? 89 ?? ?? E8 ?? ?? ?? ?? 85 ?? 89 ?? 0F 84 } + $block_36 = { 89 ?? ?? 31 ?? 31 ?? 89 ?? ?? ?? B9 ?? ?? ?? ?? 89 ?? ?? ?? 89 ?? ?? ?? FF 5? ?? 85 ?? 0F 84 } + $block_37 = { 8B ?? ?? ?? ?? ?? ?? 89 ?? ?? E8 ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? ?? 39 ?? ?? ?? ?? ?? ?? 0F 84 } + $block_38 = { C7 ?? ?? ?? ?? ?? ?? B8 ?? ?? ?? ?? 89 ?? ?? ?? 8B ?? ?? 89 ?? ?? E8 ?? ?? ?? ?? 85 ?? 0F 85 } + $block_39 = { C7 ?? ?? ?? ?? ?? ?? 31 ?? 89 ?? ?? ?? B8 ?? ?? ?? ?? 89 ?? ?? ?? E8 ?? ?? ?? ?? 85 ?? 0F 89 } + $block_40 = { 5? 5? 5? 5? 83 ?? ?? 8B ?? ?? ?? 8B ?? ?? ?? 8B ?? ?? ?? 89 ?? ?? ?? 8B ?? ?? ?? 85 ?? 0F 84 } + $block_41 = { 89 ?? ?? B9 ?? ?? ?? ?? 8D ?? ?? ?? 89 ?? ?? ?? 29 ?? 89 ?? ?? ?? E8 ?? ?? ?? ?? 85 ?? 0F 88 } + $block_42 = { 89 ?? ?? ?? 8B ?? ?? ?? ?? ?? ?? 8D ?? ?? ?? 89 ?? ?? ?? 89 ?? ?? E8 ?? ?? ?? ?? 85 ?? 0F 84 } + $block_43 = { C7 ?? ?? ?? ?? ?? ?? B9 ?? ?? ?? ?? 89 ?? ?? ?? E8 ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 85 ?? 0F 84 } + $block_44 = { 89 ?? ?? ?? 8B ?? ?? ?? B8 ?? ?? ?? ?? 89 ?? ?? ?? 89 ?? ?? E8 ?? ?? ?? ?? 85 ?? 89 ?? 0F 84 } + $block_45 = { 8B ?? ?? ?? ?? ?? ?? 8D ?? ?? ?? 89 ?? ?? ?? 89 ?? ?? 89 ?? ?? ?? E8 ?? ?? ?? ?? 85 ?? 0F 84 } + $block_46 = { 8D ?? ?? ?? 89 ?? ?? E8 ?? ?? ?? ?? 31 ?? 8B ?? ?? ?? ?? ?? ?? 89 ?? ?? ?? 39 ?? ?? ?? 0F 8D } + $block_47 = { 8B ?? ?? ?? 8B ?? ?? ?? 8B ?? ?? 89 ?? ?? ?? 89 ?? ?? 89 ?? ?? ?? E8 ?? ?? ?? ?? 85 ?? 0F 84 } + $block_48 = { 8D ?? ?? 89 ?? 89 ?? ?? 0F B7 ?? ?? 66 ?? ?? ?? 0F B7 ?? 8D ?? ?? ?? ?? ?? 66 ?? ?? ?? 0F 86 } + $block_49 = { 8B ?? ?? ?? BE ?? ?? ?? ?? 89 ?? ?? ?? 8B ?? 89 ?? ?? E8 ?? ?? ?? ?? 89 ?? ?? ?? 85 ?? 0F 88 } + $block_50 = { 89 ?? ?? 8D ?? ?? ?? ?? ?? 89 ?? ?? ?? B8 ?? ?? ?? ?? 89 ?? ?? ?? E8 ?? ?? ?? ?? 85 ?? 0F 85 } + $block_51 = { FF 4? ?? 4? 0F BE ?? 0F B6 ?? 83 ?? ?? 89 ?? ?? 0F BE ?? 8D ?? ?? 88 ?? 88 ?? 2C ?? 3C ?? 77 } + $block_52 = { 8B ?? ?? ?? ?? ?? ?? 8D ?? ?? ?? 89 ?? ?? ?? 89 ?? ?? ?? 89 ?? ?? E8 ?? ?? ?? ?? 85 ?? 0F 84 } + $block_53 = { 89 ?? ?? 8B ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 89 ?? 8B ?? ?? ?? ?? ?? 39 ?? ?? 89 ?? ?? 0F 85 } + $block_54 = { 5? 5? 5? 5? 83 ?? ?? 8B ?? ?? ?? 8B ?? ?? ?? 8B ?? ?? ?? 8B ?? ?? 85 ?? 89 ?? 89 ?? ?? 0F 88 } + $block_55 = { 8B ?? ?? 8D ?? ?? ?? ?? ?? ?? 89 ?? ?? E8 ?? ?? ?? ?? 8B ?? ?? 85 ?? 89 ?? ?? ?? ?? ?? 0F 84 } + $block_56 = { 8B ?? ?? ?? ?? ?? ?? 89 ?? 29 ?? 8B ?? ?? ?? 89 ?? ?? E8 ?? ?? ?? ?? 8B ?? ?? ?? 85 ?? 0F 84 } + $block_57 = { 89 ?? ?? B8 ?? ?? ?? ?? 89 ?? ?? ?? 8D ?? ?? ?? ?? ?? 89 ?? ?? ?? E8 ?? ?? ?? ?? 85 ?? 0F 85 } + $block_58 = { 48 ?? ?? E8 ?? ?? ?? ?? 89 ?? 48 ?? ?? ?? ?? ?? ?? BF ?? ?? ?? ?? E8 ?? ?? ?? ?? 85 ?? 0F 85 } + $block_59 = { 41 ?? 49 ?? ?? 5? 48 ?? ?? ?? 5? 8B ?? ?? 48 ?? ?? C6 ?? ?? ?? ?? 48 ?? ?? 48 ?? ?? ?? 0F 87 } + $block_60 = { 44 ?? ?? ?? 48 ?? ?? ?? 48 ?? ?? ?? 48 ?? ?? ?? 4C ?? ?? E8 ?? ?? ?? ?? 89 ?? ?? 85 ?? 0F 85 } + $block_61 = { 41 ?? 4C ?? ?? ?? 5? 48 ?? ?? 5? 8B ?? ?? 48 ?? ?? C6 ?? ?? ?? ?? 48 ?? ?? 48 ?? ?? ?? 0F 87 } + $block_62 = { 48 ?? ?? ?? ?? ?? ?? B9 ?? ?? ?? ?? 89 ?? F0 ?? ?? ?? 89 ?? 8B ?? ?? ?? ?? ?? 48 ?? ?? 0F 83 } + $block_63 = { 44 ?? ?? BA ?? ?? ?? ?? FC 48 ?? ?? 48 ?? ?? ?? 48 ?? ?? ?? 48 ?? ?? F3 ?? ?? 40 ?? ?? ?? 74 } + $block_64 = { 48 ?? ?? ?? ?? 48 ?? ?? ?? ?? 48 ?? ?? 44 ?? ?? E8 ?? ?? ?? ?? 89 ?? 8B ?? ?? ?? 85 ?? 0F 84 } + $block_65 = { 48 ?? ?? ?? ?? ?? 0F 94 ?? ?? ?? 48 ?? ?? ?? ?? ?? 0F B6 ?? ?? ?? 41 ?? ?? ?? 44 ?? ?? 0F 84 } + $block_66 = { 49 ?? ?? ?? 41 ?? ?? ?? ?? ?? ?? ?? 48 ?? ?? E8 ?? ?? ?? ?? 83 ?? ?? 41 ?? ?? 41 ?? ?? 0F 84 } + $block_67 = { C6 ?? ?? BF ?? ?? ?? ?? 89 ?? ?? 89 ?? E8 ?? ?? ?? ?? C6 ?? ?? B9 ?? ?? ?? ?? FC F3 ?? 74 } + $block_68 = { FC 89 ?? C1 ?? ?? 89 ?? F3 ?? 8B ?? ?? ?? ?? ?? 80 8? ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? E9 } + $block_69 = { 5? 89 ?? 5? 89 ?? 5? 5? 83 ?? ?? 8B ?? ?? 89 ?? ?? 8B ?? ?? ?? ?? ?? 85 ?? 89 ?? ?? 0F 84 } + $block_70 = { C7 ?? ?? ?? ?? ?? ?? 8D ?? ?? 8D ?? ?? 89 ?? ?? ?? 89 ?? ?? ?? E8 ?? ?? ?? ?? 85 ?? 0F 84 } + $block_71 = { 8B ?? 83 ?? ?? 89 ?? 8B ?? ?? ?? 8B ?? 83 ?? ?? 89 ?? ?? ?? 89 ?? 8B ?? ?? ?? 85 ?? 0F 84 } + $block_72 = { 5? 31 ?? 5? 5? 5? 81 E? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? ?? 89 ?? ?? ?? 8B ?? ?? 85 ?? 0F 8E } + $block_73 = { 8B ?? ?? 8B ?? 89 ?? ?? 89 ?? ?? ?? E8 ?? ?? ?? ?? 85 ?? 0F 95 ?? 0F B6 ?? 4? 21 ?? ?? 9? } + $block_74 = { 8D ?? ?? 8D ?? ?? ?? ?? ?? ?? 89 ?? ?? ?? 8B ?? 89 ?? ?? E8 ?? ?? ?? ?? 85 ?? 89 ?? 0F 84 } + $block_75 = { C7 ?? ?? ?? ?? ?? ?? B9 ?? ?? ?? ?? 89 ?? ?? ?? E8 ?? ?? ?? ?? A3 ?? ?? ?? ?? 85 ?? 0F 85 } + $block_76 = { 89 ?? ?? ?? 31 ?? 8D ?? ?? ?? 89 ?? ?? ?? 89 ?? ?? ?? 89 ?? ?? E8 ?? ?? ?? ?? 85 ?? 0F 84 } + $block_77 = { B8 ?? ?? ?? ?? 89 ?? ?? ?? 8B ?? ?? ?? ?? ?? 89 ?? ?? E8 ?? ?? ?? ?? 83 ?? ?? 89 ?? 0F 84 } + $block_78 = { 8B ?? ?? ?? 8B ?? ?? ?? ?? ?? 89 ?? ?? ?? 89 ?? ?? E8 ?? ?? ?? ?? 89 ?? ?? ?? 85 ?? 0F 84 } + $block_79 = { 4C ?? ?? ?? ?? 4D ?? ?? 4C ?? ?? 48 ?? ?? ?? 48 ?? ?? ?? ?? 4C ?? ?? FF D? 83 ?? ?? 0F 84 } + $block_80 = { 4C ?? ?? 48 ?? ?? ?? 48 ?? ?? 48 ?? ?? ?? ?? 4A ?? ?? ?? 48 ?? ?? 48 ?? ?? 49 ?? ?? 0F 89 } + $block_81 = { 44 ?? ?? 44 ?? ?? 41 ?? ?? B9 ?? ?? ?? ?? 4C ?? ?? E8 ?? ?? ?? ?? 49 ?? ?? 48 ?? ?? 0F 84 } + $block_82 = { 8B ?? ?? ?? ?? ?? 2B ?? ?? ?? ?? ?? 01 ?? ?? ?? ?? ?? 48 ?? ?? ?? ?? ?? ?? 80 3? ?? 0F 84 } + $block_83 = { 48 ?? ?? ?? 49 ?? ?? ?? ?? ?? ?? 48 ?? ?? ?? 48 ?? ?? ?? 49 ?? ?? ?? 48 ?? ?? ?? ?? 0F 85 } + $block_84 = { 0F B7 ?? ?? ?? 48 ?? ?? ?? ?? ?? ?? ?? 48 ?? ?? ?? 48 ?? ?? E8 ?? ?? ?? ?? 48 ?? ?? 0F 84 } + $block_85 = { 48 ?? ?? ?? ?? 48 ?? ?? ?? ?? 48 ?? ?? ?? 48 ?? ?? ?? ?? 4C ?? ?? ?? ?? 49 ?? ?? ?? 0F 88 } + $block_86 = { 89 ?? 48 ?? ?? ?? 48 ?? ?? ?? ?? ?? ?? ?? 48 ?? ?? E8 ?? ?? ?? ?? 49 ?? ?? 48 ?? ?? 0F 84 } + $block_87 = { 4D ?? ?? ?? ?? 48 ?? ?? ?? ?? 4C ?? ?? E8 ?? ?? ?? ?? 3D ?? ?? ?? ?? 41 ?? ?? ?? 0F 8F } + $block_88 = { 4C ?? ?? 4C ?? ?? 48 ?? ?? 48 ?? ?? 48 ?? ?? ?? 48 ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? 0F 87 } + $block_89 = { 48 ?? ?? ?? ?? 49 ?? ?? 89 ?? 4C ?? ?? 44 ?? ?? E8 ?? ?? ?? ?? 0F BE ?? 83 ?? ?? 0F 84 } + $block_90 = { 8B ?? ?? 4C ?? ?? E8 ?? ?? ?? ?? 01 ?? 48 ?? ?? 48 ?? ?? ?? ?? 48 ?? ?? ?? ?? ?? 0F 87 } + $block_91 = { 8B ?? ?? 48 ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? E8 ?? ?? ?? ?? 85 ?? 89 ?? ?? ?? ?? ?? 0F 84 } + $block_92 = { BA ?? ?? ?? ?? BE ?? ?? ?? ?? BF ?? ?? ?? ?? E8 ?? ?? ?? ?? 41 ?? ?? 41 ?? ?? ?? 0F 84 } + $block_93 = { BA ?? ?? ?? ?? BE ?? ?? ?? ?? BF ?? ?? ?? ?? E8 ?? ?? ?? ?? 41 ?? ?? 41 ?? ?? ?? 0F 85 } + $block_94 = { 48 ?? ?? ?? ?? 48 ?? ?? ?? ?? 89 ?? 4C ?? ?? ?? ?? 48 ?? ?? ?? 81 F? ?? ?? ?? ?? 0F 84 } + $block_95 = { FF 4? ?? 48 ?? ?? ?? 48 ?? ?? ?? 4D ?? ?? 48 ?? ?? 48 ?? ?? E8 ?? ?? ?? ?? FF C? 0F 84 } + $block_96 = { 48 ?? ?? ?? 48 ?? ?? ?? 48 ?? ?? 8B ?? ?? 48 ?? ?? ?? 5? 41 ?? 41 ?? 41 ?? 41 ?? C9 C3 } + $block_97 = { 49 ?? ?? 48 ?? ?? E8 ?? ?? ?? ?? 48 ?? ?? 48 ?? ?? 4C ?? ?? 83 ?? ?? ?? ?? ?? ?? 0F 8E } + $block_98 = { 8B ?? ?? ?? 8B ?? ?? ?? 8B ?? ?? ?? E8 ?? ?? ?? ?? 48 ?? ?? ?? ?? ?? 89 ?? ?? ?? 0F 84 } + $block_99 = { 48 ?? ?? ?? ?? ?? ?? BA ?? ?? ?? ?? BE ?? ?? ?? ?? E8 ?? ?? ?? ?? 85 ?? 41 ?? ?? 0F 85 } + + condition: + hash.sha256(0, filesize) == "1eee1d0f736f3b796ab8da66bb16a68c7600e9a0c0cc8de0b640bc53beb9a90a" or + hash.sha256(0, filesize) == "3e138e4e34c6eed3506efc7c805fce19af13bd62aeb35544f81f111e83b5d0d4" or + hash.sha256(0, filesize) == "8ccc081d4940c5d8aa6b782c16ed82528c0885bbb08210a8d0a8c519c54215bc" or + hash.sha256(0, filesize) == "8856a68d95e4e79301779770a83e3fad8f122b849a9e9e31cfe06bf3418fa667" or + hash.sha256(0, filesize) == "d49690ccb82ff9d42d3ee9d7da693fd7d302734562de088e9298413d56b86ed0" or + hash.sha256(0, filesize) == "5a204263cac112318cd162f1c372437abf7f2092902b05e943e8784869629dd8" or + 12 of them +} + +rule Wipbot { + meta: + Author = "Intezer Analyze" + Reference = "https://apt-ecosystem.com" + + strings: + $block_0 = { 4? 0F B7 ?? 4? 8B ?? 4? 89 ?? 4? 01 ?? C1 ?? ?? 4? 81 E? ?? ?? ?? ?? 4? 01 ?? 66 ?? ?? ?? 75 } + $block_1 = { D9 ?? FB 5? 1A ?? ?? 3C ?? CC 04 ?? 18 ?? A4 02 ?? ?? BE ?? ?? ?? ?? 15 ?? ?? ?? ?? 5? EB } + $block_2 = { BA ?? ?? ?? ?? B9 ?? ?? ?? ?? 4? C7 ?? ?? ?? ?? ?? ?? ?? E8 ?? ?? ?? ?? 4? 85 ?? 0F 84 } + $block_3 = { BA ?? ?? ?? ?? B8 ?? ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? ?? ?? ?? E8 ?? ?? ?? ?? 85 ?? 0F 84 } + $block_4 = { 8D ?? ?? ?? ?? ?? 8D ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? E8 ?? ?? ?? ?? 85 ?? 0F 84 } + $block_5 = { FF C? 89 ?? 0F BE ?? ?? E8 ?? ?? ?? ?? 0F BE ?? 31 ?? 69 ?? ?? ?? ?? ?? 85 ?? 75 } + $block_6 = { FF C? 69 ?? ?? ?? ?? ?? 89 ?? 0F BE ?? ?? E8 ?? ?? ?? ?? 0F BE ?? 31 ?? 85 ?? 75 } + $block_7 = { BA ?? ?? ?? ?? B8 ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? E8 ?? ?? ?? ?? 85 ?? 0F 84 } + $block_8 = { 5? 89 ?? 5? 5? 5? 83 ?? ?? 83 ?? ?? ?? 0F 94 ?? ?? 85 ?? 0F 94 ?? 0A ?? ?? 74 } + $block_9 = { 5? 5? 5? 4? 81 E? ?? ?? ?? ?? 8B ?? ?? 31 ?? 4? 01 ?? 66 ?? ?? ?? ?? 0F 84 } + $block_10 = { BA ?? ?? ?? ?? B8 ?? ?? ?? ?? E8 ?? ?? ?? ?? BE ?? ?? ?? ?? 85 ?? 0F 84 } + $block_11 = { 5? 89 ?? 5? 5? 5? 81 E? ?? ?? ?? ?? 8B ?? ?? 01 ?? 66 ?? ?? ?? ?? 0F 84 } + $block_12 = { C7 ?? ?? ?? ?? ?? ?? ?? 89 ?? ?? ?? 89 ?? ?? FF D? 83 ?? ?? 85 ?? 0F 84 } + $block_13 = { BA ?? ?? ?? ?? B9 ?? ?? ?? ?? E8 ?? ?? ?? ?? 4? 85 ?? 4? 89 ?? 0F 84 } + $block_14 = { 5? 89 ?? 5? 5? 31 ?? 5? 89 ?? 83 ?? ?? E8 ?? ?? ?? ?? 85 ?? 0F 85 } + $block_15 = { 03 ?? ?? BA ?? ?? ?? ?? E8 ?? ?? ?? ?? E8 ?? ?? ?? ?? 85 ?? 0F 85 } + $block_16 = { BA ?? ?? ?? ?? B8 ?? ?? ?? ?? E8 ?? ?? ?? ?? 85 ?? 89 ?? 0F 84 } + $block_17 = { 4? 8D ?? ?? 4? 0F B7 ?? ?? 4? 8D ?? ?? 4? 8B ?? ?? 4? 01 ?? EB } + $block_18 = { 5? 5? 5? 4? 83 ?? ?? 31 ?? 4? 89 ?? E8 ?? ?? ?? ?? 85 ?? 0F 85 } + $block_19 = { A6 BE ?? ?? ?? ?? 4? B9 ?? ?? ?? ?? 18 ?? A6 85 ?? ?? 18 ?? 7E } + $block_20 = { 89 ?? 89 ?? C7 ?? ?? ?? ?? ?? ?? E8 ?? ?? ?? ?? 85 ?? 0F 84 } + $block_21 = { 4? 8D ?? ?? ?? ?? ?? ?? 4? 89 ?? E8 ?? ?? ?? ?? 85 ?? 0F 84 } + $block_22 = { BA ?? ?? ?? ?? B9 ?? ?? ?? ?? E8 ?? ?? ?? ?? 4? 85 ?? 0F 84 } + $block_23 = { 4? 85 ?? 89 ?? 0F 94 ?? 85 ?? 0F 94 ?? 4? 01 ?? 08 ?? 74 } + $block_24 = { BA ?? ?? ?? ?? B8 ?? ?? ?? ?? E8 ?? ?? ?? ?? 85 ?? 0F 84 } + $block_25 = { E8 ?? ?? ?? ?? 81 7? ?? ?? ?? ?? ?? 0F 94 ?? 0F B6 ?? EB } + $block_26 = { 83 ?? ?? 0F 9F ?? 0F B6 ?? 4? 81 C? ?? ?? ?? ?? 5? 5? C3 } + $block_27 = { 4? 85 ?? 4? 0F 94 ?? 4? 85 ?? 0F 94 ?? 4? 08 ?? 74 } + $block_28 = { 8D ?? ?? ?? ?? ?? 89 ?? E8 ?? ?? ?? ?? 85 ?? 0F 84 } + $block_29 = { 85 ?? 0F 94 ?? 85 ?? 0F 94 ?? 08 ?? 8D ?? ?? 74 } + $block_30 = { 5? 5? 5? 5? 4? 83 ?? ?? 4? 85 ?? 4? 89 ?? 0F 84 } + + condition: + hash.sha256(0, filesize) == "d76ce236f12c7f964dd72727e27f9444f62fcf72ce9de356a3bbbf32c23189e2" or + hash.sha256(0, filesize) == "c558b2ee059ef8140788cbaefd648aad7879c34dc3b61d966229dba5afd36122" or + hash.sha256(0, filesize) == "e74faa35ed394f666e02de1b7f26665eb9a70dd3c355ef9d9e2d26a4d8a96f7e" or + hash.sha256(0, filesize) == "d2505d073b948b309c65b2f613afba06584d22b4b07181c58e0f4a4893d3f9b1" or + hash.sha256(0, filesize) == "895a97bb6340a0ede31b2376fecb605c7d91a3fcc588a31bc4ff3c39d1cd12c9" or + hash.sha256(0, filesize) == "fcd50490bf5498f9204519077f312930a1d689c8a07a1b30a90e0f2969416a1f" or + hash.sha256(0, filesize) == "966610c19fb620f90de6d7f35f469662824bad66c3091e0df1de1fd903df04c9" or + hash.sha256(0, filesize) == "57ec50ea2c1735d535dbf62df964190e21fbc21aca3c4cf34bd455f9ab3dd76d" or + hash.sha256(0, filesize) == "a5afb65975b5dddeda124b0151a14df5706c42ca50cbc68b34ca4c8b25f1e54e" or + hash.sha256(0, filesize) == "8ce2bdb1680ac8eafcb2adce7acb89ea741ac9cd6e6c1b3a551b521e2ab9a1c5" or + hash.sha256(0, filesize) == "0b97c87126578113050d8e014e8fefeb33146eebc40e75c070882ec31ae26aab" or + hash.sha256(0, filesize) == "44748d0ea4c2927a58b3e4c8090fb5b7bdfe41a4f00f8e5de2952a76312c3aa2" or + hash.sha256(0, filesize) == "1a6beed80ce6d2dee4445a5e0eb5a3f13675f461f9d975b6c6ef6cba5e916949" or + hash.sha256(0, filesize) == "ecaa89e4a358c33ac20e9a397a67cecba620d30d77dd7ec27ef92316d9264f3d" or + hash.sha256(0, filesize) == "0c02e49d3924b04c6bc42515cc926e59bf319f42f55afcc0b0da14d228bcbd7a" or + hash.sha256(0, filesize) == "fae51b0649a3c99e7c3054e584acca4359aae140d621f4a02e4f4e1fe441ea12" or + hash.sha256(0, filesize) == "d48aa85bc434a30463e3b258899efb0d94b30a1609a18ba094153806cdacbf30" or + hash.sha256(0, filesize) == "7fbe1f25b25da7d1dd187bcaeb1d1b13a48ffef136bba9af3d3c6cd2e6bf3e90" or + hash.sha256(0, filesize) == "4eba5182826becfc842315a0ce85f9e03aada8cc73d1e54ed0b55754ab89d9e0" or + 12 of them +} + +rule PNGDropper { + meta: + Author = "Intezer Analyze" + Reference = "https://apt-ecosystem.com" + + strings: + $block_0 = { 5? 8B ?? ?? 6A ?? 6A ?? 03 ?? 8D ?? ?? 5? 03 ?? 5? 5? 89 ?? ?? E8 ?? ?? ?? ?? 8B ?? 85 ?? 0F 85 } + $block_1 = { 49 ?? ?? 44 ?? ?? BA ?? ?? ?? ?? 48 ?? ?? ?? ?? E8 ?? ?? ?? ?? 8B ?? 48 ?? ?? ?? ?? 85 ?? 0F 85 } + $block_2 = { FF 7? ?? FF 7? ?? E8 ?? ?? ?? ?? 01 ?? ?? 0F B7 ?? ?? 83 ?? ?? 83 ?? ?? FF 4? ?? 39 ?? ?? 72 } + $block_3 = { 5? 68 ?? ?? ?? ?? E8 ?? ?? ?? ?? 5? 5? 5? 68 ?? ?? ?? ?? 8D ?? ?? E8 ?? ?? ?? ?? 85 ?? 0F 88 } + $block_4 = { 8B ?? ?? 03 ?? 6A ?? 6A ?? 89 ?? ?? 8D ?? ?? 5? 03 ?? 5? 5? E8 ?? ?? ?? ?? 8B ?? 85 ?? 0F 85 } + $block_5 = { 8B ?? ?? 2B ?? ?? 2B ?? 99 2B ?? 8B ?? 8B ?? ?? 2B ?? 2B ?? 99 2B ?? D1 ?? 03 ?? ?? D1 ?? 03 } + $block_6 = { 5? 8B ?? 83 ?? ?? 5? 68 ?? ?? ?? ?? FF 7? ?? E8 ?? ?? ?? ?? 33 ?? 5? 5? 89 ?? ?? 3B ?? 0F 84 } + $block_7 = { 5? 6A ?? 8D ?? ?? 5? 5? FF B? ?? ?? ?? ?? E8 ?? ?? ?? ?? 8B ?? 89 ?? ?? ?? ?? ?? 3B ?? 0F 85 } + $block_8 = { 8B ?? ?? 0F B7 ?? ?? 8B ?? ?? 8B ?? ?? 8B ?? ?? 89 ?? ?? 8B ?? ?? 8B ?? ?? 2B ?? 3B ?? 73 } + $block_9 = { 8D ?? ?? 68 ?? ?? ?? ?? 5? E8 ?? ?? ?? ?? 83 ?? ?? 85 ?? 0F 95 ?? 80 B? ?? ?? ?? ?? ?? 75 } + $block_10 = { 5? FF 1? ?? ?? ?? ?? 8B ?? ?? 6A ?? 5? 89 ?? ?? E8 ?? ?? ?? ?? 8B ?? 83 ?? ?? 3B ?? 0F 84 } + $block_11 = { C6 ?? ?? ?? 6A ?? 6A ?? 8D ?? ?? E8 ?? ?? ?? ?? 8B ?? ?? 4? 81 C? ?? ?? ?? ?? 3B ?? 0F 82 } + $block_12 = { 8D ?? ?? 5? FF 1? ?? ?? ?? ?? 6A ?? 5? 8D ?? ?? 5? FF 7? ?? FF 1? ?? ?? ?? ?? 2B ?? 0F 84 } + $block_13 = { FF B? ?? ?? ?? ?? 8D ?? ?? ?? ?? ?? 68 ?? ?? ?? ?? 5? E8 ?? ?? ?? ?? 83 ?? ?? 85 ?? 0F 85 } + $block_14 = { 0F B7 ?? ?? 68 ?? ?? ?? ?? 5? 5? FF 1? ?? ?? ?? ?? 8B ?? ?? 5? E8 ?? ?? ?? ?? 84 ?? 0F 84 } + $block_15 = { 8D ?? ?? ?? ?? ?? 5? FF B? ?? ?? ?? ?? E8 ?? ?? ?? ?? 5? 5? 89 ?? ?? ?? ?? ?? 3B ?? 0F 85 } + $block_16 = { 6A ?? E8 ?? ?? ?? ?? 5? FF 1? ?? ?? ?? ?? 8B ?? ?? 5? FF 1? ?? ?? ?? ?? 83 ?? ?? 0F 85 } + $block_17 = { 5? 5? FF 1? ?? ?? ?? ?? 8B ?? ?? 8B ?? ?? 5? 5? 89 ?? ?? FF 1? ?? ?? ?? ?? 3B ?? 0F 84 } + $block_18 = { 8B ?? ?? A5 A5 A5 8D ?? ?? 5? A5 E8 ?? ?? ?? ?? 5? FF 7? ?? FF 1? ?? ?? ?? ?? 85 ?? 75 } + $block_19 = { 5? E8 ?? ?? ?? ?? 8B ?? ?? 33 ?? 5? 89 ?? ?? C7 ?? ?? ?? ?? ?? ?? 89 ?? ?? 85 ?? 0F 84 } + $block_20 = { 5? 33 ?? 33 ?? 0F A2 5? 8D ?? ?? 89 ?? 89 ?? ?? 6A ?? 89 ?? ?? 5? 89 ?? ?? 39 ?? ?? 7D } + $block_21 = { 89 ?? ?? 89 ?? ?? 6A ?? 8D ?? ?? 5? 5? 5? E8 ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 3B ?? 0F 85 } + $block_22 = { 8B ?? ?? DD ?? 8B ?? ?? DD ?? DD ?? DD ?? DD ?? 8B ?? ?? 89 ?? 8B ?? ?? 89 ?? ?? C9 C3 } + $block_23 = { 4C ?? ?? 48 ?? ?? 49 ?? ?? E8 ?? ?? ?? ?? 8B ?? BB ?? ?? ?? ?? 48 ?? ?? ?? 0F 44 ?? 8B } + $block_24 = { 5? 8B ?? 81 E? ?? ?? ?? ?? A1 ?? ?? ?? ?? 33 ?? 89 ?? ?? A1 ?? ?? ?? ?? 85 ?? 0F 85 } + $block_25 = { 5? 8B ?? 81 E? ?? ?? ?? ?? A1 ?? ?? ?? ?? 33 ?? 89 ?? ?? 8B ?? ?? 33 ?? 3B ?? 0F 84 } + $block_26 = { 8B ?? ?? A5 A5 A5 A5 83 ?? ?? ?? 8D ?? ?? E8 ?? ?? ?? ?? 8B ?? ?? E8 ?? ?? ?? ?? C2 } + $block_27 = { 6A ?? B8 ?? ?? ?? ?? E8 ?? ?? ?? ?? 8B ?? ?? 6A ?? 8B ?? E8 ?? ?? ?? ?? 85 ?? 0F 85 } + $block_28 = { FF 7? ?? FF 7? ?? E8 ?? ?? ?? ?? 01 ?? ?? 0F B7 ?? ?? 83 ?? ?? 83 ?? ?? 4? 3B ?? 72 } + $block_29 = { 8B ?? ?? 0F B7 ?? ?? 8B ?? ?? 8B ?? ?? 89 ?? ?? 8B ?? ?? 8B ?? ?? 2B ?? 3B ?? 73 } + $block_30 = { 8B ?? ?? 8B ?? ?? 6A ?? 6A ?? 8D ?? ?? 5? 5? 5? E8 ?? ?? ?? ?? 8B ?? 85 ?? 0F 85 } + $block_31 = { 5? E8 ?? ?? ?? ?? 89 ?? ?? 8D ?? ?? 5? 6A ?? E8 ?? ?? ?? ?? 83 ?? ?? 85 ?? 0F 85 } + $block_32 = { 6A ?? 6A ?? 8D ?? ?? 5? FF 7? ?? FF 7? ?? E8 ?? ?? ?? ?? 8B ?? 33 ?? 3B ?? 0F 85 } + $block_33 = { 8B ?? ?? 8B ?? ?? 5? 6A ?? 8D ?? ?? 5? 5? 5? E8 ?? ?? ?? ?? 8B ?? 85 ?? 0F 85 } + $block_34 = { 8B ?? ?? 03 ?? ?? 8B ?? ?? 8B ?? ?? 5? FF 1? ?? ?? ?? ?? 89 ?? ?? 85 ?? 0F 84 } + $block_35 = { 5? 6A ?? 8D ?? ?? 5? 5? 5? E8 ?? ?? ?? ?? 8B ?? 89 ?? ?? ?? ?? ?? 3B ?? 0F 85 } + $block_36 = { 5? 5? 8B ?? ?? 89 ?? ?? 89 ?? ?? 89 ?? 8B ?? 5? 33 ?? 5? E8 ?? ?? ?? ?? C9 C3 } + $block_37 = { 83 ?? ?? ?? 68 ?? ?? ?? ?? 5? 0F 94 ?? ?? E8 ?? ?? ?? ?? 5? 5? 85 ?? 0F 85 } + $block_38 = { 5? 8B ?? 8B ?? ?? 8B ?? ?? 03 ?? 0F B7 ?? ?? 8D ?? ?? ?? 0F B7 ?? ?? 4? 74 } + $block_39 = { 8D ?? ?? ?? ?? ?? 5? 5? E8 ?? ?? ?? ?? 5? 5? 89 ?? ?? ?? ?? ?? 3B ?? 0F 85 } + $block_40 = { 8B ?? ?? 0F B7 ?? ?? 8B ?? ?? 8B ?? ?? 8B ?? ?? 8B ?? ?? 2B ?? 39 ?? ?? 73 } + $block_41 = { 33 ?? 0F A2 8D ?? ?? 89 ?? 89 ?? ?? 89 ?? ?? 89 ?? ?? 8B ?? ?? C1 ?? ?? 4? } + $block_42 = { 5? 5? FF 7? ?? 8D ?? ?? 6A ?? 5? E8 ?? ?? ?? ?? 8B ?? 83 ?? ?? 3B ?? 0F 85 } + $block_43 = { 8B ?? 2B ?? 99 B9 ?? ?? ?? ?? F7 ?? 33 ?? 4? 89 ?? ?? ?? ?? ?? 3B ?? 7D } + $block_44 = { 8B ?? ?? 8B ?? ?? 89 ?? F7 ?? 1B ?? 25 ?? ?? ?? ?? 05 ?? ?? ?? ?? C9 C3 } + $block_45 = { 8D ?? ?? ?? 0F B7 ?? ?? 8B ?? 25 ?? ?? ?? ?? 03 ?? C1 ?? ?? 83 ?? ?? 74 } + $block_46 = { 5? 6A ?? 8D ?? ?? 5? FF 7? ?? FF 7? ?? E8 ?? ?? ?? ?? 8B ?? 3B ?? 0F 85 } + $block_47 = { 0F B7 ?? ?? ?? ?? ?? ?? 48 ?? ?? 66 ?? ?? ?? ?? ?? 8B ?? 89 ?? ?? ?? E9 } + $block_48 = { 0F B7 ?? ?? ?? ?? ?? ?? 48 ?? ?? 66 ?? ?? ?? ?? ?? 8B ?? 89 ?? ?? ?? EB } + $block_49 = { 8B ?? ?? 03 ?? ?? 5? FF 1? ?? ?? ?? ?? 8B ?? ?? 89 ?? ?? 85 ?? 0F 84 } + $block_50 = { 5? 8B ?? 8B ?? ?? 8B ?? 5? 8B ?? ?? 2B ?? 5? 99 2B ?? 8B ?? D1 ?? 79 } + $block_51 = { 8B ?? ?? 8B ?? A5 A5 A5 A5 5? 5? 8B ?? 33 ?? 5? E8 ?? ?? ?? ?? C9 C3 } + $block_52 = { 6A ?? 6A ?? 8D ?? ?? 5? 5? 5? E8 ?? ?? ?? ?? 8B ?? 33 ?? 3B ?? 0F 85 } + $block_53 = { FF 8? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 83 ?? ?? 3B ?? ?? ?? ?? ?? 0F 8C } + $block_54 = { 0F B6 ?? ?? 0F B6 ?? ?? C1 ?? ?? 0B ?? 0F B6 ?? ?? C1 ?? ?? 0B ?? EB } + $block_55 = { 0F B7 ?? ?? 33 ?? 8D ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? 66 ?? ?? ?? 73 } + $block_56 = { 2B ?? 8B ?? ?? ?? 33 ?? C7 ?? ?? ?? ?? ?? ?? 89 ?? ?? 85 ?? 0F 84 } + $block_57 = { 5? 8B ?? 5? 5? 8B ?? ?? 5? 33 ?? 89 ?? 8B ?? ?? 5? 5? 3B ?? 0F 84 } + $block_58 = { 68 ?? ?? ?? ?? FF B? ?? ?? ?? ?? E8 ?? ?? ?? ?? 5? 5? 85 ?? 0F 84 } + $block_59 = { 5? 8D ?? ?? 5? FF 1? ?? ?? ?? ?? 8D ?? ?? 8D ?? ?? A5 A5 A5 A5 EB } + $block_60 = { 6A ?? 5? 03 ?? 0F B6 ?? 0F B6 ?? ?? C1 ?? ?? 8D ?? ?? ?? 3B ?? 7F } + $block_61 = { E8 ?? ?? ?? ?? 33 ?? 89 ?? ?? ?? ?? ?? 39 ?? ?? ?? ?? ?? 0F 8E } + $block_62 = { 8D ?? ?? B8 ?? ?? ?? ?? F7 ?? 8B ?? C1 ?? ?? 03 ?? 3B ?? 0F 9F } + $block_63 = { 8D ?? ?? ?? ?? ?? ?? 9? 8B ?? ?? ?? ?? ?? 83 ?? ?? 3B ?? 0F 84 } + $block_64 = { 8B ?? ?? 5? FF 1? ?? ?? ?? ?? 83 ?? ?? 0F 95 ?? 88 ?? ?? EB } + $block_65 = { 68 ?? ?? ?? ?? 5? E8 ?? ?? ?? ?? 8B ?? 83 ?? ?? 85 ?? 0F 85 } + $block_66 = { 5? 6A ?? 8D ?? ?? 5? 5? 5? E8 ?? ?? ?? ?? 8B ?? 85 ?? 0F 85 } + $block_67 = { 5? 5? 8B ?? ?? 8B ?? 33 ?? C7 ?? ?? ?? ?? ?? ?? 85 ?? 0F 84 } + $block_68 = { C6 ?? ?? ?? 8D ?? ?? E8 ?? ?? ?? ?? 8B ?? ?? 39 ?? ?? 0F 8F } + $block_69 = { 6A ?? B8 ?? ?? ?? ?? E8 ?? ?? ?? ?? 8B ?? 80 7? ?? ?? 0F 85 } + $block_70 = { 8B ?? ?? 8B ?? ?? 2B ?? 2B ?? ?? 0F AF ?? 8B ?? ?? 3B ?? 7E } + $block_71 = { BF ?? ?? ?? ?? 89 ?? ?? 45 ?? ?? 41 ?? ?? ?? 48 ?? ?? 0F 84 } + $block_72 = { 0F BE ?? E8 ?? ?? ?? ?? 41 ?? ?? ?? ?? 48 ?? ?? 48 ?? ?? 75 } + $block_73 = { 8B ?? ?? ?? ?? ?? 0F B7 ?? 8B ?? 39 ?? ?? ?? ?? ?? 0F 85 } + $block_74 = { 8D ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 83 ?? ?? 3B ?? 0F 84 } + $block_75 = { 0F B7 ?? ?? 03 ?? 8B ?? ?? 4? 83 ?? ?? 89 ?? ?? 3B ?? 72 } + $block_76 = { 8D ?? ?? 5? 03 ?? 5? E8 ?? ?? ?? ?? 83 ?? ?? 85 ?? 0F 85 } + $block_77 = { 89 ?? ?? 8B ?? ?? ?? ?? ?? 5? 80 B? ?? ?? ?? ?? ?? 0F 84 } + $block_78 = { 83 ?? ?? D1 ?? 0F B7 ?? 33 ?? 89 ?? ?? 89 ?? ?? 85 ?? 74 } + $block_79 = { 38 ?? ?? ?? ?? ?? 0F 94 ?? 89 ?? ?? 5? 3A ?? 8B ?? 0F 84 } + $block_80 = { 68 ?? ?? ?? ?? 5? E8 ?? ?? ?? ?? 83 ?? ?? 85 ?? 0F 84 } + $block_81 = { 5? 68 ?? ?? ?? ?? 8D ?? ?? E8 ?? ?? ?? ?? 3B ?? 0F 8C } + $block_82 = { C6 ?? ?? ?? 8D ?? ?? E8 ?? ?? ?? ?? 83 ?? ?? ?? 0F 8E } + $block_83 = { FF 7? ?? E8 ?? ?? ?? ?? 8B ?? 83 ?? ?? 5? 3B ?? 0F 84 } + $block_84 = { 83 ?? ?? 6A ?? 8B ?? E8 ?? ?? ?? ?? 8B ?? 3B ?? 0F 8E } + $block_85 = { 89 ?? ?? 8B ?? ?? ?? ?? ?? 5? 38 ?? ?? ?? ?? ?? 0F 84 } + $block_86 = { 8B ?? ?? 8B ?? ?? 5? 5? 33 ?? 5? E8 ?? ?? ?? ?? C9 C3 } + $block_87 = { 0F BE ?? E8 ?? ?? ?? ?? 88 ?? ?? 48 ?? ?? 48 ?? ?? 75 } + $block_88 = { 2B ?? ?? 0F B7 ?? 89 ?? ?? 0F B7 ?? 3B ?? ?? 0F 87 } + $block_89 = { E8 ?? ?? ?? ?? 33 ?? 8B ?? 39 ?? ?? ?? ?? ?? 0F 8E } + $block_90 = { 8B ?? ?? 5? 5? 8B ?? 33 ?? 5? E8 ?? ?? ?? ?? C9 C3 } + $block_91 = { 2B ?? ?? 0F B7 ?? 89 ?? ?? 0F B7 ?? 3B ?? ?? 0F 83 } + $block_92 = { 0F B7 ?? ?? ?? ?? ?? ?? 8B ?? 48 ?? ?? 49 ?? ?? 72 } + $block_93 = { 5? E8 ?? ?? ?? ?? 8B ?? 83 ?? ?? 83 ?? ?? 0F 84 } + $block_94 = { 83 ?? ?? D1 ?? 0F B7 ?? 33 ?? 89 ?? ?? 85 ?? 74 } + $block_95 = { 5? C6 ?? ?? ?? ?? ?? ?? FF D? 85 ?? 0F 94 ?? 88 } + $block_96 = { 03 ?? 6A ?? 99 5? F7 ?? 39 ?? ?? ?? ?? ?? 0F 9F } + $block_97 = { 66 ?? ?? 0F 95 ?? ?? 33 ?? 66 ?? ?? 66 ?? ?? 74 } + $block_98 = { 8B ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 3B ?? 0F 84 } + $block_99 = { 0F B7 ?? 48 ?? ?? ?? 66 ?? ?? ?? ?? 66 ?? ?? 75 } + + condition: + hash.sha256(0, filesize) == "ff22dbefce16adfc684fb79f4b8cd441a7f08fa34ba1d9b28724e7b32dbd62b4" or + hash.sha256(0, filesize) == "69389f0d35d003ec3c9506243fd264afefe099d99fcc0e7d977007a12290a290" or + hash.sha256(0, filesize) == "1950d2e706fbc6263d376c0c4f16bd5acfd543248ee072657ba3dd62da8427eb" or + hash.sha256(0, filesize) == "6ed939f59476fd31dc4d99e96136e928fbd88aec0d9c59846092c0e93a3c0e27" or + hash.sha256(0, filesize) == "80cf8753ef6e1efd55f5f7afb20571472030e589ceb9423f91384dae51dfca36" or + hash.sha256(0, filesize) == "10bca4fbbd39a86211d8b18622de1760992e81d4a45c1b45c8062faf30bbb7f8" or + hash.sha256(0, filesize) == "b52285393bd75897662c662bcfef0d3e3a0b185fd297c325ffe283abafa93f65" or + hash.sha256(0, filesize) == "eeb7784b77d86627bac32e4db20da382cb4643ff8eb86ab1abaebaa56a650158" or + hash.sha256(0, filesize) == "3a5918c69b6ee801ab8bfc4fc872ac32cc96a47b53c3525723cc27f150e0bfa3" or + 12 of them +} + +rule CarbonDropper_v3_77_ { + meta: + Author = "Intezer Analyze" + Reference = "https://apt-ecosystem.com" + + strings: + $block_0 = { 48 ?? ?? ?? ?? ?? ?? 48 ?? ?? ?? ?? ?? ?? 41 ?? ?? ?? ?? ?? FF 1? ?? ?? ?? ?? 85 ?? 0F 84 } + $block_1 = { 48 ?? ?? ?? ?? ?? ?? ?? FF 1? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 48 ?? ?? 48 ?? ?? 0F 84 } + $block_2 = { 48 ?? ?? ?? ?? ?? ?? 41 ?? ?? ?? ?? ?? 48 ?? ?? FF 1? ?? ?? ?? ?? 85 ?? 0F 84 } + $block_3 = { 0F B7 ?? ?? ?? ?? ?? ?? 48 ?? ?? ?? 66 ?? ?? ?? ?? ?? ?? ?? 66 ?? ?? 75 } + $block_4 = { 0F B7 ?? ?? ?? 48 ?? ?? ?? 66 ?? ?? ?? ?? ?? ?? ?? 66 ?? ?? 75 } + $block_5 = { 48 ?? ?? ?? ?? ?? ?? 49 ?? ?? FF 1? ?? ?? ?? ?? 83 ?? ?? 0F 84 } + $block_6 = { 0F B7 ?? ?? ?? ?? ?? ?? 48 ?? ?? ?? 66 ?? ?? ?? ?? 66 ?? ?? 75 } + $block_7 = { 48 ?? ?? ?? ?? ?? ?? 48 ?? ?? FF 1? ?? ?? ?? ?? 85 ?? 0F 84 } + $block_8 = { 0F B7 ?? ?? 48 ?? ?? ?? 66 ?? ?? ?? ?? ?? ?? ?? 66 ?? ?? 75 } + $block_9 = { 48 ?? ?? ?? 33 ?? 48 ?? ?? 66 ?? ?? 48 ?? ?? 48 ?? ?? 0F 84 } + $block_10 = { 0F B7 ?? ?? 48 ?? ?? ?? 66 ?? ?? ?? ?? 66 ?? ?? 75 } + $block_11 = { 0F B7 ?? 48 ?? ?? ?? 66 ?? ?? ?? ?? ?? 66 ?? ?? 75 } + $block_12 = { 0F B7 ?? 48 ?? ?? ?? 66 ?? ?? ?? ?? 66 ?? ?? 75 } + + condition: + hash.sha256(0, filesize) == "aaa2afe68852cb76bccf7dbb0b541a5d62b7f0b15e47f0a24e63f68f50af167c" or + 12 of them +} + +rule GazerCommunicationModule_x64_ { + meta: + Author = "Intezer Analyze" + Reference = "https://apt-ecosystem.com" + + strings: + $block_0 = { 8B ?? ?? 48 ?? ?? ?? 41 ?? ?? 8B ?? ?? 48 ?? ?? ?? ?? ?? ?? 89 ?? ?? 8B ?? ?? 48 ?? ?? ?? ?? ?? ?? 89 ?? ?? 8B ?? ?? 48 ?? ?? ?? ?? ?? ?? 89 ?? ?? 8B ?? ?? 48 ?? ?? ?? ?? ?? ?? 89 ?? ?? 8B ?? ?? 48 ?? ?? ?? ?? ?? ?? 89 ?? ?? 8B ?? ?? 48 ?? ?? ?? ?? ?? ?? 89 ?? ?? 8B ?? ?? 48 ?? ?? ?? ?? ?? ?? 89 ?? ?? 8B ?? ?? 48 ?? ?? ?? ?? ?? ?? 89 ?? ?? 8B ?? ?? 48 ?? ?? ?? ?? ?? ?? 89 ?? ?? 8B ?? ?? 48 ?? ?? ?? ?? ?? ?? 89 ?? ?? 8B ?? ?? 48 ?? ?? ?? ?? ?? ?? 89 ?? ?? 8B ?? ?? 48 ?? ?? ?? ?? ?? ?? 89 ?? ?? 8B ?? ?? 48 ?? ?? ?? ?? ?? ?? 89 ?? ?? 8B ?? ?? 48 ?? ?? ?? ?? ?? ?? 89 ?? ?? 8B ?? ?? 48 ?? ?? ?? ?? ?? ?? 89 ?? ?? 8B ?? ?? 48 ?? ?? ?? ?? ?? ?? 89 ?? ?? 8B ?? ?? 48 ?? ?? ?? ?? ?? ?? 89 ?? ?? 89 ?? ?? ?? ?? ?? ?? 48 ?? ?? ?? ?? ?? ?? 8B ?? ?? 89 ?? ?? ?? ?? ?? ?? 8B ?? ?? 89 ?? ?? ?? ?? ?? ?? 8B ?? ?? 89 ?? ?? ?? ?? ?? ?? 8B ?? ?? 89 ?? ?? ?? ?? ?? ?? 8B ?? ?? 89 ?? ?? ?? 8B ?? ?? 89 ?? ?? ?? 8B ?? ?? 89 ?? ?? ?? 8B ?? ?? 89 ?? ?? ?? 8B ?? ?? 89 ?? ?? ?? 8B ?? ?? 89 ?? ?? ?? 8B ?? ?? 89 ?? ?? ?? 8B ?? ?? 89 ?? ?? ?? 8B ?? ?? 44 ?? ?? 89 ?? ?? ?? 8B ?? ?? 89 ?? ?? ?? 8B ?? ?? 4C ?? ?? ?? ?? ?? ?? 89 ?? ?? ?? 8B ?? ?? 48 ?? ?? ?? ?? ?? ?? BA ?? ?? ?? ?? 89 ?? ?? ?? E8 ?? ?? ?? ?? 4C ?? ?? ?? ?? ?? ?? 48 ?? ?? 45 ?? ?? ?? 41 ?? ?? 49 ?? ?? ?? FF 1? ?? ?? ?? ?? 48 ?? ?? ?? ?? ?? ?? 48 ?? ?? ?? 48 ?? ?? 0F 84 } + $block_1 = { 8B ?? 48 ?? ?? ?? 41 ?? ?? 8B ?? 44 ?? ?? 48 ?? ?? ?? 49 ?? ?? 48 ?? ?? ?? 49 ?? ?? 41 ?? ?? ?? ?? ?? ?? ?? 41 ?? ?? ?? ?? ?? ?? ?? 41 ?? ?? 4D ?? ?? 48 ?? ?? ?? 49 ?? ?? 41 ?? ?? ?? ?? ?? ?? ?? 41 ?? ?? 43 ?? ?? ?? ?? ?? ?? ?? 44 ?? ?? C1 ?? ?? 33 ?? ?? 8B ?? 44 ?? ?? 48 ?? ?? ?? 49 ?? ?? 48 ?? ?? ?? 49 ?? ?? 41 ?? ?? ?? ?? ?? ?? ?? 41 ?? ?? ?? ?? ?? ?? ?? 41 ?? ?? 4D ?? ?? 48 ?? ?? ?? 49 ?? ?? 41 ?? ?? ?? ?? ?? ?? ?? 8B ?? ?? 43 ?? ?? ?? ?? ?? ?? ?? 44 ?? ?? 41 ?? ?? 8B ?? 44 ?? ?? 48 ?? ?? ?? 49 ?? ?? 48 ?? ?? ?? 49 ?? ?? 41 ?? ?? ?? ?? ?? ?? ?? 41 ?? ?? ?? ?? ?? ?? ?? 41 ?? ?? 4D ?? ?? 48 ?? ?? ?? 49 ?? ?? 41 ?? ?? ?? ?? ?? ?? ?? 41 ?? ?? 43 ?? ?? ?? ?? ?? ?? ?? 44 ?? ?? C1 ?? ?? 33 ?? ?? 8B ?? 44 ?? ?? 48 ?? ?? ?? 49 ?? ?? 48 ?? ?? ?? 49 ?? ?? 41 ?? ?? ?? ?? ?? ?? ?? 41 ?? ?? ?? ?? ?? ?? ?? 41 ?? ?? 4D ?? ?? 48 ?? ?? ?? 49 ?? ?? 41 ?? ?? ?? ?? ?? ?? ?? 43 ?? ?? ?? ?? ?? ?? ?? 44 ?? ?? 48 ?? ?? 0F 85 } + $block_2 = { 8B ?? 48 ?? ?? ?? 41 ?? ?? 8B ?? 44 ?? ?? 48 ?? ?? ?? 49 ?? ?? 48 ?? ?? ?? 49 ?? ?? 8B ?? ?? ?? ?? ?? ?? 33 ?? ?? ?? ?? ?? ?? 41 ?? ?? 4D ?? ?? 48 ?? ?? ?? 49 ?? ?? 33 ?? ?? ?? ?? ?? ?? 41 ?? ?? 42 ?? ?? ?? ?? ?? ?? ?? 44 ?? ?? C1 ?? ?? 33 ?? ?? 8B ?? 44 ?? ?? 48 ?? ?? ?? 49 ?? ?? 48 ?? ?? ?? 49 ?? ?? 8B ?? ?? ?? ?? ?? ?? 33 ?? ?? ?? ?? ?? ?? 41 ?? ?? 4D ?? ?? 48 ?? ?? ?? 49 ?? ?? 33 ?? ?? ?? ?? ?? ?? 8B ?? ?? 42 ?? ?? ?? ?? ?? ?? ?? 44 ?? ?? 41 ?? ?? 8B ?? 44 ?? ?? 48 ?? ?? ?? 49 ?? ?? 48 ?? ?? ?? 49 ?? ?? 8B ?? ?? ?? ?? ?? ?? 33 ?? ?? ?? ?? ?? ?? 41 ?? ?? 4D ?? ?? 48 ?? ?? ?? 49 ?? ?? 33 ?? ?? ?? ?? ?? ?? 41 ?? ?? 42 ?? ?? ?? ?? ?? ?? ?? 44 ?? ?? C1 ?? ?? 33 ?? ?? 8B ?? 44 ?? ?? 48 ?? ?? ?? 49 ?? ?? 48 ?? ?? ?? 49 ?? ?? 8B ?? ?? ?? ?? ?? ?? 33 ?? ?? ?? ?? ?? ?? 41 ?? ?? 4D ?? ?? 48 ?? ?? ?? 49 ?? ?? 33 ?? ?? ?? ?? ?? ?? 42 ?? ?? ?? ?? ?? ?? ?? 44 ?? ?? 48 ?? ?? 0F 85 } + $block_3 = { 8B ?? 48 ?? ?? ?? 41 ?? ?? 8B ?? 44 ?? ?? 48 ?? ?? ?? 49 ?? ?? 48 ?? ?? ?? 49 ?? ?? 8B ?? ?? ?? ?? ?? ?? 33 ?? ?? ?? ?? ?? ?? 41 ?? ?? 4D ?? ?? 48 ?? ?? ?? 49 ?? ?? 33 ?? ?? ?? ?? ?? ?? 41 ?? ?? 42 ?? ?? ?? ?? ?? ?? ?? 44 ?? ?? C1 ?? ?? 33 ?? ?? 8B ?? 44 ?? ?? 48 ?? ?? ?? 49 ?? ?? 48 ?? ?? ?? 49 ?? ?? 8B ?? ?? ?? ?? ?? ?? 33 ?? ?? ?? ?? ?? ?? 41 ?? ?? 4D ?? ?? 48 ?? ?? ?? 49 ?? ?? 33 ?? ?? ?? ?? ?? ?? 8B ?? ?? 42 ?? ?? ?? ?? ?? ?? ?? 44 ?? ?? 41 ?? ?? 8B ?? 44 ?? ?? 48 ?? ?? ?? 49 ?? ?? 48 ?? ?? ?? 49 ?? ?? 8B ?? ?? ?? ?? ?? ?? 33 ?? ?? ?? ?? ?? ?? 41 ?? ?? 4D ?? ?? 48 ?? ?? ?? 49 ?? ?? 33 ?? ?? ?? ?? ?? ?? 41 ?? ?? 42 ?? ?? ?? ?? ?? ?? ?? 44 ?? ?? C1 ?? ?? 33 ?? ?? 8B ?? 44 ?? ?? 48 ?? ?? ?? 49 ?? ?? 48 ?? ?? ?? 49 ?? ?? 8B ?? ?? ?? ?? ?? ?? 33 ?? ?? ?? ?? ?? ?? 41 ?? ?? 4D ?? ?? 48 ?? ?? ?? 49 ?? ?? 33 ?? ?? ?? ?? ?? ?? 42 ?? ?? ?? ?? ?? ?? ?? 44 ?? ?? 49 ?? ?? 0F 85 } + $block_4 = { 48 ?? ?? 48 ?? ?? ?? 48 ?? ?? ?? 48 ?? ?? ?? 48 ?? ?? ?? 41 ?? 41 ?? 44 ?? ?? ?? 0F B6 ?? ?? 49 ?? ?? 44 ?? ?? ?? ?? 41 ?? ?? ?? 48 ?? ?? ?? 44 ?? ?? 0F B6 ?? ?? 41 ?? ?? ?? 41 ?? ?? ?? BD ?? ?? ?? ?? 41 ?? ?? ?? ?? ?? 44 ?? ?? 0F B6 ?? ?? 41 ?? ?? ?? 44 ?? ?? 0F B6 ?? ?? 44 ?? ?? 0F B6 ?? ?? 41 ?? ?? ?? 44 ?? ?? 0F B6 ?? ?? 41 ?? ?? ?? 44 ?? ?? 41 ?? ?? C1 ?? ?? 41 ?? ?? 23 ?? 44 ?? ?? C1 ?? ?? 44 ?? ?? 41 ?? ?? C1 ?? ?? 41 ?? ?? 0F B7 ?? 44 ?? ?? C1 ?? ?? 44 ?? ?? 41 ?? ?? C1 ?? ?? 41 ?? ?? 41 ?? ?? 4C ?? ?? ?? ?? ?? ?? 44 ?? ?? C1 ?? ?? 44 ?? ?? 45 ?? ?? 41 ?? ?? ?? 45 ?? ?? 41 ?? ?? ?? ?? ?? ?? 45 ?? ?? 41 ?? ?? ?? 45 ?? ?? 41 ?? ?? 45 ?? ?? 45 ?? ?? 41 ?? ?? ?? ?? ?? ?? 45 ?? ?? 45 ?? ?? 41 ?? ?? ?? ?? ?? 45 ?? ?? ?? 41 ?? ?? 41 } + $block_5 = { 48 ?? ?? ?? ?? 48 ?? ?? ?? ?? 48 ?? ?? ?? ?? 5? 41 ?? 41 ?? 48 ?? ?? ?? ?? ?? ?? 4D ?? ?? 8B ?? 4C ?? ?? ?? ?? ?? ?? 4C ?? ?? ?? ?? ?? ?? BA ?? ?? ?? ?? 49 ?? ?? E8 ?? ?? ?? ?? 4C ?? ?? ?? ?? ?? ?? BA ?? ?? ?? ?? 49 ?? ?? E8 ?? ?? ?? ?? 48 ?? ?? ?? ?? FF 1? ?? ?? ?? ?? 44 ?? ?? ?? ?? ?? 0F B7 ?? ?? ?? 44 ?? ?? ?? ?? ?? 44 ?? ?? ?? ?? 4C ?? ?? ?? ?? ?? ?? BA ?? ?? ?? ?? 49 ?? ?? 89 ?? ?? ?? E8 ?? ?? ?? ?? 48 ?? ?? ?? ?? B9 ?? ?? ?? ?? FF 1? ?? ?? ?? ?? 8B ?? FF 1? ?? ?? ?? ?? 48 ?? ?? FF 1? ?? ?? ?? ?? 8B ?? FF 1? ?? ?? ?? ?? 48 ?? ?? ?? ?? 89 ?? ?? ?? 4C ?? ?? ?? ?? ?? ?? 41 ?? ?? ?? ?? ?? BA ?? ?? ?? ?? 49 ?? ?? 89 ?? ?? ?? 89 ?? ?? ?? E8 ?? ?? ?? ?? B9 ?? ?? ?? ?? FF 1? ?? ?? ?? ?? 48 ?? ?? 48 ?? ?? 74 } + $block_6 = { 48 ?? ?? ?? ?? FF 1? ?? ?? ?? ?? 48 ?? ?? ?? ?? 45 ?? ?? 4C ?? ?? B1 ?? E8 ?? ?? ?? ?? 48 ?? ?? ?? ?? 88 ?? ?? FF 1? ?? ?? ?? ?? 48 ?? ?? ?? ?? 41 ?? ?? ?? ?? ?? B1 ?? 4C ?? ?? E8 ?? ?? ?? ?? 48 ?? ?? ?? ?? 88 ?? ?? FF 1? ?? ?? ?? ?? 8A ?? ?? ?? ?? ?? 8A ?? 48 ?? ?? ?? ?? 4C ?? ?? 80 E? ?? 41 ?? ?? ?? ?? ?? E8 ?? ?? ?? ?? 48 ?? ?? ?? ?? 88 ?? ?? FF 1? ?? ?? ?? ?? C0 ?? ?? 48 ?? ?? ?? ?? 41 ?? ?? ?? ?? ?? 8A ?? 4C ?? ?? E8 ?? ?? ?? ?? 4D ?? ?? C6 ?? ?? ?? 88 ?? ?? B8 ?? ?? ?? ?? 45 ?? ?? ?? 45 ?? ?? F7 ?? 8B ?? C1 ?? ?? 89 ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 6B ?? ?? 2B ?? 89 ?? ?? ?? 48 ?? ?? ?? 8B ?? ?? ?? 48 ?? ?? ?? ?? 99 2B ?? D1 ?? 8D ?? ?? 89 } + $block_7 = { 41 ?? ?? 44 ?? ?? C1 ?? ?? 41 ?? ?? ?? 44 ?? ?? 43 ?? ?? ?? ?? ?? ?? ?? 8B ?? C1 ?? ?? 44 ?? ?? C1 ?? ?? 33 ?? 48 ?? ?? ?? 33 ?? 41 ?? ?? 47 ?? ?? ?? ?? ?? ?? ?? FF 1? ?? ?? ?? ?? 44 ?? ?? 4C ?? ?? ?? 48 ?? ?? ?? 41 ?? ?? 41 ?? ?? ?? 41 ?? ?? C1 ?? ?? 41 ?? ?? ?? 41 ?? ?? 41 ?? ?? 4C ?? ?? ?? 33 ?? 89 ?? 43 ?? ?? ?? ?? ?? ?? ?? 8B ?? C1 ?? ?? C1 ?? ?? 33 ?? 49 ?? ?? 48 ?? ?? ?? 33 ?? 43 ?? ?? ?? ?? ?? ?? ?? 48 ?? ?? ?? 48 ?? ?? ?? 48 ?? ?? 4D ?? ?? 49 ?? ?? 49 ?? ?? ?? 48 ?? ?? ?? 4C ?? ?? ?? 45 ?? ?? ?? ?? ?? ?? ?? 44 ?? ?? ?? ?? 41 ?? ?? ?? ?? ?? ?? 45 ?? ?? 41 ?? ?? ?? ?? ?? 41 ?? ?? C1 ?? ?? 83 ?? ?? 89 ?? ?? 45 ?? ?? 0F 84 } + $block_8 = { 41 ?? ?? 44 ?? ?? C1 ?? ?? 41 ?? ?? ?? 44 ?? ?? 43 ?? ?? ?? ?? ?? ?? ?? 8B ?? C1 ?? ?? 44 ?? ?? C1 ?? ?? 33 ?? 48 ?? ?? ?? 33 ?? 41 ?? ?? 47 ?? ?? ?? ?? ?? ?? ?? FF 1? ?? ?? ?? ?? 45 ?? ?? 4C ?? ?? ?? 48 ?? ?? ?? 41 ?? ?? 41 ?? ?? ?? 41 ?? ?? ?? ?? ?? C1 ?? ?? 41 ?? ?? 41 ?? ?? 33 ?? 41 ?? ?? 43 ?? ?? ?? ?? ?? ?? ?? 4C ?? ?? ?? 8B ?? C1 ?? ?? 4D ?? ?? C1 ?? ?? 49 ?? ?? ?? 33 ?? 48 ?? ?? ?? 33 ?? 43 ?? ?? ?? ?? ?? ?? ?? 48 ?? ?? 4D ?? ?? 49 ?? ?? 4D ?? ?? 48 ?? ?? ?? 4C ?? ?? ?? 45 ?? ?? ?? ?? ?? ?? ?? 44 ?? ?? ?? ?? 8B ?? ?? F7 ?? 41 ?? ?? ?? ?? ?? ?? 83 ?? ?? 44 ?? ?? 41 ?? ?? C1 ?? ?? 83 ?? ?? 89 ?? ?? 45 ?? ?? 0F 84 } + $block_9 = { 4C ?? ?? 33 ?? 49 ?? ?? FF 1? ?? ?? ?? ?? 41 ?? ?? ?? ?? ?? 45 ?? ?? 41 ?? ?? ?? ?? ?? 8B ?? 41 ?? ?? 44 ?? ?? ?? C1 ?? ?? 41 ?? ?? 41 ?? ?? C1 ?? ?? 41 ?? ?? 8B ?? 0F B6 ?? 41 ?? ?? C1 ?? ?? C1 ?? ?? 41 ?? ?? C1 ?? ?? 0F B6 ?? 03 ?? 48 ?? ?? ?? ?? ?? ?? 03 ?? 41 ?? ?? ?? 41 ?? ?? ?? 03 ?? B8 ?? ?? ?? ?? 03 ?? 41 ?? ?? F7 ?? 41 ?? ?? 41 ?? ?? ?? C1 ?? ?? 41 ?? ?? 03 ?? 41 ?? ?? 41 ?? ?? 6B ?? ?? 2B ?? F7 ?? 41 ?? ?? C1 ?? ?? 69 ?? ?? ?? ?? ?? 2B ?? F7 ?? C1 ?? ?? 69 ?? ?? ?? ?? ?? 2B ?? FF 1? ?? ?? ?? ?? 49 ?? ?? ?? BA ?? ?? ?? ?? 4C ?? ?? ?? ?? ?? ?? 44 ?? ?? 48 ?? ?? 89 ?? ?? ?? 89 ?? ?? ?? FF 1? ?? ?? ?? ?? B3 } + + condition: + hash.sha256(0, filesize) == "93e36c336b5b20b3c33b7d0f8844572ddcc10046d1fe91b7b106d78c7fea932c" or + 10 of them +} + +rule Nautilus { + meta: + Author = "Intezer Analyze" + Reference = "https://apt-ecosystem.com" + + strings: + $block_0 = { 48 ?? ?? ?? ?? 44 ?? ?? 48 ?? ?? E8 ?? ?? ?? ?? F2 ?? ?? ?? ?? ?? 66 ?? ?? ?? ?? ?? ?? ?? 0F 8A } + $block_1 = { 44 ?? ?? ?? 4C ?? ?? ?? 48 ?? ?? ?? 8D ?? ?? 48 ?? ?? 48 ?? ?? ?? ?? E8 ?? ?? ?? ?? 85 ?? 0F 85 } + $block_2 = { 49 ?? ?? 48 ?? ?? 48 ?? ?? A8 ?? 0F 95 ?? 48 ?? ?? ?? 48 ?? ?? E8 ?? ?? ?? ?? 44 ?? ?? 85 ?? 75 } + $block_3 = { 48 ?? ?? 48 ?? ?? E8 ?? ?? ?? ?? 0F B6 ?? ?? 48 ?? ?? 44 ?? ?? E8 ?? ?? ?? ?? 8B ?? 48 ?? ?? E8 } + $block_4 = { 8B ?? 8B ?? C1 ?? ?? 83 ?? ?? 0F B6 ?? 4C ?? ?? 4D ?? ?? 4D ?? ?? 4B ?? ?? ?? 83 ?? ?? 0F 8F } + $block_5 = { 48 ?? ?? ?? ?? ?? 49 ?? ?? ?? ?? ?? ?? 48 ?? ?? 48 ?? ?? ?? ?? 48 ?? ?? ?? ?? ?? ?? ?? 0F 85 } + $block_6 = { 4C ?? ?? ?? ?? ?? ?? ?? 48 ?? ?? ?? ?? ?? ?? 48 ?? ?? E8 ?? ?? ?? ?? 48 ?? ?? 48 ?? ?? 0F 84 } + $block_7 = { 44 ?? ?? ?? 48 ?? ?? 41 ?? ?? F6 ?? 41 ?? ?? F6 ?? 0F B6 ?? 48 ?? ?? ?? 4C ?? ?? 49 ?? ?? 72 } + $block_8 = { 41 ?? ?? ?? 4D ?? ?? 33 ?? 8B ?? 89 ?? ?? ?? 48 ?? ?? ?? ?? FF 1? ?? ?? ?? ?? 85 ?? 0F 84 } + $block_9 = { 4C ?? ?? ?? ?? 4D ?? ?? 48 ?? ?? 48 ?? ?? 4C ?? ?? ?? ?? E8 ?? ?? ?? ?? 8B ?? 85 ?? 0F 85 } + $block_10 = { 8B ?? 41 ?? ?? 4D ?? ?? ?? 24 ?? F6 ?? 8D ?? ?? 1B ?? 83 ?? ?? 33 ?? 0F B6 ?? 4C ?? ?? 75 } + $block_11 = { 48 ?? ?? ?? 0F B6 ?? ?? C7 ?? ?? ?? ?? ?? ?? FF C? 83 ?? ?? 89 ?? ?? 89 ?? ?? 89 ?? ?? EB } + $block_12 = { FF 0? ?? ?? ?? ?? 45 ?? ?? ?? ?? 48 ?? ?? ?? 48 ?? ?? ?? E8 ?? ?? ?? ?? 8B ?? 85 ?? 0F 85 } + $block_13 = { B8 ?? ?? ?? ?? 41 ?? ?? 44 ?? ?? 41 ?? ?? ?? 44 ?? ?? 45 ?? ?? 41 ?? ?? ?? ?? ?? ?? 0F 8F } + $block_14 = { 0F B6 ?? 44 ?? ?? 44 ?? ?? 44 ?? ?? ?? ?? 45 ?? ?? 4C ?? ?? 89 ?? ?? ?? 48 ?? ?? ?? ?? 48 } + $block_15 = { 44 ?? ?? ?? ?? ?? ?? 4C ?? ?? ?? 48 ?? ?? ?? 48 ?? ?? E8 ?? ?? ?? ?? 8B ?? 85 ?? 0F 85 } + $block_16 = { 44 ?? ?? ?? ?? ?? ?? 4C ?? ?? ?? 48 ?? ?? ?? 49 ?? ?? E8 ?? ?? ?? ?? 8B ?? 85 ?? 0F 85 } + $block_17 = { A8 ?? 8B ?? 48 ?? ?? 0F 95 ?? 48 ?? ?? ?? 48 ?? ?? E8 ?? ?? ?? ?? 44 ?? ?? 85 ?? 0F 85 } + $block_18 = { 48 ?? ?? ?? 48 ?? ?? ?? ?? ?? ?? 8B ?? ?? FF C? 81 F? ?? ?? ?? ?? 89 ?? ?? 0F 44 ?? 89 } + $block_19 = { 48 ?? ?? ?? 41 ?? ?? F6 ?? 41 ?? ?? C0 ?? ?? E8 ?? ?? ?? ?? 33 ?? 44 ?? ?? 85 ?? 0F 85 } + $block_20 = { FF 0? ?? ?? ?? ?? 4C ?? ?? ?? 48 ?? ?? ?? 48 ?? ?? ?? E8 ?? ?? ?? ?? 8B ?? 85 ?? 0F 85 } + $block_21 = { FF 0? ?? ?? ?? ?? 4D ?? ?? ?? 48 ?? ?? ?? 48 ?? ?? ?? E8 ?? ?? ?? ?? 8B ?? 85 ?? 0F 85 } + $block_22 = { E8 ?? ?? ?? ?? 48 ?? ?? ?? 48 ?? ?? 48 ?? ?? ?? E8 ?? ?? ?? ?? 8B ?? ?? 83 ?? ?? 0F 84 } + $block_23 = { 8B ?? ?? 69 ?? ?? ?? ?? ?? ?? 89 ?? ?? ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? 40 ?? ?? ?? 0F 84 } + $block_24 = { 4C ?? ?? ?? ?? 8B ?? 48 ?? ?? E8 ?? ?? ?? ?? 48 ?? ?? ?? ?? 48 ?? ?? 48 ?? ?? 0F 85 } + $block_25 = { 48 ?? ?? ?? 44 ?? ?? ?? ?? ?? ?? 4C ?? ?? 48 ?? ?? E8 ?? ?? ?? ?? 8B ?? 85 ?? 0F 85 } + $block_26 = { FF 0? ?? ?? ?? ?? 48 ?? ?? ?? 48 ?? ?? ?? 4D ?? ?? E8 ?? ?? ?? ?? 8B ?? 85 ?? 0F 85 } + $block_27 = { FF 0? ?? ?? ?? ?? 48 ?? ?? ?? 48 ?? ?? ?? 4C ?? ?? E8 ?? ?? ?? ?? 8B ?? 85 ?? 0F 85 } + $block_28 = { 0F 10 ?? 48 ?? ?? ?? ?? 48 ?? ?? ?? ?? 48 ?? ?? ?? ?? F3 ?? ?? ?? 48 ?? ?? ?? 5? C3 } + $block_29 = { 41 ?? ?? ?? 45 ?? ?? ?? 4D ?? ?? C1 ?? ?? 44 ?? ?? ?? ?? 49 ?? ?? 49 ?? ?? ?? 0F 8C } + $block_30 = { 0F B6 ?? ?? E8 ?? ?? ?? ?? 88 ?? 48 ?? ?? ?? ?? 48 ?? ?? 48 ?? ?? ?? 48 ?? ?? 72 } + $block_31 = { 4C ?? ?? ?? ?? 48 ?? ?? ?? ?? ?? ?? 48 ?? ?? ?? E8 ?? ?? ?? ?? 8B ?? 85 ?? 0F 85 } + $block_32 = { 48 ?? ?? ?? 41 ?? ?? ?? ?? ?? 48 ?? ?? ?? 8B ?? 83 ?? ?? 83 ?? ?? 83 ?? ?? 0F 87 } + $block_33 = { 44 ?? ?? ?? ?? ?? ?? 4C ?? ?? 48 ?? ?? 48 ?? ?? E8 ?? ?? ?? ?? 8B ?? 85 ?? 0F 85 } + $block_34 = { 48 ?? ?? ?? ?? ?? ?? 48 ?? ?? ?? ?? ?? ?? 48 ?? ?? E8 ?? ?? ?? ?? 85 ?? 0F 85 } + $block_35 = { 4C ?? ?? ?? ?? ?? ?? 48 ?? ?? ?? ?? ?? ?? 49 ?? ?? E8 ?? ?? ?? ?? 85 ?? 0F 85 } + $block_36 = { 48 ?? ?? FF 1? ?? ?? ?? ?? 48 ?? ?? FE ?? 0F B6 ?? FF 1? ?? ?? ?? ?? 8B ?? 89 } + $block_37 = { BA ?? ?? ?? ?? 8D ?? ?? E8 ?? ?? ?? ?? 48 ?? ?? ?? 48 ?? ?? 48 ?? ?? 0F 84 } + $block_38 = { 4D ?? ?? ?? 48 ?? ?? ?? 4D ?? ?? 49 ?? ?? E8 ?? ?? ?? ?? 8B ?? 85 ?? 0F 85 } + $block_39 = { 48 ?? ?? ?? 48 ?? ?? ?? ?? ?? ?? E8 ?? ?? ?? ?? BB ?? ?? ?? ?? 85 ?? 0F 84 } + $block_40 = { 44 ?? ?? ?? ?? 41 ?? ?? 41 ?? ?? 41 ?? ?? 41 ?? ?? 3B ?? 0F 4C ?? 85 ?? 7E } + $block_41 = { BA ?? ?? ?? ?? 8D ?? ?? E8 ?? ?? ?? ?? 48 ?? ?? 48 ?? ?? 48 ?? ?? 0F 84 } + $block_42 = { 48 ?? ?? ?? ?? 48 ?? ?? ?? E8 ?? ?? ?? ?? 8B ?? 89 ?? ?? ?? 85 ?? 0F 85 } + $block_43 = { 41 ?? ?? ?? ?? ?? ?? 48 ?? ?? 8D ?? ?? 41 ?? ?? 48 ?? ?? ?? 3B ?? 0F 8C } + $block_44 = { 48 ?? ?? ?? ?? 44 ?? ?? 48 ?? ?? E8 ?? ?? ?? ?? 80 7? ?? ?? ?? 0F 85 } + $block_45 = { 8A ?? ?? B9 ?? ?? ?? ?? 40 ?? ?? C0 ?? ?? 41 ?? ?? D2 ?? 84 ?? 0F 85 } + $block_46 = { 48 ?? ?? ?? 48 ?? ?? ?? ?? ?? ?? 48 ?? ?? E8 ?? ?? ?? ?? 85 ?? 0F 89 } + $block_47 = { 4C ?? ?? ?? 48 ?? ?? ?? 48 ?? ?? ?? E8 ?? ?? ?? ?? 8B ?? 85 ?? 0F 85 } + $block_48 = { 44 ?? ?? 48 ?? ?? 48 ?? ?? E8 ?? ?? ?? ?? 8B ?? ?? ?? 3B ?? 0F 8C } + $block_49 = { 4C ?? ?? ?? 4D ?? ?? 49 ?? ?? 48 ?? ?? E8 ?? ?? ?? ?? 85 ?? 0F 85 } + $block_50 = { 4C ?? ?? ?? 48 ?? ?? ?? 48 ?? ?? E8 ?? ?? ?? ?? 8B ?? 85 ?? 0F 85 } + $block_51 = { 48 ?? ?? E8 ?? ?? ?? ?? 0F B6 ?? 8D ?? ?? ?? ?? ?? ?? 4C ?? ?? 72 } + $block_52 = { 4B ?? ?? ?? 03 ?? 48 ?? ?? 89 ?? ?? ?? 89 ?? ?? ?? 41 ?? ?? 0F 8F } + $block_53 = { 4C ?? ?? ?? 48 ?? ?? ?? 48 ?? ?? ?? E8 ?? ?? ?? ?? 85 ?? 0F 85 } + $block_54 = { 0F 28 ?? ?? BE ?? ?? ?? ?? 48 ?? ?? ?? ?? 44 ?? ?? ?? 0F 11 } + $block_55 = { 0F B6 ?? 3B ?? 0F 4F ?? 3B ?? 0F 4C ?? 48 ?? ?? 48 ?? ?? 75 } + $block_56 = { 48 ?? ?? ?? BB ?? ?? ?? ?? 8B ?? E8 ?? ?? ?? ?? 85 ?? 0F 88 } + $block_57 = { 48 ?? ?? ?? ?? ?? ?? 48 ?? ?? E8 ?? ?? ?? ?? 48 ?? ?? 0F 84 } + $block_58 = { 48 ?? ?? 48 ?? ?? E8 ?? ?? ?? ?? 48 ?? ?? 48 ?? ?? 0F 84 } + $block_59 = { 0F 28 ?? ?? 41 ?? ?? ?? 45 ?? ?? ?? 48 ?? ?? ?? ?? 0F 11 } + $block_60 = { 8B ?? ?? ?? ?? ?? E8 ?? ?? ?? ?? 4C ?? ?? 48 ?? ?? 0F 84 } + $block_61 = { 48 ?? ?? ?? ?? 4C ?? ?? ?? ?? 4D ?? ?? ?? 4C ?? ?? 0F 82 } + $block_62 = { 4C ?? ?? ?? 48 ?? ?? 48 ?? ?? E8 ?? ?? ?? ?? 85 ?? 0F 85 } + $block_63 = { 49 ?? ?? 49 ?? ?? E8 ?? ?? ?? ?? 4C ?? ?? 48 ?? ?? 0F 84 } + $block_64 = { 8D ?? ?? 8D ?? ?? E8 ?? ?? ?? ?? 48 ?? ?? 48 ?? ?? 0F 84 } + $block_65 = { 48 ?? ?? ?? 49 ?? ?? E8 ?? ?? ?? ?? 8B ?? 85 ?? 0F 85 } + $block_66 = { 48 ?? ?? ?? 48 ?? ?? E8 ?? ?? ?? ?? 8B ?? 85 ?? 0F 85 } + $block_67 = { 45 ?? ?? ?? 4D ?? ?? 66 ?? ?? ?? ?? 41 ?? ?? ?? 0F 8C } + $block_68 = { 49 ?? ?? 48 ?? ?? E8 ?? ?? ?? ?? 8B ?? 85 ?? 0F 85 } + $block_69 = { 49 ?? ?? 49 ?? ?? E8 ?? ?? ?? ?? 8B ?? 85 ?? 0F 85 } + $block_70 = { 41 ?? ?? 41 ?? ?? 44 ?? ?? 45 ?? ?? 45 ?? ?? 0F 8F } + $block_71 = { 49 ?? ?? ?? 48 ?? ?? 48 ?? ?? ?? 49 ?? ?? ?? 0F 86 } + $block_72 = { 48 ?? ?? ?? 48 ?? ?? ?? E8 ?? ?? ?? ?? 85 ?? 0F 85 } + $block_73 = { 48 ?? ?? ?? ?? 48 ?? ?? ?? 48 ?? ?? ?? 0F 10 ?? F3 } + $block_74 = { 49 ?? ?? ?? 8B ?? 8B ?? C1 ?? ?? 0F B6 ?? 85 ?? 7E } + $block_75 = { 4C ?? ?? ?? 44 ?? ?? ?? 44 ?? ?? ?? 44 ?? ?? 0F 84 } + $block_76 = { 48 ?? ?? ?? 49 ?? ?? E8 ?? ?? ?? ?? 85 ?? 0F 85 } + $block_77 = { 48 ?? ?? ?? ?? E8 ?? ?? ?? ?? 8B ?? 85 ?? 0F 85 } + $block_78 = { 48 ?? ?? ?? 48 ?? ?? ?? 48 ?? ?? ?? ?? ?? 0F 87 } + $block_79 = { 48 ?? ?? ?? 48 ?? ?? B8 ?? ?? ?? ?? 84 ?? 0F 84 } + $block_80 = { 83 ?? ?? ?? 8B ?? ?? 4C ?? ?? ?? 49 ?? ?? 0F 85 } + $block_81 = { 41 ?? ?? ?? ?? ?? ?? 44 ?? ?? ?? 44 ?? ?? 0F 8C } + $block_82 = { 49 ?? ?? E8 ?? ?? ?? ?? 48 ?? ?? 48 ?? ?? 0F 84 } + + condition: + hash.sha256(0, filesize) == "cefc5cf4d46abb86fb0f7c81549777cf1a2a5bfbe1ce9e7d08128ab8bfc978f8" or + 24 of them +} + +rule CarbonOrchestrator_v3_81_ { + meta: + Author = "Intezer Analyze" + Reference = "https://apt-ecosystem.com" + + strings: + $block_0 = { E8 ?? ?? ?? ?? 99 B9 ?? ?? ?? ?? F7 ?? 8B ?? 48 ?? ?? ?? ?? 8B ?? ?? 2B ?? 8B ?? 89 ?? ?? ?? EB } + $block_1 = { 8B ?? ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? ?? E8 ?? ?? ?? ?? 8B ?? E8 ?? ?? ?? ?? 0F B6 ?? 85 ?? 74 } + $block_2 = { C7 ?? ?? ?? ?? ?? ?? ?? 48 ?? ?? ?? ?? 0F B6 ?? 88 ?? ?? ?? 0F B6 ?? ?? ?? 3D ?? ?? ?? ?? 0F 85 } + $block_3 = { 4C ?? ?? ?? ?? 88 ?? ?? ?? 48 ?? ?? ?? ?? 48 ?? ?? ?? ?? ?? ?? 0F B6 ?? ?? ?? ?? ?? ?? 85 ?? 74 } + $block_4 = { 5? 68 ?? ?? ?? ?? 6A ?? 5? 5? 68 ?? ?? ?? ?? FF 3? ?? ?? ?? ?? FF 1? ?? ?? ?? ?? 83 ?? ?? 0F 85 } + $block_5 = { 5? 68 ?? ?? ?? ?? 6A ?? 5? 5? 68 ?? ?? ?? ?? FF 7? ?? FF 1? ?? ?? ?? ?? 89 ?? ?? 83 ?? ?? 0F 84 } + $block_6 = { 66 ?? ?? ?? 6A ?? 8D ?? ?? 5? 5? 5? FF 7? ?? E8 ?? ?? ?? ?? 83 ?? ?? 8B ?? 89 ?? ?? 85 ?? 0F 85 } + $block_7 = { 89 ?? ?? 6A ?? 8D ?? ?? ?? ?? ?? 5? 5? FF 7? ?? 5? E8 ?? ?? ?? ?? 83 ?? ?? 89 ?? ?? 3B ?? 0F 85 } + $block_8 = { 48 ?? ?? ?? ?? ?? ?? 48 ?? ?? ?? ?? FF 1? ?? ?? ?? ?? 48 ?? ?? ?? ?? 0F BE ?? ?? 83 ?? ?? 75 } + $block_9 = { 0F B7 ?? ?? ?? ?? ?? ?? 48 ?? ?? ?? ?? ?? ?? FF 9? ?? ?? ?? ?? 48 ?? ?? ?? ?? 66 ?? ?? ?? EB } + $block_10 = { 8D ?? ?? ?? 5? 8D ?? ?? ?? 5? 8D ?? ?? ?? 5? FF 3? ?? ?? ?? ?? FF 1? ?? ?? ?? ?? 84 ?? 0F 84 } + $block_11 = { FF 7? ?? ?? 8B ?? ?? ?? FF 7? ?? ?? E8 ?? ?? ?? ?? 33 ?? 5? 5? 89 ?? ?? ?? 39 ?? ?? ?? 0F 85 } + $block_12 = { 5? FF 1? ?? ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? 5? 89 ?? ?? ?? FF D? 5? 5? 89 ?? ?? ?? 3B ?? 0F 84 } + $block_13 = { FF 7? ?? FF 1? ?? ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? FF 7? ?? FF 1? ?? ?? ?? ?? 5? 5? 85 ?? 0F 85 } + $block_14 = { 0F BE ?? ?? ?? BA ?? ?? ?? ?? 8B ?? E8 ?? ?? ?? ?? 88 ?? ?? ?? 0F B6 ?? ?? ?? 83 ?? ?? 7C } + $block_15 = { 48 ?? ?? ?? ?? ?? ?? E8 ?? ?? ?? ?? 33 ?? 48 ?? ?? ?? ?? E8 ?? ?? ?? ?? 0F B6 ?? 85 ?? 75 } + $block_16 = { 48 ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? 48 ?? ?? ?? ?? ?? ?? ?? 0F B7 ?? ?? 3D ?? ?? ?? ?? 75 } + $block_17 = { 8B ?? ?? ?? ?? ?? ?? 48 ?? ?? ?? ?? E8 ?? ?? ?? ?? 48 ?? ?? ?? ?? 48 ?? ?? ?? ?? ?? 0F 84 } + $block_18 = { 48 ?? ?? ?? ?? ?? ?? ?? 0F B7 ?? 33 ?? B9 ?? ?? ?? ?? 48 ?? ?? 48 ?? ?? ?? ?? ?? ?? ?? EB } + $block_19 = { 4C ?? ?? ?? ?? 41 ?? ?? ?? ?? ?? 48 ?? ?? ?? ?? 48 ?? ?? ?? ?? E8 ?? ?? ?? ?? 85 ?? 0F 84 } + $block_20 = { FF 1? ?? ?? ?? ?? FF 7? ?? 8B ?? 5? 68 ?? ?? ?? ?? E8 ?? ?? ?? ?? 83 ?? ?? 83 ?? ?? 0F 84 } + $block_21 = { 8B ?? ?? 89 ?? ?? 8D ?? ?? 5? FF 7? ?? 8D ?? ?? E8 ?? ?? ?? ?? 5? 5? 89 ?? ?? 85 ?? 0F 85 } + $block_22 = { 8B ?? 99 F7 ?? 83 ?? ?? ?? 8A ?? 83 ?? ?? ?? 33 ?? 4? 89 ?? ?? 88 ?? ?? 89 ?? ?? 85 ?? 7E } + $block_23 = { 8B ?? ?? 6A ?? 8D ?? ?? ?? 5? 5? 5? FF 7? ?? ?? E8 ?? ?? ?? ?? 8B ?? 83 ?? ?? 3B ?? 0F 85 } + $block_24 = { 8B ?? ?? ?? 44 ?? ?? 48 ?? ?? ?? ?? ?? ?? ?? 48 ?? ?? ?? ?? E8 ?? ?? ?? ?? 85 ?? 0F 85 } + $block_25 = { 48 ?? ?? ?? ?? FF 1? ?? ?? ?? ?? 88 ?? ?? ?? ?? ?? ?? 0F B6 ?? ?? ?? ?? ?? ?? 85 ?? 74 } + $block_26 = { 48 ?? ?? ?? ?? ?? ?? ?? 0F B6 ?? ?? 88 ?? ?? ?? 48 ?? ?? ?? ?? ?? ?? ?? 48 ?? ?? ?? 75 } + $block_27 = { 48 ?? ?? ?? ?? 48 ?? ?? ?? ?? 0F B6 ?? ?? 88 ?? ?? ?? 8B ?? ?? ?? FF C? 89 ?? ?? ?? C7 } + $block_28 = { 8B ?? ?? ?? ?? ?? ?? 8B ?? ?? ?? E8 ?? ?? ?? ?? 8B ?? E8 ?? ?? ?? ?? 0F B6 ?? 85 ?? 74 } + $block_29 = { 41 ?? ?? ?? ?? ?? 48 ?? ?? ?? ?? ?? ?? 48 ?? ?? ?? ?? E8 ?? ?? ?? ?? 0F B6 ?? 85 ?? 75 } + $block_30 = { 0F B6 ?? 23 ?? ?? 8B ?? ?? D3 ?? 8B ?? ?? D2 ?? 0A ?? FF 4? ?? 83 ?? ?? ?? 8B ?? ?? 7C } + $block_31 = { 6A ?? 8D ?? ?? ?? 5? 5? FF 7? ?? ?? FF 7? ?? E8 ?? ?? ?? ?? 8B ?? 83 ?? ?? 85 ?? 0F 85 } + $block_32 = { 48 ?? ?? ?? ?? ?? ?? ?? 0F B7 ?? 33 ?? B9 ?? ?? ?? ?? 48 ?? ?? 48 ?? ?? ?? ?? ?? 73 } + $block_33 = { 48 ?? ?? ?? ?? ?? ?? E8 ?? ?? ?? ?? 48 ?? ?? ?? ?? ?? ?? 0F BE ?? ?? ?? 83 ?? ?? 74 } + $block_34 = { 48 ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? ?? E8 ?? ?? ?? ?? 89 ?? ?? ?? 83 ?? ?? ?? ?? 0F 85 } + $block_35 = { 48 ?? ?? ?? ?? 48 ?? ?? ?? ?? ?? 48 ?? ?? E8 ?? ?? ?? ?? 0F B6 ?? 83 ?? ?? 0F 85 } + $block_36 = { 48 ?? ?? ?? ?? ?? ?? ?? 48 ?? ?? ?? ?? ?? ?? ?? FF 1? ?? ?? ?? ?? 83 ?? ?? 0F 84 } + $block_37 = { 0F BF ?? ?? ?? ?? ?? ?? 48 ?? ?? ?? ?? ?? ?? ?? 89 ?? C7 ?? ?? ?? ?? ?? ?? ?? E9 } + $block_38 = { 48 ?? ?? ?? ?? 48 ?? ?? ?? ?? FF 1? ?? ?? ?? ?? 89 ?? ?? ?? 83 ?? ?? ?? ?? 0F 85 } + $block_39 = { 0F BF ?? ?? ?? ?? ?? ?? 48 ?? ?? ?? ?? ?? ?? ?? 89 ?? C7 ?? ?? ?? ?? ?? ?? ?? EB } + $block_40 = { 8B ?? ?? ?? 8B ?? ?? ?? 03 ?? 8B ?? 89 ?? ?? ?? 8B ?? ?? ?? 39 ?? ?? ?? 0F 82 } + $block_41 = { 48 ?? ?? ?? ?? 48 ?? ?? ?? ?? E8 ?? ?? ?? ?? 89 ?? ?? ?? 83 ?? ?? ?? ?? 0F 85 } + $block_42 = { FF 1? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? ?? 81 B? ?? ?? ?? ?? ?? ?? ?? ?? ?? 0F 85 } + $block_43 = { 48 ?? ?? ?? ?? ?? ?? 48 ?? ?? ?? ?? ?? ?? ?? FF 1? ?? ?? ?? ?? 48 ?? ?? 0F 84 } + $block_44 = { 33 ?? 48 ?? ?? ?? ?? ?? ?? ?? E8 ?? ?? ?? ?? 89 ?? ?? ?? 83 ?? ?? ?? ?? 0F 85 } + $block_45 = { 48 ?? ?? ?? ?? ?? ?? 48 ?? ?? ?? ?? ?? ?? ?? FF 1? ?? ?? ?? ?? 48 ?? ?? 0F 85 } + $block_46 = { 48 ?? ?? ?? ?? ?? ?? ?? FF 1? ?? ?? ?? ?? 0F B6 ?? ?? ?? ?? ?? ?? 83 ?? ?? 75 } + $block_47 = { 0F BE ?? ?? ?? 8B ?? 48 ?? ?? ?? ?? ?? ?? ?? FF 1? ?? ?? ?? ?? 48 ?? ?? 74 } + $block_48 = { B2 ?? 48 ?? ?? ?? ?? ?? ?? ?? E8 ?? ?? ?? ?? 83 ?? ?? ?? ?? ?? ?? ?? 0F 85 } + $block_49 = { 48 ?? ?? ?? ?? 48 ?? ?? ?? 48 ?? ?? ?? ?? ?? ?? 8B ?? ?? ?? 39 ?? ?? 0F 85 } + $block_50 = { 48 ?? ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? 48 ?? ?? ?? ?? 0F B7 ?? ?? 85 ?? 74 } + $block_51 = { 0F B7 ?? ?? ?? 48 ?? ?? ?? ?? ?? ?? FF 9? ?? ?? ?? ?? 66 ?? ?? ?? ?? EB } + $block_52 = { 48 ?? ?? ?? ?? ?? ?? 48 ?? ?? ?? ?? ?? ?? ?? E8 ?? ?? ?? ?? 85 ?? 0F 85 } + $block_53 = { 48 ?? ?? ?? ?? 48 ?? ?? ?? ?? 8B ?? ?? 8B ?? ?? 2B ?? 3B ?? ?? ?? 0F 87 } + $block_54 = { 0F B6 ?? ?? ?? B9 ?? ?? ?? ?? 2B ?? 8B ?? 0F B6 ?? ?? ?? 03 ?? 8B ?? 88 } + $block_55 = { 8B ?? ?? ?? ?? ?? ?? FF C? 48 ?? 48 ?? ?? ?? ?? 0F BE ?? ?? 85 ?? 75 } + $block_56 = { 0F BE ?? ?? ?? 8B ?? 48 ?? ?? ?? ?? FF 1? ?? ?? ?? ?? 48 ?? ?? 74 } + $block_57 = { 48 ?? ?? ?? ?? 8B ?? ?? 99 83 ?? ?? 03 ?? C1 ?? ?? 39 ?? ?? ?? 7E } + $block_58 = { 0F B7 ?? ?? ?? 48 ?? ?? ?? 48 ?? ?? ?? 8B ?? ?? ?? 39 ?? ?? ?? 77 } + $block_59 = { 48 ?? ?? ?? ?? ?? ?? ?? 48 ?? ?? ?? 48 ?? ?? ?? ?? ?? ?? ?? 0F 84 } + $block_60 = { 8B ?? ?? ?? 8B ?? ?? ?? ?? ?? ?? 2B ?? 8B ?? 3D ?? ?? ?? ?? 0F 8C } + $block_61 = { B2 ?? 48 ?? ?? ?? ?? ?? ?? ?? E8 ?? ?? ?? ?? 0F B6 ?? 85 ?? 75 } + $block_62 = { 0F B6 ?? ?? ?? ?? ?? ?? 88 ?? ?? ?? 0F B6 ?? ?? ?? 85 ?? 0F 84 } + $block_63 = { 48 ?? ?? ?? ?? 0F B6 ?? 88 ?? ?? ?? 0F B6 ?? ?? ?? 83 ?? ?? 75 } + $block_64 = { 8B ?? ?? ?? FF C? 89 ?? ?? ?? 0F B7 ?? ?? ?? 39 ?? ?? ?? 0F 83 } + $block_65 = { 48 ?? ?? ?? ?? ?? ?? ?? 8B ?? ?? 39 ?? ?? ?? ?? ?? ?? 0F 83 } + $block_66 = { 0F B7 ?? ?? ?? ?? ?? ?? 0F B7 ?? ?? ?? ?? ?? ?? 3B ?? 0F 85 } + $block_67 = { 48 ?? ?? ?? ?? 48 ?? ?? ?? ?? ?? ?? ?? 48 ?? ?? ?? ?? 0F 84 } + $block_68 = { 8B ?? ?? ?? FF C? 48 ?? 48 ?? ?? ?? ?? 0F BE ?? ?? 85 ?? 75 } + $block_69 = { 48 ?? ?? ?? ?? ?? ?? ?? E8 ?? ?? ?? ?? 0F B6 ?? 83 ?? ?? 75 } + $block_70 = { 0F B7 ?? ?? ?? ?? ?? ?? 0F B7 ?? ?? ?? ?? ?? ?? 3B ?? 7D } + $block_71 = { 0F B7 ?? ?? ?? ?? ?? ?? 0F B7 ?? ?? ?? ?? ?? ?? 3B ?? 75 } + $block_72 = { 0F B7 ?? ?? ?? ?? ?? ?? 0F B7 ?? ?? ?? ?? ?? ?? 3B ?? 7F } + $block_73 = { 8B ?? ?? ?? 8B ?? ?? ?? ?? ?? ?? 2B ?? 8B ?? 85 ?? 0F 85 } + $block_74 = { 48 ?? ?? ?? ?? ?? ?? ?? 48 ?? ?? ?? ?? ?? 48 ?? ?? 0F 85 } + $block_75 = { 8B ?? ?? ?? 8B ?? ?? ?? ?? ?? ?? 2B ?? 8B ?? 85 ?? 0F 8E } + $block_76 = { 48 ?? ?? ?? ?? ?? ?? ?? 48 ?? ?? ?? ?? ?? ?? ?? 0F 85 } + $block_77 = { 48 ?? ?? ?? ?? 48 ?? ?? ?? ?? 8B ?? ?? 39 ?? ?? 0F 83 } + $block_78 = { 48 ?? ?? ?? ?? ?? ?? ?? 0F B7 ?? ?? 3D ?? ?? ?? ?? 75 } + $block_79 = { B2 ?? 48 ?? ?? ?? ?? E8 ?? ?? ?? ?? 0F B6 ?? 85 ?? 75 } + $block_80 = { 8B ?? ?? ?? 8B ?? ?? ?? FF C? 89 ?? ?? ?? 85 ?? 0F 84 } + $block_81 = { 48 ?? ?? ?? ?? ?? ?? ?? E8 ?? ?? ?? ?? 48 ?? ?? 0F 85 } + $block_82 = { 48 ?? ?? ?? ?? ?? ?? ?? 0F B7 ?? ?? 3D ?? ?? ?? ?? 74 } + $block_83 = { 48 ?? ?? ?? ?? ?? ?? ?? E8 ?? ?? ?? ?? 48 ?? ?? 0F 86 } + $block_84 = { 33 ?? 8B ?? ?? ?? F7 ?? ?? ?? FF C? 0F AF ?? ?? ?? 89 } + $block_85 = { 8B ?? ?? ?? 48 ?? ?? ?? ?? 0F BE ?? ?? 85 ?? 0F 85 } + $block_86 = { 48 ?? ?? ?? ?? ?? ?? ?? 83 ?? ?? ?? ?? ?? ?? 0F 85 } + $block_87 = { 0F B7 ?? ?? ?? ?? ?? ?? 25 ?? ?? ?? ?? 85 ?? 0F 84 } + $block_88 = { 0F B7 ?? ?? ?? 48 ?? ?? ?? ?? 0F B7 ?? ?? 3B ?? 7D } + $block_89 = { 48 ?? ?? ?? ?? ?? ?? ?? 0F B7 ?? 39 ?? ?? ?? 0F 85 } + $block_90 = { 8B ?? ?? ?? ?? ?? ?? 48 ?? ?? ?? ?? ?? ?? ?? 0F 85 } + $block_91 = { 48 ?? ?? ?? ?? 48 ?? ?? 83 ?? ?? ?? ?? ?? ?? 0F 85 } + $block_92 = { 48 ?? ?? ?? ?? ?? ?? ?? 0F B7 ?? ?? 83 ?? ?? 75 } + $block_93 = { 8B ?? ?? ?? ?? ?? ?? 0F BE ?? ?? ?? 83 ?? ?? 74 } + $block_94 = { 8B ?? ?? ?? ?? ?? ?? 39 ?? ?? ?? ?? ?? ?? 0F 83 } + $block_95 = { 48 ?? ?? ?? ?? ?? ?? ?? 0F BE ?? ?? 83 ?? ?? 75 } + $block_96 = { 48 ?? ?? ?? ?? 48 ?? ?? ?? ?? 48 ?? ?? ?? 0F 85 } + $block_97 = { B9 ?? ?? ?? ?? E8 ?? ?? ?? ?? 0F B6 ?? 85 ?? 74 } + $block_98 = { 48 ?? ?? ?? ?? ?? ?? ?? 0F BE ?? ?? 83 ?? ?? 74 } + $block_99 = { 8B ?? ?? ?? ?? ?? ?? 39 ?? ?? ?? ?? ?? ?? 0F 8D } + + condition: + hash.sha256(0, filesize) == "e82d4b6d037568a4602e70f099005572b587c220793afd8f90c13cb7bbde61ed" or + hash.sha256(0, filesize) == "d1ad698567b04ea5ce8197c0316444ad8ee0350b46e0414f53f54c278b393a19" or + hash.sha256(0, filesize) == "7fa4482bfbca550ce296d8e791b1091d60d733ea8042167fd0eb853530584452" or + 24 of them +} + +rule CarbonCommunicationLibrary_v4_00_ { + meta: + Author = "Intezer Analyze" + Reference = "https://apt-ecosystem.com" + + strings: + $block_0 = { 5? 68 ?? ?? ?? ?? 6A ?? 5? 5? 68 ?? ?? ?? ?? FF 7? ?? FF 1? ?? ?? ?? ?? 89 ?? ?? 83 ?? ?? 0F 84 } + $block_1 = { 8D ?? ?? ?? 5? 8D ?? ?? ?? 5? 8D ?? ?? ?? 5? 8D ?? ?? ?? 5? E8 ?? ?? ?? ?? 83 ?? ?? 84 ?? 0F 84 } + $block_2 = { 89 ?? ?? 6A ?? 8D ?? ?? ?? ?? ?? 5? 5? FF 7? ?? 5? E8 ?? ?? ?? ?? 83 ?? ?? 89 ?? ?? 3B ?? 0F 85 } + $block_3 = { 6A ?? 8D ?? ?? 5? 5? FF 1? ?? ?? ?? ?? 83 ?? ?? 0F B7 ?? 5? 6A ?? 89 ?? ?? FF D? 5? 5? 85 ?? 74 } + $block_4 = { 66 ?? ?? ?? 6A ?? 8D ?? ?? 5? 5? 5? FF 7? ?? E8 ?? ?? ?? ?? 83 ?? ?? 8B ?? 89 ?? ?? 85 ?? 0F 85 } + $block_5 = { 8B ?? ?? 4F ?? ?? ?? 44 ?? ?? ?? ?? ?? ?? ?? 41 ?? ?? 48 ?? ?? E8 ?? ?? ?? ?? 8B ?? 85 ?? 0F 85 } + $block_6 = { FF 7? ?? FF 1? ?? ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? FF 7? ?? FF 1? ?? ?? ?? ?? 5? 5? 85 ?? 0F 85 } + $block_7 = { 48 ?? ?? ?? ?? 5? 5? 5? 41 ?? 41 ?? 41 ?? 41 ?? 48 ?? ?? ?? 48 ?? ?? 48 ?? ?? 83 ?? ?? 0F 8E } + $block_8 = { 8B ?? 99 F7 ?? 83 ?? ?? ?? 8A ?? 83 ?? ?? ?? 33 ?? 4? 89 ?? ?? 88 ?? ?? 89 ?? ?? 85 ?? 7E } + $block_9 = { 8B ?? ?? 89 ?? ?? 8D ?? ?? 5? FF 7? ?? 8D ?? ?? E8 ?? ?? ?? ?? 5? 5? 89 ?? ?? 85 ?? 0F 85 } + $block_10 = { 8B ?? ?? 6A ?? 8D ?? ?? ?? 5? 5? 5? FF 7? ?? ?? E8 ?? ?? ?? ?? 8B ?? 83 ?? ?? 3B ?? 0F 85 } + $block_11 = { 8B ?? ?? 48 ?? ?? ?? 4C ?? ?? ?? 48 ?? ?? ?? 89 ?? ?? ?? E8 ?? ?? ?? ?? 8B ?? 85 ?? 0F 85 } + $block_12 = { 48 ?? ?? ?? ?? ?? ?? 48 ?? ?? ?? ?? 41 ?? ?? ?? ?? ?? FF 1? ?? ?? ?? ?? 8B ?? 85 ?? 0F 84 } + $block_13 = { 48 ?? ?? FF 1? ?? ?? ?? ?? 48 ?? ?? ?? ?? ?? ?? 48 ?? ?? FF 1? ?? ?? ?? ?? 48 ?? ?? 0F 85 } + $block_14 = { 0F B6 ?? 23 ?? ?? 8B ?? ?? D3 ?? 8B ?? ?? D2 ?? 0A ?? FF 4? ?? 83 ?? ?? ?? 8B ?? ?? 7C } + $block_15 = { 6A ?? 8D ?? ?? ?? ?? ?? 5? 5? FF 7? ?? 5? E8 ?? ?? ?? ?? 83 ?? ?? 89 ?? ?? 3B ?? 0F 85 } + $block_16 = { FF 7? ?? 6A ?? 5? FF 1? ?? ?? ?? ?? 83 ?? ?? 5? E8 ?? ?? ?? ?? 5? 89 ?? ?? 85 ?? 0F 85 } + $block_17 = { FF 3? ?? ?? ?? ?? E8 ?? ?? ?? ?? 5? 8D ?? ?? ?? ?? ?? 5? FF 1? ?? ?? ?? ?? 85 ?? 0F 8E } + $block_18 = { 6A ?? 8D ?? ?? 5? 6A ?? 5? FF 7? ?? E8 ?? ?? ?? ?? 83 ?? ?? 8B ?? 89 ?? ?? 85 ?? 0F 85 } + $block_19 = { 5? FF 7? ?? E8 ?? ?? ?? ?? 01 ?? ?? 0F B7 ?? ?? 83 ?? ?? 83 ?? ?? FF 4? ?? 39 ?? ?? 72 } + $block_20 = { 6A ?? 8D ?? ?? ?? 5? 5? FF 7? ?? ?? FF 7? ?? E8 ?? ?? ?? ?? 8B ?? 83 ?? ?? 85 ?? 0F 85 } + $block_21 = { 48 ?? ?? ?? ?? ?? ?? E8 ?? ?? ?? ?? 48 ?? ?? ?? ?? ?? ?? FF 1? ?? ?? ?? ?? 85 ?? 0F 8E } + $block_22 = { 48 ?? ?? ?? ?? ?? ?? 45 ?? ?? BA ?? ?? ?? ?? FF 1? ?? ?? ?? ?? 48 ?? ?? 48 ?? ?? 0F 84 } + $block_23 = { 44 ?? ?? 4C ?? ?? 33 ?? 48 ?? ?? C7 ?? ?? ?? ?? ?? ?? ?? FF 1? ?? ?? ?? ?? 85 ?? 0F 85 } + $block_24 = { 41 ?? ?? ?? 8B ?? E8 ?? ?? ?? ?? 41 ?? ?? 49 ?? ?? ?? 44 ?? ?? 0F B7 ?? ?? 44 ?? ?? 72 } + $block_25 = { 5? FF 7? ?? FF 1? ?? ?? ?? ?? 4? 5? FF 7? ?? 5? E8 ?? ?? ?? ?? 83 ?? ?? 3B ?? 0F 85 } + $block_26 = { 8B ?? ?? 03 ?? ?? 03 ?? ?? 5? 5? FF 7? ?? E8 ?? ?? ?? ?? 8B ?? 83 ?? ?? 85 ?? 0F 85 } + $block_27 = { 89 ?? ?? FF 7? ?? 68 ?? ?? ?? ?? 8D ?? ?? E8 ?? ?? ?? ?? 5? 5? 89 ?? ?? 3B ?? 0F 85 } + $block_28 = { FF 7? ?? 68 ?? ?? ?? ?? 8D ?? ?? E8 ?? ?? ?? ?? 5? 5? 89 ?? ?? 8B ?? ?? 85 ?? 0F 85 } + $block_29 = { 41 ?? ?? ?? ?? ?? ?? ?? 41 ?? ?? 45 ?? ?? 44 ?? ?? ?? 45 ?? ?? 89 ?? ?? 85 ?? 0F 8E } + $block_30 = { 48 ?? ?? ?? ?? 44 ?? ?? ?? 4C ?? ?? ?? ?? 48 ?? ?? E8 ?? ?? ?? ?? 8B ?? 85 ?? 0F 85 } + $block_31 = { 89 ?? FF 7? ?? 68 ?? ?? ?? ?? 8D ?? ?? E8 ?? ?? ?? ?? 5? 5? 89 ?? ?? 3B ?? 0F 85 } + $block_32 = { 8B ?? ?? ?? ?? ?? BF ?? ?? ?? ?? 8D ?? ?? ?? ?? ?? 5? 5? FF D? 5? 5? 85 ?? 0F 84 } + $block_33 = { 83 ?? ?? ?? ?? E8 ?? ?? ?? ?? 99 B9 ?? ?? ?? ?? F7 ?? 8B ?? ?? ?? ?? ?? 5? FF D? } + $block_34 = { 6A ?? 8D ?? ?? 5? 6A ?? 5? FF 7? ?? E8 ?? ?? ?? ?? 83 ?? ?? 89 ?? ?? 85 ?? 0F 85 } + $block_35 = { 41 ?? ?? 48 ?? ?? 41 ?? ?? 3B ?? 0F 4C ?? FF 1? ?? ?? ?? ?? 48 ?? ?? 48 ?? ?? 74 } + $block_36 = { 48 ?? ?? ?? ?? ?? ?? ?? 44 ?? ?? BA ?? ?? ?? ?? E8 ?? ?? ?? ?? 8B ?? 85 ?? 0F 85 } + $block_37 = { 38 ?? ?? 0F 94 ?? ?? 8D ?? ?? 5? 8B ?? E8 ?? ?? ?? ?? 5? 89 ?? ?? 85 ?? 0F 85 } + $block_38 = { 8A ?? ?? 8B ?? ?? 21 ?? ?? 88 ?? ?? 89 ?? ?? C7 ?? ?? ?? ?? ?? ?? 84 ?? 0F 84 } + $block_39 = { 38 ?? ?? 0F 94 ?? ?? 8D ?? ?? 5? 8B ?? E8 ?? ?? ?? ?? 5? 89 ?? ?? 3B ?? 0F 85 } + $block_40 = { FF 7? ?? 5? 5? FF 7? ?? FF 7? ?? E8 ?? ?? ?? ?? 83 ?? ?? 89 ?? ?? 85 ?? 0F 85 } + $block_41 = { 6A ?? 8D ?? ?? 5? 8D ?? ?? 5? FF 1? ?? ?? ?? ?? 83 ?? ?? 89 ?? ?? 85 ?? 0F 84 } + $block_42 = { FF 7? ?? 68 ?? ?? ?? ?? 8D ?? ?? E8 ?? ?? ?? ?? 5? 5? 89 ?? ?? 85 ?? 0F 85 } + $block_43 = { 48 ?? ?? ?? 48 ?? ?? ?? FF 1? ?? ?? ?? ?? BF ?? ?? ?? ?? 85 ?? 0F 44 ?? 8B } + $block_44 = { 48 ?? ?? ?? 48 ?? ?? ?? FF 1? ?? ?? ?? ?? BB ?? ?? ?? ?? 85 ?? 0F 44 ?? 8B } + $block_45 = { FF 7? ?? 6A ?? FF 3? ?? ?? ?? ?? FF 1? ?? ?? ?? ?? 89 ?? ?? 3B ?? 0F 84 } + $block_46 = { FF 7? ?? 68 ?? ?? ?? ?? 8D ?? ?? E8 ?? ?? ?? ?? 5? 5? 8B ?? 3B ?? 0F 85 } + $block_47 = { 38 ?? ?? 0F 94 ?? FF 7? ?? 8D ?? ?? E8 ?? ?? ?? ?? 5? 8B ?? 85 ?? 0F 85 } + $block_48 = { 8B ?? ?? ?? 8B ?? ?? ?? E8 ?? ?? ?? ?? 5? E8 ?? ?? ?? ?? 5? 84 ?? 0F 84 } + $block_49 = { 8D ?? ?? 5? 8B ?? ?? 4? 5? FF 1? ?? ?? ?? ?? 5? 5? 89 ?? ?? 85 ?? 0F 85 } + $block_50 = { 8B ?? ?? 83 ?? ?? 5? 8B ?? ?? 03 ?? 8B ?? E8 ?? ?? ?? ?? 5? 85 ?? 0F 84 } + $block_51 = { 48 ?? ?? ?? 48 ?? ?? ?? ?? ?? ?? 45 ?? ?? FF 1? ?? ?? ?? ?? 85 ?? 0F 85 } + $block_52 = { 8B ?? ?? ?? ?? ?? 8D ?? ?? FF 1? ?? ?? ?? ?? 49 ?? ?? ?? 48 ?? ?? 0F 84 } + $block_53 = { 48 ?? ?? ?? ?? ?? ?? 33 ?? FF 1? ?? ?? ?? ?? 48 ?? ?? ?? 48 ?? ?? 0F 84 } + $block_54 = { 44 ?? ?? 48 ?? ?? ?? ?? BA ?? ?? ?? ?? E8 ?? ?? ?? ?? 8B ?? 85 ?? 0F 85 } + $block_55 = { 8B ?? ?? 0F B7 ?? ?? 8B ?? 25 ?? ?? ?? ?? 03 ?? C1 ?? ?? 83 ?? ?? 74 } + $block_56 = { FF 7? ?? FF 7? ?? FF 7? ?? E8 ?? ?? ?? ?? 8B ?? 83 ?? ?? 3B ?? 0F 84 } + $block_57 = { 6A ?? 8D ?? ?? 5? 8D ?? ?? 5? FF 1? ?? ?? ?? ?? 83 ?? ?? 3B ?? 0F 86 } + $block_58 = { 4C ?? ?? ?? BA ?? ?? ?? ?? FF 1? ?? ?? ?? ?? 48 ?? ?? 48 ?? ?? 0F 84 } + $block_59 = { FF 7? ?? 8D ?? ?? ?? 6A ?? E8 ?? ?? ?? ?? 8B ?? 5? 5? 3B ?? 0F 85 } + $block_60 = { 83 ?? ?? ?? 83 ?? ?? D1 ?? 0F B7 ?? 8D ?? ?? ?? 89 ?? ?? 85 ?? 74 } + $block_61 = { 5? 8B ?? 83 ?? ?? 5? 33 ?? 5? 8B ?? ?? 89 ?? 89 ?? ?? 39 ?? 0F 84 } + $block_62 = { 5? 8B ?? 83 ?? ?? 5? 8B ?? ?? 33 ?? 5? 89 ?? 89 ?? ?? 39 ?? 0F 84 } + $block_63 = { 8B ?? ?? E8 ?? ?? ?? ?? 8B ?? 5? 89 ?? ?? 89 ?? ?? 83 ?? ?? 0F 8C } + $block_64 = { 8B ?? 99 F7 ?? ?? 33 ?? 33 ?? 89 ?? ?? 89 ?? ?? 32 ?? 39 ?? ?? 7E } + $block_65 = { 8B ?? ?? 03 ?? ?? 5? 99 2B ?? 5? 8B ?? ?? 8B ?? D1 ?? 5? 3B ?? 7D } + $block_66 = { FF 7? ?? 6A ?? 8D ?? ?? E8 ?? ?? ?? ?? 5? 5? 89 ?? ?? 85 ?? 0F 85 } + $block_67 = { E8 ?? ?? ?? ?? 99 B9 ?? ?? ?? ?? F7 ?? 5? FF 1? ?? ?? ?? ?? EB } + $block_68 = { 68 ?? ?? ?? ?? FF 1? ?? ?? ?? ?? 5? 8B ?? 89 ?? ?? 85 ?? 0F 84 } + $block_69 = { 8B ?? ?? 8B ?? ?? 03 ?? 0F B7 ?? ?? BE ?? ?? ?? ?? 66 ?? ?? 75 } + $block_70 = { 5? 8B ?? A1 ?? ?? ?? ?? 83 ?? ?? 5? 5? 33 ?? 33 ?? 3B ?? 0F 84 } + $block_71 = { 8B ?? ?? 5? 8D ?? ?? E8 ?? ?? ?? ?? 5? 89 ?? ?? 85 ?? 0F 85 } + $block_72 = { 2B ?? ?? ?? 0F B7 ?? 89 ?? ?? ?? 0F B7 ?? 3B ?? ?? ?? 0F 87 } + $block_73 = { 8B ?? ?? 5? 8D ?? ?? E8 ?? ?? ?? ?? 5? 89 ?? ?? 3B ?? 0F 85 } + $block_74 = { FF 7? ?? 6A ?? FF 3? ?? ?? ?? ?? FF D? 89 ?? ?? 3B ?? 0F 84 } + $block_75 = { 8B ?? ?? ?? E8 ?? ?? ?? ?? 5? E8 ?? ?? ?? ?? 5? 84 ?? 0F 85 } + $block_76 = { 68 ?? ?? ?? ?? FF 7? ?? FF 1? ?? ?? ?? ?? 5? 5? 85 ?? 0F 85 } + $block_77 = { FF 7? ?? 8D ?? ?? E8 ?? ?? ?? ?? 5? 89 ?? ?? 85 ?? 0F 85 } + $block_78 = { 68 ?? ?? ?? ?? 6A ?? 5? FF D? A3 ?? ?? ?? ?? 85 ?? 0F 84 } + $block_79 = { E8 ?? ?? ?? ?? 99 B9 ?? ?? ?? ?? F7 ?? 8B ?? ?? 2B ?? 2B } + $block_80 = { 2B ?? ?? ?? C6 ?? ?? ?? ?? 69 ?? ?? ?? ?? ?? 3B ?? 0F 87 } + $block_81 = { FF 3? FF 7? ?? 5? FF 1? ?? ?? ?? ?? 83 ?? ?? B0 ?? C9 C3 } + $block_82 = { 5? 6A ?? 8D ?? ?? 5? 5? 5? FF 1? ?? ?? ?? ?? 3B ?? 0F 85 } + $block_83 = { FF 7? ?? A1 ?? ?? ?? ?? FF 5? ?? 8B ?? ?? 3B ?? ?? 0F 82 } + $block_84 = { 68 ?? ?? ?? ?? 5? FF D? 5? 5? 89 ?? ?? ?? 3B ?? 0F 84 } + $block_85 = { FF 3? FF 1? ?? ?? ?? ?? 8B ?? 5? 89 ?? ?? 85 ?? 0F 84 } + $block_86 = { FF 7? ?? 8D ?? ?? E8 ?? ?? ?? ?? 5? 8B ?? 3B ?? 0F 85 } + $block_87 = { FF 7? ?? 8D ?? ?? E8 ?? ?? ?? ?? 8B ?? 5? 85 ?? 0F 85 } + $block_88 = { FF 3? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? FF D? 85 ?? 0F 84 } + $block_89 = { 68 ?? ?? ?? ?? 5? FF D? 5? 5? 89 ?? ?? 3B ?? 0F 84 } + $block_90 = { 8D ?? ?? 6A ?? 5? E8 ?? ?? ?? ?? 5? 5? 84 ?? 0F 85 } + $block_91 = { FF 3? ?? ?? ?? ?? FF B? ?? ?? ?? ?? 39 ?? ?? 0F 85 } + $block_92 = { FF 0? 03 ?? 89 ?? 89 ?? ?? 89 ?? ?? 3B ?? ?? 0F 8C } + $block_93 = { 8B ?? ?? 2B ?? ?? 8D ?? ?? ?? ?? ?? 89 ?? ?? 0F 85 } + $block_94 = { 8D ?? ?? 5? 8D ?? ?? E8 ?? ?? ?? ?? 5? 85 ?? 0F 85 } + $block_95 = { FF 7? ?? 5? 5? FF D? 83 ?? ?? 89 ?? ?? 85 ?? 0F 85 } + $block_96 = { 5? 8D ?? ?? E8 ?? ?? ?? ?? 5? 89 ?? ?? 85 ?? 0F 85 } + $block_97 = { FF 3? ?? ?? ?? ?? FF 7? ?? FF D? 5? 5? 85 ?? 0F 85 } + $block_98 = { 2B ?? ?? ?? 69 ?? ?? ?? ?? ?? 3B ?? ?? ?? 0F 82 } + $block_99 = { C6 ?? ?? ?? ?? 0F B7 ?? ?? 89 ?? ?? ?? 39 ?? 75 } + + condition: + hash.sha256(0, filesize) == "d581b95b43c16407305f5d52631f044936b354ed921cb2efe8dfc9257960d2db" or + hash.sha256(0, filesize) == "c3b85bc12c84b8d050e2b9f682df06d93ceaeb4a18480227358baa99f4989e47" or + hash.sha256(0, filesize) == "e959e1fa1993f906cd1d8f014c82025b2eb77a67a3e0dc0f44be685700cdb76b" or + hash.sha256(0, filesize) == "2dc0f9e08bde378e8fe4e408b1b5f4bbbeacb251901009f25189a5a41a53ab47" or + hash.sha256(0, filesize) == "995d2b3924d5f517a795c0acc392e3d47f07787f58c77bb42ac2248393533f16" or + 12 of them +} + +rule CarbonLoader_v3_81_ { + meta: + Author = "Intezer Analyze" + Reference = "https://apt-ecosystem.com" + + strings: + $block_0 = { 5? 8B ?? 83 ?? ?? 81 E? ?? ?? ?? ?? 5? 5? 33 ?? 5? 68 ?? ?? ?? ?? 8D ?? ?? ?? ?? ?? ?? 5? 5? 89 ?? ?? ?? 89 ?? ?? ?? 89 ?? ?? ?? 89 ?? ?? ?? 89 ?? ?? ?? 88 ?? ?? ?? E8 ?? ?? ?? ?? 33 ?? 68 ?? ?? ?? ?? 8D ?? ?? ?? ?? ?? ?? 5? 5? 89 ?? ?? ?? 89 ?? ?? ?? 89 ?? ?? ?? 89 ?? ?? ?? 89 ?? ?? ?? E8 ?? ?? ?? ?? 33 ?? 68 ?? ?? ?? ?? 8D ?? ?? ?? ?? ?? ?? 5? 5? 89 ?? ?? ?? 89 ?? ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? ?? E8 ?? ?? ?? ?? 68 ?? ?? ?? ?? 8D ?? ?? ?? ?? ?? ?? 5? 5? E8 ?? ?? ?? ?? 68 ?? ?? ?? ?? 8D ?? ?? ?? ?? ?? ?? 5? 5? E8 ?? ?? ?? ?? 33 ?? 83 ?? ?? 89 ?? ?? ?? 89 ?? ?? ?? 89 ?? ?? ?? 89 ?? ?? ?? 89 ?? ?? ?? 39 ?? ?? 0F 84 } + $block_1 = { 5? 8B ?? 81 E? ?? ?? ?? ?? 5? 33 ?? 68 ?? ?? ?? ?? 8D ?? ?? ?? ?? ?? 5? 5? 89 ?? ?? E8 ?? ?? ?? ?? 68 ?? ?? ?? ?? 8D ?? ?? ?? ?? ?? 5? 5? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? E8 ?? ?? ?? ?? 83 ?? ?? 8D ?? ?? ?? ?? ?? 5? C7 ?? ?? ?? ?? ?? ?? ?? ?? ?? FF 1? ?? ?? ?? ?? 85 ?? 0F 84 } + $block_2 = { 0F B7 ?? ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 5? 8D ?? ?? ?? 68 ?? ?? ?? ?? 5? FF D? 83 ?? ?? 6A ?? 8D ?? ?? ?? 5? 8D ?? ?? ?? 5? 8D ?? ?? ?? 5? 8D ?? ?? ?? 5? 68 ?? ?? ?? ?? 8D ?? ?? ?? ?? ?? ?? 5? 8D ?? ?? ?? 5? FF 1? ?? ?? ?? ?? 85 ?? 0F 84 } + $block_3 = { 5? 8B ?? 83 ?? ?? 5? 5? 8B ?? ?? ?? ?? ?? 68 ?? ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? FF D? 68 ?? ?? ?? ?? 8B ?? FF D? 83 ?? ?? 8B ?? 89 ?? ?? 85 ?? 0F 84 } + $block_4 = { 5? 68 ?? ?? ?? ?? 8D ?? ?? ?? ?? ?? 5? FF 1? ?? ?? ?? ?? A3 ?? ?? ?? ?? 3B ?? 0F 84 } + $block_5 = { 68 ?? ?? ?? ?? 8D ?? ?? ?? ?? ?? ?? 5? 68 ?? ?? ?? ?? FF 1? ?? ?? ?? ?? 85 ?? 0F 84 } + $block_6 = { 0F B7 ?? ?? ?? ?? ?? 66 ?? ?? ?? ?? ?? ?? ?? 83 ?? ?? 66 ?? ?? 75 } + + condition: + hash.sha256(0, filesize) == "0b90db3a69aa8cfab36a66cd5390f46c32e3d88d8fcaefce8cd9e00700e10b65" or + 7 of them +} + +rule ComRAT { + meta: + Author = "Intezer Analyze" + Reference = "https://apt-ecosystem.com" + + strings: + $block_0 = { 8B ?? ?? 8B ?? ?? 5? 68 ?? ?? ?? ?? 5? 5? E8 ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 83 ?? ?? 85 ?? 0F 84 } + $block_1 = { 83 ?? ?? 5? 5? 5? 5? 8B ?? 68 ?? ?? ?? ?? 6A ?? 5? E8 ?? ?? ?? ?? 8B ?? ?? 83 ?? ?? 85 ?? 0F 84 } + $block_2 = { 66 ?? ?? ?? D1 ?? 66 ?? ?? ?? ?? ?? ?? ?? 66 ?? ?? 66 ?? ?? 83 ?? ?? 25 ?? ?? ?? ?? 0F B7 ?? 79 } + $block_3 = { 48 ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? 48 ?? ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? ?? 85 ?? 0F 85 } + $block_4 = { 33 ?? 44 ?? ?? ?? 48 ?? ?? E8 ?? ?? ?? ?? 48 ?? ?? ?? E8 ?? ?? ?? ?? 8B ?? 3D ?? ?? ?? ?? 0F 8D } + $block_5 = { 5? 68 ?? ?? ?? ?? 6A ?? 5? 6A ?? 68 ?? ?? ?? ?? 5? FF 1? ?? ?? ?? ?? 83 ?? ?? 89 ?? ?? ?? 0F 84 } + $block_6 = { 0F B7 ?? 89 ?? ?? 33 ?? 66 ?? ?? 5? 0F 95 ?? 5? 5? 5? 4? 83 ?? ?? 83 ?? ?? 0F B7 ?? 83 ?? ?? C3 } + $block_7 = { 3B ?? 89 ?? ?? ?? ?? ?? ?? C6 ?? ?? ?? ?? C6 ?? ?? ?? ?? C6 ?? ?? ?? ?? C6 ?? ?? ?? ?? 0F 84 } + $block_8 = { 8B ?? ?? ?? 8B ?? 0F B7 ?? 5? 5? 68 ?? ?? ?? ?? E8 ?? ?? ?? ?? 83 ?? ?? 5? E8 ?? ?? ?? ?? 83 } + $block_9 = { E8 ?? ?? ?? ?? 33 ?? F7 ?? 8B ?? 03 ?? 9B 8B ?? ?? 64 ?? ?? ?? ?? ?? ?? 5? 5? 5? 8B ?? 5? C2 } + $block_10 = { 6A ?? 5? 5? E8 ?? ?? ?? ?? 8B ?? ?? 5? E8 ?? ?? ?? ?? 83 ?? ?? 8B ?? 81 F? ?? ?? ?? ?? 0F 8D } + $block_11 = { E8 ?? ?? ?? ?? 99 B9 ?? ?? ?? ?? F7 ?? 80 C? ?? 88 ?? ?? ?? ?? ?? ?? 4? 81 F? ?? ?? ?? ?? 72 } + $block_12 = { 8B ?? ?? ?? ?? ?? 8D ?? ?? ?? ?? ?? ?? 5? 8B ?? ?? 8D ?? ?? ?? ?? ?? ?? 5? FF D? 3B ?? 0F 84 } + $block_13 = { 48 ?? ?? ?? ?? ?? ?? ?? 0F B6 ?? ?? ?? ?? ?? ?? 88 ?? ?? ?? 0F BE ?? ?? ?? ?? ?? ?? 85 ?? 75 } + $block_14 = { 8B ?? ?? ?? 33 ?? B9 ?? ?? ?? ?? 48 ?? ?? 89 ?? ?? ?? 8B ?? ?? ?? ?? ?? ?? 39 ?? ?? ?? 0F 86 } + $block_15 = { 6A ?? 89 ?? ?? ?? ?? ?? E8 ?? ?? ?? ?? 8B ?? 83 ?? ?? 89 ?? ?? ?? 3B ?? 89 ?? ?? ?? 0F 84 } + $block_16 = { 0F B7 ?? 8B ?? 66 ?? ?? 66 ?? ?? 83 ?? ?? 66 ?? ?? C1 ?? ?? 83 ?? ?? 83 ?? ?? 0F B7 ?? 75 } + $block_17 = { 66 ?? ?? ?? ?? ?? ?? ?? 66 ?? ?? ?? 66 ?? ?? 66 ?? ?? 83 ?? ?? 25 ?? ?? ?? ?? 0F B7 ?? 79 } + $block_18 = { 6A ?? 5? 5? E8 ?? ?? ?? ?? FF 7? ?? E8 ?? ?? ?? ?? 83 ?? ?? 89 ?? ?? 3D ?? ?? ?? ?? 0F 8D } + $block_19 = { 8D ?? ?? 6A ?? 5? C7 ?? ?? ?? ?? ?? ?? FF D? 5? 8B ?? FF 1? ?? ?? ?? ?? 33 ?? 3B ?? 0F 84 } + $block_20 = { 8B ?? ?? 5? E8 ?? ?? ?? ?? 83 ?? ?? 8D ?? ?? 8B ?? 8B ?? ?? 5? 5? FF 5? ?? 85 ?? 0F 85 } + $block_21 = { 8B ?? ?? 5? FF 1? ?? ?? ?? ?? 8B ?? ?? 68 ?? ?? ?? ?? 5? FF 1? ?? ?? ?? ?? 85 ?? 0F 85 } + $block_22 = { 89 ?? ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? 3B ?? 0F 84 } + $block_23 = { 8D ?? ?? ?? ?? ?? 5? 5? 8B ?? ?? ?? ?? ?? 8B ?? ?? FF D? 83 ?? ?? 89 ?? ?? 85 ?? 0F 85 } + $block_24 = { 8B ?? ?? ?? ?? ?? 8B ?? ?? 81 E? ?? ?? ?? ?? 5? 8D ?? ?? ?? 5? 5? FF D? 83 ?? ?? 0F 84 } + $block_25 = { 8D ?? ?? 8B ?? ?? 8D ?? ?? 8D ?? ?? 8D ?? ?? 8B ?? ?? ?? C1 ?? ?? 03 ?? 3B ?? 0F 8C } + $block_26 = { 8D ?? ?? 6A ?? 5? C7 ?? ?? ?? ?? ?? ?? FF D? 5? 8B ?? FF 1? ?? ?? ?? ?? 85 ?? 0F 84 } + $block_27 = { 0F B7 ?? ?? ?? ?? ?? ?? 0F B7 ?? ?? ?? 0F B7 ?? 33 ?? 5? C1 ?? ?? 5? 0B ?? 5? 5? C3 } + $block_28 = { 8B ?? ?? ?? 33 ?? 66 ?? ?? ?? 5? 0F 95 ?? 5? 5? 5? 4? 83 ?? ?? 83 ?? ?? 83 ?? ?? C3 } + $block_29 = { 8B ?? ?? 0F B7 ?? 33 ?? 89 ?? ?? ?? 89 ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? ?? 66 ?? ?? 74 } + $block_30 = { 0F B6 ?? ?? 0F B6 ?? ?? 83 ?? ?? 03 ?? 03 ?? C1 ?? ?? 0B ?? 0F BE ?? ?? ?? ?? ?? EB } + $block_31 = { 8D ?? ?? ?? ?? ?? ?? 68 ?? ?? ?? ?? 5? E8 ?? ?? ?? ?? 8B ?? 83 ?? ?? 85 ?? 0F 84 } + $block_32 = { 33 ?? 0F B7 ?? 8B ?? C1 ?? ?? 0B ?? B9 ?? ?? ?? ?? BF ?? ?? ?? ?? F3 ?? 33 ?? EB } + $block_33 = { 66 ?? ?? ?? ?? ?? ?? ?? 66 ?? ?? 66 ?? ?? 0F B7 ?? 0F B7 ?? C1 ?? ?? 0B ?? 5? C3 } + $block_34 = { 40 ?? 5? 41 ?? 48 ?? ?? ?? 49 ?? ?? 4C ?? ?? 48 ?? ?? E8 ?? ?? ?? ?? 85 ?? 0F 85 } + $block_35 = { 68 ?? ?? ?? ?? 89 ?? ?? ?? 89 ?? ?? ?? FF 1? ?? ?? ?? ?? 85 ?? 89 ?? ?? ?? 0F 84 } + $block_36 = { 0F B7 ?? 8B ?? 5? 5? 68 ?? ?? ?? ?? E8 ?? ?? ?? ?? 83 ?? ?? 5? E8 ?? ?? ?? ?? 83 } + $block_37 = { 0F BE ?? ?? 5? 8D ?? ?? ?? 68 ?? ?? ?? ?? 5? FF 1? ?? ?? ?? ?? 8B ?? 83 ?? ?? 8D } + $block_38 = { 88 ?? 83 ?? ?? 6A ?? 5? E8 ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 83 ?? ?? 3B ?? 0F 84 } + $block_39 = { E8 ?? ?? ?? ?? 8B ?? 8B ?? 0F AF ?? 4? 99 F7 ?? 4? 03 ?? 81 F? ?? ?? ?? ?? 7C } + $block_40 = { C6 ?? ?? ?? 5? 5? 5? E8 ?? ?? ?? ?? 83 ?? ?? C1 ?? ?? 8D ?? ?? 83 ?? ?? 0F 82 } + $block_41 = { 8D ?? ?? 5? 5? 8B ?? ?? ?? ?? ?? 8B ?? ?? FF D? 83 ?? ?? 89 ?? ?? 85 ?? 0F 85 } + $block_42 = { 8B ?? ?? 5? E8 ?? ?? ?? ?? 83 ?? ?? 8B ?? 8D ?? ?? 5? 5? FF D? 85 ?? 0F 85 } + $block_43 = { 8D ?? ?? ?? 5? 5? 89 ?? ?? ?? FF D? 5? 8B ?? FF 1? ?? ?? ?? ?? 3B ?? 0F 84 } + $block_44 = { E8 ?? ?? ?? ?? 68 ?? ?? ?? ?? 8B ?? FF 1? ?? ?? ?? ?? 3D ?? ?? ?? ?? 0F 8D } + $block_45 = { 85 ?? C6 ?? ?? ?? ?? C6 ?? ?? ?? ?? C6 ?? ?? ?? ?? C6 ?? ?? ?? ?? 0F 84 } + $block_46 = { 0F B7 ?? ?? ?? ?? ?? ?? 66 ?? ?? 8D ?? ?? 81 E? ?? ?? ?? ?? 0F B7 ?? 79 } + $block_47 = { 5? 5? FF 1? ?? ?? ?? ?? 8B ?? ?? ?? 33 ?? 8D ?? ?? ?? 0F AF ?? 85 ?? 76 } + $block_48 = { 8D ?? ?? 5? 5? A1 ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? FF D? 8B ?? 85 ?? 0F 84 } + $block_49 = { 81 E? ?? ?? ?? ?? 5? 5? 33 ?? 5? 68 ?? ?? ?? ?? 39 ?? ?? ?? ?? ?? 0F 85 } + $block_50 = { 68 ?? ?? ?? ?? 6A ?? 5? E8 ?? ?? ?? ?? 8B ?? ?? 83 ?? ?? 85 ?? 0F 84 } + $block_51 = { 66 ?? ?? 66 ?? ?? 0F B7 ?? 0F B7 ?? 0F B7 ?? C1 ?? ?? 0B ?? 5? 5? C3 } + $block_52 = { 5? 8B ?? C1 ?? ?? 89 ?? ?? 0F B6 ?? ?? ?? 8B ?? 81 E? ?? ?? ?? ?? 79 } + $block_53 = { DF ?? ?? ?? DF ?? ?? ?? D8 ?? DC ?? ?? ?? ?? ?? DF ?? F6 ?? ?? 0F 85 } + $block_54 = { 8D ?? ?? 5? 5? 8B ?? ?? ?? ?? ?? 8B ?? ?? FF D? 83 ?? ?? 85 ?? 0F 85 } + $block_55 = { 8B ?? ?? ?? ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? 85 ?? 0F 84 } + $block_56 = { 48 ?? ?? 0F BE ?? ?? ?? 83 ?? ?? 88 ?? ?? ?? FF C? 89 ?? ?? ?? EB } + $block_57 = { BA ?? ?? ?? ?? D3 ?? 8B ?? ?? C1 ?? ?? 0F B7 ?? ?? 23 ?? 3B ?? 75 } + $block_58 = { 8A ?? ?? 0F BE ?? 34 ?? 03 ?? 88 ?? ?? 0F BE ?? 03 ?? 4? 3B ?? 72 } + $block_59 = { 5? 5? 8B ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? FF D? 8B ?? 3B ?? 0F 84 } + $block_60 = { 8D ?? ?? 5? 8B ?? 5? E8 ?? ?? ?? ?? 83 ?? ?? 89 ?? ?? 3B ?? 0F 84 } + $block_61 = { 8B ?? ?? ?? 83 ?? ?? C1 ?? ?? 8D ?? ?? 89 ?? ?? ?? 3B ?? 0F 86 } + $block_62 = { 68 ?? ?? ?? ?? FF 3? E8 ?? ?? ?? ?? 5? 5? 89 ?? ?? 3B ?? 0F 84 } + $block_63 = { 83 ?? ?? 6A ?? 5? E8 ?? ?? ?? ?? 8B ?? 83 ?? ?? 85 ?? 0F 84 } + $block_64 = { 8B ?? ?? ?? ?? ?? 8D ?? ?? 5? 6A ?? 5? FF D? 83 ?? ?? 0F 85 } + $block_65 = { 8B ?? ?? ?? ?? ?? 8B ?? ?? 5? FF 1? ?? ?? ?? ?? 85 ?? 0F 8E } + $block_66 = { 68 ?? ?? ?? ?? 5? E8 ?? ?? ?? ?? 8B ?? 83 ?? ?? 85 ?? 0F 85 } + $block_67 = { 8D ?? ?? ?? ?? ?? ?? 5? E8 ?? ?? ?? ?? 83 ?? ?? 85 ?? 0F 84 } + $block_68 = { 8B ?? ?? ?? 8D ?? ?? ?? 5? 5? 5? E8 ?? ?? ?? ?? 85 ?? 0F 84 } + $block_69 = { 8B ?? ?? ?? 5? 5? 5? 8D ?? ?? ?? E8 ?? ?? ?? ?? 85 ?? 0F 84 } + $block_70 = { C7 ?? ?? ?? ?? ?? ?? ?? 89 ?? ?? ?? 88 ?? ?? ?? 3B ?? 0F 85 } + $block_71 = { 8D ?? ?? ?? ?? ?? ?? 5? FF 1? ?? ?? ?? ?? 83 ?? ?? 0F 85 } + $block_72 = { 68 ?? ?? ?? ?? 5? FF 1? ?? ?? ?? ?? 85 ?? 89 ?? ?? 0F 84 } + $block_73 = { 8B ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? 85 ?? 0F 84 } + $block_74 = { A1 ?? ?? ?? ?? 8B ?? ?? 5? FF 1? ?? ?? ?? ?? 85 ?? 0F 8E } + $block_75 = { 8D ?? ?? ?? ?? ?? ?? 5? FF 1? ?? ?? ?? ?? 83 ?? ?? 0F 84 } + $block_76 = { C1 ?? ?? C7 ?? ?? ?? ?? ?? ?? ?? 89 ?? ?? ?? 85 ?? 0F 86 } + $block_77 = { 5? A1 ?? ?? ?? ?? 8B ?? ?? FF D? 39 ?? ?? ?? ?? ?? 0F 85 } + $block_78 = { 5? E8 ?? ?? ?? ?? 8B ?? ?? 83 ?? ?? 5? 5? 5? 85 ?? 0F 84 } + $block_79 = { 68 ?? ?? ?? ?? 5? FF 1? ?? ?? ?? ?? 8B ?? 85 ?? 0F 84 } + $block_80 = { 68 ?? ?? ?? ?? 5? E8 ?? ?? ?? ?? 83 ?? ?? 85 ?? 0F 85 } + $block_81 = { 8B ?? ?? 5? 5? 33 ?? 5? E8 ?? ?? ?? ?? 83 ?? ?? C9 C3 } + $block_82 = { 4? C1 ?? ?? 8D ?? ?? ?? 0F B7 ?? 33 ?? 66 ?? ?? 0F 83 } + $block_83 = { 8B ?? ?? 64 ?? ?? ?? ?? ?? ?? 5? 5? 5? 83 ?? ?? C9 C3 } + $block_84 = { 2B ?? D1 ?? 8D ?? ?? 89 ?? ?? 0F B7 ?? ?? 89 ?? ?? E9 } + $block_85 = { 5? 6A ?? E8 ?? ?? ?? ?? 8B ?? 83 ?? ?? 85 ?? 0F 84 } + $block_86 = { 8B ?? ?? ?? ?? ?? ?? 8D ?? ?? 3D ?? ?? ?? ?? 0F 86 } + $block_87 = { 8B ?? ?? ?? 5? FF 1? ?? ?? ?? ?? 39 ?? ?? ?? 0F 85 } + $block_88 = { 8B ?? ?? ?? 83 ?? ?? 89 ?? ?? ?? 3B ?? ?? ?? 0F 82 } + $block_89 = { 0F B7 ?? 66 ?? ?? ?? 66 ?? ?? 0F B7 ?? 66 ?? ?? 73 } + $block_90 = { 0F B6 ?? 83 ?? ?? C1 ?? ?? 4? 0F AF ?? 4? 85 ?? 75 } + $block_91 = { 83 ?? ?? 5? 8B ?? ?? ?? E8 ?? ?? ?? ?? 85 ?? 0F 85 } + $block_92 = { 8D ?? ?? ?? ?? ?? ?? 6A ?? 5? FF D? 85 ?? 0F 84 } + $block_93 = { 6A ?? E8 ?? ?? ?? ?? 8B ?? 83 ?? ?? 85 ?? 0F 84 } + $block_94 = { 8D ?? ?? ?? 5? 5? FF 1? ?? ?? ?? ?? 3B ?? 0F 84 } + $block_95 = { 4? 99 2B ?? D1 ?? 8D ?? ?? 81 E? ?? ?? ?? ?? 79 } + $block_96 = { 4? 0F B7 ?? 0F B7 ?? C1 ?? ?? 33 ?? 85 ?? 0F 8E } + $block_97 = { 8B ?? ?? ?? ?? ?? ?? 0F BF ?? 66 ?? ?? ?? ?? 77 } + $block_98 = { 8B ?? 8B ?? 8B ?? ?? 0F B7 ?? ?? 66 ?? ?? ?? 74 } + $block_99 = { 8B ?? ?? ?? D1 ?? 8D ?? ?? ?? 8B ?? 3B ?? 0F 83 } + + condition: + hash.sha256(0, filesize) == "fa249ee039e0b2d41d27b8f3590a87c1abc65487fe55dea791f804ae5636d884" or + hash.sha256(0, filesize) == "d585936aac6120718be1582a393c35157422a2e83ba9f60d6ac1e68a39fb2dc9" or + hash.sha256(0, filesize) == "9d3c846d37eff281e30954ed0b7b52030574367b793330ff7e2eeced52ea68b4" or + hash.sha256(0, filesize) == "14f04ff36d4c571d2cc7e2fc0b31f9666d687c61d05d8646cf5e56b4240f5592" or + hash.sha256(0, filesize) == "60fd95d9b415ecd8d3e799f22b54e5fbd0117d22cf3fce172a65d05167715df8" or + hash.sha256(0, filesize) == "e092a2ec64a264779ca8211483693789f4a1f14e42c2f65df15833583f964b81" or + hash.sha256(0, filesize) == "a1d26fc17409a30ca48337306317863e8c4064e36c060158885322bb71dc9069" or + hash.sha256(0, filesize) == "d932551bb748cafb13a5825233e24c2b1ba0b17098dddfe569943e431c45efe4" or + hash.sha256(0, filesize) == "32395c102c5dbc7b881869c8d6c2bf949c02774acb4a785d41cb46ff878572e4" or + hash.sha256(0, filesize) == "3a4a0c6585d160e42d40f3ba343af5d45469597d452ea311465029e115e470ae" or + hash.sha256(0, filesize) == "9c9d5540cd2902e941f34887ea546d214120d92ab0bbc1e38bbcc8805a5589d8" or + hash.sha256(0, filesize) == "bb4ea71368dd7fed4f19cb64a51c9a21cf2e7e19111a2fccf161837a7ec97751" or + hash.sha256(0, filesize) == "0977898deb6e5ebd16b1db80ff904a4818fe7ba8039b7f23f0fe329ade03d65b" or + hash.sha256(0, filesize) == "4bc2a21aba604dc22af1322a661d8929587f558ab3ffe3d6cb946cadfe7f6570" or + hash.sha256(0, filesize) == "bca6e6aa3bc8092e4b85f22a223fd67e80c1bd80afc9aa3fd9192338c8d9b982" or + hash.sha256(0, filesize) == "a89f27758bb6e207477f92527b2174090012e2ac23dfc44cdf6effd539c15ada" or + hash.sha256(0, filesize) == "5a7f334d6580e95a692943a5c9d73e8ae2342927604ddc5839849c4f77804e39" or + hash.sha256(0, filesize) == "0e0045d2c4bfff4345d460957a543e2e7f1638de745644f6bf58555c1d287286" or + hash.sha256(0, filesize) == "90876ed03885118da45bad0c5acccc8c5ce6940d6e239fe0ad254a996e9b1e97" or + hash.sha256(0, filesize) == "bd865c5d092832d6b55484ec430440540d1bbb77c533fad21f10330b526aaca9" or + hash.sha256(0, filesize) == "d002e2eaee5a47af4f779e5210fd35cc1cb339efd6e9cebb57b233a7e9e62005" or + hash.sha256(0, filesize) == "9751b5c3645f33677e31aafd4ff04a8e61d529a30d2f324a4ea73a519599f5e2" or + hash.sha256(0, filesize) == "a36a04fa6a23a6d6cc1be52e5f05c7f5802c5007bc9900e5c17f6d2c3e03afb8" or + hash.sha256(0, filesize) == "67a283a8ddd2ca7976e46010505a1c3ca699405bb9a77f7129c1ac8219995e5f" or + hash.sha256(0, filesize) == "a1b2016cb9f9d9a57e1ce3465bdfa5b4e01674c85499a10c1545ab9e90fd32d4" or + hash.sha256(0, filesize) == "b51aa5c5e8e783ef7a55f29205a989223f0ef8bfee47ab9274acf37e39f2834f" or + hash.sha256(0, filesize) == "87d4edd9d833a41b776bbbbb2ecde0513ae0aa3d228caf3c85d2298c9977e89f" or + hash.sha256(0, filesize) == "02e218f14ca02878ed75183e42d79948a6d8c99495a09d9b1897f6bb70b84087" or + hash.sha256(0, filesize) == "514b4db0717fb282f8071d55a75b387c053b6d183e2180f5f4e47c34b16d545d" or + hash.sha256(0, filesize) == "5e0165b3af7f5d4ef0c6fcb62e53e4e408ffb290967a65f042442c7d638ceef7" or + hash.sha256(0, filesize) == "172072b2f5b2888fd3c9d3f28b1acb5f5bd57dc24ad8d2d1b62321b156b4cfdb" or + hash.sha256(0, filesize) == "39a8cf3f2916daea03f8b8600e202725101b338a67fc4a7d1b9c48ff5239293f" or + hash.sha256(0, filesize) == "08d69145a78f99ab04154aa5e80e9bd28835dade0b95017d5033a0fa6391b1e1" or + hash.sha256(0, filesize) == "1fad246cb0a0a0cda8d77e8dd417a380d133229ffba6d38ed32edcc3718a39da" or + hash.sha256(0, filesize) == "193844bd22c37e2725927fa0bcddc199932f1dc3536b97da250b77ef68c66d63" or + hash.sha256(0, filesize) == "208f0339fb6cd0c2a10bda7e42deb9938ab279f56db28a017d27269dfc0802a8" or + hash.sha256(0, filesize) == "cfebcc3aa8217abaedcc856d7ec32d1d66398807819afd9902420f24959e27c6" or + hash.sha256(0, filesize) == "bc90772a93b7a54645b3e3df205f59a98166df5245cbf86c4e3d417b15aa6bd3" or + hash.sha256(0, filesize) == "7923ead3971a6e8dd4df5c87f22fd3edcb78c48714fa19d01e900eeb10ae13fd" or + hash.sha256(0, filesize) == "dd140d9bac962cdb91b00cb123f69e6b1fb55b94fb93591802fd45222357de86" or + hash.sha256(0, filesize) == "dc68688aa61102f18b958346bcab167b22e307ecdf2bb05e05d5f19e8fc41f5b" or + hash.sha256(0, filesize) == "a7f9e42680cf6f46af48987384ea13aff9dd5df5835a9c214ee9697a63c3d8c9" or + hash.sha256(0, filesize) == "22350671a2b605351839a3e22437de71d58efbfce24a1b562bedc7e6f3c0154c" or + hash.sha256(0, filesize) == "e42b9c5df92299e17581c52972516b24d2ccc872d780f6d9ecc3af2b0683631d" or + hash.sha256(0, filesize) == "06b0bfbd69a2e2ee50d7066fe0a5261c85c32494557b6df1383038583902a1db" or + hash.sha256(0, filesize) == "2a625986f5761b59ee4967ea5255e895a6cdd64763696bc7d378c609228d70b6" or + hash.sha256(0, filesize) == "22b9f9bbddec318700f46ba778bb61f2bb07bd3560af98501b030ff7160db062" or + hash.sha256(0, filesize) == "a777049f779a7c42842568a681030305209b57cc93dc9604a48682df5e9429b6" or + hash.sha256(0, filesize) == "43871bb12c446a589eedcd8faae94d60734f595f04e52fc754b89d407249af21" or + hash.sha256(0, filesize) == "80013a27dc3a51dffe6427745a09403d9680561bfc28548401fefb35e99c211d" or + hash.sha256(0, filesize) == "37e8ae6d5fb27b003441d73a2dc995b5672d47a82ddb3d8751a31697f3d3fc9b" or + hash.sha256(0, filesize) == "7759a16584847737c650b7051514c1aa58c957cbfaaa4bc609b288a87d55f2ce" or + hash.sha256(0, filesize) == "9c163c3f2bd5c5181147c6f4cf2571160197de98f496d16b38c7dc46b5dc1426" or + hash.sha256(0, filesize) == "5d2a8d367ea383a8cc3d4389a1858bb645cef2a2217c65f7fcf9d3eecb0e8255" or + hash.sha256(0, filesize) == "de8954dc69d3f3b5d1423479ef5f1054a9b0df9085b1926ca939a4d3d11c49ee" or + hash.sha256(0, filesize) == "50067ebcc2d2069b3613a20b81f9d61f2cd5be9c85533c4ea34edbefaeb8a15f" or + hash.sha256(0, filesize) == "0cf936dd2adcd6bf575b85e51961d72bbbf8b3d3f2db9e8e378ded5ec60c2f55" or + hash.sha256(0, filesize) == "e5c187392b8376352880470a5068eeeb1a00926a9f06a5100a5d8426509291c6" or + hash.sha256(0, filesize) == "035e51a1575ecb21353166287530840b3c2c54c237acda4223f1c45e6b47d3b2" or + hash.sha256(0, filesize) == "be44044d4bfeb43a6ba5608fe911be7d83bee4faf2b13a16d9690c8ac5f62aa3" or + hash.sha256(0, filesize) == "300cb016ef9666bcc3672c2ee14a8516566a8c4982bdcac78501a9ad79e4e094" or + hash.sha256(0, filesize) == "5ec8a86a0ab982d016153bd318602cfa2ee39c1f0a962c86168a5284afce169d" or + 12 of them +} + +rule KSL0TKeylogger { + meta: + Author = "Intezer Analyze" + Reference = "https://apt-ecosystem.com" + + strings: + $block_0 = { 68 ?? ?? ?? ?? 5? 8D ?? ?? ?? ?? ?? 5? FF 1? ?? ?? ?? ?? 0F B7 ?? ?? 5? 0F B7 ?? ?? 5? 0F B7 ?? ?? 5? 0F B7 ?? ?? 5? 0F B7 ?? ?? 5? 0F B7 ?? ?? 5? 0F B7 ?? ?? 5? 68 ?? ?? ?? ?? 8D ?? ?? ?? ?? ?? 5? FF 1? ?? ?? ?? ?? 8D ?? ?? ?? ?? ?? 5? FF 1? ?? ?? ?? ?? 03 ?? 5? 8D ?? ?? ?? ?? ?? 5? 68 ?? ?? ?? ?? FF 1? ?? ?? ?? ?? 83 ?? ?? 68 ?? ?? ?? ?? 5? 8D ?? ?? ?? ?? ?? 5? FF 1? ?? ?? ?? ?? 5? 68 ?? ?? ?? ?? 8D ?? ?? ?? ?? ?? 5? FF 1? ?? ?? ?? ?? 8D ?? ?? ?? ?? ?? 5? FF 1? ?? ?? ?? ?? 03 ?? 5? 8D ?? ?? ?? ?? ?? 5? 68 ?? ?? ?? ?? FF 1? ?? ?? ?? ?? 83 ?? ?? 89 ?? ?? 8D ?? ?? 5? 5? FF 1? ?? ?? ?? ?? 8B ?? 68 ?? ?? ?? ?? 5? 8D ?? ?? ?? ?? ?? 5? FF 1? ?? ?? ?? ?? 83 ?? ?? 3B ?? 75 } + $block_1 = { 8D ?? ?? B8 ?? ?? ?? ?? F7 ?? C1 ?? ?? 6B ?? ?? 8D ?? ?? 8B ?? 2B ?? 0F B6 ?? ?? ?? ?? ?? 30 ?? ?? 8D ?? ?? B8 ?? ?? ?? ?? F7 ?? C1 ?? ?? 6B ?? ?? 8B ?? 2B ?? 0F B6 ?? ?? ?? ?? ?? 30 ?? ?? B8 ?? ?? ?? ?? F7 ?? C1 ?? ?? 6B ?? ?? 8B ?? 2B ?? 0F B6 ?? ?? ?? ?? ?? 30 ?? ?? 8D ?? ?? B8 ?? ?? ?? ?? F7 ?? C1 ?? ?? 6B ?? ?? 8B ?? 2B ?? 0F B6 ?? ?? ?? ?? ?? 8B ?? ?? ?? 30 ?? ?? 8D ?? ?? B8 ?? ?? ?? ?? F7 ?? C1 ?? ?? 6B ?? ?? 8B ?? 2B ?? 0F B6 ?? ?? ?? ?? ?? 8B ?? ?? ?? 30 ?? ?? 8D ?? ?? B8 ?? ?? ?? ?? F7 ?? C1 ?? ?? 6B ?? ?? 2B ?? 8A ?? ?? ?? ?? ?? 8B ?? ?? ?? 30 ?? ?? 83 ?? ?? 83 ?? ?? ?? ?? 0F 85 } + $block_2 = { 68 ?? ?? ?? ?? 5? 8D ?? ?? ?? ?? ?? 5? FF 1? ?? ?? ?? ?? 0F B7 ?? ?? 5? 0F B7 ?? ?? 5? 0F B7 ?? ?? 5? 0F B7 ?? ?? 5? 0F B7 ?? ?? 5? 0F B7 ?? ?? 5? 0F B7 ?? ?? 5? 68 ?? ?? ?? ?? 8D ?? ?? ?? ?? ?? 5? FF 1? ?? ?? ?? ?? 8D ?? ?? ?? ?? ?? 5? FF 1? ?? ?? ?? ?? 03 ?? 5? 8D ?? ?? ?? ?? ?? 5? 68 ?? ?? ?? ?? FF 1? ?? ?? ?? ?? 83 ?? ?? FF 1? ?? ?? ?? ?? 8B ?? 68 ?? ?? ?? ?? 5? 8D ?? ?? ?? ?? ?? 5? FF 1? ?? ?? ?? ?? 5? 68 ?? ?? ?? ?? 8D ?? ?? ?? ?? ?? 5? FF 1? ?? ?? ?? ?? 8D ?? ?? ?? ?? ?? 5? FF 1? ?? ?? ?? ?? 03 ?? 5? 8D ?? ?? ?? ?? ?? 5? 68 ?? ?? ?? ?? FF 1? ?? ?? ?? ?? 83 ?? ?? E9 } + $block_3 = { 8D ?? ?? B8 ?? ?? ?? ?? F7 ?? C1 ?? ?? 6B ?? ?? 8D ?? ?? 8B ?? 2B ?? 0F B6 ?? ?? ?? ?? ?? 30 ?? ?? 8D ?? ?? B8 ?? ?? ?? ?? F7 ?? C1 ?? ?? 6B ?? ?? 8B ?? 2B ?? 0F B6 ?? ?? ?? ?? ?? 30 ?? ?? B8 ?? ?? ?? ?? F7 ?? C1 ?? ?? 6B ?? ?? 8B ?? 2B ?? 0F B6 ?? ?? ?? ?? ?? 30 ?? ?? 8D ?? ?? B8 ?? ?? ?? ?? F7 ?? C1 ?? ?? 6B ?? ?? 8B ?? 2B ?? 0F B6 ?? ?? ?? ?? ?? 8B ?? ?? ?? 30 ?? ?? 8D ?? ?? B8 ?? ?? ?? ?? F7 ?? C1 ?? ?? 6B ?? ?? 2B ?? 8A ?? ?? ?? ?? ?? 8B ?? ?? ?? 30 ?? ?? 83 ?? ?? 83 ?? ?? ?? ?? 0F 85 } + $block_4 = { 8D ?? ?? B8 ?? ?? ?? ?? F7 ?? C1 ?? ?? 6B ?? ?? 8D ?? ?? 8B ?? 2B ?? 0F B6 ?? ?? ?? ?? ?? 30 ?? ?? 8D ?? ?? B8 ?? ?? ?? ?? F7 ?? C1 ?? ?? 6B ?? ?? 8B ?? 2B ?? 0F B6 ?? ?? ?? ?? ?? 30 ?? ?? B8 ?? ?? ?? ?? F7 ?? C1 ?? ?? 6B ?? ?? 8B ?? 2B ?? 0F B6 ?? ?? ?? ?? ?? 30 ?? ?? 8D ?? ?? B8 ?? ?? ?? ?? F7 ?? C1 ?? ?? 6B ?? ?? 2B ?? 8A ?? ?? ?? ?? ?? 8B ?? ?? ?? 30 ?? ?? 83 ?? ?? 83 ?? ?? ?? ?? 0F 85 } + $block_5 = { 0F B6 ?? ?? ?? ?? ?? 0F B6 ?? ?? ?? ?? ?? 30 ?? ?? ?? ?? ?? 0F B6 ?? ?? ?? ?? ?? 30 ?? ?? ?? ?? ?? 0F B6 ?? ?? ?? ?? ?? 0F B6 ?? ?? ?? ?? ?? 30 ?? ?? ?? ?? ?? 30 ?? ?? ?? ?? ?? 0F B6 ?? ?? ?? ?? ?? 30 ?? ?? ?? ?? ?? 30 ?? ?? ?? ?? ?? B9 ?? ?? ?? ?? BF ?? ?? ?? ?? BB ?? ?? ?? ?? BD ?? ?? ?? ?? B8 ?? ?? ?? ?? 2B ?? 2B ?? 83 ?? ?? 2B ?? 89 ?? ?? ?? C7 } + $block_6 = { 5? FF 1? ?? ?? ?? ?? 5? 5? 6A ?? 8D ?? ?? 5? 8D ?? ?? ?? ?? ?? 5? 5? FF 1? ?? ?? ?? ?? 5? 5? 8B ?? ?? 8B ?? 5? FF 1? ?? ?? ?? ?? 5? 5? FF 1? ?? ?? ?? ?? 5? 6A ?? 8B ?? 5? FF 1? ?? ?? ?? ?? 5? FF 1? ?? ?? ?? ?? 68 ?? ?? ?? ?? 5? 8D ?? ?? ?? ?? ?? 5? FF 1? ?? ?? ?? ?? 0F B7 ?? ?? 5? 68 ?? ?? ?? ?? 8D ?? ?? ?? ?? ?? 5? } + $block_7 = { B8 ?? ?? ?? ?? F7 ?? C1 ?? ?? 6B ?? ?? 8B ?? 2B ?? 0F B6 ?? ?? ?? ?? ?? 30 ?? ?? 8D ?? ?? 03 ?? B8 ?? ?? ?? ?? F7 ?? C1 ?? ?? 6B ?? ?? B8 ?? ?? ?? ?? 2B ?? 0F B6 ?? ?? 30 ?? ?? 83 ?? ?? 83 ?? ?? ?? ?? 75 } + $block_8 = { B8 ?? ?? ?? ?? F7 ?? C1 ?? ?? 6B ?? ?? 8B ?? 2B ?? 0F B6 ?? ?? ?? ?? ?? 30 ?? ?? 8D ?? ?? 03 ?? B8 ?? ?? ?? ?? F7 ?? C1 ?? ?? 6B ?? ?? 8B ?? 2B ?? 0F B6 ?? ?? ?? ?? ?? 30 ?? ?? 83 ?? ?? 83 ?? ?? ?? ?? 75 } + $block_9 = { 5? 8B ?? 6A ?? 68 ?? ?? ?? ?? 68 ?? ?? ?? ?? 64 ?? ?? ?? ?? ?? 5? 83 ?? ?? 5? 5? 5? A1 ?? ?? ?? ?? 31 ?? ?? 33 ?? 5? 8D ?? ?? 64 ?? ?? ?? ?? ?? 89 ?? ?? C7 ?? ?? ?? ?? ?? ?? 83 ?? ?? ?? 0F 85 } + + condition: + hash.sha256(0, filesize) == "4f724e8ecf781fe1c160581d7b35d1eb951f7abf079e7ec8aa79783ec44e9d1a" or + hash.sha256(0, filesize) == "740b27fc5552e5ac3c3655e9c598ed5711cfce442cc64e39af7dca8c468aad09" or + hash.sha256(0, filesize) == "800fa6a256a1c026a905ccd650d818929e749bbae1129d309f40c7227449450c" or + hash.sha256(0, filesize) == "3b7060063814ff7dbdda98b30d35282a5686e0b965e79ee89b1d9d279b5c125a" or + hash.sha256(0, filesize) == "13dcbab502b7a291c4e56396ea369729c57268c099c59fc76a1eb6eb9ed3f0b4" or + 10 of them +} + +rule MosquitoInstaller { + meta: + Author = "Intezer Analyze" + Reference = "https://apt-ecosystem.com" + + strings: + $block_0 = { 8B ?? ?? C1 ?? ?? 89 ?? ?? 8B ?? ?? 33 ?? ?? 89 ?? ?? 8B ?? ?? 0B ?? ?? 81 F? ?? ?? ?? ?? 0F 84 } + $block_1 = { 8B ?? ?? 0B ?? ?? 89 ?? ?? 8B ?? ?? C1 ?? ?? 89 ?? ?? 8B ?? ?? 0F AF ?? ?? 3D ?? ?? ?? ?? 0F 84 } + $block_2 = { 8B ?? ?? 0B ?? ?? 89 ?? ?? 8B ?? ?? C1 ?? ?? 89 ?? ?? 8B ?? ?? C1 ?? ?? 81 F? ?? ?? ?? ?? 0F 85 } + $block_3 = { E8 ?? ?? ?? ?? 10 ?? 00 ?? ?? 6C 65 ?? 06 8B ?? 01 ?? 8B ?? 8B ?? ?? 3D ?? ?? ?? ?? 84 ?? ?? 75 } + $block_4 = { 08 ?? ?? ?? ?? ?? F7 ?? 4? 4? FF C? FF 7? ?? 3A ?? 80 7? ?? ?? CC CC CC CC CC CC CC CC CC CC CC } + $block_5 = { 8B ?? ?? 0B ?? ?? 89 ?? ?? 8B ?? ?? C1 ?? ?? 89 ?? ?? 8B ?? ?? 0B ?? ?? 81 F? ?? ?? ?? ?? 0F 85 } + $block_6 = { 5? 68 ?? ?? ?? ?? 10 ?? ?? 68 ?? ?? ?? ?? 4? 61 68 ?? ?? ?? ?? 8B ?? 5? 85 ?? 8C ?? ?? 00 ?? E9 } + $block_7 = { 8B ?? ?? 03 ?? ?? BA ?? ?? ?? ?? 6B ?? ?? 0F B7 ?? ?? 8B ?? ?? 0F B7 ?? ?? ?? ?? ?? ?? 3B ?? 75 } + $block_8 = { 8B ?? ?? 03 ?? ?? 89 ?? ?? 8B ?? ?? C1 ?? ?? 89 ?? ?? 8B ?? ?? 23 ?? ?? 81 F? ?? ?? ?? ?? 0F 86 } + $block_9 = { F1 C4 ?? ?? 85 ?? ?? ?? 00 ?? ?? 00 ?? ?? ?? ?? ?? 20 ?? FF 0? 4? 00 ?? ?? FF B? ?? ?? ?? ?? 72 } + $block_10 = { 8B ?? ?? C1 ?? ?? 89 ?? ?? 8B ?? ?? 03 ?? ?? 89 ?? ?? 8B ?? ?? C1 ?? ?? 81 F? ?? ?? ?? ?? 0F 83 } + $block_11 = { EC 07 80 8? ?? ?? ?? ?? ?? 5? 5? 5? 8B ?? ?? ?? ?? ?? CC FF 1? ?? ?? ?? ?? 24 ?? 8B ?? 5? 5? 79 } + $block_12 = { EC 83 ?? ?? 83 ?? ?? 83 ?? ?? ?? 33 ?? 8B ?? ?? 5? 5? 8D ?? ?? ?? AB AB AB 8B ?? ?? 3B ?? ?? 72 } + $block_13 = { 8B ?? 5? 8B ?? 83 ?? ?? 5? 5? 5? 33 ?? 89 ?? ?? 8B ?? 89 ?? ?? 8B ?? 8B ?? 89 ?? ?? 85 ?? 0F 84 } + $block_14 = { F8 10 ?? ?? ?? ?? ?? 63 ?? 00 ?? ?? ?? ?? ?? 8B ?? 4? 08 ?? E8 ?? ?? ?? ?? 10 ?? 5? 5? EC 5? 74 } + $block_15 = { FF 5? ?? E8 ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 4? FF 4? ?? 08 ?? 8D ?? ?? ?? 02 ?? 9D 4? 16 02 ?? E9 } + $block_16 = { 69 ?? ?? ?? ?? ?? ?? 0F 74 ?? ?? 00 ?? ?? 4? 08 ?? ?? 89 ?? ?? 88 ?? ?? ?? ?? ?? 00 ?? ?? C9 74 } + $block_17 = { 00 ?? ?? 5? 4? 24 ?? E8 ?? ?? ?? ?? 00 ?? ?? 0F 20 ?? 8D ?? ?? ?? ?? ?? 00 ?? ?? ?? 85 ?? 0F 85 } + $block_18 = { 15 ?? ?? ?? ?? 00 ?? ?? 4? 6C 00 ?? E8 ?? ?? ?? ?? 00 ?? ?? 5? CE E8 ?? ?? ?? ?? CC 8B ?? ?? 79 } + $block_19 = { 4? C0 ?? ?? ?? ?? C9 00 ?? ?? ?? ?? ?? 4? FC 07 8B ?? ?? 10 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 70 } + $block_20 = { CC B8 ?? ?? ?? ?? FF 7? ?? ?? 9D 4? 5? FF F? 0F 10 ?? ?? ?? ?? ?? 5? FF 8? ?? ?? ?? ?? FF C? 74 } + $block_21 = { 8B ?? 5? 8B ?? 83 ?? ?? 83 ?? ?? ?? 33 ?? 5? 5? 8D ?? ?? 89 ?? ?? AB AB AB 8B ?? ?? 85 ?? 75 } + $block_22 = { 8B ?? ?? 23 ?? ?? 89 ?? ?? 8B ?? ?? 0B ?? ?? 89 ?? ?? 8B ?? ?? C1 ?? ?? 3D ?? ?? ?? ?? 0F 84 } + $block_23 = { 8B ?? 04 ?? 00 ?? 6F 62 ?? ?? 68 ?? ?? ?? ?? 3F 4? 29 ?? 68 ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 72 } + $block_24 = { 8B ?? ?? 0B ?? ?? 89 ?? ?? 8B ?? ?? 03 ?? ?? 89 ?? ?? 8B ?? ?? C1 ?? ?? 3D ?? ?? ?? ?? 0F 83 } + $block_25 = { 89 ?? 61 F6 ?? ?? 6A ?? 00 ?? ?? FF 8? ?? ?? ?? ?? 3C ?? 00 ?? 8D ?? ?? ?? ?? ?? 00 ?? ?? 74 } + $block_26 = { 63 ?? ?? 89 ?? ?? ?? ?? ?? FF 8? ?? ?? ?? ?? 8B ?? 0E 00 ?? ?? ?? ?? ?? 15 ?? ?? ?? ?? 0F 85 } + $block_27 = { EC 83 ?? ?? ?? 15 ?? ?? ?? ?? 8B ?? 24 ?? 00 ?? ?? ?? FF 5? ?? 14 ?? C9 FF C? FF 5? ?? 4? EF } + $block_28 = { 8D ?? ?? ?? ?? ?? 8B ?? ?? 5? FF 0? 65 ?? ?? 6A ?? 83 ?? ?? ?? 33 ?? 16 02 ?? ?? ?? ?? ?? 14 } + $block_29 = { 00 ?? ?? B8 ?? ?? ?? ?? 5? FF 0? 00 ?? ?? ?? ?? ?? FC C0 ?? ?? ?? 00 ?? 00 ?? ?? 00 ?? 5? 72 } + $block_30 = { FF 9? ?? ?? ?? ?? FF 0? 8D ?? ?? A1 ?? ?? ?? ?? 5? 8B ?? CC CC 13 ?? ?? 8B ?? ?? 00 ?? ?? 75 } + $block_31 = { 3C ?? 65 ?? ?? ?? ?? ?? ?? 5? 8B ?? ?? 85 ?? 0F 33 F6 ?? ?? EC 83 ?? ?? 8B ?? ?? 8B ?? ?? 72 } + $block_32 = { 8B ?? 8B ?? 8B ?? 5? E8 ?? ?? ?? ?? 01 ?? 8D ?? ?? 08 ?? ?? FC 8B ?? ?? 89 ?? ?? ?? ?? ?? 89 } + $block_33 = { 4? FC 85 ?? C7 ?? ?? ?? ?? ?? ?? 0F 67 ?? 6C 00 ?? 6B ?? ?? ?? 24 ?? 0C ?? 02 ?? ?? 5? FF 5? } + $block_34 = { 64 ?? ?? 8B ?? ?? ?? ?? ?? 5? 00 ?? ?? E8 ?? ?? ?? ?? 5? FF 0? 00 ?? ?? 4? F8 83 ?? ?? FF 2? } + $block_35 = { 00 ?? 68 ?? ?? ?? ?? 30 ?? 63 ?? 69 ?? ?? ?? ?? ?? ?? 6E 8B ?? 69 ?? ?? ?? ?? ?? 00 ?? 74 } + $block_36 = { 61 9? 10 ?? 00 ?? 29 ?? ?? 4? 6F EC 8B ?? ?? EC 8B ?? 9? 00 ?? ?? 24 ?? E8 ?? ?? ?? ?? 70 } + $block_37 = { E8 ?? ?? ?? ?? 00 ?? ?? ?? ?? ?? 00 ?? ?? FC 33 ?? 33 ?? 3F 4? 10 ?? ?? 5? F3 ?? ?? 5? 73 } + $block_38 = { 68 ?? ?? ?? ?? 24 ?? 4? FC F4 05 ?? ?? ?? ?? 29 ?? 61 63 ?? 04 ?? 69 ?? ?? ?? ?? ?? ?? 5? } + $block_39 = { 0E 00 ?? ?? 01 ?? 89 ?? ?? 8D ?? ?? 89 ?? ?? ?? ?? ?? 00 ?? ?? F8 63 ?? 5? 5? 00 ?? ?? 74 } + $block_40 = { CC CC CC CC CC CC CC CC CC CC CC CC 8B ?? 5? 8B ?? 5? 5? 8B ?? 33 ?? 5? 8B ?? 85 ?? 0F 84 } + $block_41 = { 30 ?? 8D ?? ?? 00 ?? 5? 5? 8D ?? ?? ?? ?? ?? CC B8 ?? ?? ?? ?? FF 0? 00 ?? ?? ?? ?? ?? 75 } + $block_42 = { 5? 5? F6 ?? ?? 00 ?? D6 8B ?? 85 ?? 4? 24 ?? 65 ?? ?? ?? ?? 02 ?? 8B ?? ?? 85 ?? 8B ?? 75 } + $block_43 = { F6 ?? ?? 4? FF 0? 61 FF 1? ?? ?? ?? ?? 07 8B ?? ?? ?? ?? ?? 5? 0E 00 ?? 83 ?? ?? 14 ?? 79 } + $block_44 = { FF C? F4 05 ?? ?? ?? ?? 8B ?? ?? 8B ?? ?? 5? 5? 4? 4? 69 ?? ?? ?? ?? ?? ?? CC 63 ?? 74 } + $block_45 = { 03 ?? ?? ?? ?? ?? E4 ?? 4? FC E8 ?? ?? ?? ?? 8B ?? 5? 89 ?? ?? C6 ?? ?? ?? 85 ?? 74 } + $block_46 = { EC 00 ?? 8D ?? ?? 24 ?? 00 ?? ?? 6E 61 2E ?? BC ?? ?? ?? ?? 04 ?? 24 ?? 2F 13 ?? 74 } + $block_47 = { 5? 68 ?? ?? ?? ?? 8D ?? ?? ?? ?? ?? 01 ?? 13 ?? ?? 3D ?? ?? ?? ?? 24 ?? 8B ?? 61 74 } + $block_48 = { 6C 65 ?? 8B ?? FF 5? ?? 00 ?? ?? E8 ?? ?? ?? ?? 8D ?? ?? F4 24 ?? FF 0? 20 ?? ?? 74 } + $block_49 = { 0C ?? 0E F0 ?? ?? E8 ?? ?? ?? ?? 8B ?? 89 ?? ?? 8B ?? ?? 6A ?? 83 ?? ?? 5? 3B ?? 76 } + $block_50 = { 00 ?? ?? 1C ?? 8B ?? ?? 00 ?? ?? B8 ?? ?? ?? ?? FF 5? ?? 8B ?? ?? EC 8B ?? ?? 70 } + $block_51 = { 01 ?? ?? ?? 6F 02 ?? FB FF 7? ?? 00 ?? 8B ?? 00 ?? ?? 00 ?? ?? ?? 5? 00 ?? ?? 72 } + $block_52 = { FB FF 5? ?? C6 ?? ?? ?? FF 7? ?? 00 ?? ?? 00 ?? ?? 6F 61 69 ?? ?? ?? ?? ?? ?? 70 } + $block_53 = { 8B ?? ?? 8D ?? ?? 8B ?? ?? 8B ?? ?? 89 ?? ?? A5 C7 ?? ?? ?? ?? ?? ?? A5 A5 A5 } + $block_54 = { FB FF 6? ?? ?? 24 ?? 68 ?? ?? ?? ?? 64 ?? ?? 6E 8D ?? ?? ?? ?? ?? 13 ?? ?? 74 } + $block_55 = { 6E 64 ?? ?? ?? E8 ?? ?? ?? ?? 13 ?? ?? 10 ?? ?? ?? 6D 6D 00 ?? ?? ?? ?? ?? 74 } + $block_56 = { 8B ?? 6F 6E 5? FF 5? ?? 05 ?? ?? ?? ?? 20 ?? E8 ?? ?? ?? ?? FF 6? ?? 8B ?? 10 } + $block_57 = { F6 ?? 6A ?? 24 ?? 8B ?? ?? 85 ?? A5 A5 9? 10 ?? 3A ?? ?? 33 ?? 00 ?? 5? 5? 6D } + $block_58 = { 00 ?? 4? 4? 61 08 ?? 00 ?? F6 ?? ?? ?? 08 ?? 9? 10 ?? 00 ?? ?? ?? ?? ?? E9 } + $block_59 = { 00 ?? 00 ?? ?? 00 ?? ?? 02 ?? C8 ?? ?? ?? BC ?? ?? ?? ?? 04 ?? 6C 63 ?? 74 } + $block_60 = { 29 ?? 00 ?? 00 ?? ?? ?? ?? ?? 84 ?? ?? 6C 8B ?? 04 ?? 00 ?? ?? 85 ?? FF 6? } + $block_61 = { 4? 4? 10 ?? ?? 1C ?? 05 ?? ?? ?? ?? 8D ?? ?? ?? ?? ?? ?? FB 2E ?? 61 74 } + $block_62 = { 8D ?? ?? ?? ?? ?? ?? FC 13 ?? ?? 5? F4 05 ?? ?? ?? ?? C0 ?? ?? ?? ?? 75 } + $block_63 = { 5? 3A ?? 5? 8B ?? EC 8B ?? ?? ?? ?? ?? 00 ?? ?? ?? ?? ?? 65 ?? ?? ?? 00 } + $block_64 = { 00 ?? 00 ?? 65 ?? ?? 00 ?? ?? 00 ?? FF 6? ?? 63 ?? 6A ?? 3A ?? CC 6F 70 } + $block_65 = { 8B ?? 0C ?? 6F 6D 00 ?? ?? 8B ?? 01 ?? 01 ?? 4? 4? 00 ?? ?? ?? ?? ?? 70 } + $block_66 = { 2F 4? 65 ?? ?? ?? ?? ?? ?? 5? 3A ?? ?? 64 ?? 5? 5? BC ?? ?? ?? ?? 6F 63 } + $block_67 = { 8B ?? ?? C1 ?? ?? 89 ?? ?? 8B ?? ?? C1 ?? ?? 81 F? ?? ?? ?? ?? 0F 86 } + $block_68 = { 8B ?? ?? 6A ?? 5? 68 ?? ?? ?? ?? E8 ?? ?? ?? ?? 83 ?? ?? 85 ?? 0F 84 } + $block_69 = { 04 ?? 4? 04 ?? 4? 04 ?? 5? 04 ?? 05 ?? ?? ?? ?? 0E 8B ?? ?? 3B ?? 75 } + $block_70 = { 8B ?? ?? 03 ?? ?? 89 ?? ?? 8B ?? ?? C1 ?? ?? 81 F? ?? ?? ?? ?? 0F 83 } + $block_71 = { 6D 6D 00 ?? ?? 00 ?? ?? ?? ?? ?? 00 ?? ?? ?? 20 ?? 20 ?? ?? 0C ?? 74 } + $block_72 = { 02 ?? 2F 62 ?? ?? 10 ?? 8B ?? 20 ?? 2E ?? ?? 85 ?? 6F 6E 0C ?? 6D } + $block_73 = { 4? 61 10 ?? 08 ?? 4? 61 00 ?? ?? ?? 5? 24 ?? 5? 00 ?? 00 ?? ?? 20 } + $block_74 = { 8B ?? ?? C1 ?? ?? 89 ?? ?? 8B ?? ?? 0B ?? ?? 3D ?? ?? ?? ?? 0F 84 } + $block_75 = { CC 00 ?? ?? ?? ?? ?? 10 ?? ?? ?? ?? ?? 06 8B ?? ?? ?? ?? ?? 61 74 } + $block_76 = { FD FF 0? C6 ?? ?? 3F 4? 00 ?? ?? 15 ?? ?? ?? ?? 5? 61 63 ?? ?? 70 } + $block_77 = { 8B ?? ?? 33 ?? 6B ?? ?? 03 ?? 8B ?? AB AB AB AB AB 5? 85 ?? 74 } + $block_78 = { 8B ?? ?? C1 ?? ?? 89 ?? ?? 8B ?? ?? 8B ?? ?? 83 ?? ?? ?? 0F 84 } + $block_79 = { A5 6C 65 ?? ?? 00 ?? ?? 4? 69 ?? ?? ?? ?? ?? ?? ?? 00 ?? ?? 84 } + $block_80 = { 24 ?? 69 ?? ?? ?? ?? ?? 8B ?? ?? 00 ?? ?? 00 ?? ?? A5 A5 61 72 } + $block_81 = { 6A ?? 68 ?? ?? ?? ?? 5? E8 ?? ?? ?? ?? 83 ?? ?? 85 ?? 0F 85 } + $block_82 = { 5? 8B ?? ?? ?? FF 5? ?? 61 69 ?? ?? ?? ?? ?? ?? ?? ?? ?? 2F } + $block_83 = { F7 ?? ?? ?? ?? ?? 6A ?? 4? 06 8B ?? ?? ?? ?? ?? 01 ?? ?? C2 } + $block_84 = { 24 ?? 08 ?? ?? ?? ?? ?? 01 ?? 2F 00 ?? 6A ?? 6C CC 8B ?? 8D } + $block_85 = { 10 ?? ?? 00 ?? 4? 00 ?? 8D ?? 2F 5? 61 63 ?? 08 ?? ?? FF 6? } + $block_86 = { 8B ?? ?? 8D ?? ?? ?? 8B ?? ?? 89 ?? ?? ?? A5 A5 A5 A5 33 } + $block_87 = { FC E8 ?? ?? ?? ?? 8B ?? 5? 89 ?? ?? C6 ?? ?? ?? 85 ?? 74 } + $block_88 = { FF C? 3D ?? ?? ?? ?? 6D 08 ?? ?? ?? ?? ?? 29 ?? 33 ?? 70 } + $block_89 = { 8B ?? 5? 8B ?? 5? 5? 8B ?? 33 ?? 5? 8B ?? 85 ?? 0F 84 } + $block_90 = { 69 ?? ?? ?? ?? ?? ?? 5? 0C ?? 65 ?? ?? 2E ?? ?? 6F 72 } + $block_91 = { 8B ?? ?? 0F AF ?? ?? 89 ?? ?? C7 ?? ?? ?? ?? ?? ?? EB } + $block_92 = { 00 ?? 3D ?? ?? ?? ?? 4? 1C ?? 00 ?? 4? 08 ?? ?? 06 70 } + $block_93 = { FF 8? ?? ?? ?? ?? 00 ?? ?? 08 ?? ?? 5? 5? F7 ?? 6F 72 } + $block_94 = { 00 ?? ?? ?? ?? ?? 00 ?? ?? 61 10 ?? 5? 4? 3A ?? 06 8B } + $block_95 = { 8B ?? ?? 5? 5? 5? 8B ?? FF 5? ?? 8B ?? 85 ?? 0F 88 } + $block_96 = { 0F B7 ?? ?? 0F B7 ?? ?? 66 ?? ?? 0F 92 ?? 84 ?? 75 } + $block_97 = { CC CC CC 8B ?? 5? 8B ?? 83 ?? ?? 8B ?? ?? 5? 5? 75 } + $block_98 = { 6D 62 ?? ?? 5? 24 ?? 6C 00 ?? 61 6E 8B ?? ?? 72 } + $block_99 = { 69 ?? ?? ?? ?? ?? F7 ?? FF 1? ?? 08 ?? ?? CC 72 } + + condition: + hash.sha256(0, filesize) == "2a61b4d0a7c5d7dc13f4f1dd5e0e3117036a86638dbafaec6ae96da507fb7624" or + hash.sha256(0, filesize) == "f667680df596631fba58754c16c3041fae12ed6bf25d6068e6981ee68a6c9d0a" or + hash.sha256(0, filesize) == "5e0dd729c21cd507bdb2a40954917685628f83171280bd34120cfe20c51ce4bf" or + hash.sha256(0, filesize) == "ecfa113838c5542f6db62dbe8b27d4ff099afe711048ccf76924799044dd4ab6" or + hash.sha256(0, filesize) == "b362b235539b762734a1833c7e6c366c1b46474f05dc17b3a631b3bff95a5eec" or + hash.sha256(0, filesize) == "2e6dba522e5ca03c5ca5bc60ecec212177482898c7ec81a0871b19a67cf124e8" or + hash.sha256(0, filesize) == "b295032919143f5b6b3c87ad22bcf8b55ecc9244aa9f6f88fc28f36f5aa2925e" or + hash.sha256(0, filesize) == "fc9961e78890f044c5fc769f74d8440fcecf71e0f72b4d33ce470e920a4a24c3" or + 12 of them +} + +rule CarbonOrchestrator_v3_77_ { + meta: + Author = "Intezer Analyze" + Reference = "https://apt-ecosystem.com" + + strings: + $block_0 = { 8B ?? ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? ?? E8 ?? ?? ?? ?? 8B ?? E8 ?? ?? ?? ?? 0F B6 ?? 85 ?? 74 } + $block_1 = { E8 ?? ?? ?? ?? 99 B9 ?? ?? ?? ?? F7 ?? 8B ?? 48 ?? ?? ?? ?? 8B ?? ?? 2B ?? 8B ?? 89 ?? ?? ?? EB } + $block_2 = { 4C ?? ?? ?? ?? 88 ?? ?? ?? 48 ?? ?? ?? ?? 48 ?? ?? ?? ?? ?? ?? 0F B6 ?? ?? ?? ?? ?? ?? 85 ?? 74 } + $block_3 = { C7 ?? ?? ?? ?? ?? ?? ?? 48 ?? ?? ?? ?? 0F B6 ?? 88 ?? ?? ?? 0F B6 ?? ?? ?? 3D ?? ?? ?? ?? 0F 85 } + $block_4 = { 48 ?? ?? ?? ?? ?? ?? 48 ?? ?? ?? ?? FF 1? ?? ?? ?? ?? 48 ?? ?? ?? ?? 0F BE ?? ?? 83 ?? ?? 75 } + $block_5 = { 0F B7 ?? ?? ?? ?? ?? ?? 48 ?? ?? ?? ?? ?? ?? FF 9? ?? ?? ?? ?? 48 ?? ?? ?? ?? 66 ?? ?? ?? EB } + $block_6 = { 48 ?? ?? ?? ?? ?? ?? ?? 0F B7 ?? 33 ?? B9 ?? ?? ?? ?? 48 ?? ?? 48 ?? ?? ?? ?? ?? ?? ?? EB } + $block_7 = { 48 ?? ?? ?? ?? ?? ?? E8 ?? ?? ?? ?? 33 ?? 48 ?? ?? ?? ?? E8 ?? ?? ?? ?? 0F B6 ?? 85 ?? 75 } + $block_8 = { 4C ?? ?? ?? ?? 41 ?? ?? ?? ?? ?? 48 ?? ?? ?? ?? 48 ?? ?? ?? ?? E8 ?? ?? ?? ?? 85 ?? 0F 84 } + $block_9 = { 8B ?? ?? ?? ?? ?? ?? 48 ?? ?? ?? ?? E8 ?? ?? ?? ?? 48 ?? ?? ?? ?? 48 ?? ?? ?? ?? ?? 0F 84 } + $block_10 = { 0F BE ?? ?? ?? BA ?? ?? ?? ?? 8B ?? E8 ?? ?? ?? ?? 88 ?? ?? ?? 0F B6 ?? ?? ?? 83 ?? ?? 7C } + $block_11 = { 48 ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? 48 ?? ?? ?? ?? ?? ?? ?? 0F B7 ?? ?? 3D ?? ?? ?? ?? 75 } + $block_12 = { 41 ?? ?? ?? ?? ?? 48 ?? ?? ?? ?? ?? ?? 48 ?? ?? ?? ?? E8 ?? ?? ?? ?? 0F B6 ?? 85 ?? 75 } + $block_13 = { 48 ?? ?? ?? ?? ?? ?? ?? 0F B6 ?? ?? 88 ?? ?? ?? 48 ?? ?? ?? ?? ?? ?? ?? 48 ?? ?? ?? 75 } + $block_14 = { 48 ?? ?? ?? ?? 48 ?? ?? ?? ?? 0F B6 ?? ?? 88 ?? ?? ?? 8B ?? ?? ?? FF C? 89 ?? ?? ?? C7 } + $block_15 = { 8B ?? ?? ?? 44 ?? ?? 48 ?? ?? ?? ?? ?? ?? ?? 48 ?? ?? ?? ?? E8 ?? ?? ?? ?? 85 ?? 0F 85 } + $block_16 = { 8B ?? ?? ?? ?? ?? ?? 8B ?? ?? ?? E8 ?? ?? ?? ?? 8B ?? E8 ?? ?? ?? ?? 0F B6 ?? 85 ?? 74 } + $block_17 = { 48 ?? ?? ?? ?? FF 1? ?? ?? ?? ?? 88 ?? ?? ?? ?? ?? ?? 0F B6 ?? ?? ?? ?? ?? ?? 85 ?? 74 } + $block_18 = { 48 ?? ?? ?? ?? ?? ?? E8 ?? ?? ?? ?? 48 ?? ?? ?? ?? ?? ?? 0F BE ?? ?? ?? 83 ?? ?? 74 } + $block_19 = { 48 ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? ?? E8 ?? ?? ?? ?? 89 ?? ?? ?? 83 ?? ?? ?? ?? 0F 85 } + $block_20 = { 48 ?? ?? ?? ?? ?? ?? ?? 0F B7 ?? 33 ?? B9 ?? ?? ?? ?? 48 ?? ?? 48 ?? ?? ?? ?? ?? 73 } + $block_21 = { 48 ?? ?? ?? ?? ?? ?? ?? 48 ?? ?? ?? ?? ?? ?? ?? FF 1? ?? ?? ?? ?? 83 ?? ?? 0F 84 } + $block_22 = { 0F BF ?? ?? ?? ?? ?? ?? 48 ?? ?? ?? ?? ?? ?? ?? 89 ?? C7 ?? ?? ?? ?? ?? ?? ?? EB } + $block_23 = { 48 ?? ?? ?? ?? 48 ?? ?? ?? ?? FF 1? ?? ?? ?? ?? 89 ?? ?? ?? 83 ?? ?? ?? ?? 0F 85 } + $block_24 = { 0F BF ?? ?? ?? ?? ?? ?? 48 ?? ?? ?? ?? ?? ?? ?? 89 ?? C7 ?? ?? ?? ?? ?? ?? ?? E9 } + $block_25 = { 33 ?? 48 ?? ?? ?? ?? ?? ?? ?? E8 ?? ?? ?? ?? 89 ?? ?? ?? 83 ?? ?? ?? ?? 0F 85 } + $block_26 = { FF 1? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? ?? 81 B? ?? ?? ?? ?? ?? ?? ?? ?? ?? 0F 85 } + $block_27 = { 48 ?? ?? ?? ?? ?? ?? 48 ?? ?? ?? ?? ?? ?? ?? FF 1? ?? ?? ?? ?? 48 ?? ?? 0F 84 } + $block_28 = { 48 ?? ?? ?? ?? ?? ?? 48 ?? ?? ?? ?? ?? ?? ?? FF 1? ?? ?? ?? ?? 48 ?? ?? 0F 85 } + $block_29 = { 48 ?? ?? ?? ?? 48 ?? ?? ?? ?? E8 ?? ?? ?? ?? 89 ?? ?? ?? 83 ?? ?? ?? ?? 0F 85 } + $block_30 = { 48 ?? ?? ?? ?? ?? ?? ?? FF 1? ?? ?? ?? ?? 0F B6 ?? ?? ?? ?? ?? ?? 83 ?? ?? 75 } + $block_31 = { 48 ?? ?? ?? ?? 48 ?? ?? ?? 48 ?? ?? E8 ?? ?? ?? ?? 0F B6 ?? 83 ?? ?? 0F 85 } + $block_32 = { B2 ?? 48 ?? ?? ?? ?? ?? ?? ?? E8 ?? ?? ?? ?? 83 ?? ?? ?? ?? ?? ?? ?? 0F 85 } + $block_33 = { 0F BE ?? ?? ?? 8B ?? 48 ?? ?? ?? ?? ?? ?? ?? FF 1? ?? ?? ?? ?? 48 ?? ?? 74 } + $block_34 = { 48 ?? ?? ?? ?? 48 ?? ?? ?? 48 ?? ?? ?? ?? ?? ?? 8B ?? ?? ?? 39 ?? ?? 0F 85 } + $block_35 = { 48 ?? ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? 48 ?? ?? ?? ?? 0F B7 ?? ?? 85 ?? 74 } + $block_36 = { 48 ?? ?? ?? ?? ?? ?? 48 ?? ?? ?? ?? ?? ?? ?? E8 ?? ?? ?? ?? 85 ?? 0F 85 } + $block_37 = { 0F B7 ?? ?? ?? 48 ?? ?? ?? ?? ?? ?? FF 9? ?? ?? ?? ?? 66 ?? ?? ?? ?? EB } + $block_38 = { 0F B6 ?? ?? ?? B9 ?? ?? ?? ?? 2B ?? 8B ?? 0F B6 ?? ?? ?? 03 ?? 8B ?? 88 } + $block_39 = { 48 ?? ?? ?? ?? 48 ?? ?? ?? ?? 8B ?? ?? 8B ?? ?? 2B ?? 3B ?? ?? ?? 0F 87 } + $block_40 = { 8B ?? ?? ?? ?? ?? ?? FF C? 48 ?? 48 ?? ?? ?? ?? 0F BE ?? ?? 85 ?? 75 } + $block_41 = { 48 ?? ?? ?? ?? 8B ?? ?? 99 83 ?? ?? 03 ?? C1 ?? ?? 39 ?? ?? ?? 7E } + $block_42 = { 0F BE ?? ?? ?? 8B ?? 48 ?? ?? ?? ?? FF 1? ?? ?? ?? ?? 48 ?? ?? 74 } + $block_43 = { 8B ?? ?? ?? 8B ?? ?? ?? ?? ?? ?? 2B ?? 8B ?? 3D ?? ?? ?? ?? 0F 8C } + $block_44 = { 0F B7 ?? ?? ?? 48 ?? ?? ?? 48 ?? ?? ?? 8B ?? ?? ?? 39 ?? ?? ?? 77 } + $block_45 = { 48 ?? ?? ?? ?? ?? ?? ?? 48 ?? ?? ?? 48 ?? ?? ?? ?? ?? ?? ?? 0F 84 } + $block_46 = { 8B ?? ?? ?? FF C? 89 ?? ?? ?? 0F B7 ?? ?? ?? 39 ?? ?? ?? 0F 83 } + $block_47 = { B2 ?? 48 ?? ?? ?? ?? ?? ?? ?? E8 ?? ?? ?? ?? 0F B6 ?? 85 ?? 75 } + $block_48 = { 48 ?? ?? ?? ?? 0F B6 ?? 88 ?? ?? ?? 0F B6 ?? ?? ?? 83 ?? ?? 75 } + $block_49 = { 0F B6 ?? ?? ?? ?? ?? ?? 88 ?? ?? ?? 0F B6 ?? ?? ?? 85 ?? 0F 84 } + $block_50 = { 0F B7 ?? ?? ?? ?? ?? ?? 0F B7 ?? ?? ?? ?? ?? ?? 3B ?? 0F 85 } + $block_51 = { 48 ?? ?? ?? ?? ?? ?? ?? 8B ?? ?? 39 ?? ?? ?? ?? ?? ?? 0F 83 } + $block_52 = { 8B ?? ?? ?? FF C? 48 ?? 48 ?? ?? ?? ?? 0F BE ?? ?? 85 ?? 75 } + $block_53 = { 48 ?? ?? ?? ?? 48 ?? ?? ?? ?? ?? ?? ?? 48 ?? ?? ?? ?? 0F 84 } + $block_54 = { 48 ?? ?? ?? ?? ?? ?? ?? E8 ?? ?? ?? ?? 0F B6 ?? 83 ?? ?? 75 } + $block_55 = { 8B ?? ?? ?? 8B ?? ?? ?? ?? ?? ?? 2B ?? 8B ?? 85 ?? 0F 85 } + $block_56 = { 0F B7 ?? ?? ?? ?? ?? ?? 0F B7 ?? ?? ?? ?? ?? ?? 3B ?? 75 } + $block_57 = { 0F B7 ?? ?? ?? ?? ?? ?? 0F B7 ?? ?? ?? ?? ?? ?? 3B ?? 7F } + $block_58 = { 48 ?? ?? ?? ?? ?? ?? ?? 48 ?? ?? ?? ?? ?? 48 ?? ?? 0F 85 } + $block_59 = { 0F B7 ?? ?? ?? ?? ?? ?? 0F B7 ?? ?? ?? ?? ?? ?? 3B ?? 7D } + $block_60 = { 8B ?? ?? ?? 8B ?? ?? ?? ?? ?? ?? 2B ?? 8B ?? 85 ?? 0F 8E } + $block_61 = { 48 ?? ?? ?? ?? ?? ?? ?? E8 ?? ?? ?? ?? 48 ?? ?? 0F 85 } + $block_62 = { 48 ?? ?? ?? ?? ?? ?? ?? E8 ?? ?? ?? ?? 48 ?? ?? 0F 86 } + $block_63 = { 48 ?? ?? ?? ?? ?? ?? ?? 0F B7 ?? ?? 3D ?? ?? ?? ?? 74 } + $block_64 = { 48 ?? ?? ?? ?? ?? ?? ?? 48 ?? ?? ?? ?? ?? ?? ?? 0F 85 } + $block_65 = { 48 ?? ?? ?? ?? 48 ?? ?? ?? ?? 8B ?? ?? 39 ?? ?? 0F 83 } + $block_66 = { B2 ?? 48 ?? ?? ?? ?? E8 ?? ?? ?? ?? 0F B6 ?? 85 ?? 75 } + $block_67 = { 8B ?? ?? ?? 8B ?? ?? ?? FF C? 89 ?? ?? ?? 85 ?? 0F 84 } + $block_68 = { 48 ?? ?? ?? ?? ?? ?? ?? 0F B7 ?? ?? 3D ?? ?? ?? ?? 75 } + $block_69 = { 33 ?? 8B ?? ?? ?? F7 ?? ?? ?? FF C? 0F AF ?? ?? ?? 89 } + $block_70 = { 0F B7 ?? ?? ?? 48 ?? ?? ?? ?? 0F B7 ?? ?? 3B ?? 7D } + $block_71 = { 8B ?? ?? ?? 48 ?? ?? ?? ?? 0F BE ?? ?? 85 ?? 0F 85 } + $block_72 = { 48 ?? ?? ?? ?? ?? ?? ?? 83 ?? ?? ?? ?? ?? ?? 0F 85 } + $block_73 = { 48 ?? ?? ?? ?? 48 ?? ?? 83 ?? ?? ?? ?? ?? ?? 0F 85 } + $block_74 = { 0F B7 ?? ?? ?? ?? ?? ?? 25 ?? ?? ?? ?? 85 ?? 0F 84 } + $block_75 = { 48 ?? ?? ?? ?? ?? ?? ?? 0F B7 ?? 39 ?? ?? ?? 0F 85 } + $block_76 = { 8B ?? ?? ?? ?? ?? ?? 48 ?? ?? ?? ?? ?? ?? ?? 0F 85 } + $block_77 = { 48 ?? ?? ?? ?? ?? ?? ?? 0F BE ?? ?? 83 ?? ?? 74 } + $block_78 = { 8B ?? ?? ?? ?? ?? ?? 0F BE ?? ?? ?? 83 ?? ?? 74 } + $block_79 = { 8B ?? ?? ?? ?? ?? ?? 39 ?? ?? ?? ?? ?? ?? 0F 83 } + $block_80 = { 48 ?? ?? ?? ?? ?? ?? ?? 0F B7 ?? ?? 83 ?? ?? 75 } + $block_81 = { 48 ?? ?? ?? ?? ?? ?? ?? 0F BE ?? ?? 83 ?? ?? 75 } + $block_82 = { 8B ?? ?? ?? ?? ?? ?? 39 ?? ?? ?? ?? ?? ?? 0F 8D } + $block_83 = { 48 ?? ?? ?? ?? 48 ?? ?? ?? ?? 48 ?? ?? ?? 0F 85 } + $block_84 = { B9 ?? ?? ?? ?? E8 ?? ?? ?? ?? 0F B6 ?? 85 ?? 74 } + + condition: + hash.sha256(0, filesize) == "af0e455f640b621c50d5c11efc3c8649691a9a661fa1bcf658aae48c007ff3c4" or + 24 of them +} + +rule MosquitoBackdoor { + meta: + Author = "Intezer Analyze" + Reference = "https://apt-ecosystem.com" + + strings: + $block_0 = { 8B ?? ?? 0B ?? ?? 89 ?? ?? 8B ?? ?? 23 ?? ?? 89 ?? ?? 8B ?? ?? C1 ?? ?? 81 F? ?? ?? ?? ?? 0F 84 } + $block_1 = { 5? FF F? 02 ?? 89 ?? ?? ?? ?? ?? 04 ?? 6E 00 ?? ?? 10 ?? ?? ?? ?? ?? 05 ?? ?? ?? ?? 02 ?? CC 8B } + $block_2 = { 8B ?? ?? 33 ?? 6A ?? 4? 5? F7 ?? 0F 90 ?? F7 ?? 0B ?? 5? E8 ?? ?? ?? ?? 83 ?? ?? ?? 8B ?? 5? 72 } + $block_3 = { F4 64 ?? 00 ?? ?? 00 ?? ?? 8B ?? ?? EC 83 ?? ?? 08 ?? ?? ?? 5? 68 ?? ?? ?? ?? 6E 83 ?? ?? 72 } + $block_4 = { 08 ?? ?? ?? ?? ?? 00 ?? ?? ?? ?? ?? 5? 0C ?? CC 8B ?? 68 ?? ?? ?? ?? 8B ?? 10 ?? 00 ?? ?? 73 } + $block_5 = { 5? 05 ?? ?? ?? ?? 00 ?? 6D CC 8B ?? ?? ?? ?? ?? 8B ?? 8D ?? ?? ?? ?? ?? FF 1? 83 ?? ?? 4? 73 } + $block_6 = { 68 ?? ?? ?? ?? E8 ?? ?? ?? ?? CC 5? 8B ?? 5? 5? 5? 8B ?? ?? 5? 8B ?? 5? 8B ?? ?? 3B ?? 0F 82 } + $block_7 = { E8 ?? ?? ?? ?? 5? FF 7? ?? 8B ?? 8B ?? 68 ?? ?? ?? ?? FF 5? ?? 8B ?? ?? 2B ?? 83 ?? ?? 0F 82 } + $block_8 = { FF 7? ?? ?? 39 ?? ?? ?? ?? ?? ?? 8D ?? ?? ?? 5? 0F 43 ?? ?? ?? 6A ?? 5? 5? FF 7? ?? ?? FF 1? } + $block_9 = { 89 ?? FF 7? ?? ?? 68 ?? ?? ?? ?? 4? FC 30 ?? FF 8? ?? ?? ?? ?? 5? 5? 15 ?? ?? ?? ?? 5? 74 } + $block_10 = { 00 ?? CC 00 ?? ?? EC 8B ?? ?? 5? 00 ?? 8B ?? 85 ?? 00 ?? 63 ?? 5? A1 ?? ?? ?? ?? 01 ?? 70 } + $block_11 = { EC 8B ?? ?? A3 ?? ?? ?? ?? 5? 8B ?? ?? 00 ?? ?? 00 ?? ?? ?? 31 ?? 68 ?? ?? ?? ?? 04 ?? 75 } + $block_12 = { C6 ?? ?? ?? ?? ?? ?? ?? E8 ?? ?? ?? ?? 83 ?? ?? ?? ?? 8D ?? ?? ?? 0F 43 ?? ?? ?? 5? 5? E9 } + $block_13 = { 6A ?? 8D ?? ?? ?? 5? 68 ?? ?? ?? ?? 8D ?? ?? ?? ?? ?? ?? 5? FF 7? ?? ?? FF D? 85 ?? 0F 85 } + $block_14 = { 83 ?? ?? ?? ?? 5? 0F 43 ?? ?? ?? 5? 6A ?? 6A ?? 5? FF 7? ?? ?? FF 1? ?? ?? ?? ?? 85 ?? 74 } + $block_15 = { 00 ?? ?? 0F C1 ?? 00 ?? 32 ?? ?? 4? 04 ?? FC 00 ?? ?? 10 ?? ?? 00 ?? ?? ?? 89 ?? ?? 9? } + $block_16 = { 8B ?? 5? FF 7? ?? 8B ?? FF 5? ?? 8D ?? ?? ?? E8 ?? ?? ?? ?? 8B ?? ?? ?? 3B ?? ?? 0F 85 } + $block_17 = { 5? 89 ?? ?? ?? ?? ?? 05 ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 4? FF 6? ?? EC 6E 00 ?? ?? 74 } + $block_18 = { 83 ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? 83 ?? ?? ?? 8B ?? E8 ?? ?? ?? ?? 8B ?? 85 ?? 0F 85 } + $block_19 = { 8D ?? ?? ?? ?? ?? 5? 5? 8B ?? ?? ?? ?? ?? 6A ?? 5? 5? FF 1? ?? ?? ?? ?? 85 ?? 0F 85 } + $block_20 = { EC 83 ?? ?? 8B ?? ?? ?? ?? ?? 8B ?? ?? 80 7? ?? ?? 5? B1 ?? 5? 8B ?? 88 ?? ?? 75 } + $block_21 = { 8B ?? ?? ?? ?? ?? 8B ?? 83 ?? ?? ?? ?? ?? ?? 0F 43 ?? ?? ?? ?? ?? 8B ?? 5? FF 5? } + $block_22 = { CC 8B ?? ?? ?? 00 ?? ?? 85 ?? 4? 4? 8B ?? 8D ?? ?? 15 ?? ?? ?? ?? 8B ?? ?? 74 } + $block_23 = { 6A ?? 5? 6A ?? 5? 8D ?? ?? 5? FF B? ?? ?? ?? ?? FF 1? ?? ?? ?? ?? 85 ?? 0F 84 } + $block_24 = { 2B ?? 33 ?? D1 ?? 8D ?? ?? F7 ?? 0F 90 ?? F7 ?? 0B ?? 5? E8 ?? ?? ?? ?? 5? 89 } + $block_25 = { 6A ?? E8 ?? ?? ?? ?? 8B ?? 5? 89 ?? ?? ?? C6 ?? ?? ?? ?? ?? ?? ?? 85 ?? 0F 84 } + $block_26 = { 8B ?? ?? 0F AF ?? ?? 89 ?? ?? B9 ?? ?? ?? ?? 6B ?? ?? 8B ?? ?? 8B ?? ?? 89 } + $block_27 = { 8B ?? 2B ?? 5? 8B ?? ?? 3B ?? 0F 42 ?? 83 ?? ?? 2B ?? ?? 2B ?? 3B ?? 0F 86 } + $block_28 = { 4? 04 ?? 9? 00 ?? 3F 24 ?? 00 ?? 61 64 ?? ?? 01 ?? ?? 00 ?? ?? ?? 4? 73 } + $block_29 = { 6A ?? 5? 8D ?? ?? ?? 5? 8D ?? ?? ?? E8 ?? ?? ?? ?? 8B ?? 83 ?? ?? 0F 84 } + $block_30 = { E8 ?? ?? ?? ?? CC 5? 8B ?? 5? 8B ?? 5? 5? 8B ?? ?? 3D ?? ?? ?? ?? 0F 83 } + $block_31 = { 4? 68 ?? ?? ?? ?? 89 ?? ?? F4 64 ?? ?? ?? 00 ?? 20 ?? CC 85 ?? FF 1? } + $block_32 = { 8B ?? CC 5? 5? A3 ?? ?? ?? ?? 89 ?? 00 ?? ?? ?? ?? ?? 4? 3F 24 ?? 75 } + $block_33 = { 84 ?? ?? 00 ?? 10 ?? 00 ?? 01 ?? 33 ?? 06 03 ?? ?? ?? ?? ?? 4? 6F } + $block_34 = { 8B ?? 64 ?? ?? ?? ?? ?? 00 ?? ?? ?? 00 ?? CC 8B ?? 8B ?? 8B ?? 75 } + $block_35 = { E8 ?? ?? ?? ?? 83 ?? ?? ?? ?? 8D ?? ?? ?? 0F 43 ?? ?? ?? 5? FF 7? } + $block_36 = { 83 ?? ?? ?? ?? 0F 43 ?? ?? ?? 5? FF 7? ?? ?? FF 1? ?? ?? ?? ?? EB } + $block_37 = { 8B ?? ?? 23 ?? ?? 89 ?? ?? 8B ?? ?? 8B ?? ?? 83 ?? ?? ?? 0F 84 } + $block_38 = { 4? C4 ?? ?? C0 ?? ?? ?? ?? ?? ?? 31 ?? 0C ?? 4? CC CC CC CC CC } + $block_39 = { 5? 8B ?? 83 ?? ?? A1 ?? ?? ?? ?? 33 ?? 89 ?? ?? FF 4? ?? 0F 85 } + $block_40 = { EC 5? 8D ?? ?? 89 ?? ?? ?? ?? ?? F4 64 ?? 00 ?? C1 ?? ?? 75 } + $block_41 = { 63 ?? 00 ?? 4? FC 8B ?? 08 ?? ?? ?? ?? ?? 6A ?? 00 ?? 5? } + $block_42 = { 8B ?? ?? ?? 89 ?? ?? D2 ?? ?? ?? ?? ?? 00 ?? 6C 0F 84 } + $block_43 = { 8D ?? ?? 16 00 ?? ?? F4 89 ?? ?? 4? 8B ?? ?? 00 ?? 72 } + $block_44 = { EC 1D ?? ?? ?? ?? 00 ?? 8B ?? ?? ?? ?? ?? D0 ?? ?? 8B } + $block_45 = { 5? 8B ?? 5? 8B ?? 5? 5? 8B ?? ?? 3D ?? ?? ?? ?? 0F 83 } + $block_46 = { 00 ?? ?? 83 ?? ?? 89 ?? CC CE FF 6? ?? 00 ?? ?? 5? } + $block_47 = { 8B ?? ?? CE C5 ?? ?? 4? 10 ?? ?? ?? 00 ?? ?? 5? 6E } + $block_48 = { 4? 61 00 ?? ?? C7 ?? ?? ?? ?? ?? ?? C9 02 ?? 4? } + $block_49 = { 89 ?? ?? 64 ?? 0C ?? CE 64 ?? ?? 0F 40 ?? ?? CF } + $block_50 = { 8B ?? ?? 10 ?? C1 ?? ?? 4? 30 ?? 00 ?? 4? FC 74 } + $block_51 = { FF B? ?? ?? ?? ?? FF 1? ?? ?? ?? ?? 85 ?? 0F 84 } + $block_52 = { 8B ?? ?? 83 ?? ?? 89 ?? ?? ?? ?? ?? 85 ?? 0F 84 } + + condition: + hash.sha256(0, filesize) == "e7fd14ca45818044690ca67f201cc8cfb916ccc941a105927fc4c932c72b425d" or + hash.sha256(0, filesize) == "b79cdf929d4a340bdd5f29b3aeccd3c65e39540d4529b64e50ebeacd9cdee5e9" or + 12 of them +} + +rule Uroburos { + meta: + Author = "Intezer Analyze" + Reference = "https://apt-ecosystem.com" + + strings: + $block_0 = { FF 7? ?? 8B ?? 69 ?? ?? ?? ?? ?? 0F B7 ?? ?? ?? 03 ?? 8D ?? ?? ?? 8B ?? E8 ?? ?? ?? ?? 85 ?? 75 } + $block_1 = { 8B ?? ?? 0F B6 ?? ?? 8B ?? ?? 0F B6 ?? ?? 2B ?? 8B ?? ?? 88 ?? ?? 8B ?? ?? C6 ?? ?? ?? 33 ?? 75 } + $block_2 = { 8B ?? ?? ?? ?? ?? ?? 33 ?? 39 ?? ?? ?? ?? ?? 5? 5? 0F 94 ?? 5? 33 ?? E8 ?? ?? ?? ?? 8B ?? 5? C3 } + $block_3 = { 8B ?? ?? 33 ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 3B ?? ?? ?? ?? ?? 0F 85 } + $block_4 = { 81 E? ?? ?? ?? ?? A1 ?? ?? ?? ?? 33 ?? 89 ?? ?? ?? ?? ?? ?? 5? 8B ?? 85 ?? 89 ?? ?? ?? 0F 84 } + $block_5 = { 8B ?? ?? 89 ?? ?? 8B ?? ?? 89 ?? ?? 8B ?? ?? 89 ?? ?? FF 1? ?? ?? ?? ?? 0F BE ?? 83 ?? ?? 75 } + $block_6 = { 0F B6 ?? ?? C1 ?? ?? 05 ?? ?? ?? ?? 8B ?? ?? 89 ?? ?? ?? ?? ?? 8B ?? ?? 5? E8 ?? ?? ?? ?? EB } + $block_7 = { 8B ?? ?? 0F B6 ?? ?? 8B ?? ?? 0F B6 ?? ?? ?? ?? ?? ?? C1 ?? ?? 81 C? ?? ?? ?? ?? 8B ?? ?? 89 } + $block_8 = { 48 ?? ?? ?? ?? E8 ?? ?? ?? ?? 8B ?? 48 ?? ?? ?? ?? 48 ?? ?? 48 ?? ?? ?? ?? 48 ?? ?? ?? 0F 85 } + $block_9 = { 8B ?? ?? 0F B6 ?? ?? ?? ?? ?? F7 ?? 1B ?? 83 ?? ?? 83 ?? ?? 8B ?? ?? 88 ?? ?? ?? ?? ?? E9 } + $block_10 = { 5? 8B ?? 83 ?? ?? 5? 8B ?? ?? 5? E8 ?? ?? ?? ?? 8B ?? ?? 0F B6 ?? ?? ?? ?? ?? 83 ?? ?? 75 } + $block_11 = { 8D ?? ?? 5? 68 ?? ?? ?? ?? 5? 68 ?? ?? ?? ?? 68 ?? ?? ?? ?? FF 1? ?? ?? ?? ?? 85 ?? 0F 85 } + $block_12 = { D9 ?? E8 ?? ?? ?? ?? 8B ?? 89 ?? ?? ?? DB ?? ?? ?? D9 ?? D8 ?? D8 ?? DF ?? F6 ?? ?? 0F 8B } + $block_13 = { 8B ?? ?? ?? ?? ?? 6A ?? 8D ?? ?? ?? 5? 8D ?? ?? ?? 5? 68 ?? ?? ?? ?? 5? FF D? 85 ?? 0F 84 } + $block_14 = { 8B ?? ?? 6B ?? ?? 8B ?? ?? 8B ?? ?? ?? 8B ?? ?? 8D ?? ?? 89 ?? ?? 0F B6 ?? ?? 85 ?? 0F 84 } + $block_15 = { 6A ?? 68 ?? ?? ?? ?? E8 ?? ?? ?? ?? 89 ?? ?? E8 ?? ?? ?? ?? 89 ?? ?? 0F B6 ?? ?? 85 ?? 75 } + $block_16 = { 8B ?? ?? 0F B7 ?? 5? 8B ?? ?? 5? 8B ?? ?? 81 C? ?? ?? ?? ?? 5? E8 ?? ?? ?? ?? 83 ?? ?? C7 } + $block_17 = { 0F B6 ?? ?? F7 ?? 1B ?? 83 ?? ?? 88 ?? ?? C7 ?? ?? ?? ?? ?? ?? 0F B6 ?? ?? 85 ?? 0F 84 } + $block_18 = { 8B ?? ?? 8B ?? ?? ?? ?? ?? 8B ?? ?? 89 ?? ?? 8B ?? ?? 0F B6 ?? ?? ?? ?? ?? 83 ?? ?? 75 } + $block_19 = { 8B ?? ?? ?? ?? ?? 69 ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 0F B6 ?? ?? ?? ?? ?? ?? 85 ?? 75 } + $block_20 = { 8D ?? ?? 5? 8B ?? ?? 5? 8B ?? ?? 5? E8 ?? ?? ?? ?? 88 ?? ?? 0F B6 ?? ?? 83 ?? ?? 0F 85 } + $block_21 = { 0F B7 ?? ?? 83 ?? ?? 66 ?? ?? ?? 0F B7 ?? ?? 5? E8 ?? ?? ?? ?? 89 ?? ?? 83 ?? ?? ?? 75 } + $block_22 = { 8B ?? 8B ?? 8B ?? 8B ?? ?? ?? 89 ?? ?? ?? 8B ?? 8B ?? 8B ?? 33 ?? 85 ?? 0F 94 ?? 89 } + $block_23 = { 8B ?? ?? ?? C1 ?? ?? 5? 5? 5? E8 ?? ?? ?? ?? 83 ?? ?? 39 ?? ?? ?? 89 ?? ?? ?? 0F 8E } + $block_24 = { 8B ?? ?? 0F B6 ?? ?? 8B ?? ?? 0F B6 ?? ?? ?? ?? ?? ?? 81 E? ?? ?? ?? ?? 83 ?? ?? 75 } + $block_25 = { 8B ?? ?? 0F B6 ?? ?? ?? ?? ?? 83 ?? ?? 8B ?? ?? 8D ?? ?? ?? 89 ?? ?? 83 ?? ?? ?? 7C } + $block_26 = { 8A ?? ?? 5? 8B ?? ?? 0F B6 ?? ?? 5? 8B ?? ?? 5? E8 ?? ?? ?? ?? 8B ?? ?? 89 ?? ?? EB } + $block_27 = { 0F B6 ?? ?? F7 ?? 1B ?? 83 ?? ?? 88 ?? ?? C7 ?? ?? ?? ?? ?? ?? 0F B6 ?? ?? 85 ?? 74 } + $block_28 = { 8B ?? ?? 0F AF ?? ?? 8B ?? ?? 8D ?? ?? 5? 8B ?? ?? 5? 8B ?? ?? 5? E8 ?? ?? ?? ?? EB } + $block_29 = { 6A ?? 6A ?? 6A ?? 6A ?? 5? 68 ?? ?? ?? ?? E8 ?? ?? ?? ?? 83 ?? ?? 83 ?? ?? 0F 85 } + $block_30 = { 5? 8B ?? 83 ?? ?? 8B ?? ?? 89 ?? ?? 8B ?? ?? 83 ?? ?? 89 ?? ?? 83 ?? ?? ?? 0F 87 } + $block_31 = { 8B ?? ?? ?? 5? 5? 8B ?? ?? ?? 5? 8B ?? ?? ?? 8B ?? 5? C1 ?? ?? 0F B7 ?? 2B ?? C7 } + $block_32 = { 8B ?? ?? 69 ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 8B ?? ?? 3B ?? ?? ?? ?? ?? ?? 0F 83 } + $block_33 = { 8B ?? ?? 89 ?? ?? 8B ?? ?? 8B ?? ?? ?? ?? ?? 8B ?? ?? 89 ?? ?? 83 ?? ?? ?? 0F 84 } + $block_34 = { 8B ?? ?? 0F B6 ?? ?? 8B ?? ?? 0F B6 ?? ?? ?? ?? ?? ?? 81 F? ?? ?? ?? ?? 0F 85 } + $block_35 = { 8B ?? ?? 8B ?? ?? 03 ?? ?? 89 ?? ?? 8B ?? ?? 0F B7 ?? ?? 81 F? ?? ?? ?? ?? 75 } + $block_36 = { 8B ?? ?? ?? 8B ?? 0B ?? 89 ?? ?? ?? 5? 23 ?? 5? 33 ?? 85 ?? 5? 0F 95 ?? 5? C3 } + $block_37 = { 83 ?? ?? 5? 8B ?? ?? ?? 5? 8B ?? 83 ?? ?? 5? 8D ?? ?? ?? 5? 89 ?? ?? ?? 0F 8D } + $block_38 = { 83 ?? ?? ?? 83 ?? ?? D1 ?? 0F B7 ?? 0F B7 ?? 85 ?? 8D ?? ?? ?? 89 ?? ?? 76 } + $block_39 = { 2B ?? ?? 8B ?? ?? 89 ?? ?? 33 ?? 85 ?? C7 ?? ?? ?? ?? ?? ?? 89 ?? ?? 0F 86 } + $block_40 = { 0F B7 ?? ?? 8B ?? ?? 89 ?? ?? 8B ?? ?? 8B ?? ?? 8B ?? ?? 2B ?? 39 ?? ?? 73 } + $block_41 = { 6A ?? 8B ?? ?? 8B ?? ?? 83 ?? ?? 5? FF 1? ?? ?? ?? ?? 0F B6 ?? ?? 85 ?? 74 } + $block_42 = { 8B ?? ?? 0F B6 ?? 89 ?? ?? 8B ?? ?? 8B ?? ?? 83 ?? ?? 89 ?? ?? 83 ?? ?? 7C } + $block_43 = { 8B ?? ?? 0F B6 ?? ?? ?? ?? ?? 33 ?? 83 ?? ?? 0F 95 ?? 83 ?? ?? 8B ?? EB } + $block_44 = { 8B ?? ?? 0F B6 ?? ?? 89 ?? ?? 8B ?? ?? 83 ?? ?? 89 ?? ?? 83 ?? ?? ?? 77 } + $block_45 = { 8B ?? ?? 0F B6 ?? ?? ?? ?? ?? 83 ?? ?? F7 ?? 1B ?? 83 ?? ?? 83 ?? ?? EB } + $block_46 = { 8B ?? ?? C7 ?? ?? ?? ?? ?? 8B ?? ?? 0F B6 ?? ?? ?? ?? ?? 83 ?? ?? 0F 85 } + $block_47 = { 8B ?? ?? 0F B6 ?? ?? ?? ?? ?? F7 ?? 1B ?? 83 ?? ?? 83 ?? ?? 8B ?? ?? 88 } + $block_48 = { 8B ?? ?? ?? ?? ?? 5? 5? 33 ?? 5? E8 ?? ?? ?? ?? 81 C? ?? ?? ?? ?? C9 C3 } + $block_49 = { 8B ?? ?? 8B ?? ?? 2B ?? ?? 66 ?? ?? ?? 0F B7 ?? ?? 8B ?? ?? 3B ?? ?? 76 } + $block_50 = { 8D ?? ?? ?? ?? ?? 68 ?? ?? ?? ?? 5? E8 ?? ?? ?? ?? 83 ?? ?? 85 ?? 0F 85 } + $block_51 = { D9 ?? B9 ?? ?? ?? ?? 2B ?? ?? ?? D8 ?? 89 ?? ?? ?? DF ?? F6 ?? ?? 0F 84 } + $block_52 = { 8B ?? ?? ?? ?? ?? 5? 5? FF 1? ?? ?? ?? ?? 8B ?? 81 F? ?? ?? ?? ?? 0F 84 } + $block_53 = { 8D ?? ?? ?? ?? ?? 68 ?? ?? ?? ?? 5? E8 ?? ?? ?? ?? 83 ?? ?? 85 ?? 0F 84 } + $block_54 = { 8B ?? ?? 0F B7 ?? ?? 8B ?? 25 ?? ?? ?? ?? 03 ?? C1 ?? ?? 83 ?? ?? 74 } + $block_55 = { 8B ?? ?? 0F B6 ?? ?? 8B ?? ?? 0F B6 ?? ?? ?? ?? ?? ?? 83 ?? ?? 0F 85 } + $block_56 = { 8B ?? ?? ?? 6A ?? 6A ?? 6A ?? 6A ?? 5? FF 1? ?? ?? ?? ?? 85 ?? 0F 84 } + $block_57 = { 8D ?? ?? ?? ?? ?? ?? 5? 5? E8 ?? ?? ?? ?? 8B ?? 83 ?? ?? 85 ?? 0F 85 } + $block_58 = { 8B ?? ?? 8B ?? ?? 0F B6 ?? C1 ?? ?? 0B ?? FF 4? ?? 4? 89 ?? ?? 75 } + $block_59 = { 68 ?? ?? ?? ?? 6A ?? 5? FF 1? ?? ?? ?? ?? 85 ?? 89 ?? ?? ?? 0F 84 } + $block_60 = { 8B ?? ?? 83 ?? ?? 89 ?? ?? 8B ?? ?? 03 ?? ?? 0F BE ?? 83 ?? ?? 74 } + $block_61 = { 8B ?? ?? 5? E8 ?? ?? ?? ?? 0F B6 ?? C1 ?? ?? 83 ?? ?? 83 ?? ?? 75 } + $block_62 = { 8B ?? ?? 5? E8 ?? ?? ?? ?? 0F B6 ?? C1 ?? ?? 83 ?? ?? 83 ?? ?? 74 } + $block_63 = { 0F B7 ?? ?? 8B ?? ?? 8B ?? ?? 89 ?? ?? 8B ?? ?? 8B ?? ?? 3B ?? 72 } + $block_64 = { 88 ?? 83 ?? ?? 6A ?? 5? E8 ?? ?? ?? ?? 8B ?? 83 ?? ?? 3B ?? 0F 84 } + $block_65 = { 0F B6 ?? ?? 83 ?? ?? 8B ?? ?? 89 ?? ?? 0F B6 ?? ?? 83 ?? ?? 75 } + $block_66 = { 8B ?? ?? 8D ?? ?? 5? 5? FF 1? ?? ?? ?? ?? 3D ?? ?? ?? ?? 0F 84 } + $block_67 = { 5? 8B ?? 5? 8B ?? ?? 0F B6 ?? ?? 8B ?? ?? 0F B6 ?? ?? 3B ?? 74 } + $block_68 = { 8D ?? ?? 99 83 ?? ?? 03 ?? 8B ?? C1 ?? ?? 03 ?? 03 ?? 85 ?? 7E } + $block_69 = { 8B ?? ?? ?? B8 ?? ?? ?? ?? 2B ?? 99 F7 ?? 89 ?? ?? ?? 3B ?? 7D } + $block_70 = { 8B ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? ?? 83 ?? ?? 89 ?? ?? ?? 0F 89 } + $block_71 = { 8D ?? ?? 99 83 ?? ?? 03 ?? 8B ?? C1 ?? ?? 3B ?? ?? ?? ?? ?? 7E } + $block_72 = { 8B ?? ?? ?? B8 ?? ?? ?? ?? 2B ?? 99 F7 ?? 89 ?? ?? ?? 3B ?? 7C } + $block_73 = { 5? 6A ?? 8D ?? ?? ?? 5? 6A ?? FF 1? ?? ?? ?? ?? 83 ?? ?? 0F 84 } + $block_74 = { 8B ?? ?? ?? 83 ?? ?? 83 ?? ?? 3B ?? ?? ?? 89 ?? ?? ?? 0F 8C } + $block_75 = { 8D ?? ?? ?? 5? 68 ?? ?? ?? ?? FF 1? ?? ?? ?? ?? 85 ?? 0F 85 } + $block_76 = { 6A ?? E8 ?? ?? ?? ?? 83 ?? ?? 83 ?? ?? A3 ?? ?? ?? ?? 0F 85 } + $block_77 = { 6A ?? 83 ?? ?? 5? E8 ?? ?? ?? ?? 8B ?? 83 ?? ?? 85 ?? 0F 84 } + $block_78 = { 68 ?? ?? ?? ?? 5? E8 ?? ?? ?? ?? 8B ?? 83 ?? ?? 85 ?? 0F 85 } + $block_79 = { 33 ?? ?? ?? 83 ?? ?? 89 ?? ?? 8B ?? 8D ?? ?? 83 ?? ?? 0F 82 } + $block_80 = { E8 ?? ?? ?? ?? 99 B9 ?? ?? ?? ?? F7 ?? 8B ?? ?? 2B ?? 2B } + $block_81 = { 8B ?? ?? 2B ?? ?? 66 ?? ?? ?? 0F B7 ?? ?? 3B ?? ?? 76 } + $block_82 = { 8B ?? ?? 5? E8 ?? ?? ?? ?? 0F B6 ?? 3D ?? ?? ?? ?? 7F } + $block_83 = { 5? 8B ?? 83 ?? ?? 8B ?? ?? 89 ?? ?? 83 ?? ?? ?? 0F 84 } + $block_84 = { 8B ?? ?? 5? 5? 33 ?? 5? E8 ?? ?? ?? ?? 83 ?? ?? C9 C3 } + $block_85 = { 5? 8D ?? ?? ?? ?? ?? 5? FF 1? ?? ?? ?? ?? 85 ?? 0F 85 } + $block_86 = { 83 ?? ?? 83 ?? ?? ?? ?? 5? 5? 5? 5? 8B ?? 8B ?? 0F 8E } + $block_87 = { 68 ?? ?? ?? ?? 5? E8 ?? ?? ?? ?? 83 ?? ?? 85 ?? 0F 85 } + $block_88 = { 8D ?? ?? ?? ?? ?? 5? FF 1? ?? ?? ?? ?? 85 ?? 0F 84 } + $block_89 = { 8B ?? ?? C7 ?? ?? ?? ?? ?? 0F B6 ?? ?? 83 ?? ?? 75 } + $block_90 = { 8B ?? ?? 8B ?? ?? ?? ?? ?? 81 3? ?? ?? ?? ?? 0F 85 } + $block_91 = { 8B ?? ?? 0F B6 ?? ?? ?? ?? ?? 81 F? ?? ?? ?? ?? 75 } + $block_92 = { 0F B6 ?? ?? C1 ?? ?? 81 C? ?? ?? ?? ?? 8B ?? ?? 89 } + $block_93 = { 8B ?? ?? 0F B6 ?? ?? ?? ?? ?? 83 ?? ?? C1 ?? ?? 74 } + $block_94 = { E8 ?? ?? ?? ?? 89 ?? ?? E8 ?? ?? ?? ?? 85 ?? 0F 85 } + $block_95 = { 8B ?? ?? ?? ?? ?? 83 ?? ?? 39 ?? ?? ?? ?? ?? 0F 84 } + $block_96 = { 8D ?? ?? ?? ?? ?? 5? E8 ?? ?? ?? ?? 85 ?? 0F 84 } + $block_97 = { 8B ?? ?? 0F B6 ?? ?? ?? ?? ?? 3D ?? ?? ?? ?? 75 } + $block_98 = { 8B ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 3B ?? 0F 83 } + $block_99 = { 5? 8B ?? ?? ?? 5? FF 1? ?? ?? ?? ?? 85 ?? 0F 85 } + + condition: + hash.sha256(0, filesize) == "168f8c29c14880a5f1b13b24c11f4707c40bbd24593b90908b44192f73b6c2d6" or + hash.sha256(0, filesize) == "47247719f62f8409aae68867d9750e8c2a792b241efea1c1eac58baca3f146ee" or + hash.sha256(0, filesize) == "583132e0aab63507f6bd15a5d37aa883279ded69fa18e04fd299b0c2df845d54" or + hash.sha256(0, filesize) == "7032c7bb7ebd3f8b886aa175d2c52138ef00fc3313b61dae87cfc80d1c8a7ec3" or + hash.sha256(0, filesize) == "fc68026b83392aa227e9adf9c71289cb51ba03427f6de67a73ae872e19ef6ff9" or + hash.sha256(0, filesize) == "3a6ade7e2278d39ea74ef86144b256780d76e4db29431873e9271b20e4614696" or + hash.sha256(0, filesize) == "e2bbb2b9bb5cd97371150d8ae64efeca90a6e7162cd0080613854d1b189fd5a6" or + hash.sha256(0, filesize) == "92c2023095420de3ca7d53a55ed689e7c0086195dc06a4369e0ee58a803c17bb" or + hash.sha256(0, filesize) == "94f05acb7e004e66875c02f7f903f1874f7085a772742e351ea9c0237a1079e2" or + hash.sha256(0, filesize) == "5e72cdb489133c984ae3b807bffbc788d14ceefb2385b5f2dff3618d85ffffd8" or + hash.sha256(0, filesize) == "c6b9ade2f5885ccebff30c4e7b279e17d981ff153936735d75874f52735ad556" or + hash.sha256(0, filesize) == "ef444eaef804955cb7a5902e30b43201c3d45c0f35aaa0b0ea73f3af916688ae" or + hash.sha256(0, filesize) == "b9620603662fe681ce714f78905d806c946b599b44505e0a6e4a14e97e2c973a" or + hash.sha256(0, filesize) == "198388dc0f81a5915def5414b62f485f6f2a8e12c28592a810518059a2eb5a36" or + hash.sha256(0, filesize) == "54d5a7313ec9522b76fea9759fce7193335b924d073c0513bc528bf6d86194aa" or + hash.sha256(0, filesize) == "4a9e6fdafba6bddc8600f51aae4eb6119c0abe1f6ebdfc025a76627372e223a4" or + hash.sha256(0, filesize) == "93742b415f28f57c61e7ce7d55208f71d5c4880dc66616da52f3c274b20b43b0" or + hash.sha256(0, filesize) == "253c92fee41941aaef4dfe269240ff7025cf902cae3d8b3318eeb6c7f31742aa" or + hash.sha256(0, filesize) == "f28f406c2fcd5139d8838b52da703fc6ffb8e5c00261d86aec90c28a20cfaa5b" or + hash.sha256(0, filesize) == "527b6a2bf5a250c06378b8f0f2b0ba4a1a121bf460ac70ecb3bf8b41ac1b06b4" or + hash.sha256(0, filesize) == "b8c477c2f8c38b7d726b18e925f5b15a7fa2dd8ec19a73eb688844f40f50b914" or + hash.sha256(0, filesize) == "5bda2aefda5802d716c8a849c409af40f78f7208222f3e08c9323c5eea76e5a9" or + hash.sha256(0, filesize) == "9611d0b1837e933b9d938e19791b757aa56669ec75b8fd671bdd1371eede03bb" or + hash.sha256(0, filesize) == "655f1fdcd8b60425426dd4c22e50e79374b9790d44415cb9c0e51f64e73d4de4" or + hash.sha256(0, filesize) == "4c8b2e001dbf9e8b285c79514319e0a14dbb839998dd4d643d51fb11767d0cf9" or + hash.sha256(0, filesize) == "07e29254c525f67a7c3c815440bb8ba4454faf1e7f502a3a5f27f813b97e6b11" or + hash.sha256(0, filesize) == "ca69e85a5752d4a5ffe88c3d45d0d14f329e518aab56e8fc948138db23810233" or + hash.sha256(0, filesize) == "f697aa0bb10ae7141fb1ee62e854616e1d650397121041fc7d502c091c4234eb" or + hash.sha256(0, filesize) == "2956ef7470a504a8ea7aab211442febee740b3a0d39bb4fae1a2e578689167d6" or + hash.sha256(0, filesize) == "615b0bdff7cfa88cd55f5629505ed6212e7e8c022e00b33fc12e5f33356d5872" or + hash.sha256(0, filesize) == "43e71b993d6e7c977caaf2ed7610a71758734d87ec2ceb20a84e573ea05a01b3" or + hash.sha256(0, filesize) == "a15c351b940046bc80c8d0a69b8d5f6c4198cb20f68ad830dc3b1036ba8d34e4" or + hash.sha256(0, filesize) == "bb2b25b2a161914a23d1f3d68e852b5305a27e827431b538703735e6199d518d" or + hash.sha256(0, filesize) == "6e9bf792c8247e612d3a8dfc5ea139c624e1d6c8bf116ff5ce280e7dc07ec4d4" or + hash.sha256(0, filesize) == "a5d557e91716997925119dfb7dd007732e37a21d9abba2282565ce583b5d6eca" or + hash.sha256(0, filesize) == "746a3aa794e77a83806747649de68109baca26fe7bdd985af1b73a2285a7df10" or + hash.sha256(0, filesize) == "a10a0c729e5100c979d446b5f87251b0743fd108a305d9f9ea85832729ced6a8" or + hash.sha256(0, filesize) == "0d1fe4ab3b074b5ef47aca88c5d1b8262a1293d51111d59c4e563980a873c5a6" or + hash.sha256(0, filesize) == "b3746bf1c21b70a367c1b9de9f5d8c7f1a4803a014e0e6300ddd4adeb45feeff" or + hash.sha256(0, filesize) == "bb975dc17d871535ddeadfb6ec34089ba02eef3f2432e7a4f37065b53d67c00a" or + hash.sha256(0, filesize) == "09bc2a5f3de9dbcf54eb94e0f3a67c846403b34ad11dff23c9c8627bb9a16529" or + hash.sha256(0, filesize) == "ea4b2d5e2c47ba8ce92a90b6e2fe6a48d22dbafd6ec4dab7465c8cef28e19515" or + hash.sha256(0, filesize) == "77e68d7aa595231067597d9a1c176fe2f3c4f53ae3f6509f11e2c314d286f4e6" or + hash.sha256(0, filesize) == "8c0e21756d659b383e206d603dfd3be41f0ea2d8277dae7bc1b6a2e1dc64e5c6" or + hash.sha256(0, filesize) == "8c12da9df42c74afbefebfa5f601cd8e18cb4ef8eced56b319cb1011324ff198" or + hash.sha256(0, filesize) == "5a64928debca2d9f1ffa4194f541c9188b32430cad4bdabac8f5bbdc514a0685" or + hash.sha256(0, filesize) == "369b23b794f487653ab5d410c35c26a72c9affe0a4e49062f034b4d08e254d77" or + hash.sha256(0, filesize) == "71b3b876702f2405832444b761c6b3bdb854a77aea0bf650d1fee346479fa6ff" or + hash.sha256(0, filesize) == "cced33b6fe42e56355118a7dbae8bc2fded8d218615616f2edbbf0f6795a1473" or + hash.sha256(0, filesize) == "79cdaebb65c04758a5fce3bbd19973af21de4cc0c4cf659ece8cc153f441fc19" or + hash.sha256(0, filesize) == "7fabb245a35ad61406627bac9a2c232e5990da5ec5f144d43af59167200f971a" or + hash.sha256(0, filesize) == "100bd3acec48872863523ecc25731d647f9c1baeb9c320aa89cc1f9dfb57b3db" or + hash.sha256(0, filesize) == "caa22575a53cbd65b5b6b22132279f1817f26a832612e854cb08dd50f93790c2" or + hash.sha256(0, filesize) == "f85f66e45cc232223e8db39ac0b1cec1332b6267e0d2505926fe4c07427ff0d6" or + hash.sha256(0, filesize) == "a6bf9cc1f64ac190e42cfce47564ef71492a788543d438408b522e40a716610c" or + hash.sha256(0, filesize) == "c8bee88458f89f6aee9bb213c397ef1b9ff4588169b1bba5bec7b840879170fc" or + hash.sha256(0, filesize) == "d2bef8242f3295c1815fb7ee32228a221b0e59f0be43259e4f41bd18c7e7dcf1" or + hash.sha256(0, filesize) == "33460a8f849550267910b7893f0867afe55a5a24452d538f796d9674e629acc4" or + hash.sha256(0, filesize) == "50edc955a6e8e431f5ecebb5b1d3617d3606b8296f838f0f986a929653d289ed" or + hash.sha256(0, filesize) == "0ac463de10eaf57cfcf2d41bdfbc827844dd7b8d908905fca9bc105c200c9362" or + hash.sha256(0, filesize) == "54107d0498f12b53ae49e9311f3a599dbbc3c555358a26a33f9b797c0c5f377c" or + hash.sha256(0, filesize) == "dfb513ae1ae4d661194781c52e8135ea15a252e4df7130ed564e286d83a4ad11" or + hash.sha256(0, filesize) == "d9498b9a806a8c7e706020dab600b1842eaa4bf3909e69144a8410db1f5e6e83" or + hash.sha256(0, filesize) == "a7701723cddf597309f9c5813cb962e74751c80203db31d14e2e05971ac6378c" or + hash.sha256(0, filesize) == "564ee49a4703de53bfa1bdc6a5b71f111ea23e38a6ff441e0bf2ff7c28d95525" or + hash.sha256(0, filesize) == "b262292e049ee75d235164df98fa8ed09a9e2a30c5432623856bafd4bd44d801" or + hash.sha256(0, filesize) == "0e3842bd092db5c0c70c62e8351649d6e3f75e97d39bbfd0c0975b8c462a65ca" or + hash.sha256(0, filesize) == "11016f63ca3c35ae4bcba8705854a787420af27d3d6953b1c563cf694f1811c5" or + hash.sha256(0, filesize) == "bd48c953163785c5f682b742ea5b25a611b2bf551a1dd36fb8abb2c07d9189de" or + hash.sha256(0, filesize) == "3b903a93f1fd2bd81b7b73daefd2d298a2fbb0137b786449e07176abd5cdde74" or + hash.sha256(0, filesize) == "d5757c6f93b94fb3819363b4c2b3046a2e714968652a5992a6756f180d30cd25" or + hash.sha256(0, filesize) == "e534a8c4c126dfa35dd5c0a34582f244a51c08e446e9ffd5ccde9f5a37564c03" or + hash.sha256(0, filesize) == "43b8ce99af9c59376d3b077a87ce7afe720022987f3cf62f51504d22330a516b" or + hash.sha256(0, filesize) == "831ea1e478093409733708256086529f8971e7ed8849d4d146d8fe28602f1d2a" or + hash.sha256(0, filesize) == "fea3d7271bf2ad43e2534e8be050b6f8830991375e301403817d4d57e87ed624" or + hash.sha256(0, filesize) == "dc06a54b55edf5ae48d3721c038a3e57d92e321505bed80a0e22defdf1312f76" or + hash.sha256(0, filesize) == "9bcde3bb10a88644393bb598e3b2498b3522b68299bea6e4f24cc4eeb5cfe231" or + hash.sha256(0, filesize) == "b7aeb8b1bbcf9db4c6a37ceecb0a29f0a5efe8dda72b4563f547e0b18afb0a50" or + hash.sha256(0, filesize) == "6b9419b2e6ea7dbe2054b4b2568bd5c61c08706f33788c55649fd4991a28c476" or + hash.sha256(0, filesize) == "99ac651da4a17a667a0b05009bafde945cbcd93ada8f241d9c3ad8654095fcc4" or + hash.sha256(0, filesize) == "099ad10b55e74e1b99424d8e739107534004ba5b1e6c051cf8b942ed32dabca6" or + hash.sha256(0, filesize) == "93c8db29ec3707f13bf5a96d5b8a3dc33c2f5b870acd3df07292c724ce10a13f" or + hash.sha256(0, filesize) == "8931663da74657c87ce2bf76ba501a3dd9cb7a952063d6122996d1dbc6227093" or + hash.sha256(0, filesize) == "cf1b968a37fb4ac317e4ec89c57974ae4ce88c6f9119bd9343bbb4834ea8d2f3" or + hash.sha256(0, filesize) == "1d93015012993265d64c9f5494ca40ff75a8c850ea57357f0a8668d56bf6b160" or + hash.sha256(0, filesize) == "5d21324eddb511fd4630a46d78673d73777383d62fc3ac2c966fd922f7f21256" or + hash.sha256(0, filesize) == "4f18b90cd644ea28bcb964622855145afca6a34e2381a10d731ec0f1bb46dd3b" or + hash.sha256(0, filesize) == "2b30fc3afac6220d1e4b0f87ec23681ef27b617d5724421803a3e8d4e7135f60" or + hash.sha256(0, filesize) == "35ed1d87b31d238b3bdcffb13b5902cceba3c25aebfd9f54789d79d33bc6ce7a" or + hash.sha256(0, filesize) == "2fc6bc0683f9e9f20aae1fb257a1a05be63ddbbc600876bff6cd622879518d6e" or + hash.sha256(0, filesize) == "afb0ae6e0f130b9200949c191561b013c2762f392717b36c87964b0a34a0f632" or + hash.sha256(0, filesize) == "3de0ba77fa2d8b26e4226fd28edc3ab8448434d851f6b2b268ec072c5da92ade" or + hash.sha256(0, filesize) == "ba15a26408613936c6bc192f1b143e15914cd578074e91ba4fcff6a042c4f9e7" or + hash.sha256(0, filesize) == "e4ff7d8c1cdf48039640454025ff17cbe0f7e79bd561bd5ad8ff1e7aa5073754" or + hash.sha256(0, filesize) == "7e2ae0a57bc676aab0926babe934cc2c89ef194a1660ee175182237f837c45eb" or + hash.sha256(0, filesize) == "39050386f17b2d34bdbd118eec62ed6b2f386e21500a740362454ed73ea362e8" or + hash.sha256(0, filesize) == "d597e4a61d94180044dfb616701e5e539f27eeecfae827fb024c114e30c54914" or + hash.sha256(0, filesize) == "beac78638a18b7de1861845797ff3adfae22607dceee42b99e17d191045244ed" or + hash.sha256(0, filesize) == "12be398511efb74fb99b496229fce2648a71c5bccd85b45adfd14f5af5b7dbda" or + hash.sha256(0, filesize) == "36e44ea38c8d48a34df0dc88cf1e1203f8f97bd52f035eccd338112e57f6f9f3" or + hash.sha256(0, filesize) == "65fdaf08e562611ce58f1d427f198f8743d88a68e1c4d92afe6dc6251e8a3112" or + hash.sha256(0, filesize) == "36494d7f0aeaf36bd6fa49e08636ffe6f20fdd60c13a0dc1bfc97e4d9d4e54ba" or + hash.sha256(0, filesize) == "57b8c2f5cfeaca97da58cfcdaf10c88dbc2c987c436ddc1ad7b7ed31879cb665" or + hash.sha256(0, filesize) == "b34cf1c74d4c4ce873543d41fc03be06a403b4872bcd1adbe16cfaa4201df115" or + hash.sha256(0, filesize) == "61bd32dbe2d08c31a23094dee2a2920c1fc3e9b4fbfbe2d3341b8dfed62cfab4" or + hash.sha256(0, filesize) == "846bdce641d7acbfaf28891d0351620fec954e02b2145cb7cd13aa6bdc8fe647" or + hash.sha256(0, filesize) == "e943923f6b2d5c915cc34d1ca81498a64329d7151fd7c42ca92a315f97e8ce82" or + hash.sha256(0, filesize) == "0f5ec3b9535d4f956330351c5310626ffaa17f146ff51a8b3b10ea0a7039eadc" or + hash.sha256(0, filesize) == "f3e4e1dece0a14bedbd02b123996316d90a99b8ba581dd1c45b52f33ee56f2e5" or + hash.sha256(0, filesize) == "9fd6dadb312d9d9d2dd3c151c7c58103e0e0062162428f578de95c2f192aa8b0" or + hash.sha256(0, filesize) == "571633025b6ff979a946186b892d9217be26c4078e7911b2ebccaa4dcda6aeab" or + hash.sha256(0, filesize) == "4c49c9d601ebf16534d24d2dd1cab53fde6e03902758ef6cff86be740b720038" or + hash.sha256(0, filesize) == "89ead864cb4117eb5ec548ead783a292db5aec8c2ddbb7873e81de7ce73f570a" or + hash.sha256(0, filesize) == "20f7a38a5e3c4fec43978be3a4c4ea91ecbb94ccc0151dd770cda3100dc79d99" or + hash.sha256(0, filesize) == "09bd85c522a23396e1ab57680eb515ff29f4dd72baa5ba49637020ae2336b6b1" or + hash.sha256(0, filesize) == "2f5aa8a71df89858b6681cddbe72d30dded5c808e6018ff723c4660ab53b1a93" or + hash.sha256(0, filesize) == "f56b1248cdecffd25dbf8a2895105fec38f0a4ce03241571c8eb8daafc9a168f" or + hash.sha256(0, filesize) == "9897d726cfccefd8f444c167cfaa34949449104a1a343a047dda2c257c4c9a31" or + hash.sha256(0, filesize) == "85e6ab75e96dc7df18dd97d7c0eaeb0ed8d4fa33a4ecc09c196b9cf4795ca368" or + hash.sha256(0, filesize) == "e8044c11f46b204a7dec5600cf3a0a5252951b9a026a9a41abcce96e0f1adf90" or + hash.sha256(0, filesize) == "55b17467da6d12ecf71e82eb96870bd314f248675da1bfad1b1e437b45453452" or + hash.sha256(0, filesize) == "8fb20f80f0ee6ba3bb60e05079aceb05cbad17d73659665db21ce78b6898ce88" or + hash.sha256(0, filesize) == "e2e5cc06f3814c48a14af0a587c947eb098f3803383fe8ac3162ab1027f991f9" or + hash.sha256(0, filesize) == "f4554db7998e0a3467fa35d6a4fee1e34ae9db6381751e45f889fcaacd95c985" or + hash.sha256(0, filesize) == "c14c04f8c41407e1ddb100f1b6c5f2af5d1815edd9f024e9b76686ddf8b368bc" or + hash.sha256(0, filesize) == "eb8d87c6684dcbbcbb49bf60724c1ab15942b9ba52bf7f866d33e07b4b82c905" or + hash.sha256(0, filesize) == "67bc775cc1a58930201ef247ace86cc5c8569057d4911a8e910ac2263c8eb880" or + hash.sha256(0, filesize) == "ff2a292ef76b5040fda8635ca95a652ff81ff57bb602a229ff7c74da31fe4d8b" or + hash.sha256(0, filesize) == "152c867667517a0ec0b3231beece8ff46ff954bfc2493ca3bdfdfc6ea6b1bde9" or + hash.sha256(0, filesize) == "1321c78aa2abefd7f59994376b02159e5c2c81665f01b6a18707bd4fc3861116" or + hash.sha256(0, filesize) == "129380c4955be84330ead54c8939dfb55c91d9f08a9964a73434692fb6bf9d74" or + hash.sha256(0, filesize) == "448df2684c495bb54ee87214bba4b3b6b4b8d0989bf698ced04962cbcc0865a8" or + hash.sha256(0, filesize) == "30fc7f6e8623ee65e56fd4514169a2b01d1e35af06dda347ff4efe94c3d2329f" or + hash.sha256(0, filesize) == "c55fa19ac18710c56045e39724f3b6a83a916508ae23a14bb2a108e71eac64a0" or + hash.sha256(0, filesize) == "bf1cfc65b78f5222d35dc3bd2f0a87c9798bce5a48348649dd271ce395656341" or + 12 of them +} + +rule CarbonOrchestrator_v3_79_ { + meta: + Author = "Intezer Analyze" + Reference = "https://apt-ecosystem.com" + + strings: + $block_0 = { C7 ?? ?? ?? ?? ?? ?? ?? 48 ?? ?? ?? ?? 0F B6 ?? 88 ?? ?? ?? 0F B6 ?? ?? ?? 3D ?? ?? ?? ?? 0F 85 } + $block_1 = { 8B ?? ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? ?? E8 ?? ?? ?? ?? 8B ?? E8 ?? ?? ?? ?? 0F B6 ?? 85 ?? 74 } + $block_2 = { E8 ?? ?? ?? ?? 99 B9 ?? ?? ?? ?? F7 ?? 8B ?? 48 ?? ?? ?? ?? 8B ?? ?? 2B ?? 8B ?? 89 ?? ?? ?? EB } + $block_3 = { 4C ?? ?? ?? ?? 88 ?? ?? ?? 48 ?? ?? ?? ?? 48 ?? ?? ?? ?? ?? ?? 0F B6 ?? ?? ?? ?? ?? ?? 85 ?? 74 } + $block_4 = { 48 ?? ?? ?? ?? ?? ?? 48 ?? ?? ?? ?? FF 1? ?? ?? ?? ?? 48 ?? ?? ?? ?? 0F BE ?? ?? 83 ?? ?? 75 } + $block_5 = { 0F B7 ?? ?? ?? ?? ?? ?? 48 ?? ?? ?? ?? ?? ?? FF 9? ?? ?? ?? ?? 48 ?? ?? ?? ?? 66 ?? ?? ?? EB } + $block_6 = { 8B ?? ?? ?? ?? ?? ?? 48 ?? ?? ?? ?? E8 ?? ?? ?? ?? 48 ?? ?? ?? ?? 48 ?? ?? ?? ?? ?? 0F 84 } + $block_7 = { 48 ?? ?? ?? ?? ?? ?? E8 ?? ?? ?? ?? 33 ?? 48 ?? ?? ?? ?? E8 ?? ?? ?? ?? 0F B6 ?? 85 ?? 75 } + $block_8 = { 4C ?? ?? ?? ?? 41 ?? ?? ?? ?? ?? 48 ?? ?? ?? ?? 48 ?? ?? ?? ?? E8 ?? ?? ?? ?? 85 ?? 0F 84 } + $block_9 = { 48 ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? 48 ?? ?? ?? ?? ?? ?? ?? 0F B7 ?? ?? 3D ?? ?? ?? ?? 75 } + $block_10 = { 0F BE ?? ?? ?? BA ?? ?? ?? ?? 8B ?? E8 ?? ?? ?? ?? 88 ?? ?? ?? 0F B6 ?? ?? ?? 83 ?? ?? 7C } + $block_11 = { 48 ?? ?? ?? ?? ?? ?? ?? 0F B7 ?? 33 ?? B9 ?? ?? ?? ?? 48 ?? ?? 48 ?? ?? ?? ?? ?? ?? ?? EB } + $block_12 = { 48 ?? ?? ?? ?? FF 1? ?? ?? ?? ?? 88 ?? ?? ?? ?? ?? ?? 0F B6 ?? ?? ?? ?? ?? ?? 85 ?? 74 } + $block_13 = { 41 ?? ?? ?? ?? ?? 48 ?? ?? ?? ?? ?? ?? 48 ?? ?? ?? ?? E8 ?? ?? ?? ?? 0F B6 ?? 85 ?? 75 } + $block_14 = { 8B ?? ?? ?? ?? ?? ?? 8B ?? ?? ?? E8 ?? ?? ?? ?? 8B ?? E8 ?? ?? ?? ?? 0F B6 ?? 85 ?? 74 } + $block_15 = { 48 ?? ?? ?? ?? ?? ?? ?? 0F B6 ?? ?? 88 ?? ?? ?? 48 ?? ?? ?? ?? ?? ?? ?? 48 ?? ?? ?? 75 } + $block_16 = { 48 ?? ?? ?? ?? 48 ?? ?? ?? ?? 0F B6 ?? ?? 88 ?? ?? ?? 8B ?? ?? ?? FF C? 89 ?? ?? ?? C7 } + $block_17 = { 8B ?? ?? ?? 44 ?? ?? 48 ?? ?? ?? ?? ?? ?? ?? 48 ?? ?? ?? ?? E8 ?? ?? ?? ?? 85 ?? 0F 85 } + $block_18 = { 48 ?? ?? ?? ?? ?? ?? ?? 0F B7 ?? 33 ?? B9 ?? ?? ?? ?? 48 ?? ?? 48 ?? ?? ?? ?? ?? 73 } + $block_19 = { 48 ?? ?? ?? ?? ?? ?? E8 ?? ?? ?? ?? 48 ?? ?? ?? ?? ?? ?? 0F BE ?? ?? ?? 83 ?? ?? 74 } + $block_20 = { 48 ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? ?? E8 ?? ?? ?? ?? 89 ?? ?? ?? 83 ?? ?? ?? ?? 0F 85 } + $block_21 = { 48 ?? ?? ?? ?? ?? ?? ?? 48 ?? ?? ?? ?? ?? ?? ?? FF 1? ?? ?? ?? ?? 83 ?? ?? 0F 84 } + $block_22 = { 48 ?? ?? ?? ?? 48 ?? ?? ?? ?? ?? 48 ?? ?? E8 ?? ?? ?? ?? 0F B6 ?? 83 ?? ?? 0F 85 } + $block_23 = { 0F BF ?? ?? ?? ?? ?? ?? 48 ?? ?? ?? ?? ?? ?? ?? 89 ?? C7 ?? ?? ?? ?? ?? ?? ?? E9 } + $block_24 = { 48 ?? ?? ?? ?? 48 ?? ?? ?? ?? FF 1? ?? ?? ?? ?? 89 ?? ?? ?? 83 ?? ?? ?? ?? 0F 85 } + $block_25 = { 0F BF ?? ?? ?? ?? ?? ?? 48 ?? ?? ?? ?? ?? ?? ?? 89 ?? C7 ?? ?? ?? ?? ?? ?? ?? EB } + $block_26 = { 48 ?? ?? ?? ?? 48 ?? ?? ?? ?? E8 ?? ?? ?? ?? 89 ?? ?? ?? 83 ?? ?? ?? ?? 0F 85 } + $block_27 = { 48 ?? ?? ?? ?? ?? ?? 48 ?? ?? ?? ?? ?? ?? ?? FF 1? ?? ?? ?? ?? 48 ?? ?? 0F 84 } + $block_28 = { FF 1? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? ?? 81 B? ?? ?? ?? ?? ?? ?? ?? ?? ?? 0F 85 } + $block_29 = { 48 ?? ?? ?? ?? ?? ?? 48 ?? ?? ?? ?? ?? ?? ?? FF 1? ?? ?? ?? ?? 48 ?? ?? 0F 85 } + $block_30 = { 33 ?? 48 ?? ?? ?? ?? ?? ?? ?? E8 ?? ?? ?? ?? 89 ?? ?? ?? 83 ?? ?? ?? ?? 0F 85 } + $block_31 = { 48 ?? ?? ?? ?? ?? ?? ?? FF 1? ?? ?? ?? ?? 0F B6 ?? ?? ?? ?? ?? ?? 83 ?? ?? 75 } + $block_32 = { B2 ?? 48 ?? ?? ?? ?? ?? ?? ?? E8 ?? ?? ?? ?? 83 ?? ?? ?? ?? ?? ?? ?? 0F 85 } + $block_33 = { 0F BE ?? ?? ?? 8B ?? 48 ?? ?? ?? ?? ?? ?? ?? FF 1? ?? ?? ?? ?? 48 ?? ?? 74 } + $block_34 = { 48 ?? ?? ?? ?? 48 ?? ?? ?? 48 ?? ?? ?? ?? ?? ?? 8B ?? ?? ?? 39 ?? ?? 0F 85 } + $block_35 = { 0F B7 ?? ?? ?? 48 ?? ?? ?? ?? ?? ?? FF 9? ?? ?? ?? ?? 66 ?? ?? ?? ?? EB } + $block_36 = { 48 ?? ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? 48 ?? ?? ?? ?? 0F B7 ?? ?? 85 ?? 74 } + $block_37 = { 48 ?? ?? ?? ?? ?? ?? 48 ?? ?? ?? ?? ?? ?? ?? E8 ?? ?? ?? ?? 85 ?? 0F 85 } + $block_38 = { 0F B6 ?? ?? ?? B9 ?? ?? ?? ?? 2B ?? 8B ?? 0F B6 ?? ?? ?? 03 ?? 8B ?? 88 } + $block_39 = { 48 ?? ?? ?? ?? 48 ?? ?? ?? ?? 8B ?? ?? 8B ?? ?? 2B ?? 3B ?? ?? ?? 0F 87 } + $block_40 = { 8B ?? ?? ?? ?? ?? ?? FF C? 48 ?? 48 ?? ?? ?? ?? 0F BE ?? ?? 85 ?? 75 } + $block_41 = { 0F B7 ?? ?? ?? 48 ?? ?? ?? 48 ?? ?? ?? 8B ?? ?? ?? 39 ?? ?? ?? 77 } + $block_42 = { 8B ?? ?? ?? 8B ?? ?? ?? ?? ?? ?? 2B ?? 8B ?? 3D ?? ?? ?? ?? 0F 8C } + $block_43 = { 48 ?? ?? ?? ?? 8B ?? ?? 99 83 ?? ?? 03 ?? C1 ?? ?? 39 ?? ?? ?? 7E } + $block_44 = { 48 ?? ?? ?? ?? ?? ?? ?? 48 ?? ?? ?? 48 ?? ?? ?? ?? ?? ?? ?? 0F 84 } + $block_45 = { 0F BE ?? ?? ?? 8B ?? 48 ?? ?? ?? ?? FF 1? ?? ?? ?? ?? 48 ?? ?? 74 } + $block_46 = { 48 ?? ?? ?? ?? 0F B6 ?? 88 ?? ?? ?? 0F B6 ?? ?? ?? 83 ?? ?? 75 } + $block_47 = { B2 ?? 48 ?? ?? ?? ?? ?? ?? ?? E8 ?? ?? ?? ?? 0F B6 ?? 85 ?? 75 } + $block_48 = { 0F B6 ?? ?? ?? ?? ?? ?? 88 ?? ?? ?? 0F B6 ?? ?? ?? 85 ?? 0F 84 } + $block_49 = { 8B ?? ?? ?? FF C? 89 ?? ?? ?? 0F B7 ?? ?? ?? 39 ?? ?? ?? 0F 83 } + $block_50 = { 0F B7 ?? ?? ?? ?? ?? ?? 0F B7 ?? ?? ?? ?? ?? ?? 3B ?? 0F 85 } + $block_51 = { 8B ?? ?? ?? FF C? 48 ?? 48 ?? ?? ?? ?? 0F BE ?? ?? 85 ?? 75 } + $block_52 = { 48 ?? ?? ?? ?? 48 ?? ?? ?? ?? ?? ?? ?? 48 ?? ?? ?? ?? 0F 84 } + $block_53 = { 48 ?? ?? ?? ?? ?? ?? ?? 8B ?? ?? 39 ?? ?? ?? ?? ?? ?? 0F 83 } + $block_54 = { 48 ?? ?? ?? ?? ?? ?? ?? E8 ?? ?? ?? ?? 0F B6 ?? 83 ?? ?? 75 } + $block_55 = { 0F B7 ?? ?? ?? ?? ?? ?? 0F B7 ?? ?? ?? ?? ?? ?? 3B ?? 75 } + $block_56 = { 0F B7 ?? ?? ?? ?? ?? ?? 0F B7 ?? ?? ?? ?? ?? ?? 3B ?? 7F } + $block_57 = { 8B ?? ?? ?? 8B ?? ?? ?? ?? ?? ?? 2B ?? 8B ?? 85 ?? 0F 85 } + $block_58 = { 8B ?? ?? ?? 8B ?? ?? ?? ?? ?? ?? 2B ?? 8B ?? 85 ?? 0F 8E } + $block_59 = { 48 ?? ?? ?? ?? ?? ?? ?? 48 ?? ?? ?? ?? ?? 48 ?? ?? 0F 85 } + $block_60 = { 0F B7 ?? ?? ?? ?? ?? ?? 0F B7 ?? ?? ?? ?? ?? ?? 3B ?? 7D } + $block_61 = { 48 ?? ?? ?? ?? ?? ?? ?? 0F B7 ?? ?? 3D ?? ?? ?? ?? 74 } + $block_62 = { 48 ?? ?? ?? ?? ?? ?? ?? E8 ?? ?? ?? ?? 48 ?? ?? 0F 85 } + $block_63 = { 48 ?? ?? ?? ?? ?? ?? ?? E8 ?? ?? ?? ?? 48 ?? ?? 0F 86 } + $block_64 = { 33 ?? 8B ?? ?? ?? F7 ?? ?? ?? FF C? 0F AF ?? ?? ?? 89 } + $block_65 = { B2 ?? 48 ?? ?? ?? ?? E8 ?? ?? ?? ?? 0F B6 ?? 85 ?? 75 } + $block_66 = { 48 ?? ?? ?? ?? 48 ?? ?? ?? ?? 8B ?? ?? 39 ?? ?? 0F 83 } + $block_67 = { 8B ?? ?? ?? 8B ?? ?? ?? FF C? 89 ?? ?? ?? 85 ?? 0F 84 } + $block_68 = { 48 ?? ?? ?? ?? ?? ?? ?? 48 ?? ?? ?? ?? ?? ?? ?? 0F 85 } + $block_69 = { 48 ?? ?? ?? ?? ?? ?? ?? 0F B7 ?? ?? 3D ?? ?? ?? ?? 75 } + $block_70 = { 8B ?? ?? ?? ?? ?? ?? 48 ?? ?? ?? ?? ?? ?? ?? 0F 85 } + $block_71 = { 0F B7 ?? ?? ?? 48 ?? ?? ?? ?? 0F B7 ?? ?? 3B ?? 7D } + $block_72 = { 48 ?? ?? ?? ?? ?? ?? ?? 0F B7 ?? 39 ?? ?? ?? 0F 85 } + $block_73 = { 8B ?? ?? ?? 48 ?? ?? ?? ?? 0F BE ?? ?? 85 ?? 0F 85 } + $block_74 = { 0F B7 ?? ?? ?? ?? ?? ?? 25 ?? ?? ?? ?? 85 ?? 0F 84 } + $block_75 = { 48 ?? ?? ?? ?? ?? ?? ?? 83 ?? ?? ?? ?? ?? ?? 0F 85 } + $block_76 = { 48 ?? ?? ?? ?? 48 ?? ?? 83 ?? ?? ?? ?? ?? ?? 0F 85 } + $block_77 = { 48 ?? ?? ?? ?? ?? ?? ?? 0F BE ?? ?? 83 ?? ?? 74 } + $block_78 = { 8B ?? ?? ?? ?? ?? ?? 0F BE ?? ?? ?? 83 ?? ?? 74 } + $block_79 = { 48 ?? ?? ?? ?? ?? ?? ?? 0F B7 ?? ?? 83 ?? ?? 75 } + $block_80 = { 8B ?? ?? ?? ?? ?? ?? 39 ?? ?? ?? ?? ?? ?? 0F 83 } + $block_81 = { 8B ?? ?? ?? ?? ?? ?? 39 ?? ?? ?? ?? ?? ?? 0F 8D } + $block_82 = { 48 ?? ?? ?? ?? 48 ?? ?? ?? ?? 48 ?? ?? ?? 0F 85 } + $block_83 = { 48 ?? ?? ?? ?? ?? ?? ?? 0F BE ?? ?? 83 ?? ?? 75 } + $block_84 = { B9 ?? ?? ?? ?? E8 ?? ?? ?? ?? 0F B6 ?? 85 ?? 74 } + + condition: + hash.sha256(0, filesize) == "9184be433426f5c9fe8ce27e8df89d7849c6af61779a3835c89ad46815abe839" or + 24 of them +} + +rule UroburosCVE20083431 { + meta: + Author = "Intezer Analyze" + Reference = "https://apt-ecosystem.com" + + strings: + $block_0 = { 8B ?? ?? 8B ?? ?? 8B ?? ?? 6A ?? 68 ?? ?? ?? ?? 5? 5? 5? FF 1? ?? ?? ?? ?? 89 ?? ?? 85 ?? 0F 84 } + $block_1 = { 48 ?? ?? ?? ?? ?? ?? ?? 48 ?? ?? ?? ?? ?? ?? ?? E8 ?? ?? ?? ?? 85 ?? 8B ?? 0F 85 } + $block_2 = { 0F B6 ?? ?? 0F B6 ?? C1 ?? ?? C1 ?? ?? 03 ?? 2B ?? 83 ?? ?? 3B ?? 0F 84 } + $block_3 = { 8B ?? 99 F7 ?? ?? ?? ?? ?? 4? 8A ?? ?? 30 ?? ?? ?? 3B ?? ?? ?? ?? ?? 72 } + $block_4 = { 5? 8B ?? 83 ?? ?? 5? 5? 8B ?? ?? B8 ?? ?? ?? ?? 33 ?? 66 ?? ?? 0F 85 } + $block_5 = { 8A ?? 88 ?? 8A ?? ?? 88 ?? ?? 8A ?? ?? 88 ?? ?? 8B ?? ?? 5? 5? C9 C3 } + $block_6 = { 5? 8B ?? 8B ?? ?? BA ?? ?? ?? ?? 83 ?? ?? 33 ?? 66 ?? ?? 0F 85 } + $block_7 = { 48 ?? ?? ?? ?? ?? ?? ?? E8 ?? ?? ?? ?? 85 ?? 8B ?? 0F 85 } + $block_8 = { 8A ?? 88 ?? 8A ?? ?? 88 ?? ?? 8B ?? ?? 5? 5? C9 C3 } + $block_9 = { 0F B7 ?? 48 ?? ?? ?? 66 ?? ?? 66 ?? ?? ?? ?? 75 } + $block_10 = { 8B ?? FF 1? ?? ?? ?? ?? 48 ?? ?? 4C ?? ?? 0F 84 } + + condition: + hash.sha256(0, filesize) == "2233dd70fe18f92d398e0f9265714255af1f3431ed512fd5ea174c7630df1fe4" or + hash.sha256(0, filesize) == "8f4f4c3469235da8c371cdbf3de0d81e31f71d5648da1fdfc76ad2290178836a" or + hash.sha256(0, filesize) == "8afa5f4d3cf330b44266b49c480ad4136c367fdb3c5bbca9db577a6ea6321aba" or + hash.sha256(0, filesize) == "38b10be0618576f4a2285362b7576975f997980f1120e9d6470654f48503c179" or + 11 of them +} + +rule GazerOrchestrator_x32_ { + meta: + Author = "Intezer Analyze" + Reference = "https://apt-ecosystem.com" + + strings: + $block_0 = { 8B ?? ?? 8B ?? 05 ?? ?? ?? ?? 5? FF 3? 8B ?? ?? 6A ?? FF 3? FF 1? ?? ?? ?? ?? 89 ?? 85 ?? 0F 84 } + $block_1 = { 8B ?? ?? 4? 89 ?? ?? 8D ?? ?? 5? 5? 5? 5? 68 ?? ?? ?? ?? FF 7? ?? FF 1? ?? ?? ?? ?? 85 ?? 0F 85 } + $block_2 = { FF 3? 68 ?? ?? ?? ?? 68 ?? ?? ?? ?? 68 ?? ?? ?? ?? E8 ?? ?? ?? ?? 8A ?? ?? 83 ?? ?? 5? 5? C9 C3 } + $block_3 = { 8D ?? ?? E8 ?? ?? ?? ?? 8D ?? ?? E8 ?? ?? ?? ?? 8D ?? ?? E8 ?? ?? ?? ?? 8B ?? 5? 5? 5? C9 C3 } + $block_4 = { 8B ?? ?? 83 ?? ?? ?? ?? 83 ?? ?? ?? ?? 68 ?? ?? ?? ?? 6A ?? 5? FF 1? ?? ?? ?? ?? 85 ?? 0F 84 } + $block_5 = { 5? FF 7? ?? 6A ?? 5? 5? 68 ?? ?? ?? ?? FF 7? ?? ?? FF 1? ?? ?? ?? ?? 89 ?? ?? 83 ?? ?? 0F 84 } + $block_6 = { 2B ?? 33 ?? 8B ?? F7 ?? 8B ?? 0F AF ?? 2B ?? 0F B7 ?? ?? C1 ?? ?? 0B ?? 0F B7 ?? 8B ?? 0F AF } + $block_7 = { 5? FF 1? ?? ?? ?? ?? 68 ?? ?? ?? ?? 6A ?? FF 7? ?? FF 1? ?? ?? ?? ?? 89 ?? ?? ?? 3B ?? 0F 84 } + $block_8 = { 8D ?? ?? 5? FF 7? ?? 8B ?? 5? FF 7? ?? E8 ?? ?? ?? ?? 8B ?? ?? 33 ?? 4? 83 ?? ?? 3B ?? 0F 86 } + $block_9 = { 8B ?? ?? ?? ?? ?? 03 ?? 5? FF D? FF 1? ?? ?? ?? ?? 0F AF ?? 5? FF D? 5? 5? 5? B0 ?? 5? C9 C2 } + $block_10 = { 0F B6 ?? 5? 68 ?? ?? ?? ?? 68 ?? ?? ?? ?? 5? E8 ?? ?? ?? ?? 83 ?? ?? 5? 5? 8A ?? 5? C9 C2 } + $block_11 = { 8B ?? 8B ?? ?? 83 ?? ?? 5? FF 3? 8B ?? ?? 6A ?? FF 3? FF 1? ?? ?? ?? ?? 89 ?? 85 ?? 0F 84 } + $block_12 = { FF 7? ?? FF D? 5? 8D ?? ?? ?? 5? 6A ?? FF 7? ?? FF 1? ?? ?? ?? ?? 89 ?? ?? ?? 3B ?? 0F 84 } + $block_13 = { FF 7? ?? 89 ?? ?? FF 1? ?? ?? ?? ?? 6A ?? 6A ?? 8D ?? ?? 5? FF 1? ?? ?? ?? ?? 85 ?? 0F 84 } + $block_14 = { 68 ?? ?? ?? ?? 6A ?? FF 7? ?? C7 ?? ?? ?? ?? ?? ?? ?? FF 1? ?? ?? ?? ?? 8B ?? 3B ?? 0F 84 } + $block_15 = { 8B ?? ?? ?? ?? ?? 83 ?? ?? ?? BB ?? ?? ?? ?? 5? 6A ?? FF 7? ?? FF D? 89 ?? ?? 85 ?? 0F 84 } + $block_16 = { 5? 8B ?? 5? 5? 5? 5? 8B ?? 8D ?? ?? 5? FF 7? ?? 33 ?? 89 ?? ?? E8 ?? ?? ?? ?? 84 ?? 0F 84 } + $block_17 = { 8B ?? ?? ?? 8B ?? ?? 8B ?? 89 ?? ?? ?? 8B ?? ?? ?? 03 ?? 8B ?? 89 ?? ?? ?? 3B ?? 0F 87 } + $block_18 = { 5? 68 ?? ?? ?? ?? 68 ?? ?? ?? ?? 68 ?? ?? ?? ?? E8 ?? ?? ?? ?? 83 ?? ?? 8B ?? 5? C9 C2 } + $block_19 = { 8B ?? ?? 83 ?? ?? 5? 6A ?? FF 3? 89 ?? ?? FF 1? ?? ?? ?? ?? 8B ?? 89 ?? ?? 85 ?? 0F 84 } + $block_20 = { 5? 5? 8B ?? ?? ?? ?? ?? BD ?? ?? ?? ?? 5? 6A ?? FF 7? ?? FF D? 89 ?? ?? ?? 85 ?? 0F 84 } + $block_21 = { 8D ?? ?? ?? 5? 68 ?? ?? ?? ?? 5? FF 1? 8B ?? 8B ?? ?? ?? 8B ?? 5? FF 5? ?? 3B ?? 0F 8C } + $block_22 = { 8B ?? 83 ?? ?? 8B ?? 8D ?? ?? ?? A5 A5 A5 8B ?? A3 ?? ?? ?? ?? A5 FF 5? ?? 84 ?? 0F 84 } + $block_23 = { 8B ?? ?? ?? 8B ?? 6A ?? 5? 5? FF 5? ?? 8B ?? 8B ?? ?? ?? 8B ?? 5? FF 5? ?? 3B ?? 0F 9D } + $block_24 = { 8B ?? ?? FF 0? 8B ?? ?? 6A ?? 6A ?? FF 3? FF 1? ?? ?? ?? ?? 8B ?? 89 ?? ?? 85 ?? 0F 84 } + $block_25 = { 8D ?? ?? E8 ?? ?? ?? ?? 89 ?? ?? 8D ?? ?? 8D ?? ?? E8 ?? ?? ?? ?? 8B ?? 85 ?? 0F 85 } + $block_26 = { 5? 5? 6A ?? 5? 6A ?? 68 ?? ?? ?? ?? 5? FF 1? ?? ?? ?? ?? 89 ?? ?? ?? 83 ?? ?? 0F 84 } + $block_27 = { 8B ?? ?? ?? ?? ?? 8B ?? 83 ?? ?? 8B ?? 8D ?? ?? ?? A5 A5 A5 A5 FF 5? ?? 84 ?? 0F 84 } + $block_28 = { 8B ?? ?? 8B ?? 8B ?? ?? ?? ?? ?? 8D ?? ?? 8D ?? ?? A5 A5 A5 A5 89 ?? ?? 3B ?? 0F 85 } + $block_29 = { 5? 5? 8B ?? ?? ?? ?? ?? BB ?? ?? ?? ?? 5? 6A ?? FF 7? ?? FF D? 89 ?? ?? 85 ?? 0F 84 } + $block_30 = { 8B ?? ?? 8B ?? 8B ?? ?? FF 0? 6A ?? 6A ?? FF 3? FF D? 8B ?? 89 ?? ?? ?? 85 ?? 0F 84 } + $block_31 = { 8B ?? ?? ?? 8B ?? ?? ?? 8B ?? ?? ?? ?? ?? 03 ?? 89 ?? ?? ?? 89 ?? ?? ?? 3B ?? 0F 83 } + $block_32 = { FF 7? ?? ?? 8B ?? FF 3? ?? ?? ?? ?? 8B ?? 89 ?? ?? ?? ?? ?? FF 5? ?? 84 ?? 0F 85 } + $block_33 = { 5? 68 ?? ?? ?? ?? 68 ?? ?? ?? ?? 5? E8 ?? ?? ?? ?? 83 ?? ?? 5? 5? 8B ?? 5? C9 C2 } + $block_34 = { 0F B6 ?? ?? 5? 68 ?? ?? ?? ?? 6A ?? 68 ?? ?? ?? ?? E8 ?? ?? ?? ?? 83 ?? ?? C9 C2 } + $block_35 = { 8B ?? ?? ?? ?? ?? 8B ?? 83 ?? ?? 8B ?? 8D ?? ?? ?? A5 A5 A5 A5 FF 5? ?? 84 ?? 74 } + $block_36 = { 83 ?? ?? ?? 83 ?? ?? ?? 5? FF 7? ?? 8D ?? ?? 8D ?? ?? E8 ?? ?? ?? ?? 84 ?? 0F 84 } + $block_37 = { 8B ?? ?? 83 ?? ?? 5? 6A ?? FF 7? ?? FF 1? ?? ?? ?? ?? 8B ?? ?? 89 ?? 85 ?? 0F 84 } + $block_38 = { FF 7? ?? 8B ?? ?? 5? FF 7? ?? FF 1? ?? ?? ?? ?? FF 4? ?? 8B ?? ?? 3B ?? ?? 0F 82 } + $block_39 = { 8B ?? ?? ?? 8D ?? ?? ?? 8B ?? 89 ?? ?? ?? 8B ?? ?? 89 ?? ?? ?? 3B ?? ?? ?? 0F 86 } + $block_40 = { 8D ?? ?? 5? 5? 33 ?? 5? 68 ?? ?? ?? ?? FF 7? ?? FF 1? ?? ?? ?? ?? 85 ?? 0F 85 } + $block_41 = { 8B ?? ?? 8B ?? ?? C1 ?? ?? 5? 8D ?? ?? E8 ?? ?? ?? ?? 5? 89 ?? ?? 85 ?? 0F 85 } + $block_42 = { 8B ?? 6B ?? ?? 8D ?? ?? ?? ?? ?? ?? 5? E8 ?? ?? ?? ?? 5? 89 ?? ?? 85 ?? 0F 85 } + $block_43 = { 5? 68 ?? ?? ?? ?? 68 ?? ?? ?? ?? 5? E8 ?? ?? ?? ?? 83 ?? ?? 8B ?? 5? 5? C9 C2 } + $block_44 = { 8D ?? ?? 5? 8D ?? ?? 5? 8D ?? ?? 5? E8 ?? ?? ?? ?? 8B ?? 83 ?? ?? 85 ?? 0F 85 } + $block_45 = { 8B ?? ?? 8B ?? ?? 83 ?? ?? 5? 8B ?? ?? 6A ?? FF 7? ?? FF D? 8B ?? 85 ?? 0F 84 } + $block_46 = { 6A ?? 6A ?? FF 3? ?? ?? ?? ?? FF 1? ?? ?? ?? ?? 8B ?? 89 ?? ?? ?? 85 ?? 0F 84 } + $block_47 = { 8B ?? ?? 03 ?? ?? 6A ?? 68 ?? ?? ?? ?? FF 7? ?? 5? FF D? 89 ?? ?? 85 ?? 0F 84 } + $block_48 = { 8B ?? 6A ?? 8B ?? FF 1? 6A ?? 8D ?? ?? 6A ?? 5? FF 1? ?? ?? ?? ?? 85 ?? 0F 85 } + $block_49 = { 8B ?? ?? 03 ?? 5? 6A ?? FF 7? ?? FF 1? ?? ?? ?? ?? 8B ?? 89 ?? ?? 3B ?? 0F 84 } + $block_50 = { 8B ?? ?? ?? ?? ?? 68 ?? ?? ?? ?? 6A ?? FF 7? ?? FF D? 8B ?? 33 ?? 3B ?? 0F 84 } + $block_51 = { 8D ?? ?? ?? 5? FF 7? ?? ?? 5? 6A ?? FF 7? ?? ?? FF 1? ?? ?? ?? ?? 85 ?? 0F 84 } + $block_52 = { FF 4? ?? 81 6? ?? ?? ?? ?? ?? FF 4? ?? 29 ?? ?? 4? 83 ?? ?? ?? 89 ?? ?? 0F 8F } + $block_53 = { 8B ?? ?? 8B ?? ?? ?? ?? ?? 03 ?? 5? 6A ?? FF 7? ?? FF D? 89 ?? ?? 3B ?? 0F 84 } + $block_54 = { 5? 8B ?? 83 ?? ?? 83 ?? ?? ?? 5? 8B ?? ?? 5? 8B ?? 89 ?? ?? 89 ?? ?? 0F 84 } + $block_55 = { 8B ?? ?? 6A ?? 6A ?? FF 7? ?? FF 1? ?? ?? ?? ?? 8B ?? 89 ?? ?? 3B ?? 0F 84 } + $block_56 = { 8D ?? ?? ?? 5? 6A ?? 6A ?? 6A ?? FF 7? ?? ?? FF 1? ?? ?? ?? ?? 85 ?? 0F 85 } + $block_57 = { FF 7? ?? 8B ?? ?? FF 7? ?? 8D ?? ?? E8 ?? ?? ?? ?? 8B ?? 5? 5? 85 ?? 0F 85 } + $block_58 = { 8B ?? ?? ?? FF 4? ?? FF 4? ?? ?? 8B ?? ?? ?? 8B ?? 8B ?? ?? ?? 3B ?? 0F 82 } + $block_59 = { 8D ?? ?? 5? 6A ?? 5? 68 ?? ?? ?? ?? FF 7? ?? FF 1? ?? ?? ?? ?? 85 ?? 0F 85 } + $block_60 = { 8D ?? ?? E8 ?? ?? ?? ?? 8B ?? 8D ?? ?? E8 ?? ?? ?? ?? 8B ?? 85 ?? 0F 85 } + $block_61 = { 8D ?? ?? 5? 5? 5? 68 ?? ?? ?? ?? FF 7? ?? FF 1? ?? ?? ?? ?? 85 ?? 0F 85 } + $block_62 = { 6A ?? 8D ?? ?? 5? 8D ?? ?? 5? 8D ?? ?? 5? FF 1? ?? ?? ?? ?? 85 ?? 0F 85 } + $block_63 = { FF 3? 8D ?? ?? 5? 8D ?? ?? 5? E8 ?? ?? ?? ?? 8B ?? 83 ?? ?? 85 ?? 0F 85 } + $block_64 = { FF 7? ?? FF 7? ?? FF 1? ?? ?? ?? ?? 8B ?? 0F AF ?? FF 4? ?? 39 ?? ?? 7C } + $block_65 = { 5? 8B ?? 83 ?? ?? 33 ?? 83 ?? ?? 5? 5? 89 ?? ?? 89 ?? ?? 89 ?? ?? 0F 84 } + $block_66 = { 8B ?? ?? ?? ?? ?? FF 3? ?? ?? ?? ?? 8B ?? FF 9? ?? ?? ?? ?? 84 ?? 0F 84 } + $block_67 = { 5? 5? 8B ?? ?? 5? 8D ?? ?? A5 33 ?? 66 ?? 66 ?? ?? ?? 4? 66 ?? ?? ?? 75 } + $block_68 = { FF 7? ?? FF 1? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 8B ?? 89 ?? ?? 3B ?? 0F 84 } + $block_69 = { 8D ?? ?? 5? 8D ?? ?? 5? 8D ?? ?? E8 ?? ?? ?? ?? 8B ?? 5? 5? 85 ?? 0F 85 } + $block_70 = { 5? 6A ?? FF 7? ?? FF D? 8B ?? ?? ?? 8B ?? 8B ?? 8B ?? ?? 3B ?? ?? 0F 85 } + $block_71 = { 83 ?? ?? 8B ?? 8D ?? ?? ?? A5 A5 A5 89 ?? ?? 8B ?? A5 FF 5? ?? 84 ?? 75 } + $block_72 = { 8D ?? ?? ?? 5? 6A ?? FF 1? ?? ?? ?? ?? 5? FF 1? ?? ?? ?? ?? 85 ?? 0F 84 } + $block_73 = { 8B ?? ?? ?? 83 ?? ?? 8D ?? ?? ?? A5 A5 A5 8B ?? ?? ?? 33 ?? 2B ?? 0F 84 } + $block_74 = { 8B ?? ?? 33 ?? 89 ?? ?? 8B ?? ?? ?? ?? ?? 89 ?? ?? 89 ?? ?? 3B ?? 0F 8E } + $block_75 = { FF 4? ?? FF 7? ?? FF 1? ?? ?? ?? ?? FF 4? ?? 8B ?? ?? 3B ?? ?? 0F 82 } + $block_76 = { 89 ?? ?? 8B ?? 89 ?? ?? 8D ?? ?? 8D ?? ?? E8 ?? ?? ?? ?? 85 ?? 0F 8F } + $block_77 = { 8B ?? ?? ?? 8B ?? 6A ?? 5? 5? FF 5? ?? 85 ?? 8B ?? ?? ?? 8B ?? 0F 88 } + $block_78 = { 5? 5? 5? 5? 5? FF 7? ?? FF 1? ?? ?? ?? ?? 8B ?? ?? 33 ?? 3B ?? 0F 84 } + $block_79 = { 8B ?? ?? ?? 83 ?? ?? 8D ?? ?? ?? A5 A5 A5 8B ?? ?? ?? 83 ?? ?? 0F 84 } + $block_80 = { 5? FF D? 5? 8D ?? ?? ?? 5? 6A ?? FF 7? ?? FF D? 89 ?? ?? 85 ?? 0F 84 } + $block_81 = { FF 1? ?? ?? ?? ?? 8D ?? ?? 5? FF 7? ?? 5? E8 ?? ?? ?? ?? 84 ?? 0F 84 } + $block_82 = { 8D ?? ?? ?? 8D ?? ?? ?? ?? ?? ?? A5 A5 A5 A5 8B ?? ?? ?? 33 ?? 4? } + $block_83 = { 8B ?? ?? 6A ?? 6A ?? FF 3? FF 1? ?? ?? ?? ?? 89 ?? ?? 85 ?? 0F 84 } + $block_84 = { 8B ?? ?? 8B ?? 8D ?? ?? ?? 5? 68 ?? ?? ?? ?? 5? FF 1? 85 ?? 0F 88 } + $block_85 = { 8B ?? 89 ?? ?? 8B ?? ?? 8B ?? 83 ?? ?? ?? 83 ?? ?? 8D ?? ?? 0F 86 } + $block_86 = { FF D? 8B ?? FF D? 0F AF ?? 83 ?? ?? ?? 89 ?? ?? 8B ?? ?? 85 ?? 7E } + $block_87 = { 8D ?? ?? 8B ?? E8 ?? ?? ?? ?? 8B ?? ?? 8B ?? 8B ?? ?? 0F AF ?? 89 } + $block_88 = { 5? 8B ?? 83 ?? ?? 8B ?? ?? 83 ?? ?? ?? 5? 5? 5? C6 ?? ?? ?? 0F 84 } + $block_89 = { 8D ?? ?? 5? 8D ?? ?? 5? FF 7? ?? 8B ?? E8 ?? ?? ?? ?? 84 ?? 0F 84 } + $block_90 = { 8D ?? ?? 5? FF 7? ?? FF 1? ?? ?? ?? ?? 81 7? ?? ?? ?? ?? ?? 0F 85 } + $block_91 = { 8B ?? ?? ?? ?? ?? 8D ?? ?? 8D ?? ?? E8 ?? ?? ?? ?? 84 ?? 0F 84 } + $block_92 = { 5? 8D ?? ?? ?? 5? 8D ?? ?? ?? 5? 5? E8 ?? ?? ?? ?? 84 ?? 0F 84 } + $block_93 = { FF 7? ?? FF 3? E8 ?? ?? ?? ?? 33 ?? 5? 5? 89 ?? ?? 3B ?? 0F 84 } + $block_94 = { 8B ?? ?? ?? ?? ?? 6A ?? 6A ?? 8D ?? ?? 5? FF D? 83 ?? ?? 0F 84 } + $block_95 = { 8B ?? ?? 8D ?? ?? E8 ?? ?? ?? ?? 8B ?? ?? 89 ?? ?? 3B ?? 0F 86 } + $block_96 = { 8D ?? ?? 5? 8D ?? ?? 5? E8 ?? ?? ?? ?? 8B ?? 5? 5? 85 ?? 0F 85 } + $block_97 = { 2B ?? 5? 8D ?? ?? 89 ?? ?? E8 ?? ?? ?? ?? 8B ?? 5? 85 ?? 0F 85 } + $block_98 = { 68 ?? ?? ?? ?? FF 7? ?? ?? FF 1? ?? ?? ?? ?? 5? 5? 85 ?? 0F 84 } + $block_99 = { 8B ?? ?? FF 4? ?? FF 4? ?? 8B ?? ?? 8B ?? 8B ?? ?? 3B ?? 0F 82 } + + condition: + hash.sha256(0, filesize) == "09da9e80e4554be5c2734ced0e70a6a08eb9ddacb8c1d9155c44ad8f0cbad8d2" or + 12 of them +} + +rule CarbonOrchestrator_v3_71_ { + meta: + Author = "Intezer Analyze" + Reference = "https://apt-ecosystem.com" + + strings: + $block_0 = { E8 ?? ?? ?? ?? 45 ?? ?? 48 ?? ?? ?? ?? ?? ?? 45 ?? ?? ?? 48 ?? ?? E8 ?? ?? ?? ?? 41 ?? ?? 0F 85 } + $block_1 = { BF ?? ?? ?? ?? 44 ?? ?? 4C ?? ?? ?? ?? ?? ?? ?? 49 ?? ?? ?? 48 ?? ?? E8 ?? ?? ?? ?? 3B ?? 0F 85 } + $block_2 = { 48 ?? ?? ?? ?? ?? ?? ?? 48 ?? ?? ?? ?? ?? ?? ?? B9 ?? ?? ?? ?? E8 ?? ?? ?? ?? 85 ?? 8B ?? 0F 85 } + $block_3 = { 44 ?? ?? ?? ?? ?? ?? ?? 48 ?? ?? ?? ?? 48 ?? ?? 41 ?? ?? ?? 49 ?? ?? E8 ?? ?? ?? ?? 3B ?? 0F 84 } + $block_4 = { 4C ?? ?? ?? ?? 48 ?? ?? ?? ?? 41 ?? ?? ?? ?? ?? 48 ?? ?? ?? ?? FF 1? ?? ?? ?? ?? 40 ?? ?? 0F 84 } + $block_5 = { 45 ?? ?? 45 ?? ?? 48 ?? ?? 41 ?? ?? ?? 4C ?? ?? ?? ?? FF 1? ?? ?? ?? ?? 49 ?? ?? 48 ?? ?? 0F 84 } + $block_6 = { 48 ?? ?? ?? ?? 49 ?? ?? ?? 41 ?? ?? ?? ?? ?? 4D ?? ?? 48 ?? ?? ?? ?? E8 ?? ?? ?? ?? 3B ?? 0F 85 } + $block_7 = { 8B ?? ?? ?? ?? ?? ?? 48 ?? ?? ?? ?? ?? ?? 48 ?? ?? 83 ?? ?? 83 ?? ?? 89 ?? ?? ?? ?? ?? ?? 0F 8C } + $block_8 = { 41 ?? ?? 41 ?? ?? 41 ?? ?? 41 ?? ?? 3B ?? 0F 4C ?? 41 ?? ?? 2B ?? 83 ?? ?? 85 ?? 48 ?? ?? 7E } + $block_9 = { 89 ?? ?? E8 ?? ?? ?? ?? 48 ?? ?? ?? 99 83 ?? ?? 03 ?? 83 ?? ?? 2B ?? 49 ?? ?? 8D ?? ?? ?? 75 } + $block_10 = { 48 ?? ?? FF 1? ?? ?? ?? ?? 48 ?? ?? ?? ?? ?? ?? 33 ?? 8B ?? FF 1? ?? ?? ?? ?? 49 ?? ?? 0F 84 } + $block_11 = { 44 ?? ?? ?? 8B ?? ?? ?? 49 ?? ?? 4C ?? ?? 48 ?? ?? ?? ?? ?? ?? ?? E8 ?? ?? ?? ?? 85 ?? 0F 85 } + $block_12 = { 41 ?? ?? ?? ?? ?? 4C ?? ?? ?? ?? 48 ?? ?? 48 ?? ?? ?? ?? ?? ?? ?? E8 ?? ?? ?? ?? 85 ?? 0F 85 } + $block_13 = { 41 ?? ?? 44 ?? ?? 41 ?? ?? 45 ?? ?? 41 ?? ?? 41 ?? ?? 0F 4C ?? 8B ?? 2B ?? 85 ?? 48 ?? ?? 7E } + $block_14 = { 48 ?? ?? ?? E8 ?? ?? ?? ?? 48 ?? ?? ?? ?? 48 ?? ?? ?? E8 ?? ?? ?? ?? 45 ?? ?? 41 ?? ?? 0F 85 } + $block_15 = { 48 ?? ?? ?? ?? ?? ?? 48 ?? ?? ?? ?? ?? ?? ?? 41 ?? ?? ?? ?? ?? E8 ?? ?? ?? ?? 40 ?? ?? 0F 84 } + $block_16 = { 48 ?? ?? ?? ?? ?? ?? 4D ?? ?? 8B ?? FF 1? ?? ?? ?? ?? 48 ?? ?? 48 ?? ?? 48 ?? ?? ?? ?? 0F 84 } + $block_17 = { 48 ?? ?? ?? ?? ?? ?? BA ?? ?? ?? ?? FF 1? ?? ?? ?? ?? 40 ?? ?? ?? 85 ?? 0F 44 ?? 40 ?? ?? 75 } + $block_18 = { 41 ?? ?? ?? ?? ?? 4C ?? ?? ?? ?? 48 ?? ?? 48 ?? ?? ?? ?? ?? ?? ?? E8 ?? ?? ?? ?? 3B ?? 0F 85 } + $block_19 = { 8B ?? ?? 8B ?? E8 ?? ?? ?? ?? 41 ?? ?? ?? ?? ?? 44 ?? ?? ?? ?? ?? ?? ?? 0F BA ?? ?? 8B ?? 73 } + $block_20 = { 48 ?? ?? ?? ?? ?? ?? ?? 48 ?? ?? ?? ?? 8B ?? E8 ?? ?? ?? ?? 83 ?? ?? ?? ?? ?? ?? ?? 0F 85 } + $block_21 = { 4C ?? ?? ?? ?? ?? ?? ?? 48 ?? ?? ?? ?? 48 ?? ?? ?? ?? ?? ?? E8 ?? ?? ?? ?? 41 ?? ?? 0F 84 } + $block_22 = { 8B ?? 45 ?? ?? 45 ?? ?? 99 4C ?? ?? F7 ?? 41 ?? ?? ?? 44 ?? ?? 85 ?? 4C ?? ?? 4C ?? ?? 7E } + $block_23 = { 8B ?? 33 ?? 45 ?? ?? 21 ?? ?? ?? 99 45 ?? ?? 45 ?? ?? 4D ?? ?? 41 ?? ?? 85 ?? 4C ?? ?? 7E } + $block_24 = { 48 ?? ?? ?? ?? 48 ?? ?? ?? ?? ?? ?? ?? 45 ?? ?? 29 ?? ?? ?? ?? ?? ?? 48 ?? ?? ?? ?? 0F 85 } + $block_25 = { 8D ?? ?? 48 ?? ?? ?? ?? ?? ?? ?? FF 1? ?? ?? ?? ?? 48 ?? ?? 48 ?? ?? ?? ?? ?? ?? ?? 0F 84 } + $block_26 = { 48 ?? ?? ?? ?? ?? ?? ?? 48 ?? ?? ?? ?? ?? ?? ?? FF 1? ?? ?? ?? ?? 48 ?? ?? 48 ?? ?? 0F 84 } + $block_27 = { 41 ?? ?? ?? E8 ?? ?? ?? ?? 41 ?? ?? ?? 2B ?? 99 83 ?? ?? F7 ?? 8D ?? ?? 48 ?? ?? ?? ?? EB } + $block_28 = { FF 1? ?? ?? ?? ?? 48 ?? ?? ?? ?? ?? ?? 45 ?? ?? 8B ?? 8B ?? E8 ?? ?? ?? ?? 83 ?? ?? 0F 84 } + $block_29 = { 33 ?? 48 ?? ?? 49 ?? ?? 66 ?? ?? 48 ?? ?? ?? ?? ?? ?? 48 ?? ?? ?? 0F B7 ?? ?? ?? ?? ?? 66 } + $block_30 = { 48 ?? ?? ?? ?? ?? ?? 41 ?? ?? ?? ?? ?? 48 ?? ?? FF 1? ?? ?? ?? ?? 33 ?? 85 ?? 0F 95 ?? 89 } + $block_31 = { 48 ?? ?? ?? ?? ?? ?? 48 ?? ?? E8 ?? ?? ?? ?? 44 ?? ?? ?? 4C ?? ?? ?? ?? 4C ?? ?? ?? 0F 85 } + $block_32 = { 48 ?? ?? ?? ?? ?? ?? 4C ?? ?? BA ?? ?? ?? ?? FF 1? ?? ?? ?? ?? 48 ?? ?? 48 ?? ?? 0F 84 } + $block_33 = { 48 ?? ?? B8 ?? ?? ?? ?? 83 ?? ?? ?? 0F 45 ?? 48 ?? ?? ?? E8 ?? ?? ?? ?? 48 ?? ?? ?? 83 } + $block_34 = { 48 ?? ?? ?? ?? ?? ?? 45 ?? ?? BA ?? ?? ?? ?? FF 1? ?? ?? ?? ?? 48 ?? ?? 48 ?? ?? 0F 84 } + $block_35 = { E8 ?? ?? ?? ?? 48 ?? ?? ?? 33 ?? 48 ?? ?? ?? ?? ?? ?? ?? F2 ?? 48 ?? ?? 48 ?? ?? 0F 84 } + $block_36 = { 8B ?? ?? ?? ?? ?? 48 ?? ?? ?? 8D ?? ?? 41 ?? ?? ?? 3B ?? 48 ?? ?? ?? ?? ?? ?? ?? 0F 8C } + $block_37 = { 44 ?? ?? 4C ?? ?? 33 ?? 48 ?? ?? C7 ?? ?? ?? ?? ?? ?? ?? FF 1? ?? ?? ?? ?? 85 ?? 0F 85 } + $block_38 = { 48 ?? ?? ?? ?? 45 ?? ?? 48 ?? ?? ?? ?? ?? ?? 45 ?? ?? ?? E8 ?? ?? ?? ?? 41 ?? ?? 0F 85 } + $block_39 = { 48 ?? ?? ?? ?? ?? ?? 49 ?? ?? ?? 33 ?? 48 ?? ?? 49 ?? ?? F2 ?? 48 ?? ?? 49 ?? ?? 0F 84 } + $block_40 = { 45 ?? ?? 4C ?? ?? ?? ?? ?? ?? 48 ?? ?? ?? ?? 48 ?? ?? ?? ?? E8 ?? ?? ?? ?? 3B ?? 0F 85 } + $block_41 = { 48 ?? ?? ?? ?? ?? ?? 48 ?? ?? ?? ?? ?? ?? ?? 48 ?? ?? FF 1? ?? ?? ?? ?? 49 ?? ?? 0F 84 } + $block_42 = { 48 ?? ?? ?? ?? ?? ?? 48 ?? ?? ?? ?? ?? ?? ?? FF 1? ?? ?? ?? ?? 49 ?? ?? 48 ?? ?? 0F 84 } + $block_43 = { 44 ?? ?? ?? 48 ?? ?? ?? ?? ?? ?? ?? 41 ?? ?? ?? 0F B6 ?? ?? 2B ?? ?? ?? ?? ?? ?? 75 } + $block_44 = { 48 ?? ?? FF 1? ?? ?? ?? ?? 48 ?? ?? 33 ?? 44 ?? ?? FF 1? ?? ?? ?? ?? 49 ?? ?? 0F 84 } + $block_45 = { 49 ?? ?? ?? 33 ?? 48 ?? ?? 49 ?? ?? 66 ?? ?? 48 ?? ?? 48 ?? ?? ?? 48 ?? ?? ?? 0F 82 } + $block_46 = { 48 ?? ?? ?? ?? ?? ?? 33 ?? 48 ?? ?? ?? ?? ?? ?? ?? FF 1? ?? ?? ?? ?? 49 ?? ?? 0F 84 } + $block_47 = { E8 ?? ?? ?? ?? 33 ?? 48 ?? ?? ?? ?? ?? ?? ?? 49 ?? ?? F2 ?? 48 ?? ?? 49 ?? ?? 0F 84 } + $block_48 = { 48 ?? ?? ?? ?? ?? ?? 8B ?? FF 1? ?? ?? ?? ?? 0F B6 ?? 85 ?? 0F 44 ?? 40 ?? ?? 0F 85 } + $block_49 = { 48 ?? ?? ?? ?? ?? ?? ?? 48 ?? ?? ?? ?? ?? ?? ?? FF 1? ?? ?? ?? ?? 48 ?? ?? 0F 84 } + $block_50 = { E8 ?? ?? ?? ?? 8B ?? 48 ?? ?? ?? ?? ?? ?? E8 ?? ?? ?? ?? 48 ?? ?? 48 ?? ?? 0F 84 } + $block_51 = { 48 ?? ?? ?? ?? ?? ?? 33 ?? FF 1? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? ?? 48 ?? ?? 0F 84 } + $block_52 = { 49 ?? ?? 8B ?? 48 ?? ?? ?? 83 ?? ?? 0F A3 ?? ?? 41 ?? ?? 44 ?? ?? ?? 41 ?? ?? 79 } + $block_53 = { 33 ?? 48 ?? ?? FF 1? ?? ?? ?? ?? 45 ?? ?? 45 ?? ?? 41 ?? ?? 8B ?? 48 ?? ?? 0F 86 } + $block_54 = { 45 ?? ?? 49 ?? ?? 45 ?? ?? 49 ?? ?? 4C ?? ?? ?? ?? 48 ?? ?? ?? ?? 4C ?? ?? 0F 8E } + $block_55 = { 48 ?? ?? ?? 45 ?? ?? 41 ?? ?? ?? ?? ?? 49 ?? ?? FF 1? ?? ?? ?? ?? 83 ?? ?? 0F 84 } + $block_56 = { 48 ?? ?? ?? ?? ?? ?? 44 ?? ?? 8B ?? FF 1? ?? ?? ?? ?? 48 ?? ?? 48 ?? ?? 0F 84 } + $block_57 = { 8B ?? ?? 48 ?? ?? ?? ?? ?? ?? ?? 41 ?? ?? ?? ?? ?? E8 ?? ?? ?? ?? 3C ?? 0F 85 } + $block_58 = { 48 ?? ?? ?? ?? ?? ?? 48 ?? ?? ?? ?? ?? ?? ?? FF 1? ?? ?? ?? ?? 49 ?? ?? 0F 84 } + $block_59 = { 41 ?? ?? ?? ?? ?? 4C ?? ?? ?? ?? 48 ?? ?? 48 ?? ?? E8 ?? ?? ?? ?? 3B ?? 0F 85 } + $block_60 = { 48 ?? ?? ?? ?? ?? ?? 4D ?? ?? 8B ?? FF 1? ?? ?? ?? ?? 48 ?? ?? 48 ?? ?? 0F 84 } + $block_61 = { 48 ?? ?? ?? ?? ?? ?? 4D ?? ?? 8B ?? FF 1? ?? ?? ?? ?? 48 ?? ?? 4C ?? ?? 0F 84 } + $block_62 = { 48 ?? ?? ?? 48 ?? ?? ?? ?? ?? ?? ?? 45 ?? ?? FF 1? ?? ?? ?? ?? 41 ?? ?? 0F 85 } + $block_63 = { 4D ?? ?? ?? ?? 4C ?? ?? ?? ?? ?? ?? 48 ?? ?? 8B ?? E8 ?? ?? ?? ?? 3B ?? 0F 85 } + $block_64 = { 48 ?? ?? ?? ?? ?? ?? ?? 48 ?? ?? ?? ?? ?? ?? ?? E8 ?? ?? ?? ?? 3B ?? 0F 85 } + $block_65 = { 41 ?? ?? B9 ?? ?? ?? ?? 2B ?? 3B ?? 0F 4C ?? FF 1? ?? ?? ?? ?? 48 ?? ?? 74 } + $block_66 = { 8B ?? ?? ?? ?? ?? ?? 8D ?? ?? FF 1? ?? ?? ?? ?? 48 ?? ?? 48 ?? ?? ?? 0F 84 } + $block_67 = { 48 ?? ?? ?? ?? ?? ?? 33 ?? FF 1? ?? ?? ?? ?? 48 ?? ?? 33 ?? 48 ?? ?? 0F 85 } + $block_68 = { 48 ?? ?? ?? ?? ?? ?? ?? 48 ?? ?? ?? ?? ?? ?? ?? E8 ?? ?? ?? ?? 85 ?? 0F 85 } + $block_69 = { 48 ?? ?? ?? ?? 41 ?? ?? ?? ?? ?? 49 ?? ?? 45 ?? ?? 41 ?? ?? 48 ?? ?? 0F 84 } + $block_70 = { 48 ?? ?? ?? ?? ?? ?? 33 ?? 4C ?? ?? ?? ?? FF 1? ?? ?? ?? ?? 48 ?? ?? 0F 84 } + $block_71 = { 33 ?? 49 ?? ?? 48 ?? ?? F2 ?? 48 ?? ?? 49 ?? ?? 49 ?? ?? 49 ?? ?? 0F 85 } + $block_72 = { 48 ?? ?? 48 ?? ?? ?? ?? ?? ?? 48 ?? ?? FF 1? ?? ?? ?? ?? 41 ?? ?? 0F 85 } + $block_73 = { 33 ?? 49 ?? ?? 48 ?? ?? F2 ?? 48 ?? ?? 49 ?? ?? 49 ?? ?? 48 ?? ?? 0F 85 } + $block_74 = { 48 ?? ?? ?? 48 ?? ?? ?? ?? 8B ?? ?? 89 ?? ?? ?? 8B ?? ?? 39 ?? ?? 0F 8F } + $block_75 = { 49 ?? ?? ?? 33 ?? 48 ?? ?? ?? ?? 49 ?? ?? F2 ?? 48 ?? ?? 49 ?? ?? 0F 84 } + $block_76 = { 8B ?? 89 ?? ?? ?? 4C ?? ?? ?? ?? ?? ?? 99 33 ?? 2B ?? 3D ?? ?? ?? ?? 7F } + $block_77 = { 48 ?? ?? ?? ?? ?? ?? 33 ?? FF 1? ?? ?? ?? ?? 49 ?? ?? 48 ?? ?? 0F 84 } + $block_78 = { 48 ?? ?? ?? ?? ?? ?? 48 ?? ?? ?? ?? FF 1? ?? ?? ?? ?? 48 ?? ?? 0F 84 } + $block_79 = { 48 ?? ?? ?? ?? ?? ?? ?? 49 ?? ?? E8 ?? ?? ?? ?? 41 ?? ?? 8B ?? 0F 85 } + $block_80 = { 48 ?? ?? ?? E8 ?? ?? ?? ?? 48 ?? ?? E8 ?? ?? ?? ?? 85 ?? 8B ?? 0F 85 } + $block_81 = { C6 ?? ?? ?? ?? ?? ?? ?? 0F B7 ?? ?? 66 ?? ?? ?? ?? 48 ?? ?? ?? ?? 75 } + $block_82 = { 48 ?? ?? ?? ?? ?? ?? 33 ?? FF 1? ?? ?? ?? ?? 48 ?? ?? 48 ?? ?? 0F 84 } + $block_83 = { 48 ?? ?? ?? ?? ?? ?? ?? 48 ?? ?? ?? ?? E8 ?? ?? ?? ?? 3B ?? 0F 85 } + $block_84 = { 48 ?? ?? ?? ?? ?? ?? ?? 49 ?? ?? FF 1? ?? ?? ?? ?? 83 ?? ?? 0F 84 } + $block_85 = { BA ?? ?? ?? ?? 48 ?? ?? FF 1? ?? ?? ?? ?? 48 ?? ?? 48 ?? ?? 0F 84 } + $block_86 = { 48 ?? ?? ?? ?? 48 ?? ?? ?? ?? 8B ?? E8 ?? ?? ?? ?? 41 ?? ?? 0F 85 } + $block_87 = { 41 ?? ?? 44 ?? ?? ?? ?? 4C ?? ?? ?? ?? ?? ?? ?? 4C ?? ?? 0F 84 } + $block_88 = { 8B ?? ?? ?? 41 ?? ?? ?? ?? 0F BA ?? ?? 83 ?? ?? 41 ?? ?? 0F 8E } + $block_89 = { 48 ?? ?? ?? ?? 48 ?? ?? E8 ?? ?? ?? ?? 45 ?? ?? 41 ?? ?? 0F 84 } + $block_90 = { 48 ?? ?? 33 ?? 48 ?? ?? ?? ?? FF 1? ?? ?? ?? ?? 49 ?? ?? 0F 84 } + $block_91 = { 4C ?? ?? ?? ?? ?? ?? ?? 8B ?? E8 ?? ?? ?? ?? 8A ?? 3C ?? 0F 85 } + $block_92 = { 48 ?? ?? 44 ?? ?? ?? ?? ?? ?? ?? 4C ?? ?? ?? ?? ?? ?? ?? 0F 8F } + $block_93 = { 48 ?? ?? ?? ?? ?? ?? 48 ?? ?? FF 1? ?? ?? ?? ?? 49 ?? ?? 0F 85 } + $block_94 = { 8B ?? 85 ?? 0F 44 ?? C1 ?? ?? 89 ?? ?? 48 ?? ?? ?? 48 ?? ?? 75 } + $block_95 = { 48 ?? ?? ?? 33 ?? 48 ?? ?? ?? ?? F2 ?? 48 ?? ?? 48 ?? ?? 0F 82 } + $block_96 = { 33 ?? 48 ?? ?? ?? ?? 49 ?? ?? F2 ?? 48 ?? ?? 49 ?? ?? 0F 84 } + $block_97 = { 48 ?? ?? ?? ?? 48 ?? ?? 48 ?? ?? 48 ?? ?? ?? ?? ?? ?? 0F 85 } + $block_98 = { 48 ?? ?? ?? ?? 48 ?? ?? 8B ?? E8 ?? ?? ?? ?? 41 ?? ?? 0F 84 } + $block_99 = { 4C ?? ?? ?? ?? ?? ?? ?? 41 ?? ?? E8 ?? ?? ?? ?? 84 ?? 0F 84 } + + condition: + hash.sha256(0, filesize) == "ffb0e35cfab750c8532f7d49deb8a71284fa420660710b8be632dacdd0a5cf45" or + hash.sha256(0, filesize) == "1311759943aabfe55ef2d42677432f14ed8fb549619473e5fb56f8a92d2daf72" or + 24 of them +} + +rule BadRabbitInstaller { + meta: + Author = "Intezer Analyze" + Reference = "https://apt-ecosystem.com" + + strings: + $block_0 = { 5? 8B ?? 81 E? ?? ?? ?? ?? A1 ?? ?? ?? ?? 33 ?? 89 ?? ?? 8B ?? ?? 5? 68 ?? ?? ?? ?? 8D ?? ?? ?? ?? ?? 33 ?? 5? 5? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? FF 1? ?? ?? ?? ?? 5? FF 1? ?? ?? ?? ?? 85 ?? 0F 84 } + $block_1 = { 5? 8B ?? 83 ?? ?? 5? 5? 33 ?? 5? 5? 6A ?? 5? 6A ?? 68 ?? ?? ?? ?? 5? 89 ?? ?? FF 1? ?? ?? ?? ?? 8B ?? 83 ?? ?? 0F 84 } + $block_2 = { 5? 8B ?? B8 ?? ?? ?? ?? E8 ?? ?? ?? ?? A1 ?? ?? ?? ?? 33 ?? 89 ?? ?? 5? 8B ?? ?? ?? ?? ?? 5? FF D? 8B ?? 85 ?? 0F 84 } + $block_3 = { 8D ?? ?? ?? ?? ?? 5? C7 ?? ?? ?? ?? ?? ?? ?? ?? ?? FF D? 5? FF 1? ?? ?? ?? ?? 8B ?? 85 ?? 0F 84 } + $block_4 = { 8D ?? ?? ?? ?? ?? 5? 8D ?? ?? ?? ?? ?? 5? 8D ?? ?? ?? ?? ?? E8 ?? ?? ?? ?? 85 ?? 0F 84 } + $block_5 = { 5? 2B ?? 8B ?? 5? 6A ?? FF 1? ?? ?? ?? ?? 5? FF 1? ?? ?? ?? ?? 8B ?? 85 ?? 0F 84 } + $block_6 = { 8B ?? ?? ?? ?? ?? 8B ?? ?? 0F B7 ?? ?? ?? 03 ?? 8D ?? ?? ?? 0F B7 ?? ?? 85 ?? 7E } + + condition: + hash.sha256(0, filesize) == "630325cac09ac3fab908f903e3b00d0dadd5fdaa0875ed8496fcbb97a558d0da" or + 7 of them +} + +rule BadRabbitWiper { + meta: + Author = "Intezer Analyze" + Reference = "https://apt-ecosystem.com" + + strings: + $block_0 = { 8B ?? ?? 8B ?? ?? 8B ?? ?? 0F B7 ?? ?? 0F A4 ?? ?? C1 ?? ?? 89 ?? 89 ?? ?? 8B ?? ?? C1 ?? ?? 89 } + $block_1 = { 5? 5? 5? 6A ?? 5? 5? 68 ?? ?? ?? ?? 8D ?? ?? ?? ?? ?? 5? FF 1? ?? ?? ?? ?? 8B ?? 83 ?? ?? 0F 84 } + $block_2 = { 5? 8B ?? B8 ?? ?? ?? ?? E8 ?? ?? ?? ?? 5? 5? 5? 33 ?? 89 ?? ?? 89 ?? ?? 89 ?? ?? 39 ?? ?? 0F 84 } + $block_3 = { 69 ?? ?? ?? ?? ?? 5? 5? 8D ?? ?? 5? 33 ?? 39 ?? ?? 0F 95 ?? 4? 5? FF 1? ?? ?? ?? ?? 3B ?? 0F 84 } + $block_4 = { 5? 8B ?? 83 ?? ?? 8B ?? ?? ?? ?? ?? 8B ?? ?? 83 ?? ?? ?? 03 ?? 5? 8B ?? ?? ?? ?? ?? 03 ?? 0F 84 } + $block_5 = { 8D ?? ?? ?? ?? ?? ?? E8 ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 6A ?? 5? FF 1? ?? ?? ?? ?? 85 ?? 0F 84 } + $block_6 = { 8D ?? ?? ?? ?? ?? 5? 68 ?? ?? ?? ?? 6A ?? 6A ?? 68 ?? ?? ?? ?? FF 1? ?? ?? ?? ?? 85 ?? 0F 88 } + $block_7 = { 8B ?? ?? 8D ?? ?? 5? FF 7? ?? 0F B7 ?? 5? FF 7? ?? FF 7? ?? FF 7? ?? E8 ?? ?? ?? ?? 84 ?? 74 } + $block_8 = { 68 ?? ?? ?? ?? FF 1? ?? ?? ?? ?? 6A ?? 6A ?? FF D? 5? FF 1? ?? ?? ?? ?? 89 ?? ?? 85 ?? 0F 84 } + $block_9 = { 2B ?? D1 ?? 0F B7 ?? 68 ?? ?? ?? ?? 6A ?? 89 ?? ?? FF D? 5? FF D? 8B ?? 89 ?? ?? 85 ?? 0F 84 } + $block_10 = { 0F B7 ?? ?? 89 ?? ?? 0F B7 ?? ?? 5? FF 1? ?? ?? ?? ?? 8B ?? ?? 0F B7 ?? 83 ?? ?? 3B ?? 0F 87 } + $block_11 = { 8B ?? ?? ?? ?? ?? 83 ?? ?? 5? 6A ?? 89 ?? ?? ?? ?? ?? FF 1? ?? ?? ?? ?? 8B ?? 85 ?? 0F 84 } + $block_12 = { 8D ?? ?? ?? 5? 8D ?? ?? ?? ?? ?? ?? 5? FF 1? ?? ?? ?? ?? 8B ?? 89 ?? ?? ?? 83 ?? ?? 0F 84 } + $block_13 = { 68 ?? ?? ?? ?? FF 1? ?? ?? ?? ?? 6A ?? 6A ?? FF D? 5? FF 1? ?? ?? ?? ?? 8B ?? 85 ?? 0F 84 } + $block_14 = { 68 ?? ?? ?? ?? 8D ?? ?? 5? 0F B7 ?? ?? 6A ?? 03 ?? 5? FF 7? ?? E8 ?? ?? ?? ?? 85 ?? 0F 85 } + $block_15 = { 21 ?? ?? 68 ?? ?? ?? ?? 8D ?? ?? 5? FF 7? ?? FF 7? ?? FF 7? ?? E8 ?? ?? ?? ?? 85 ?? 0F 85 } + $block_16 = { 8B ?? ?? 8B ?? ?? 8B ?? A5 A5 A5 A5 8B ?? 89 ?? ?? 8B ?? ?? 89 ?? ?? 33 ?? 66 ?? ?? ?? 75 } + $block_17 = { 5? 8B ?? 83 ?? ?? 5? FF 3? ?? ?? ?? ?? FF 1? ?? ?? ?? ?? 33 ?? A3 ?? ?? ?? ?? 3B ?? 0F 84 } + $block_18 = { 8B ?? ?? 8D ?? ?? 5? 6A ?? 6A ?? 5? C7 ?? ?? ?? ?? ?? ?? FF 1? ?? ?? ?? ?? 85 ?? 0F 84 } + $block_19 = { 68 ?? ?? ?? ?? 6A ?? FF 1? ?? ?? ?? ?? 5? FF 1? ?? ?? ?? ?? 8B ?? 89 ?? ?? 85 ?? 0F 84 } + $block_20 = { A1 ?? ?? ?? ?? 68 ?? ?? ?? ?? 68 ?? ?? ?? ?? 5? FF 1? ?? ?? ?? ?? 8B ?? 85 ?? 0F 84 } + $block_21 = { 5? 8B ?? 5? 6A ?? 6A ?? 6A ?? 6A ?? FF 1? ?? ?? ?? ?? 8B ?? ?? 89 ?? ?? 85 ?? 0F 84 } + $block_22 = { 0F B6 ?? ?? 33 ?? BB ?? ?? ?? ?? F7 ?? 4? 8A ?? ?? ?? ?? ?? 88 ?? ?? ?? 83 ?? ?? 72 } + $block_23 = { 5? 5? 6A ?? 5? 5? 68 ?? ?? ?? ?? FF 7? ?? FF 1? ?? ?? ?? ?? 89 ?? ?? 83 ?? ?? 0F 84 } + $block_24 = { 8B ?? ?? 0F B7 ?? ?? FF 7? ?? 8D ?? ?? 89 ?? ?? E8 ?? ?? ?? ?? 89 ?? ?? 83 ?? ?? 74 } + $block_25 = { 5? 5? 8D ?? ?? 5? FF 7? ?? 5? FF 7? ?? FF 7? ?? FF 7? ?? E8 ?? ?? ?? ?? 84 ?? 0F 84 } + $block_26 = { 68 ?? ?? ?? ?? 6A ?? 68 ?? ?? ?? ?? 6A ?? 8D ?? ?? 5? FF 1? ?? ?? ?? ?? 85 ?? 0F 84 } + $block_27 = { 8B ?? ?? 8B ?? FF 1? ?? ?? ?? ?? 0F B7 ?? ?? 83 ?? ?? ?? 0F B7 ?? 89 ?? ?? 8B ?? 8D } + $block_28 = { 68 ?? ?? ?? ?? 6A ?? FF 1? ?? ?? ?? ?? 5? FF 1? ?? ?? ?? ?? 89 ?? ?? 85 ?? 0F 84 } + $block_29 = { 6A ?? 5? 8D ?? ?? ?? ?? ?? 5? E8 ?? ?? ?? ?? 8D ?? ?? BF ?? ?? ?? ?? 3B ?? 0F 83 } + $block_30 = { 5? 8B ?? 83 ?? ?? 5? 68 ?? ?? ?? ?? 33 ?? FF 1? ?? ?? ?? ?? 89 ?? ?? 85 ?? 0F 84 } + $block_31 = { 8D ?? ?? ?? 0F B6 ?? 33 ?? 6A ?? 5? F7 ?? 4? 8A ?? ?? ?? ?? ?? 88 ?? 83 ?? ?? 72 } + $block_32 = { 5? 68 ?? ?? ?? ?? 6A ?? FF 1? ?? ?? ?? ?? 8B ?? 89 ?? ?? ?? ?? ?? 85 ?? 0F 84 } + $block_33 = { 6A ?? 6A ?? FF 1? ?? ?? ?? ?? 5? FF 1? ?? ?? ?? ?? 8B ?? 89 ?? ?? 85 ?? 0F 84 } + $block_34 = { 66 ?? ?? ?? ?? ?? ?? 66 ?? ?? ?? 33 ?? 0F B7 ?? 4? 66 ?? ?? 8B ?? 8D ?? ?? 75 } + $block_35 = { 68 ?? ?? ?? ?? 8D ?? ?? 5? FF 7? ?? 6A ?? FF 7? ?? E8 ?? ?? ?? ?? 85 ?? 0F 85 } + $block_36 = { 8D ?? ?? ?? ?? ?? ?? 8B ?? 2B ?? 0F B7 ?? 66 ?? ?? ?? 83 ?? ?? 66 ?? ?? 75 } + $block_37 = { 0F B7 ?? ?? 5? 89 ?? ?? 83 ?? ?? 5? 6A ?? FF D? 5? FF D? 8B ?? 85 ?? 0F 84 } + $block_38 = { 0F B7 ?? ?? 5? 83 ?? ?? 5? 6A ?? 89 ?? ?? FF D? 5? FF D? 8B ?? 85 ?? 0F 84 } + $block_39 = { 6A ?? 6A ?? C6 ?? ?? C7 ?? ?? ?? ?? ?? ?? FF D? 5? FF D? 8B ?? 85 ?? 0F 84 } + $block_40 = { 8D ?? ?? 5? 5? 5? 89 ?? ?? 8B ?? ?? FF 7? ?? FF 1? ?? ?? ?? ?? 85 ?? 0F 84 } + $block_41 = { 8D ?? ?? 5? 8B ?? ?? 6A ?? FF 7? ?? 03 ?? 5? FF 1? ?? ?? ?? ?? 85 ?? 0F 84 } + $block_42 = { 0F B6 ?? 33 ?? 81 E? ?? ?? ?? ?? C1 ?? ?? 33 ?? ?? ?? ?? ?? ?? 4? 4? 75 } + $block_43 = { 68 ?? ?? ?? ?? 5? 8D ?? ?? ?? ?? ?? ?? 5? FF 1? ?? ?? ?? ?? 85 ?? 0F 84 } + $block_44 = { 6A ?? 6A ?? C6 ?? ?? FF D? 5? FF 1? ?? ?? ?? ?? 8B ?? 33 ?? 3B ?? 0F 84 } + $block_45 = { 6A ?? BF ?? ?? ?? ?? 5? FF 7? ?? FF 7? ?? FF 1? ?? ?? ?? ?? 85 ?? 0F 8E } + $block_46 = { 8B ?? ?? 8B ?? 0F B6 ?? ?? 6A ?? 5? 2B ?? 89 ?? ?? 33 ?? 4? 66 ?? ?? 75 } + $block_47 = { 8D ?? ?? ?? 5? 5? C7 ?? ?? ?? ?? ?? ?? ?? FF 1? ?? ?? ?? ?? 85 ?? 0F 84 } + $block_48 = { 83 ?? ?? ?? 8D ?? ?? 5? FF 7? ?? 8D ?? ?? 5? E8 ?? ?? ?? ?? 84 ?? 0F 84 } + $block_49 = { 8B ?? ?? 6A ?? 68 ?? ?? ?? ?? 5? FF 7? ?? FF 1? ?? ?? ?? ?? 85 ?? 0F 8E } + $block_50 = { 8D ?? ?? 5? 8B ?? ?? 8B ?? ?? FF 3? ?? 5? FF 1? ?? ?? ?? ?? 85 ?? 0F 85 } + $block_51 = { 0F B7 ?? ?? 83 ?? ?? ?? 5? 5? 0F B7 ?? ?? 8D ?? ?? ?? 89 ?? ?? 85 ?? 7E } + $block_52 = { 8D ?? ?? ?? ?? ?? ?? 9? 8B ?? ?? ?? ?? ?? 83 ?? ?? ?? ?? ?? ?? 0F 84 } + $block_53 = { 5? 5? FF 1? ?? ?? ?? ?? 5? FF 7? ?? 33 ?? E8 ?? ?? ?? ?? 85 ?? 0F 85 } + $block_54 = { 6A ?? 68 ?? ?? ?? ?? FF 7? ?? FF 7? ?? FF 1? ?? ?? ?? ?? 85 ?? 0F 8E } + $block_55 = { 8D ?? ?? 5? 0F B7 ?? 5? 8D ?? ?? 5? FF 7? ?? E8 ?? ?? ?? ?? 84 ?? 74 } + $block_56 = { 5? 68 ?? ?? ?? ?? 6A ?? FF 1? ?? ?? ?? ?? 8B ?? 89 ?? ?? 3B ?? 0F 84 } + $block_57 = { 2B ?? 5? 83 ?? ?? 5? 6A ?? 89 ?? ?? FF D? 5? FF D? 8B ?? 85 ?? 0F 84 } + $block_58 = { 0F B7 ?? ?? ?? ?? ?? 66 ?? ?? ?? ?? ?? ?? ?? 83 ?? ?? 66 ?? ?? 75 } + $block_59 = { 0F 31 89 ?? ?? A1 ?? ?? ?? ?? 89 ?? ?? 89 ?? ?? 89 ?? ?? 33 ?? EB } + $block_60 = { 8B ?? ?? 8B ?? ?? 6A ?? 6A ?? 5? 5? FF 1? ?? ?? ?? ?? 85 ?? 0F 84 } + $block_61 = { 6A ?? C7 ?? ?? ?? ?? ?? ?? ?? ?? ?? FF 1? ?? ?? ?? ?? 85 ?? 0F 88 } + $block_62 = { 6A ?? 6A ?? C7 ?? ?? ?? ?? ?? ?? FF D? 5? FF D? 8B ?? 85 ?? 0F 84 } + $block_63 = { FF 7? ?? ?? 6A ?? FF 1? ?? ?? ?? ?? 8B ?? 89 ?? ?? ?? 3B ?? 0F 84 } + $block_64 = { 8B ?? ?? 6A ?? 6A ?? 89 ?? ?? FF D? 5? FF D? 89 ?? ?? 85 ?? 0F 84 } + $block_65 = { FF 7? ?? 8B ?? ?? 8D ?? ?? ?? ?? ?? 5? E8 ?? ?? ?? ?? 85 ?? 0F 84 } + $block_66 = { 5? 8B ?? 83 ?? ?? 83 ?? ?? ?? 5? 8B ?? ?? 5? 5? 8B ?? ?? 0F 8C } + $block_67 = { 8B ?? ?? 5? 6A ?? 89 ?? ?? FF 1? ?? ?? ?? ?? 8B ?? 85 ?? 0F 84 } + $block_68 = { 0F B7 ?? ?? 5? FF 1? ?? ?? ?? ?? B9 ?? ?? ?? ?? 66 ?? ?? 0F 87 } + $block_69 = { 5? 8B ?? 81 E? ?? ?? ?? ?? 5? 33 ?? F6 ?? ?? ?? ?? ?? ?? 0F 84 } + $block_70 = { 5? 8B ?? 5? 5? 66 ?? ?? ?? ?? 5? 5? 5? 8B ?? C6 ?? ?? ?? 0F 82 } + $block_71 = { 0F B7 ?? ?? 8D ?? ?? ?? ?? ?? ?? 89 ?? ?? 33 ?? 66 ?? ?? ?? 75 } + $block_72 = { 8B ?? ?? 6A ?? 6A ?? 89 ?? FF D? 5? FF D? 89 ?? ?? 85 ?? 0F 84 } + $block_73 = { 0F B7 ?? ?? ?? ?? ?? 66 ?? ?? ?? ?? ?? ?? 83 ?? ?? 66 ?? ?? 75 } + $block_74 = { 0F B7 ?? ?? 33 ?? 83 ?? ?? 33 ?? 33 ?? 89 ?? ?? 3B ?? 0F 8C } + $block_75 = { 8D ?? ?? 5? FF 7? ?? 8B ?? ?? 5? E8 ?? ?? ?? ?? 84 ?? 0F 84 } + $block_76 = { FF 7? ?? 6A ?? FF D? 5? FF 1? ?? ?? ?? ?? 8B ?? 85 ?? 0F 84 } + $block_77 = { 0F B6 ?? 8A ?? ?? ?? ?? ?? FE ?? F6 ?? 88 ?? ?? 80 F? ?? 72 } + $block_78 = { 5? 8B ?? 81 E? ?? ?? ?? ?? 5? 33 ?? 89 ?? ?? 39 ?? ?? 0F 84 } + $block_79 = { 5? 5? 68 ?? ?? ?? ?? 5? FF 1? ?? ?? ?? ?? 8B ?? 85 ?? 0F 84 } + $block_80 = { 0F B7 ?? ?? 03 ?? 8B ?? ?? 81 F? ?? ?? ?? ?? 89 ?? ?? 0F 85 } + $block_81 = { 5? 68 ?? ?? ?? ?? 5? FF 7? ?? FF 1? ?? ?? ?? ?? 85 ?? 0F 8E } + $block_82 = { 6A ?? 6A ?? 5? 5? 8D ?? ?? ?? ?? ?? 5? FF D? 85 ?? 0F 84 } + $block_83 = { 5? 6A ?? 6A ?? FF D? 5? FF D? 8B ?? 89 ?? ?? 85 ?? 0F 84 } + $block_84 = { 5? 68 ?? ?? ?? ?? 6A ?? FF D? 5? FF D? 8B ?? 85 ?? 0F 84 } + $block_85 = { 8B ?? ?? 83 ?? ?? 33 ?? 8B ?? F3 ?? 8B ?? ?? 0F 94 ?? 89 } + $block_86 = { 0F B7 ?? ?? 83 ?? ?? ?? 2B ?? 4? 89 ?? ?? 8B ?? 32 ?? 8D } + $block_87 = { 8B ?? ?? 8B ?? ?? 8D ?? ?? 5? E8 ?? ?? ?? ?? 85 ?? 0F 85 } + $block_88 = { 6A ?? 8D ?? ?? 5? 6A ?? 5? 5? FF 7? ?? FF D? 85 ?? 0F 85 } + $block_89 = { 8B ?? ?? 5? 6A ?? FF 1? ?? ?? ?? ?? 8B ?? 85 ?? 0F 84 } + $block_90 = { 8B ?? ?? 33 ?? 85 ?? 0F 94 ?? 8B ?? 89 ?? 85 ?? 0F 84 } + $block_91 = { 68 ?? ?? ?? ?? 6A ?? FF D? 5? FF D? 8B ?? 85 ?? 0F 84 } + $block_92 = { 8D ?? ?? 5? 8D ?? ?? 5? 5? E8 ?? ?? ?? ?? 84 ?? 0F 84 } + $block_93 = { 68 ?? ?? ?? ?? FF 1? ?? ?? ?? ?? 5? 8B ?? 5? 5? C9 C2 } + $block_94 = { 8B ?? ?? 5? E8 ?? ?? ?? ?? 33 ?? 89 ?? ?? 3B ?? 0F 84 } + $block_95 = { 33 ?? 83 ?? ?? 0F 95 ?? 89 ?? ?? 4? 89 ?? 33 ?? EB } + $block_96 = { 0F B7 ?? ?? 2B ?? 4? 83 ?? ?? ?? 89 ?? ?? 8B ?? 8D } + $block_97 = { 5? 5? 6A ?? FF 7? ?? FF 1? ?? ?? ?? ?? 85 ?? 0F 84 } + $block_98 = { 0F B7 ?? 66 ?? ?? 83 ?? ?? 83 ?? ?? 66 ?? ?? 75 } + $block_99 = { 5? 6A ?? 6A ?? FF D? 5? FF D? 8B ?? 85 ?? 0F 84 } + + condition: + hash.sha256(0, filesize) == "8ebc97e05c8e1073bda2efb6f4d00ad7e789260afa2c276f0c72740b838a0a93" or + hash.sha256(0, filesize) == "579fd8a0385482fb4c789561a30b09f25671e86422f40ef5cca2036b28f99648" or + 12 of them +} \ No newline at end of file diff --git a/BLUESPAWN-win-client/external/Win32.Trojan.Emotet.yar b/BLUESPAWN-win-client/external/Win32.Trojan.Emotet.yar new file mode 100644 index 00000000..341a2a9f --- /dev/null +++ b/BLUESPAWN-win-client/external/Win32.Trojan.Emotet.yar @@ -0,0 +1,182 @@ +rule Win32_Trojan_Emotet : tc_detection malicious +{ + meta: + + author = "ReversingLabs" + + source = "ReversingLabs" + status = "RELEASED" + sharing = "TLP:WHITE" + category = "MALWARE" + malware = "EMOTET" + description = "Yara rule that detects Emotet trojan." + + tc_detection_type = "Trojan" + tc_detection_name = "Emotet" + tc_detection_factor = 5 + + strings: + + $decrypt_resource_v1 = { + 55 8B EC 83 EC ?? 53 8B D9 8B C2 56 57 89 45 ?? 8B 3B 33 F8 8B C7 89 7D ?? 83 E0 ?? + 75 ?? 8D 77 ?? EB ?? 8B F7 2B F0 83 C6 ?? 8D 0C 36 E8 ?? ?? ?? ?? 8B D0 89 55 ?? 85 + D2 74 ?? 83 65 ?? ?? 8D 43 ?? 83 65 ?? ?? C1 EE ?? 8D 0C B0 8B F2 8B D9 2B D8 83 C3 + ?? C1 EB ?? 3B C1 0F 47 5D ?? 85 DB 74 ?? 8B 55 ?? 8B F8 8B 0F 8D 7F ?? 33 CA 0F B6 + C1 66 89 06 8B C1 C1 E8 ?? 8D 76 ?? 0F B6 C0 66 89 46 ?? C1 E9 ?? 0F B6 C1 66 89 46 + ?? C1 E9 ?? 0F B6 C1 66 89 46 ?? 8B 45 ?? 40 89 45 ?? 3B C3 72 ?? 8B 7D ?? 8B 55 ?? + 33 C0 66 89 04 7A 5F 5E 8B C2 5B 8B E5 5D C3 + } + + $generate_filename_v1 = { + 56 57 33 C0 BF ?? ?? ?? ?? 57 50 50 6A ?? 50 FF 15 ?? ?? ?? ?? BA ?? ?? ?? ?? B9 ?? + ?? ?? ?? E8 ?? ?? ?? ?? 68 ?? ?? ?? ?? 57 8B F0 56 68 ?? ?? ?? ?? 57 FF 15 ?? ?? ?? + ?? 83 C4 ?? 8B CE 5F 5E E9 + } + + $decrypt_resource_v2 = { + 55 8B EC 83 EC ?? 8B 41 ?? 8B 11 33 C2 53 56 8D 71 ?? 89 55 ?? 8D 58 ?? 89 45 ?? 83 + C6 ?? F6 C3 ?? 74 ?? 83 E3 ?? 83 C3 ?? B9 ?? ?? ?? ?? E8 ?? ?? ?? ?? BA ?? ?? ?? ?? + 8B C8 E8 ?? ?? ?? ?? FF D0 8D 14 1B B9 ?? ?? ?? ?? 52 6A ?? 50 E8 ?? ?? ?? ?? BA ?? + ?? ?? ?? 8B C8 E8 ?? ?? ?? ?? FF D0 89 45 ?? 85 C0 74 ?? C1 EB ?? 8B C8 57 33 C0 8D + 14 9E 33 DB 8B FA 2B FE 83 C7 ?? C1 EF ?? 3B F2 0F 47 F8 85 FF 74 ?? 8B 16 8D 49 ?? + 33 55 ?? 8D 76 ?? 0F B6 C2 43 66 89 41 ?? 8B C2 C1 E8 ?? 0F B6 C0 66 89 41 ?? C1 EA + ?? 0F B6 C2 66 89 41 ?? C1 EA ?? 0F B6 C2 66 89 41 ?? 3B DF 72 ?? 8B 45 ?? 33 D2 8B + 4D ?? 5F 66 89 14 41 8B C1 5E 5B 8B E5 5D C3 + } + + $generate_filename_v2 = { + 55 8B EC 81 EC ?? ?? ?? ?? 8D 85 ?? ?? ?? ?? 50 6A ?? 6A ?? 51 6A ?? B9 ?? ?? ?? ?? + E8 ?? ?? ?? ?? BA ?? ?? ?? ?? 8B C8 E8 ?? ?? ?? ?? FF D0 85 C0 0F 88 ?? ?? ?? ?? 56 + B9 ?? ?? ?? ?? E8 ?? ?? ?? ?? 8B 15 ?? ?? ?? ?? 8B F0 8D 85 ?? ?? ?? ?? 8D [1-5] 51 + 51 50 56 8D [1-5] 68 ?? ?? ?? ?? 51 B9 ?? ?? ?? ?? E8 ?? ?? ?? ?? BA ?? ?? ?? ?? 8B + C8 E8 ?? ?? ?? ?? FF D0 83 C4 ?? B9 ?? ?? ?? ?? E8 ?? ?? ?? ?? BA ?? ?? ?? ?? 8B C8 + E8 ?? ?? ?? ?? FF D0 56 6A ?? 50 B9 ?? ?? ?? ?? E8 ?? ?? ?? ?? BA ?? ?? ?? ?? 8B C8 + E8 ?? ?? ?? ?? FF D0 B8 ?? ?? ?? ?? 5E 8B E5 5D C3 33 C0 8B E5 5D C3 + } + + $decrypt_resource_v3 = { + 56 8B F1 BA [6-9] B9 ?? ?? ?? ?? E8 ?? ?? ?? ?? 59 FF D0 56 6A ?? 50 68 ?? ?? ?? ?? + BA ?? ?? ?? ?? B9 ?? ?? ?? ?? E8 ?? ?? ?? ?? 59 FF D0 5E C3 + } + + $generate_filename_v3 = { + 55 8B EC 81 EC ?? ?? ?? ?? 53 56 57 8B F1 8B FA 6A ?? 8D 4D ?? E8 ?? ?? ?? ?? BB ?? + ?? ?? ?? 8D 8D ?? ?? ?? ?? 53 E8 ?? ?? ?? ?? 53 8D 8D ?? ?? ?? ?? E8 ?? ?? ?? ?? 83 + C4 ?? 8D 85 ?? ?? ?? ?? BB ?? ?? ?? ?? 8B D3 56 50 BE ?? ?? ?? ?? [2-5] 8B CE E8 ?? + ?? ?? ?? 59 FF D0 57 8D 85 ?? ?? ?? ?? 8B D3 50 [2-5] 8B CE E8 ?? ?? ?? ?? 59 FF D0 + 8D 85 ?? ?? ?? ?? C7 45 ?? ?? ?? ?? ?? 89 45 ?? BA ?? ?? ?? ?? 8D 85 ?? ?? ?? ?? B9 + ?? ?? ?? ?? 89 45 ?? B8 ?? ?? ?? ?? 66 89 45 ?? 8D 45 ?? 50 68 ?? ?? ?? ?? E8 ?? ?? + ?? ?? 59 FF D0 F7 D8 5F 1B C0 5E 40 5B 8B E5 5D C3 + } + + $decrypt_resource_v4 = { + 56 57 8B FA E8 ?? ?? ?? ?? 8B F0 A1 ?? ?? ?? ?? 85 C0 75 ?? B9 ?? ?? ?? ?? E8 ?? ?? + ?? ?? BA ?? ?? ?? ?? 8B C8 E8 ?? ?? ?? ?? A3 ?? ?? ?? ?? 56 FF D0 8B 0D ?? ?? ?? ?? + 89 44 B9 ?? A1 ?? ?? ?? ?? 85 C0 75 ?? B9 ?? ?? ?? ?? E8 ?? ?? ?? ?? BA ?? ?? ?? ?? + 8B C8 E8 ?? ?? ?? ?? A3 ?? ?? ?? ?? FF D0 8B F8 A1 ?? ?? ?? ?? 85 C0 75 ?? B9 ?? ?? + ?? ?? E8 ?? ?? ?? ?? BA ?? ?? ?? ?? 8B C8 E8 ?? ?? ?? ?? A3 ?? ?? ?? ?? 56 6A ?? 57 + FF D0 5F 5E C3 + } + + $generate_filename_snippet_v4 = { + A1 ?? ?? ?? ?? 85 C0 75 ?? B9 ?? ?? ?? ?? E8 ?? ?? ?? ?? BA ?? ?? ?? ?? 8B C8 E8 ?? + ?? ?? ?? A3 ?? ?? ?? ?? 56 53 FF D0 A1 ?? ?? ?? ?? 85 C0 75 ?? B9 ?? ?? ?? ?? E8 ?? + ?? ?? ?? BA ?? ?? ?? ?? 8B C8 E8 ?? ?? ?? ?? A3 ?? ?? ?? ?? 56 FF D0 5F 5E 33 C9 8D + 04 43 66 89 08 5D 5B 59 C3 + } + + $decrypt_resource_snippet_v5 = { + C1 EE ?? 33 C0 55 33 ED 8B D3 8D 0C B7 8B F1 2B F7 83 C6 ?? C1 EE ?? 3B F9 0F 47 F0 + 85 F6 74 ?? 8B 5C 24 ?? 8B 0F 8D 7F ?? 33 CB 0F B6 C1 66 89 02 8B C1 C1 E8 ?? 8D 52 + ?? 0F B6 C0 66 89 42 ?? C1 E9 ?? 0F B6 C1 C1 E9 ?? 45 66 89 42 ?? 0F B6 C1 66 89 42 + ?? 3B EE 72 ?? 8B 5C 24 ?? 8B 44 24 ?? 33 C9 5D 66 89 0C 43 5F 5E 8B C3 5B 83 C4 ?? + C3 + } + + $decrypt_resource_snippet_v6 = { + C1 EE ?? 33 C0 55 33 ED 8B D3 8D 0C B7 8B F1 2B F7 83 C6 ?? C1 EE ?? 3B F9 0F 47 F0 + 85 F6 74 ?? 8B 5C 24 ?? 8B 0F 8D 7F ?? 33 CB 88 0A 8B C1 C1 E8 ?? 8D 52 ?? C1 E9 ?? + 88 42 ?? 88 4A ?? C1 E9 ?? 45 88 4A ?? 3B EE 72 ?? 8B 5C 24 ?? 8B 44 24 ?? 5D C6 04 + 03 ?? 5F 5E 8B C3 5B 83 C4 ?? C3 + } + + $liblzf_decompression_1 = { + 83 EC ?? 8B 44 24 ?? 53 55 8D 2C 11 89 4C 24 ?? 8B 54 24 ?? 33 DB 03 C2 89 6C 24 ?? + 56 89 44 24 ?? 0F B6 41 ?? 8D 72 ?? 0F B6 11 C1 E2 ?? 0B D0 8D 45 ?? 89 44 24 ?? 57 + 8B F9 3B C8 0F 83 ?? ?? ?? ?? 0F B6 47 ?? C1 E2 ?? 0B D0 6B C2 ?? 8B CA C1 E9 ?? 33 + CA 89 54 24 ?? 8B 54 24 ?? C1 E9 ?? 2B C8 8B 44 24 ?? 81 E1 ?? ?? ?? ?? 8B 2C 88 8B + C7 2B 44 24 ?? 03 6C 24 ?? 89 04 8A 8B C7 8B 54 24 ?? 2B C5 48 89 44 24 ?? 3D ?? ?? + ?? ?? 0F 8D ?? ?? ?? ?? 3B EA 0F 86 ?? ?? ?? ?? 8A 45 ?? 3A 47 ?? 0F 85 ?? ?? ?? ?? + 0F B6 55 ?? 8D 4F ?? 0F B6 45 ?? 89 4C 24 ?? 0F B6 09 C1 E2 ?? 0B D0 C1 E1 ?? 0F B6 + 07 0B C8 3B D1 0F 85 ?? ?? ?? ?? 8B 44 24 ?? B9 ?? ?? ?? ?? 2B C7 3B C1 6A ?? 0F 47 + C1 89 44 24 ?? 8D 46 ?? 5A 3B 44 24 ?? 72 ?? 33 C9 8B C6 85 DB 0F 94 C1 2B C1 83 C0 + ?? 3B 44 24 ?? 0F 83 ?? ?? ?? ?? 8B C6 8D 4B ?? 2B C3 88 48 ?? 33 C0 85 DB 8B 5C 24 + ?? 0F 94 C0 2B F0 83 FB ?? 0F 86 ?? ?? ?? ?? 8A 45 ?? 6A ?? 5A 3A 47 ?? 0F 85 ?? ?? + ?? ?? 8A 45 ?? 6A ?? 5A 3A 47 ?? 0F 85 ?? ?? ?? ?? 8A 45 ?? 6A ?? 5A 3A 47 ?? 0F 85 + ?? ?? ?? ?? 8A 45 ?? 6A ?? 5A 3A 47 ?? 0F 85 ?? ?? ?? ?? 8A 45 ?? 6A ?? 5A 3A 47 + } + + $liblzf_decompression_2 = { + 0F 85 ?? ?? ?? ?? 8A 45 ?? 6A ?? 5A 3A 47 ?? 0F 85 ?? ?? ?? ?? 8A 45 ?? 6A ?? 5A 3A + 47 ?? 75 ?? 8A 45 ?? 6A ?? 5A 3A 47 ?? 75 ?? 8A 45 ?? 6A ?? 5A 3A 47 ?? 75 ?? 8A 45 + ?? 6A ?? 5A 3A 47 ?? 75 ?? 8A 45 ?? 6A ?? 5A 3A 47 ?? 75 ?? 8A 45 ?? 6A ?? 5A 3A 47 + ?? 75 ?? 8A 45 ?? 6A ?? 5A 3A 47 ?? 75 ?? 8A 45 ?? 6A ?? 5A 3A 47 ?? 75 ?? 8A 45 ?? + 6A ?? 5A 3A 47 ?? 75 ?? 8A 45 ?? 6A ?? 5A 3A 47 ?? 75 ?? 8D 0C 3A 2B EF 42 41 3B D3 + 73 ?? 8A 04 29 3A 01 74 ?? 8B 5C 24 ?? 83 EA ?? 83 FA ?? 73 ?? 8B CB 8A C2 C1 F9 ?? + C0 E0 ?? 02 C8 88 0E 46 EB ?? 8B C3 C1 F8 ?? 2C ?? 88 06 8D 42 ?? 88 46 ?? 83 C6 ?? + 8B 7C 24 ?? 8B 44 24 ?? 47 88 1E 03 FA 33 DB 83 C6 ?? 3B F8 72 ?? 8B 6C 24 ?? 8D 46 + ?? 3B 44 24 ?? 76 ?? 33 C0 EB ?? 3B 74 24 ?? 73 ?? 8A 07 43 88 06 46 8B 44 24 ?? 47 + 83 FB ?? 75 ?? C6 46 ?? ?? 33 DB 46 3B F8 73 ?? 8B 54 24 ?? E9 ?? ?? ?? ?? 8A 07 43 + 88 06 46 47 83 FB ?? 75 ?? C6 46 ?? ?? 33 DB 46 3B FD 72 ?? 8B CE 8D 53 ?? 2B CB 88 + 51 ?? 33 C9 85 DB 0F 94 C1 2B F1 2B 74 24 ?? 8B C6 5F 5E 5D 5B 83 C4 ?? C3 + } + + $decrypt_resource_snippet_v7 = { + C1 EE ?? 3B F9 0F 47 F0 85 F6 74 ?? 8B 5C 24 ?? 8B 0F 8D 7F ?? 33 CB 0F B6 C1 66 89 + 02 8B C1 C1 E8 ?? 8D 52 ?? 0F B6 C0 66 89 42 ?? C1 E9 ?? 0F B6 C1 C1 E9 ?? 45 66 89 + 42 ?? 0F B6 C1 66 89 42 ?? 3B EE 72 ?? 8B 5C 24 ?? 8B 44 24 ?? 33 C9 5D 66 89 0C 43 + 5F 5E 8B C3 5B 83 C4 ?? C3 + } + + $state_machine_snippet_v7 = { + 8D 84 24 ?? ?? ?? ?? 50 68 ?? ?? ?? ?? FF B4 24 ?? ?? ?? ?? FF B4 24 ?? ?? ?? ?? 8B + 94 24 ?? ?? ?? ?? 8B 8C 24 ?? ?? ?? ?? E8 ?? ?? ?? ?? 89 84 24 ?? ?? ?? ?? 8D 84 24 + ?? ?? ?? ?? 50 68 ?? ?? ?? ?? FF B4 24 ?? ?? ?? ?? FF B4 24 ?? ?? ?? ?? 8B 54 24 ?? + 8B 8C 24 ?? ?? ?? ?? E8 ?? ?? ?? ?? FF B4 24 ?? ?? ?? ?? 8B 8C 24 ?? ?? ?? ?? 8D 94 + 24 ?? ?? ?? ?? 89 84 24 ?? ?? ?? ?? 8D 84 24 ?? ?? ?? ?? 50 E8 ?? ?? ?? ?? FF 74 24 + ?? 8B F0 FF B4 24 ?? ?? ?? ?? 8B 8C 24 ?? ?? ?? ?? F7 DE 8B 94 24 ?? ?? ?? ?? 1B F6 + 81 E6 ?? ?? ?? ?? 81 C6 ?? ?? ?? ?? E8 ?? ?? ?? ?? FF B4 24 ?? ?? ?? ?? FF B4 24 ?? + ?? ?? ?? 8B 94 24 ?? ?? ?? ?? 8B 4C 24 ?? E8 ?? ?? ?? ?? 83 C4 ?? E9 + } + + condition: + uint16(0) == 0x5A4D and + ( + $decrypt_resource_v1 and + $generate_filename_v1 + ) or + ( + $decrypt_resource_v2 and + $generate_filename_v2 + ) or + ( + $decrypt_resource_v3 and + $generate_filename_v3 + ) or + ( + $decrypt_resource_v4 and + $generate_filename_snippet_v4 + ) or + ( + $decrypt_resource_snippet_v5 and + all of ($liblzf_decompression_*) + ) or + ( + $decrypt_resource_snippet_v6 and + all of ($liblzf_decompression_*) + ) or + ( + $decrypt_resource_snippet_v7 and + $state_machine_snippet_v7 + ) +} \ No newline at end of file diff --git a/BLUESPAWN-win-client/external/Windows_Shellcode_Generic.yar b/BLUESPAWN-win-client/external/Windows_Shellcode_Generic.yar new file mode 100644 index 00000000..ae2fe39d --- /dev/null +++ b/BLUESPAWN-win-client/external/Windows_Shellcode_Generic.yar @@ -0,0 +1,38 @@ +rule Windows_Shellcode_Generic_8c487e57 { + meta: + author = "Elastic Security" + id = "8c487e57-4b8c-488e-a1d9-786ff935fd2c" + fingerprint = "834caf96192a513aa93ac48fb8d2f3326bf9f08acaf7a27659f688b26e3e57e4" + creation_date = "2022-05-23" + last_modified = "2022-07-18" + threat_name = "Windows.Shellcode.Generic" + severity = 100 + arch_context = "x86" + scan_context = "file, memory" + license = "Elastic License v2" + os = "windows" + strings: + $a = { FC E8 89 00 00 00 60 89 E5 31 D2 64 8B 52 30 8B 52 0C 8B 52 14 8B 72 28 0F B7 4A 26 31 FF 31 C0 } + condition: + all of them +} + +rule Windows_Shellcode_Generic_f27d7beb { + meta: + author = "Elastic Security" + id = "f27d7beb-5ce0-4831-b1ad-320b346612c3" + fingerprint = "3f8dd6733091ec229e1bebe9e4cd370ad47ab2e3678be4c2d9c450df731a6e5c" + creation_date = "2022-06-08" + last_modified = "2022-09-29" + threat_name = "Windows.Shellcode.Generic" + severity = 100 + arch_context = "x86" + scan_context = "file, memory" + license = "Elastic License v2" + os = "windows" + strings: + $a = { 53 48 89 E3 66 83 E4 00 48 B9 [8] BA 01 00 00 00 41 B8 00 00 00 00 48 B8 [8] FF D0 48 89 DC 5B C3 } + condition: + all of them +} + diff --git a/BLUESPAWN-win-client/external/Windows_Trojan_AgentTesla.yar b/BLUESPAWN-win-client/external/Windows_Trojan_AgentTesla.yar new file mode 100644 index 00000000..c82ef50a --- /dev/null +++ b/BLUESPAWN-win-client/external/Windows_Trojan_AgentTesla.yar @@ -0,0 +1,98 @@ +rule Windows_Trojan_AgentTesla_d3ac2b2f { + meta: + author = "Elastic Security" + id = "d3ac2b2f-14fc-4851-8a57-41032e386aeb" + fingerprint = "cbbb56fe6cd7277ae9595a10e05e2ce535a4e6bf205810be0bbce3a883b6f8bc" + creation_date = "2021-03-22" + last_modified = "2022-06-20" + threat_name = "Windows.Trojan.AgentTesla" + reference_sample = "65463161760af7ab85f5c475a0f7b1581234a1e714a2c5a555783bdd203f85f4" + severity = 100 + arch_context = "x86" + scan_context = "file, memory" + license = "Elastic License v2" + os = "windows" + strings: + $a1 = "GetMozillaFromLogins" ascii fullword + $a2 = "AccountConfiguration+username" wide fullword + $a3 = "MailAccountConfiguration" ascii fullword + $a4 = "KillTorProcess" ascii fullword + $a5 = "SmtpAccountConfiguration" ascii fullword + $a6 = "GetMozillaFromSQLite" ascii fullword + $a7 = "Proxy-Agent: HToS5x" wide fullword + $a8 = "set_BindingAccountConfiguration" ascii fullword + $a9 = "doUsernamePasswordAuth" ascii fullword + $a10 = "SafariDecryptor" ascii fullword + $a11 = "get_securityProfile" ascii fullword + $a12 = "get_useSeparateFolderTree" ascii fullword + $a13 = "get_DnsResolver" ascii fullword + $a14 = "get_archivingScope" ascii fullword + $a15 = "get_providerName" ascii fullword + $a16 = "get_ClipboardHook" ascii fullword + $a17 = "get_priority" ascii fullword + $a18 = "get_advancedParameters" ascii fullword + $a19 = "get_disabledByRestriction" ascii fullword + $a20 = "get_LastAccessed" ascii fullword + $a21 = "get_avatarType" ascii fullword + $a22 = "get_signaturePresets" ascii fullword + $a23 = "get_enableLog" ascii fullword + $a24 = "TelegramLog" ascii fullword + $a25 = "generateKeyV75" ascii fullword + $a26 = "set_accountName" ascii fullword + $a27 = "set_InternalServerPort" ascii fullword + $a28 = "set_bindingConfigurationUID" ascii fullword + $a29 = "set_IdnAddress" ascii fullword + $a30 = "set_GuidMasterKey" ascii fullword + $a31 = "set_username" ascii fullword + $a32 = "set_version" ascii fullword + $a33 = "get_Clipboard" ascii fullword + $a34 = "get_Keyboard" ascii fullword + $a35 = "get_ShiftKeyDown" ascii fullword + $a36 = "get_AltKeyDown" ascii fullword + $a37 = "get_Password" ascii fullword + $a38 = "get_PasswordHash" ascii fullword + $a39 = "get_DefaultCredentials" ascii fullword + condition: + 8 of ($a*) +} + +rule Windows_Trojan_AgentTesla_e577e17e { + meta: + author = "Elastic Security" + id = "e577e17e-5c42-4431-8c2d-0c1153128226" + fingerprint = "009cb27295a1aa0dde84d29ee49b8fa2e7a6cec75eccb7534fec3f5c89395a9d" + creation_date = "2022-03-11" + last_modified = "2022-04-12" + threat_name = "Windows.Trojan.AgentTesla" + reference_sample = "ed43ddb536e6c3f8513213cd6eb2e890b73e26d5543c0ba1deb2690b5c0385b6" + severity = 100 + arch_context = "x86" + scan_context = "file, memory" + license = "Elastic License v2" + os = "windows" + strings: + $a = { 20 4D 27 00 00 33 DB 19 0B 00 07 17 FE 01 2C 02 18 0B 00 07 } + condition: + all of them +} + +rule Windows_Trojan_AgentTesla_f2a90d14 { + meta: + author = "Elastic Security" + id = "f2a90d14-7212-41a5-a2cd-a6a6dedce96e" + fingerprint = "829c827069846ba1e1378aba8ee6cdc801631d769dc3dce15ccaacd4068a88a6" + creation_date = "2022-03-11" + last_modified = "2022-04-12" + threat_name = "Windows.Trojan.AgentTesla" + reference_sample = "ed43ddb536e6c3f8513213cd6eb2e890b73e26d5543c0ba1deb2690b5c0385b6" + severity = 100 + arch_context = "x86" + scan_context = "file, memory" + license = "Elastic License v2" + os = "windows" + strings: + $a = { 0B FE 01 2C 0B 07 16 7E 08 00 00 04 A2 1F 0C 0C 00 08 1F 09 FE 01 } + condition: + all of them +} + diff --git a/BLUESPAWN-win-client/external/Windows_Trojan_Bumblebee.yar b/BLUESPAWN-win-client/external/Windows_Trojan_Bumblebee.yar new file mode 100644 index 00000000..5bbe77d5 --- /dev/null +++ b/BLUESPAWN-win-client/external/Windows_Trojan_Bumblebee.yar @@ -0,0 +1,47 @@ +rule Windows_Trojan_Bumblebee_35f50bea { + meta: + author = "Elastic Security" + id = "35f50bea-c497-4cc6-b915-8ad3aca7bee6" + fingerprint = "f2e07a9b7d143ca13852f723e7d0bd55365d6f8b5d9315b7e24b7f1101010820" + creation_date = "2022-04-28" + last_modified = "2022-06-09" + threat_name = "Windows.Trojan.Bumblebee" + reference_sample = "9fff05a5aa9cbbf7d37bc302d8411cbd63fb3a28dc6f5163798ae899b9edcda6" + severity = 100 + arch_context = "x86" + scan_context = "file, memory" + license = "Elastic License v2" + os = "windows" + strings: + $a1 = { 43 28 45 33 D2 4D 8D 0C 00 44 88 54 24 20 66 48 0F 7E C9 66 0F } + $a2 = { 31 DA 48 31 C7 45 ?? C9 B9 E8 03 C7 45 ?? 00 00 BA 01 C7 45 ?? 00 00 00 48 C7 45 ?? B8 88 77 66 C7 45 ?? 55 44 33 22 C7 45 ?? 11 FF D0 EB C6 45 } + condition: + any of them +} + +rule Windows_Trojan_Bumblebee_70bed4f3 { + meta: + author = "Elastic Security" + id = "70bed4f3-f515-4186-ac6c-e9db72b8a95a" + fingerprint = "016477598ce022cc75f591d1c72535a3353ecc4e888642e72aa29476464a8c2f" + creation_date = "2022-04-28" + last_modified = "2022-06-09" + threat_name = "Windows.Trojan.Bumblebee" + reference_sample = "9fff05a5aa9cbbf7d37bc302d8411cbd63fb3a28dc6f5163798ae899b9edcda6" + severity = 100 + arch_context = "x86" + scan_context = "file, memory" + license = "Elastic License v2" + os = "windows" + strings: + $a1 = "Checking Virtual PC processes %s " wide fullword + $a2 = "SELECT * FROM Win32_ComputerSystemProduct" ascii fullword + $a3 = "Injection-Date" ascii fullword + $a4 = " -Command \"Wait-Process -Id " ascii fullword + $a5 = "%WINDIR%\\System32\\wscript.exe" wide fullword + $a6 = "objShell.Run \"rundll32.exe my_application_path" + $a7 = "Checking reg key HARDWARE\\Description\\System - %s is set to %s" wide fullword + condition: + 5 of them +} + diff --git a/BLUESPAWN-win-client/external/Windows_Trojan_Dridex.yar b/BLUESPAWN-win-client/external/Windows_Trojan_Dridex.yar new file mode 100644 index 00000000..c08613ab --- /dev/null +++ b/BLUESPAWN-win-client/external/Windows_Trojan_Dridex.yar @@ -0,0 +1,40 @@ +rule Windows_Trojan_Dridex_63ddf193 { + meta: + author = "Elastic Security" + id = "63ddf193-31a6-4139-b452-960fe742da93" + fingerprint = "7b4c5fde8e107a67ff22f3012200e56ec452e0a57a49edb2e06ee225ecfe228c" + creation_date = "2021-08-07" + last_modified = "2021-10-04" + threat_name = "Windows.Trojan.Dridex" + reference_sample = "b1d66350978808577159acc7dc7faaa273e82c103487a90bf0d040afa000cb0d" + severity = 90 + arch_context = "x86" + scan_context = "file, memory" + license = "Elastic License v2" + os = "windows" + strings: + $a1 = "snxhk.dll" ascii fullword + $a2 = "LondLibruryA" ascii fullword + condition: + all of them +} + +rule Windows_Trojan_Dridex_c6f01353 { + meta: + author = "Elastic Security" + id = "c6f01353-cf55-4eac-9f25-6f9cce3b7990" + fingerprint = "fbdb230032e3655448d26a679afc612c79d33ac827bcd834e54fe5c05f04d828" + creation_date = "2021-08-07" + last_modified = "2021-10-04" + threat_name = "Windows.Trojan.Dridex" + reference_sample = "739682ccb54170e435730c54ba9f7e09f32a3473c07d2d18ae669235dcfe84de" + severity = 100 + arch_context = "x86" + scan_context = "file, memory" + license = "Elastic License v2" + os = "windows" + strings: + $a1 = { 56 57 55 8B FA 85 C9 74 58 85 FF 74 54 0F B7 37 85 F6 75 04 } + condition: + all of them +} \ No newline at end of file diff --git a/BLUESPAWN-win-client/external/Windows_Trojan_Glupteba.yar b/BLUESPAWN-win-client/external/Windows_Trojan_Glupteba.yar new file mode 100644 index 00000000..95c9706d --- /dev/null +++ b/BLUESPAWN-win-client/external/Windows_Trojan_Glupteba.yar @@ -0,0 +1,45 @@ +rule Windows_Trojan_Glupteba_70557305 { + meta: + author = "Elastic Security" + id = "70557305-3d11-4dde-b53b-94f1ecc0380b" + fingerprint = "bac7daa5c491de8f8a75b203cdb1cdab2c10633aa45a82e6b04d2f577e3e8415" + creation_date = "2021-08-08" + last_modified = "2021-10-04" + threat_name = "Windows.Trojan.Glupteba" + reference_sample = "3ad13fd7968f9574d2c822e579291c77a0c525991cfb785cbe6cdd500b737218" + severity = 100 + arch_context = "x86" + scan_context = "file, memory" + license = "Elastic License v2" + os = "windows" + strings: + $a1 = "%TEMP%\\app.exe && %TEMP%\\app.exe" + $a2 = "is unavailable%d smbtest" + $a3 = "discovered new server %s" + $a4 = "uldn't get usernamecouldn't hide servicecouldn't" + $a5 = "TERMINATE PROCESS: %ws, %d, %d" ascii fullword + $a6 = "[+] Extracting vulnerable driver as \"%ws\"" ascii fullword + condition: + all of them +} + +rule Windows_Trojan_Glupteba_4669dcd6 { + meta: + author = "Elastic Security" + id = "4669dcd6-8e04-416d-91c0-f45816430869" + fingerprint = "5b598640f42a99b00d481031f5fcf143ffcc32ef002eac095a14edb18d5b02c9" + creation_date = "2021-08-08" + last_modified = "2021-10-04" + threat_name = "Windows.Trojan.Glupteba" + reference_sample = "1b55042e06f218546db5ddc52d140be4303153d592dcfc1ce90e6077c05e77f7" + severity = 100 + arch_context = "x86" + scan_context = "file, memory" + license = "Elastic License v2" + os = "windows" + strings: + $a1 = { 40 C3 8B 44 24 48 8B 4C 24 44 89 81 AC 00 00 00 8B 44 24 4C 89 81 B0 00 } + condition: + all of them +} + diff --git a/BLUESPAWN-win-client/external/Windows_Trojan_IcedID.yar b/BLUESPAWN-win-client/external/Windows_Trojan_IcedID.yar new file mode 100644 index 00000000..0cc5c8aa --- /dev/null +++ b/BLUESPAWN-win-client/external/Windows_Trojan_IcedID.yar @@ -0,0 +1,227 @@ +rule Windows_Trojan_IcedID_1cd868a6 { + meta: + author = "Elastic Security" + id = "1cd868a6-d2ec-4c48-a69a-aaa6c7af876c" + fingerprint = "3e76b3ac03c5268923cfd5d0938745d66cda273d436b83bee860250fdcca6327" + creation_date = "2021-02-28" + last_modified = "2021-08-23" + threat_name = "Windows.Trojan.IcedID" + reference = "https://www.fireeye.com/blog/threat-research/2021/02/melting-unc2198-icedid-to-ransomware-operations.html" + reference_sample = "68dce9f214e7691db77a2f03af16a669a3cb655699f31a6c1f5aaede041468ff" + severity = 100 + arch_context = "x86" + scan_context = "file, memory" + license = "Elastic License v2" + os = "windows" + strings: + $a = { 24 2C B9 09 00 00 00 2A C2 2C 07 88 44 24 0F 0F B6 C3 6B C0 43 89 44 } + condition: + all of them +} + +rule Windows_Trojan_IcedID_237e9fb6 { + meta: + author = "Elastic Security" + id = "237e9fb6-b5fa-4747-af1f-533c76a5a639" + fingerprint = "e2ea6d1477ce4132f123b6c00101a063f7bba7acf38be97ee8dca22cc90ed511" + creation_date = "2021-02-28" + last_modified = "2021-08-23" + threat_name = "Windows.Trojan.IcedID" + reference = "https://www.fireeye.com/blog/threat-research/2021/02/melting-unc2198-icedid-to-ransomware-operations.html" + reference_sample = "b21f9afc6443548427bf83b5f93e7a54ac3af306d9d71b8348a6f146b2819457" + severity = 100 + arch_context = "x86" + scan_context = "file, memory" + license = "Elastic License v2" + os = "windows" + strings: + $a = { 60 8B 55 D4 3B D0 7E 45 83 F8 08 0F 4C 45 EC 3B D0 8D 3C 00 0F } + condition: + all of them +} + +rule Windows_Trojan_IcedID_f1ce2f0a { + meta: + author = "Elastic Security" + id = "f1ce2f0a-0d34-46a4-8e42-0906adf4dc1b" + fingerprint = "1940c4bf5d8011dc7edb8dde718286554ed65f9e96fe61bfa90f6182a4b8ca9e" + creation_date = "2021-02-28" + last_modified = "2021-08-23" + threat_name = "Windows.Trojan.IcedID" + reference = "https://www.fireeye.com/blog/threat-research/2021/02/melting-unc2198-icedid-to-ransomware-operations.html" + reference_sample = "b21f9afc6443548427bf83b5f93e7a54ac3af306d9d71b8348a6f146b2819457" + severity = 100 + arch_context = "x86" + scan_context = "file, memory" + license = "Elastic License v2" + os = "windows" + strings: + $a = { 8B C8 8B C6 F7 E2 03 CA 8B 54 24 14 2B D0 8B 44 24 14 89 54 } + condition: + all of them +} + +rule Windows_Trojan_IcedID_08530e24 { + meta: + author = "Elastic Security" + id = "08530e24-5b84-40a4-bc5c-ead74762faf8" + fingerprint = "f2b5768b87eec7c1c9730cc99364cc90e87fd9201bf374418ad008fd70d321af" + creation_date = "2021-03-21" + last_modified = "2021-08-23" + threat_name = "Windows.Trojan.IcedID" + reference_sample = "31db92c7920e82e49a968220480e9f130dea9b386083b78a79985b554ecdc6e4" + severity = 100 + arch_context = "x86" + scan_context = "file, memory" + license = "Elastic License v2" + os = "windows" + strings: + $a1 = "c:\\ProgramData\\" ascii fullword + $a2 = "loader_dll_64.dll" ascii fullword + $a3 = "aws.amazon.com" wide fullword + $a4 = "Cookie: __gads=" wide fullword + $b1 = "LookupAccountNameW" ascii fullword + $b2 = "GetUserNameA" ascii fullword + $b3 = "; _gat=" wide fullword + $b4 = "; _ga=" wide fullword + $b5 = "; _u=" wide fullword + $b6 = "; __io=" wide fullword + $b7 = "; _gid=" wide fullword + $b8 = "%s%u" wide fullword + $b9 = "i\\|9*" ascii fullword + $b10 = "WinHttpSetStatusCallback" ascii fullword + condition: + all of ($a*) and 5 of ($b*) +} + +rule Windows_Trojan_IcedID_11d24d35 { + meta: + author = "Elastic Security" + id = "11d24d35-6bff-4fac-83d8-4d152aa0be57" + fingerprint = "155e5df0f3f598cdc21e5c85bcf21c1574ae6788d5f7e0058be823c71d06c21e" + creation_date = "2022-02-16" + last_modified = "2022-04-06" + threat_name = "Windows.Trojan.IcedID" + reference_sample = "b8d794f6449669ff2d11bc635490d9efdd1f4e92fcb3be5cdb4b40e4470c0982" + severity = 100 + arch_context = "x86" + scan_context = "file, memory" + license = "Elastic License v2" + os = "windows" + strings: + $a1 = "C:\\Users\\user\\source\\repos\\anubis\\bin\\RELEASE\\loader_dll_64.pdb" ascii fullword + $a2 = "loader_dll_64.dll" ascii fullword + condition: + 1 of ($a*) +} + +rule Windows_Trojan_IcedID_0b62e783 { + meta: + author = "Elastic Security" + id = "0b62e783-5c1a-4377-8338-1c53194b8d01" + fingerprint = "2f473fbe6338d9663808f1a3615cf8f0f6f9780fbce8f4a3c24f0ddc5f43dd4a" + creation_date = "2022-04-06" + last_modified = "2022-06-09" + threat_name = "Windows.Trojan.IcedID" + reference_sample = "b9fb0a4c28613c556fb67a0b0e7c9d4c1236b60a161ad935e7387aec5911413a" + severity = 100 + arch_context = "x86" + scan_context = "file, memory" + license = "Elastic License v2" + os = "windows" + strings: + $a = { 89 44 95 E0 83 E0 07 8A C8 42 8B 44 85 E0 D3 C8 FF C0 42 89 44 } + condition: + all of them +} + +rule Windows_Trojan_IcedID_91562d18 { + meta: + author = "Elastic Security" + id = "91562d18-28a1-4349-9e4b-92ad165510c9" + fingerprint = "024bbd15da6bc759e321779881b466b500f6364a1d67bbfdc950aedccbfbc022" + creation_date = "2022-04-06" + last_modified = "2022-06-09" + threat_name = "Windows.Trojan.IcedID" + reference_sample = "b9fb0a4c28613c556fb67a0b0e7c9d4c1236b60a161ad935e7387aec5911413a" + severity = 100 + arch_context = "x86" + scan_context = "file, memory" + license = "Elastic License v2" + os = "windows" + strings: + $a = { 44 8B 4C 19 2C 4C 03 D6 74 1C 4D 85 C0 74 17 4D 85 C9 74 12 41 } + condition: + all of them +} + +rule Windows_Trojan_IcedID_2086aecb { + meta: + author = "Elastic Security" + id = "2086aecb-161b-4102-89c7-580fb9ac3759" + fingerprint = "c80ba4185d671811d8ea74fbe4e79353d3fa71d7ef29fa385a713bb7d565c13b" + creation_date = "2022-04-06" + last_modified = "2022-06-09" + threat_name = "Windows.Trojan.IcedID" + reference_sample = "b9fb0a4c28613c556fb67a0b0e7c9d4c1236b60a161ad935e7387aec5911413a" + severity = 100 + arch_context = "x86" + scan_context = "file, memory" + license = "Elastic License v2" + os = "windows" + strings: + $a = { 4C 8D 05 ?? ?? ?? ?? 42 8A 44 01 ?? 42 32 04 01 88 44 0D ?? 48 FF C1 48 83 F9 20 72 ?? } + condition: + all of them +} + +rule Windows_Trojan_IcedID_48029e37 { + meta: + author = "Elastic Security" + id = "48029e37-b392-4d53-b0de-2079f6a8a9d9" + fingerprint = "375266b526fe14354550d000d3a10dde3f6a85e11f4ba5cab14d9e1f878de51e" + creation_date = "2022-04-06" + last_modified = "2022-06-09" + threat_name = "Windows.Trojan.IcedID" + reference_sample = "b9fb0a4c28613c556fb67a0b0e7c9d4c1236b60a161ad935e7387aec5911413a" + severity = 100 + arch_context = "x86" + scan_context = "file, memory" + license = "Elastic License v2" + os = "windows" + strings: + $a = { 48 C1 E3 10 0F 31 48 C1 E2 ?? 48 0B C2 0F B7 C8 48 0B D9 8B CB 83 E1 } + condition: + all of them +} + +rule Windows_Trojan_IcedID_56459277 { + meta: + author = "Elastic Security" + id = "56459277-432c-437c-9350-f5efaa60ffca" + fingerprint = "9947beba82e6bfa053912e691982e32063251491ff18c002e060cf53574e098c" + creation_date = "2022-08-21" + last_modified = "2022-09-29" + threat_name = "Windows.Trojan.IcedID" + reference_sample = "21b1a635db2723266af4b46539f67253171399830102167c607c6dbf83d6d41c" + severity = 100 + arch_context = "x86" + scan_context = "file, memory" + license = "Elastic License v2" + os = "windows" + strings: + $str1 = "cookie.tar" ascii fullword + $str2 = "passff.tar" ascii fullword + $str3 = "\\sqlite64.dll" ascii fullword + $str4 = "Cookie: session=" ascii fullword + $str5 = "{0ccac395-7d1d-4641-913a-7558812ddea2}" ascii fullword + $str6 = "mail_vault" wide fullword + $seq_decrypt_payload = { 42 0F B6 04 32 48 FF C2 03 C8 C1 C1 ?? 48 3B D7 72 ?? 44 33 F9 45 33 C9 44 89 3C 3B 48 85 FF 74 ?? 41 0F B6 D1 44 8D 42 01 83 E2 03 41 83 E0 03 } + $seq_compute_hash = { 0F B6 4C 14 ?? 48 FF C2 8B C1 83 E1 ?? 48 C1 E8 ?? 41 0F B7 04 41 66 89 03 48 8D 5B ?? 41 0F B7 0C 49 66 89 4B ?? 48 83 FA ?? 72 ?? 66 44 89 03 B8 ?? ?? ?? ?? } + $seq_format_string = { C1 E8 ?? 44 0B D8 41 0F B6 D0 8B C1 C1 E2 ?? C1 E1 ?? 25 ?? ?? ?? ?? 0B C1 41 C1 E8 ?? 41 0F B6 CA 41 0B D0 44 8B 44 24 ?? C1 E0 ?? C1 E1 ?? 41 C1 EB ?? 44 0B D8 41 C1 EA ?? 0F B7 44 24 ?? 41 0B CA } + $seq_custom_ror = { 41 8A C0 41 8A D0 02 C0 0F B6 C8 8A C1 44 8B C1 34 ?? 84 D2 0F B6 C8 44 0F 48 C1 49 83 EB ?? } + $seq_string_decrypt = { 0F B7 44 24 ?? 0F B7 4C 24 ?? 3B C1 7D ?? 8B 4C 24 ?? E8 ?? ?? ?? ?? 89 44 24 ?? 0F B7 44 24 ?? 48 8B 4C 24 ?? 0F B6 04 01 0F B6 4C 24 ?? 33 C1 0F B7 4C 24 ?? 48 8B 54 24 ?? 88 04 0A EB ?? } + condition: + 5 of ($str*) or 2 of ($seq_*) +} + diff --git a/BLUESPAWN-win-client/external/Windows_Trojan_Lokibot.yar b/BLUESPAWN-win-client/external/Windows_Trojan_Lokibot.yar new file mode 100644 index 00000000..db46589c --- /dev/null +++ b/BLUESPAWN-win-client/external/Windows_Trojan_Lokibot.yar @@ -0,0 +1,40 @@ +rule Windows_Trojan_Lokibot_1f885282 { + meta: + author = "Elastic Security" + id = "1f885282-b60e-491e-ae1b-d26825e5aadb" + fingerprint = "a7519bb0751a6c928af7548eaed2459e0ed26128350262d1278f74f2ad91331b" + creation_date = "2021-06-22" + last_modified = "2021-08-23" + threat_name = "Windows.Trojan.Lokibot" + reference_sample = "916eded682d11cbdf4bc872a8c1bcaae4d4e038ac0f869f59cc0a83867076409" + severity = 100 + arch_context = "x86" + scan_context = "file, memory" + license = "Elastic License v2" + os = "windows" + strings: + $a1 = "MAC=%02X%02X%02XINSTALL=%08X%08Xk" fullword + condition: + all of them +} + +rule Windows_Trojan_Lokibot_0f421617 { + meta: + author = "Elastic Security" + id = "0f421617-df2b-4cb5-9d10-d984f6553012" + fingerprint = "9ff5d594428e4a5de84f0142dfa9f54cb75489192461deb978c70f1bdc88acda" + creation_date = "2021-07-20" + last_modified = "2021-08-23" + threat_name = "Windows.Trojan.Lokibot" + reference_sample = "de6200b184832e7d3bfe00c193034192774e3cfca96120dc97ad6fed1e472080" + severity = 100 + arch_context = "x86" + scan_context = "file, memory" + license = "Elastic License v2" + os = "windows" + strings: + $a = { 08 8B CE 0F B6 14 38 D3 E2 83 C1 08 03 F2 48 79 F2 5F 8B C6 } + condition: + all of them +} + diff --git a/BLUESPAWN-win-client/external/Windows_Trojan_Qbot.yar b/BLUESPAWN-win-client/external/Windows_Trojan_Qbot.yar new file mode 100644 index 00000000..75b4dfb4 --- /dev/null +++ b/BLUESPAWN-win-client/external/Windows_Trojan_Qbot.yar @@ -0,0 +1,114 @@ +rule Windows_Trojan_Qbot_92c67a6d { + meta: + author = "Elastic Security" + id = "92c67a6d-9290-4cd9-8123-7dace2cf333d" + fingerprint = "4719993107243a22552b65e6ec8dc850842124b0b9919a6ecaeb26377a1a5ebd" + creation_date = "2021-02-16" + last_modified = "2021-08-23" + threat_name = "Windows.Trojan.Qbot" + reference_sample = "636e2904276fe33e10cce5a562ded451665b82b24c852cbdb9882f7a54443e02" + severity = 100 + arch_context = "x86" + scan_context = "file, memory" + license = "Elastic License v2" + os = "windows" + strings: + $a = { 33 C0 59 85 F6 74 2D 83 66 0C 00 40 89 06 6A 20 89 46 04 C7 46 08 08 00 } + condition: + all of them +} + +rule Windows_Trojan_Qbot_d91c1384 { + meta: + author = "Elastic Security" + id = "d91c1384-839f-4062-8a8d-5cda931029ae" + fingerprint = "1b47ede902b6abfd356236e91ed3e741cf1744c68b6bb566f0d346ea07fee49a" + creation_date = "2021-07-08" + last_modified = "2021-08-23" + threat_name = "Windows.Trojan.Qbot" + reference_sample = "18ac3870aaa9aaaf6f4a5c0118daa4b43ad93d71c38bf42cb600db3d786c6dda" + severity = 100 + arch_context = "x86" + scan_context = "file, memory" + license = "Elastic License v2" + os = "windows" + strings: + $a = { FE 8A 14 06 88 50 FF 8A 54 BC 11 88 10 8A 54 BC 10 88 50 01 47 83 } + condition: + all of them +} + +rule Windows_Trojan_Qbot_7d5dc64a { + meta: + author = "Elastic Security" + id = "7d5dc64a-a597-44ac-a0fd-cefffc5e9cff" + fingerprint = "ab80d96a454e0aad56621e70be4d55f099c41b538a380feb09192d252b4db5aa" + creation_date = "2021-10-04" + last_modified = "2022-01-13" + threat_name = "Windows.Trojan.Qbot" + reference_sample = "a2bacde7210d88675564106406d9c2f3b738e2b1993737cb8bf621b78a9ebf56" + severity = 100 + arch_context = "x86" + scan_context = "file, memory" + license = "Elastic License v2" + os = "windows" + strings: + $a1 = "%u.%u.%u.%u.%u.%u.%04x" ascii fullword + $a2 = "stager_1.dll" ascii fullword + condition: + all of them +} + +rule Windows_Trojan_Qbot_6fd34691 { + meta: + author = "Elastic Security" + id = "6fd34691-10e4-4a66-85ff-1b67ed3da4dd" + fingerprint = "187fc04abcba81a2cbbe839adf99b8ab823cbf65993c8780d25e7874ac185695" + creation_date = "2022-03-07" + last_modified = "2022-04-12" + threat_name = "Windows.Trojan.Qbot" + reference_sample = "0838cd11d6f504203ea98f78cac8f066eb2096a2af16d27fb9903484e7e6a689" + severity = 100 + arch_context = "x86" + scan_context = "file, memory" + license = "Elastic License v2" + os = "windows" + strings: + $a1 = { 75 C9 8B 45 1C 89 45 A4 8B 45 18 89 45 A8 8B 45 14 89 45 AC 8B } + $a2 = "\\stager_1.obf\\Benign\\mfc\\" wide + condition: + any of them +} + +rule Windows_Trojan_Qbot_3074a8d4 { + meta: + author = "Elastic Security" + id = "3074a8d4-d93c-4987-9031-9ecd3881730d" + fingerprint = "c233a0c24576450ce286d96126379b6b28d537619e853d860e2812f521b810ac" + creation_date = "2022-06-07" + last_modified = "2022-07-18" + threat_name = "Windows.Trojan.Qbot" + reference_sample = "c2ba065654f13612ae63bca7f972ea91c6fe97291caeaaa3a28a180fb1912b3a" + severity = 100 + arch_context = "x86" + scan_context = "file, memory" + license = "Elastic License v2" + os = "windows" + strings: + $a1 = "qbot" wide + $a2 = "stager_1.obf\\Benign\\mfc" wide + $a3 = "common.obf\\Benign\\mfc" wide + $a4 = "%u;%u;%u;" + $a5 = "%u.%u.%u.%u.%u.%u.%04x" + $a6 = "%u&%s&%u" + $get_string1 = { 33 D2 8B ?? 6A 5A 5? F7 ?? 8B ?? 08 8A 04 ?? 8B 55 ?? 8B ?? 10 3A 04 ?? } + $get_string2 = { 33 D2 8B ?? F7 75 F4 8B 45 08 8A 04 02 32 04 ?? 88 04 ?? ?? 83 ?? 01 } + $set_key = { 8D 87 00 04 00 00 50 56 E8 ?? ?? ?? ?? 59 8B D0 8B CE E8 } + $do_computer_use_russian_like_keyboard = { B9 FF 03 00 00 66 23 C1 33 C9 0F B7 F8 66 3B 7C 4D } + $execute_each_tasks = { 8B 44 0E ?? 85 C0 74 ?? FF D0 EB ?? 6A 00 6A 00 6A 00 FF 74 0E ?? E8 ?? ?? ?? ?? 83 C4 10 } + $generate_random_alpha_num_string = { 57 E8 ?? ?? ?? ?? 48 50 8D 85 ?? ?? ?? ?? 6A 00 50 E8 ?? ?? ?? ?? 8B 4D ?? 83 C4 10 8A 04 38 88 04 0E 46 83 FE 0C } + $load_base64_dll_from_file_and_inject_into_targets = { 10 C7 45 F0 50 00 00 00 83 65 E8 00 83 7D F0 0B 73 08 8B 45 F0 89 } + condition: + 6 of them +} + diff --git a/BLUESPAWN-win-client/external/Windows_Trojan_Smokeloader.yar b/BLUESPAWN-win-client/external/Windows_Trojan_Smokeloader.yar new file mode 100644 index 00000000..899dc817 --- /dev/null +++ b/BLUESPAWN-win-client/external/Windows_Trojan_Smokeloader.yar @@ -0,0 +1,60 @@ +rule Windows_Trojan_Smokeloader_4e31426e { + meta: + author = "Elastic Security" + id = "4e31426e-d62e-4b6d-911b-4223e1f6adef" + fingerprint = "cf6d8615643198bc53527cb9581e217f8a39760c2e695980f808269ebe791277" + creation_date = "2021-07-21" + last_modified = "2021-08-23" + threat_name = "Windows.Trojan.Smokeloader" + reference_sample = "1ce643981821b185b8ad73b798ab5c71c6c40e1f547b8e5b19afdaa4ca2a5174" + severity = 100 + arch_context = "x86" + scan_context = "file, memory" + license = "Elastic License v2" + os = "windows" + strings: + $a = { 5B 81 EB 34 10 00 00 6A 30 58 64 8B 00 8B 40 0C 8B 40 1C 8B 40 08 89 85 C0 } + condition: + all of them +} + +rule Windows_Trojan_Smokeloader_3687686f { + meta: + author = "Elastic Security" + id = "3687686f-8fbf-4f09-9afa-612ee65dc86c" + fingerprint = "0f483f9f79ae29b944825c1987366d7b450312f475845e2242a07674580918bc" + creation_date = "2021-07-21" + last_modified = "2021-08-23" + threat_name = "Windows.Trojan.Smokeloader" + reference_sample = "8b3014ecd962a335b246f6c70fc820247e8bdaef98136e464b1fdb824031eef7" + severity = 100 + arch_context = "x86" + scan_context = "file, memory" + license = "Elastic License v2" + os = "windows" + strings: + $a = { 0C 8B 45 F0 89 45 C8 8B 45 C8 8B 40 3C 8B 4D F0 8D 44 01 04 89 } + condition: + all of them +} + +rule Windows_Trojan_Smokeloader_4ee15b92 { + meta: + author = "Elastic Security" + id = "4ee15b92-c62f-42d2-bbba-1dac2fa5644f" + fingerprint = "5d2ed385c76dbb4c1c755ae88b68306086a199a25a29317ae132bc874b253580" + creation_date = "2022-02-17" + last_modified = "2022-04-12" + threat_name = "Windows.Trojan.Smokeloader" + reference_sample = "09b9283286463b35ea2d5abfa869110eb124eb8c1788eb2630480d058e82abf2" + severity = 100 + arch_context = "x86" + scan_context = "file, memory" + license = "Elastic License v2" + os = "windows" + strings: + $a = { 24 34 30 33 33 8B 45 F4 5F 5E 5B C9 C2 10 00 55 89 E5 83 EC } + condition: + all of them +} + diff --git a/BLUESPAWN-win-client/external/Windows_Trojan_Tofsee.yar b/BLUESPAWN-win-client/external/Windows_Trojan_Tofsee.yar new file mode 100644 index 00000000..64394c5b --- /dev/null +++ b/BLUESPAWN-win-client/external/Windows_Trojan_Tofsee.yar @@ -0,0 +1,21 @@ +rule Windows_Trojan_Tofsee_26124fe4 { + meta: + author = "Elastic Security" + id = "26124fe4-f2a1-4fc9-8155-585b581476de" + fingerprint = "dc7ada5c6341e98bc41182a5698527b1649c4e80924ba0405f1b94356f63ff31" + creation_date = "2022-03-31" + last_modified = "2022-04-12" + threat_name = "Windows.Trojan.Tofsee" + reference_sample = "e658fe6d3bd685f41eb0527432099ee01075bfdb523ef5aa3e5ebd42221c8494" + severity = 100 + arch_context = "x86" + scan_context = "file, memory" + license = "Elastic License v2" + os = "windows" + strings: + $a = { 55 8B EC 8B 45 ?? 57 8B 7D ?? B1 01 85 FF 74 ?? 56 8B 75 ?? 2B F0 8A 14 06 32 55 ?? 88 10 8A D1 02 55 ?? F6 D9 00 55 ?? 40 4F 75 ?? 5E 8B 45 ?? 5F 5D C3 } + $b = { 8B 44 24 ?? 53 8A 18 84 DB 74 ?? 8B D0 2B 54 24 ?? 8B 4C 24 ?? 84 DB 74 ?? 8A 19 84 DB 74 ?? 38 1C 0A 75 ?? 41 80 3C 0A 00 75 ?? 80 39 00 74 ?? 40 8A 18 42 84 DB 75 ?? 33 C0 5B C3 } + condition: + any of them +} + diff --git a/BLUESPAWN-win-client/external/Windows_Trojan_Trickbot.yar b/BLUESPAWN-win-client/external/Windows_Trojan_Trickbot.yar new file mode 100644 index 00000000..55a8a0e7 --- /dev/null +++ b/BLUESPAWN-win-client/external/Windows_Trojan_Trickbot.yar @@ -0,0 +1,975 @@ +rule Windows_Trojan_Trickbot_01365e46 { + meta: + author = "Elastic Security" + id = "01365e46-c769-4c6e-913a-4d1e42948af2" + fingerprint = "98505c3418945c10bf4f50a183aa49bdbc7c1c306e98132ae3d0fc36e216f191" + creation_date = "2021-03-28" + last_modified = "2021-08-23" + threat_name = "Windows.Trojan.Trickbot" + reference_sample = "5c450d4be39caef1d9ec943f5dfeb6517047175fec166a52970c08cd1558e172" + severity = 100 + arch_context = "x86" + scan_context = "file, memory" + license = "Elastic License v2" + os = "windows" + strings: + $a = { 8B 43 28 4C 8B 53 18 4C 8B 5B 10 4C 8B 03 4C 8B 4B 08 89 44 24 38 48 89 4C 24 30 4C } + condition: + all of them +} + +rule Windows_Trojan_Trickbot_06fd4ac4 { + meta: + author = "Elastic Security" + id = "06fd4ac4-1155-4068-ae63-4d83db2bd942" + fingerprint = "ece49004ed1d27ef92b3b1ec040d06e90687d4ac5a89451e2ae487d92cb24ddd" + creation_date = "2021-03-28" + last_modified = "2021-08-23" + description = "Identifies Trickbot unpacker" + threat_name = "Windows.Trojan.Trickbot" + severity = 100 + arch_context = "x86" + scan_context = "file, memory" + license = "Elastic License v2" + os = "windows" + strings: + $a = { 5F 33 C0 68 ?? ?? 00 00 59 50 E2 FD 8B C7 57 8B EC 05 ?? ?? ?? 00 89 45 04 } + condition: + all of them +} + +rule Windows_Trojan_Trickbot_ce4305d1 { + meta: + author = "Elastic Security" + id = "ce4305d1-8a6f-4797-afaf-57e88f3d38e6" + fingerprint = "ae606e758b02ccf2a9a313aebb10773961121f79a94c447e745289ee045cf4ee" + creation_date = "2021-03-28" + last_modified = "2021-08-23" + threat_name = "Windows.Trojan.Trickbot" + severity = 100 + arch_context = "x86" + scan_context = "file, memory" + license = "Elastic License v2" + os = "windows" + strings: + $a = { F9 8B 45 F4 89 5D E4 85 D2 74 39 83 C0 02 03 C6 89 45 F4 8B } + condition: + all of them +} + +rule Windows_Trojan_Trickbot_1e56fad7 { + meta: + author = "Elastic Security" + id = "1e56fad7-383f-4ee0-9f8f-a0b3dcceb691" + fingerprint = "a0916134f47df384bbdacff994970f60d3613baa03c0a581b7d1dd476af3121b" + creation_date = "2021-03-28" + last_modified = "2021-08-23" + threat_name = "Windows.Trojan.Trickbot" + severity = 100 + arch_context = "x86" + scan_context = "file, memory" + license = "Elastic License v2" + os = "windows" + strings: + $a = { 5B C9 C2 18 00 43 C1 02 10 7C C2 02 10 54 C1 02 10 67 C1 02 10 } + condition: + all of them +} + +rule Windows_Trojan_Trickbot_93c9a2a4 { + meta: + author = "Elastic Security" + id = "93c9a2a4-a07a-4ed4-a899-b160d235bf50" + fingerprint = "0ff82bf9e70304868ff033f0d96e2a140af6e40c09045d12499447ffb94ab838" + creation_date = "2021-03-28" + last_modified = "2021-08-23" + threat_name = "Windows.Trojan.Trickbot" + severity = 100 + arch_context = "x86" + scan_context = "file, memory" + license = "Elastic License v2" + os = "windows" + strings: + $a = { 6A 01 8B CF FF 50 5C 8B 4F 58 49 89 4F 64 8B 4D F4 8B 45 E4 } + condition: + all of them +} + +rule Windows_Trojan_Trickbot_5340afa3 { + meta: + author = "Elastic Security" + id = "5340afa3-ff90-4f61-a1ac-aba1f32dd375" + fingerprint = "7da4726ccda6a76d2da773d41f012763802d586f64a313c1c37733905ae9da81" + creation_date = "2021-03-28" + last_modified = "2021-08-23" + threat_name = "Windows.Trojan.Trickbot" + severity = 100 + arch_context = "x86" + scan_context = "file, memory" + license = "Elastic License v2" + os = "windows" + strings: + $a = { E8 0C 89 5D F4 0F B7 DB 03 5D 08 66 83 F8 03 75 0A 8B 45 14 } + condition: + all of them +} + +rule Windows_Trojan_Trickbot_e7932501 { + meta: + author = "Elastic Security" + id = "e7932501-66bf-4713-b10e-bcda29f4b901" + fingerprint = "ae31b49266386a6cf42289a08da4a20fc1330096be1dae793de7b7230225bfc7" + creation_date = "2021-03-28" + last_modified = "2021-08-23" + threat_name = "Windows.Trojan.Trickbot" + severity = 100 + arch_context = "x86" + scan_context = "file, memory" + license = "Elastic License v2" + os = "windows" + strings: + $a = { 24 0C 01 00 00 00 85 C0 7C 2F 3B 46 24 7D 2A 8B 4E 20 8D 04 } + condition: + all of them +} + +rule Windows_Trojan_Trickbot_cd0868d5 { + meta: + author = "Elastic Security" + id = "cd0868d5-42d8-437f-8c1a-303526c08442" + fingerprint = "2f777285a90fce20cd4eab203f3ec7ed1c62e09fc2dfdce09b57e0802f49628f" + creation_date = "2021-03-28" + last_modified = "2021-08-23" + threat_name = "Windows.Trojan.Trickbot" + severity = 100 + arch_context = "x86" + scan_context = "file, memory" + license = "Elastic License v2" + os = "windows" + strings: + $a = { 8D 1C 01 89 54 24 10 8B 54 24 1C 33 C9 66 8B 0B 8D 3C 8A 8B 4C } + condition: + all of them +} + +rule Windows_Trojan_Trickbot_515504e2 { + meta: + author = "Elastic Security" + id = "515504e2-6b7f-4398-b89b-3af2b46c78a7" + fingerprint = "8eb741e1b3bd760e2cf511ad6609ac6f1f510958a05fb093eae26462f16ee1d0" + creation_date = "2021-03-28" + last_modified = "2021-08-23" + threat_name = "Windows.Trojan.Trickbot" + severity = 100 + arch_context = "x86" + scan_context = "file, memory" + license = "Elastic License v2" + os = "windows" + strings: + $a = { 6A 00 6A 00 8D 4D E0 51 FF D6 85 C0 74 29 83 F8 FF 74 0C 8D } + condition: + all of them +} + +rule Windows_Trojan_Trickbot_a0fc8f35 { + meta: + author = "Elastic Security" + id = "a0fc8f35-cbeb-43a8-b00d-7a0f981e84e4" + fingerprint = "033ff4f47fece45dfa7e3ba185df84a767691e56f0081f4ed96f9e2455a563cb" + creation_date = "2021-03-28" + last_modified = "2021-08-23" + threat_name = "Windows.Trojan.Trickbot" + severity = 100 + arch_context = "x86" + scan_context = "file, memory" + license = "Elastic License v2" + os = "windows" + strings: + $a = { 18 33 DB 53 6A 01 53 53 8D 4C 24 34 51 8B F0 89 5C 24 38 FF D7 } + condition: + all of them +} + +rule Windows_Trojan_Trickbot_cb95dc06 { + meta: + author = "Elastic Security" + id = "cb95dc06-6383-4487-bf10-7fd68d61e37a" + fingerprint = "0d28f570db007a1b91fe48aba18be7541531cceb7f11a6a4471e92abd55b3b90" + creation_date = "2021-03-28" + last_modified = "2021-08-23" + threat_name = "Windows.Trojan.Trickbot" + severity = 100 + arch_context = "x86" + scan_context = "file, memory" + license = "Elastic License v2" + os = "windows" + strings: + $a = { 08 5F 5E 33 C0 5B 5D C3 8B 55 14 89 02 8B 45 18 5F 89 30 B9 01 00 } + condition: + all of them +} + +rule Windows_Trojan_Trickbot_9d4d3fa4 { + meta: + author = "Elastic Security" + id = "9d4d3fa4-4e37-40d7-8399-a49130b7ef49" + fingerprint = "b06c3c7ba1f5823ce381971ed29554e5ddbe327b197de312738165ee8bf6e194" + creation_date = "2021-03-28" + last_modified = "2021-08-23" + threat_name = "Windows.Trojan.Trickbot" + severity = 100 + arch_context = "x86" + scan_context = "file, memory" + license = "Elastic License v2" + os = "windows" + strings: + $a = { 89 44 24 18 33 C9 89 44 24 1C 8D 54 24 38 89 44 24 20 33 F6 89 44 } + condition: + all of them +} + +rule Windows_Trojan_Trickbot_34f00046 { + meta: + author = "Elastic Security" + id = "34f00046-8938-4103-91ec-4a745a627d4a" + fingerprint = "5c6f11e2a040ae32336f4b4c4717e0f10c73359899302b77e1803f3a609309c0" + creation_date = "2021-03-28" + last_modified = "2021-08-23" + threat_name = "Windows.Trojan.Trickbot" + severity = 100 + arch_context = "x86" + scan_context = "file, memory" + license = "Elastic License v2" + os = "windows" + strings: + $a = { 30 FF FF FF 03 08 8B 95 30 FF FF FF 2B D1 89 95 30 FF FF FF } + condition: + all of them +} + +rule Windows_Trojan_Trickbot_f2a18b09 { + meta: + author = "Elastic Security" + id = "f2a18b09-f7b3-4d1a-87ab-3018f520b69c" + fingerprint = "3e4474205efe22ea0185c49052e259bc08de8da7c924372f6eb984ae36b91a1c" + creation_date = "2021-03-28" + last_modified = "2021-08-23" + threat_name = "Windows.Trojan.Trickbot" + severity = 100 + arch_context = "x86" + scan_context = "file, memory" + license = "Elastic License v2" + os = "windows" + strings: + $a = { 04 39 45 08 75 08 8B 4D F8 8B 41 18 EB 0F 8B 55 F8 8B 02 89 } + condition: + all of them +} + +rule Windows_Trojan_Trickbot_d916ae65 { + meta: + author = "Elastic Security" + id = "d916ae65-c97b-495c-89c2-4f1ec90081d2" + fingerprint = "2e109ed59a1e759ef089e04c21016482bf70228da30d8b350fc370b4e4d120e0" + creation_date = "2021-03-28" + last_modified = "2021-08-23" + threat_name = "Windows.Trojan.Trickbot" + severity = 100 + arch_context = "x86" + scan_context = "file, memory" + license = "Elastic License v2" + os = "windows" + strings: + $a = { 5F 24 01 10 CF 22 01 10 EC 22 01 10 38 23 01 10 79 23 01 10 82 } + condition: + all of them +} + +rule Windows_Trojan_Trickbot_52722678 { + meta: + author = "Elastic Security" + id = "52722678-afbe-43ec-a39b-6848b7d49488" + fingerprint = "e67dda5227be74424656957843777ea533b6800576fd85f978fd8fb50504209c" + creation_date = "2021-03-28" + last_modified = "2021-08-23" + threat_name = "Windows.Trojan.Trickbot" + severity = 100 + arch_context = "x86" + scan_context = "file, memory" + license = "Elastic License v2" + os = "windows" + strings: + $a = { 2B 5D 0C 89 5D EC EB 03 8B 5D EC 8A 1C 3B 84 DB 74 0D 38 1F } + condition: + all of them +} + +rule Windows_Trojan_Trickbot_28a60148 { + meta: + author = "Elastic Security" + id = "28a60148-2efb-4cd2-ada1-dd2ae2699adf" + fingerprint = "c857aa792ef247bfcf81e75fb696498b1ba25c09fc04049223a6dfc09cc064b1" + creation_date = "2021-03-28" + last_modified = "2021-08-23" + threat_name = "Windows.Trojan.Trickbot" + severity = 100 + arch_context = "x86" + scan_context = "file, memory" + license = "Elastic License v2" + os = "windows" + strings: + $a = { C0 31 E8 83 7D 0C 00 89 44 24 38 0F 29 44 24 20 0F 29 44 24 10 0F 29 } + condition: + all of them +} + +rule Windows_Trojan_Trickbot_997b25a0 { + meta: + author = "Elastic Security" + id = "997b25a0-aeac-4f74-aa87-232c4f8329b6" + fingerprint = "0bba1c5284ed0548f51fdfd6fb96e24f92f7f4132caefbf0704efb0b1a64b7c4" + creation_date = "2021-03-28" + last_modified = "2021-08-23" + threat_name = "Windows.Trojan.Trickbot" + severity = 100 + arch_context = "x86" + scan_context = "file, memory" + license = "Elastic License v2" + os = "windows" + strings: + $a = { 85 D2 74 F0 C6 45 E1 20 8D 4D E1 C6 45 E2 4A C6 45 E3 4A C6 45 } + condition: + all of them +} + +rule Windows_Trojan_Trickbot_b17b33a1 { + meta: + author = "Elastic Security" + id = "b17b33a1-1021-4980-8ffd-2e7aa4ca2ae4" + fingerprint = "753d15c1ff0cc4cf75250761360bb35280ff0a1a4d34320df354e0329dd35211" + creation_date = "2021-03-28" + last_modified = "2021-08-23" + threat_name = "Windows.Trojan.Trickbot" + severity = 100 + arch_context = "x86" + scan_context = "file, memory" + license = "Elastic License v2" + os = "windows" + strings: + $a = { 08 53 55 56 57 64 A1 30 00 00 00 89 44 24 10 8B 44 24 10 8B } + condition: + all of them +} + +rule Windows_Trojan_Trickbot_23d77ae5 { + meta: + author = "Elastic Security" + id = "23d77ae5-80de-4bb0-8701-ddcaff443dcc" + fingerprint = "d382a99e5eed87cf2eab5e238e445ca0bf7852e40b0dd06a392057e76144699f" + creation_date = "2021-03-28" + last_modified = "2021-08-23" + description = "Targets importDll64 containing Browser data stealer module" + threat_name = "Windows.Trojan.Trickbot" + reference_sample = "844974A2D3266E1F9BA275520C0E8A5D176DF69A0CCD5135B99FACF798A5D209" + severity = 100 + arch_context = "x86" + scan_context = "file, memory" + license = "Elastic License v2" + os = "windows" + strings: + $a1 = "/system32/cmd.exe /c \"start microsoft-edge:{URL}\"" ascii fullword + $a2 = "SELECT name, value, host_key, path, expires_utc, creation_utc, encrypted_value FROM cookies" ascii fullword + $a3 = "attempt %d. Cookies not found" ascii fullword + $a4 = "attempt %d. History not found" ascii fullword + $a5 = "Cookies version is %d (%d)" ascii fullword + $a6 = "attempt %d. Local Storage not found" ascii fullword + $a7 = "str+='xie.com.'+p+'.guid='+'{'+components[i]+'}\\n';" ascii fullword + $a8 = "Browser exec is: %s" ascii fullword + $a9 = "found mozilla key: %s" ascii fullword + $a10 = "Version %d is not supported" ascii fullword + $a11 = "id %d - %s" ascii fullword + $a12 = "prot: %s, scope: %s, port: %d" ascii fullword + $a13 = "***** Send %d bytes to callback from %s *****" ascii fullword + $a14 = "/chrome.exe {URL}" ascii fullword + condition: + 4 of ($a*) +} + +rule Windows_Trojan_Trickbot_5574be7d { + meta: + author = "Elastic Security" + id = "5574be7d-7502-4357-8110-2fb4a661b2bd" + fingerprint = "23d9b89917a0fc5aad903595b89b650f6dbb0f82ce28ce8bcc891904f62ccf1b" + creation_date = "2021-03-29" + last_modified = "2021-08-23" + description = "Targets injectDll64 containing injection functionality to steal banking credentials" + threat_name = "Windows.Trojan.Trickbot" + reference_sample = "8c5c0d27153f60ef8aec57def2f88e3d5f9a7385b5e8b8177bab55fa7fac7b18" + severity = 100 + arch_context = "x86" + scan_context = "file, memory" + license = "Elastic License v2" + os = "windows" + strings: + $a1 = "webinject64.dll" ascii fullword + $a2 = "Mozilla Firefox version: %s" ascii fullword + $a3 = "socks=127.0.0.1:" ascii fullword + $a4 = "" ascii fullword + $a5 = "" ascii fullword + $a6 = "https://%.*s%.*s" ascii fullword + $a7 = "http://%.*s%.*s" ascii fullword + $a8 = "Chrome version: %s" ascii fullword + $a9 = "IE version real: %s" ascii fullword + $a10 = "IE version old: %s" ascii fullword + $a11 = "Build date: %s %s" ascii fullword + $a12 = "EnumDpostServer" ascii fullword + $a13 = "ESTR_PASS_" ascii fullword + $a14 = "" ascii fullword + $a15 = "" ascii fullword + $a16 = "" ascii fullword + condition: + 4 of ($a*) +} + +rule Windows_Trojan_Trickbot_1473f0b4 { + meta: + author = "Elastic Security" + id = "1473f0b4-a6b5-4b19-a07e-83d32a7e44a0" + fingerprint = "15438ae141a2ac886b1ba406ba45119da1a616c3b2b88da3f432253421aa8e8b" + creation_date = "2021-03-29" + last_modified = "2021-08-23" + description = "Targets mailsearcher64.dll module" + threat_name = "Windows.Trojan.Trickbot" + reference_sample = "9cfb441eb5c60ab1c90b58d4878543ee554ada2cceee98d6b867e73490d30fec" + severity = 100 + arch_context = "x86" + scan_context = "file, memory" + license = "Elastic License v2" + os = "windows" + strings: + $a1 = "mailsearcher.dll" ascii fullword + $a2 = "%s/%s/%s/send/" wide fullword + $a3 = "Content-Disposition: form-data; name=\"list\"" ascii fullword + $a4 = "no" ascii fullword + $a6 = "=Waitu H" ascii fullword + $a7 = "Content-Length: %d" ascii fullword + condition: + 2 of ($a*) +} + +rule Windows_Trojan_Trickbot_dcf25dde { + meta: + author = "Elastic Security" + id = "dcf25dde-36c4-4a24-aa2b-0b3f42324918" + fingerprint = "4088ae29cb3b665ccedf69e9d02c1ff58620d4b589343cd4077983b25c5b479f" + creation_date = "2021-03-29" + last_modified = "2021-08-23" + description = "Targets networkDll64.dll module containing functionality to gather network and system information" + threat_name = "Windows.Trojan.Trickbot" + reference_sample = "BA2A255671D33677CAB8D93531EB25C0B1F1AC3E3085B95365A017463662D787" + severity = 100 + arch_context = "x86" + scan_context = "file, memory" + license = "Elastic License v2" + os = "windows" + strings: + $a1 = "Host Name - %s" wide fullword + $a2 = "Last Boot Up Time - %02u/%02u/%04u %02d.%02d.%02d" wide fullword + $a3 = "Install Date - %02u/%02u/%04u %02d.%02d.%02d" wide fullword + $a4 = "System Directory - %s" wide fullword + $a5 = "OS Version - %s" wide fullword + $a6 = "***PROCESS LIST***" wide fullword + $a7 = "Product Type - Domain Controller" wide fullword + $a8 = "Registered Organization - %s" wide fullword + $a9 = "Product Type - Domain Controller" wide fullword + $a10 = "Build Type - %s" wide fullword + $a11 = "Boot Device - %s" wide fullword + $a12 = "Serial Number - %s" wide fullword + $a13 = "OS Architecture - %s" wide fullword + $a14 = "" ascii fullword + $a4 = "yesyes" ascii fullword + $a9 = "Grab_Passwords_Chrome(): Can't open database" ascii fullword + $a10 = "UPDATE %Q.%s SET sql = CASE WHEN type = 'trigger' THEN sqlite_rename_trigger(sql, %Q)ELSE sqlite_rename_table(sql, %Q) END, tbl_" + $a11 = "Chrome login db copied" ascii fullword + $a12 = "Skip Chrome login db copy" ascii fullword + $a13 = "Mozilla\\Firefox\\Profiles\\" ascii fullword + $a14 = "Grab_Passwords_Chrome() success" ascii fullword + $a15 = "No password provided by user" ascii fullword + $a16 = "Chrome login db should be copied (copy absent)" ascii fullword + $a17 = "Software\\Microsoft\\Internet Explorer\\IntelliForms\\Storage2" wide fullword + condition: + 4 of ($a*) +} + +rule Windows_Trojan_Trickbot_d2110921 { + meta: + author = "Elastic Security" + id = "d2110921-b957-49b7-8a26-4c0b7d1d58ad" + fingerprint = "55dbbcbc77ec51a378ad2ba8d56cb0811d23b121cacd037503fd75d08529c5b5" + creation_date = "2021-03-29" + last_modified = "2021-08-23" + description = "Targets shareDll64.dll module containing functionality use to spread Trickbot across local networks" + threat_name = "Windows.Trojan.Trickbot" + reference_sample = "05EF40F7745DB836DE735AC73D6101406E1D9E58C6B5F5322254EB75B98D236A" + severity = 100 + arch_context = "x86" + scan_context = "file, memory" + license = "Elastic License v2" + os = "windows" + strings: + $a1 = "module64.dll" ascii fullword + $a2 = "Size - %d kB" ascii fullword + $a3 = "%s - FAIL" wide fullword + $a4 = "%s - SUCCESS" wide fullword + $a5 = "ControlSystemInfoService" ascii fullword + $a6 = "yes" ascii fullword + $a7 = "Copy: %d" wide fullword + $a8 = "Start sc 0x%x" wide fullword + $a9 = "Create sc 0x%x" wide fullword + $a10 = "Open sc %d" wide fullword + $a11 = "ServiceInfoControl" ascii fullword + condition: + 3 of ($a*) +} + +rule Windows_Trojan_Trickbot_0114d469 { + meta: + author = "Elastic Security" + id = "0114d469-8731-4f4f-8657-49cded5efadb" + fingerprint = "4f1fa072f4ba577d590bb8946ea9b9774aa291cb2406f13be5932e97e8e760c6" + creation_date = "2021-03-29" + last_modified = "2021-08-23" + description = "Targets systeminfo64.dll module containing functionality use to retrieve system information" + threat_name = "Windows.Trojan.Trickbot" + reference_sample = "083CB35A7064AA5589EFC544AC1ED1B04EC0F89F0E60383FCB1B02B63F4117E9" + severity = 100 + arch_context = "x86" + scan_context = "file, memory" + license = "Elastic License v2" + os = "windows" + strings: + $a1 = "%s" wide fullword + $a2 = "%s" wide fullword + $a3 = "" wide fullword + $a4 = "" wide fullword + $a5 = "%s%s%s" wide fullword + $a6 = "%s" wide fullword + $a7 = "no2" ascii fullword + $a8 = "%s" wide fullword + $a9 = "%s" wide fullword + $a10 = "" wide fullword + $a11 = "" wide fullword + $a12 = "" wide fullword + $a13 = "SELECT * FROM Win32_Processor" wide fullword + $a14 = "SELECT * FROM Win32_OperatingSystem" wide fullword + $a15 = "SELECT * FROM Win32_ComputerSystem" wide fullword + condition: + 6 of ($a*) +} + +rule Windows_Trojan_Trickbot_07239dad { + meta: + author = "Elastic Security" + id = "07239dad-7f9e-4b20-a691-d9538405b931" + fingerprint = "32d63b8db4307fd67e2c9068e22f843f920f19279c4a40e17cd14943577e7c81" + creation_date = "2021-03-29" + last_modified = "2021-08-23" + description = "Targets vncDll64.dll module containing remote control VNC functionality" + threat_name = "Windows.Trojan.Trickbot" + reference_sample = "DBD534F2B5739F89E99782563062169289F23AA335639A9552173BEDC98BB834" + severity = 100 + arch_context = "x86" + scan_context = "file, memory" + license = "Elastic License v2" + os = "windows" + strings: + $a1 = "C:\\Users\\MaxMikhaylov\\Documents\\Visual Studio 2010\\MMVNC.PROXY\\VNCSRV\\x64\\Release\\VNCSRV.pdb" ascii fullword + $a2 = "vncsrv.dll" ascii fullword + $a3 = "-new -noframemerging http://www.google.com" ascii fullword + $a4 = "IE.HTTP\\shell\\open\\command" ascii fullword + $a5 = "EDGE\\shell\\open\\command" ascii fullword + $a6 = "/K schtasks.exe |more" ascii fullword + $a7 = " " ascii fullword + $a8 = "\\Microsoft Office\\Office16\\outlook.exe" ascii fullword + $a9 = "\\Microsoft Office\\Office11\\outlook.exe" ascii fullword + $a10 = "\\Microsoft Office\\Office15\\outlook.exe" ascii fullword + $a11 = "\\Microsoft Office\\Office12\\outlook.exe" ascii fullword + $a12 = "\\Microsoft Office\\Office14\\outlook.exe" ascii fullword + $a13 = "TEST.TEMP:" ascii fullword + $a14 = "Chrome_WidgetWin" wide fullword + $a15 = "o --disable-gpu --disable-d3d11 --disable-accelerated-2d-canvas" ascii fullword + $a16 = "NetServerStart" ascii fullword + condition: + 6 of ($a*) +} + +rule Windows_Trojan_Trickbot_fd7a39af { + meta: + author = "Elastic Security" + id = "fd7a39af-c6ea-4682-a00a-01f775c3bb8d" + fingerprint = "3f2e654f2ffdd940c27caec3faeb4bda24c797a17d0987378e36c1e16fadc772" + creation_date = "2021-03-29" + last_modified = "2021-08-23" + description = "Targets wormDll64.dll module containing spreading functionality" + threat_name = "Windows.Trojan.Trickbot" + reference_sample = "D5BB8D94B71D475B5EB9BB4235A428563F4104EA49F11EF02C8A08D2E859FD68" + severity = 100 + arch_context = "x86" + scan_context = "file, memory" + license = "Elastic License v2" + os = "windows" + strings: + $a1 = "module64.dll" ascii fullword + $a2 = "worming.png" wide + $a3 = "Size - %d kB" ascii fullword + $a4 = "[+] %s -" wide fullword + $a5 = "%s\\system32" ascii fullword + $a6 = "[-] %s" wide fullword + $a7 = "yesyes" ascii fullword + $a8 = "*****MACHINE IN WORKGROUP*****" wide fullword + $a9 = "*****MACHINE IN DOMAIN*****" wide fullword + $a10 = "\\\\%s\\IPC$" ascii fullword + $a11 = "Windows 5" ascii fullword + $a12 = "InfMach" ascii fullword + $a13 = "%s x64" wide fullword + $a14 = "%s x86" wide fullword + $a15 = "s(&(objectCategory=computer)(userAccountControl:" wide fullword + $a16 = "------MACHINE IN D-N------" wide fullword + condition: + 5 of ($a*) +} + +rule Windows_Trojan_Trickbot_2d89e9cd { + meta: + author = "Elastic Security" + id = "2d89e9cd-2941-4b20-ab4e-a487d329ff76" + fingerprint = "e6eea38858cfbbe5441b1f69c5029ff9279e7affa51615f6c91981fe656294fc" + creation_date = "2021-03-29" + last_modified = "2021-08-23" + description = "Targets tabDll64.dll module containing functionality using SMB for lateral movement" + threat_name = "Windows.Trojan.Trickbot" + reference_sample = "3963649ebfabe8f6277190be4300ecdb68d4b497ac5f81f38231d3e6c862a0a8" + severity = 100 + arch_context = "x86" + scan_context = "file, memory" + license = "Elastic License v2" + os = "windows" + strings: + $a1 = "[INJECT] inject_via_remotethread_wow64: pExecuteX64( pX64function, ctx ) failed" ascii fullword + $a2 = "[INJECT] inject_via_remotethread_wow64: VirtualAlloc pExecuteX64 failed" ascii fullword + $a3 = "%SystemRoot%\\system32\\stsvc.exe" ascii fullword + $a4 = "[INJECT] inject_via_remotethread_wow64: pExecuteX64=0x%08p, pX64function=0x%08p, ctx=0x%08p" ascii fullword + $a5 = "DLL and target process must be same architecture" ascii fullword + $a6 = "[INJECT] inject_via_remotethread_wow64: VirtualAlloc pX64function failed" ascii fullword + $a7 = "%SystemDrive%\\stsvc.exe" ascii fullword + $a8 = "Wrote shellcode to 0x%x" ascii fullword + $a9 = "ERROR: %d, line - %d" wide fullword + $a10 = "[INJECT] inject_via_remotethread_wow64: Success, hThread=0x%08p" ascii fullword + $a11 = "GetProcessPEB:EXCEPT" wide fullword + $a12 = "Checked count - %i, connected count %i" wide fullword + $a13 = "C:\\%s\\%s C:\\%s\\%s" ascii fullword + $a14 = "C:\\%s\\%s" ascii fullword + $a15 = "%s\\ADMIN$\\stsvc.exe" wide fullword + $a16 = "%s\\C$\\stsvc.exe" wide fullword + $a17 = "Size - %d kB" ascii fullword + $a18 = "yesyes" ascii fullword + $a9 = "(&(objectCategory=computer)(userAccountControl:1.2.840.113556.1.4.803:=8192))" wide fullword + condition: + 5 of ($a*) +} + +rule Windows_Trojan_Trickbot_91516cf4 { + meta: + author = "Elastic Security" + id = "91516cf4-c826-4d5d-908f-e1c0b3bccec5" + fingerprint = "2667c7181fb4db3f5765369fc2ec010b807a7bf6e2878fc42af410f036c61cbe" + creation_date = "2021-03-30" + last_modified = "2021-08-31" + description = "Generic signature used to identify Trickbot module usage" + threat_name = "Windows.Trojan.Trickbot" + reference_sample = "6cd0d4666553fd7184895502d48c960294307d57be722ebb2188b004fc1a8066" + severity = 80 + arch_context = "x86" + scan_context = "file, memory" + license = "Elastic License v2" + os = "windows" + strings: + $a1 = "" ascii wide + $a2 = "" ascii wide + $a3 = "" ascii wide + $a4 = "" ascii wide + condition: + all of them +} + +rule Windows_Trojan_Trickbot_be718af9 { + meta: + author = "Elastic Security" + id = "be718af9-5995-4ae2-ba55-504e88693c96" + fingerprint = "047b1c64b8be17d4a6030ab2944ad715380f53a8a6dd9c8887f198693825a81d" + creation_date = "2021-03-30" + last_modified = "2021-08-23" + description = "Targets permadll module used to fingerprint BIOS/firmaware data" + threat_name = "Windows.Trojan.Trickbot" + reference_sample = "c1f1bc58456cff7413d7234e348d47a8acfdc9d019ae7a4aba1afc1b3ed55ffa" + severity = 100 + arch_context = "x86" + scan_context = "file, memory" + license = "Elastic License v2" + os = "windows" + strings: + $a1 = "user_platform_check.dll" ascii fullword + $a2 = "yes" ascii fullword + $a3 = "DDEADFDEEEEE" + $a4 = "\\`Ruuuuu_Exs|_" ascii fullword + $a5 = "\"%pueuu%" ascii fullword + condition: + 3 of ($a*) +} + +rule Windows_Trojan_Trickbot_f8dac4bc { + meta: + author = "Elastic Security" + id = "f8dac4bc-2ea1-4733-a260-59f3cae2eba8" + fingerprint = "256daf823f6296ae02103336817dec565129a11f37445b791b2f8e3163f0c17f" + creation_date = "2021-03-30" + last_modified = "2021-08-23" + description = "Targets rdpscan module used to bruteforce RDP" + threat_name = "Windows.Trojan.Trickbot" + reference_sample = "13d102d546b9384f944f2a520ba32fb5606182bed45a8bba681e4374d7e5e322" + severity = 100 + arch_context = "x86" + scan_context = "file, memory" + license = "Elastic License v2" + os = "windows" + strings: + $a1 = "rdpscan.dll" ascii fullword + $a2 = "F:\\rdpscan\\Bin\\Release_nologs\\" + $a3 = "Cookie: %s %s" wide fullword + $a4 = "<" + $a5 = "<" + $a6 = "X^Failed to create a list of contr" ascii fullword + $a7 = "rdp/domains" wide fullword + $a8 = "Your product name" wide fullword + $a9 = "rdp/over" wide fullword + $a10 = "rdp/freq" wide fullword + $a11 = "rdp/names" wide fullword + $a12 = "rdp/dict" wide fullword + $a13 = "rdp/mode" wide fullword + condition: + 4 of ($a*) +} + +rule Windows_Trojan_Trickbot_9c0fa8fe { + meta: + author = "Elastic Security" + id = "9c0fa8fe-8d5f-4581-87a0-92a4ed1b32b3" + fingerprint = "bd49ed2ee65ff0cfa95efc9887ed24de3882c5b5740d0efc6b9690454ca3f5dc" + creation_date = "2021-07-13" + last_modified = "2021-08-23" + threat_name = "Windows.Trojan.Trickbot" + reference_sample = "f528c3ea7138df7c661d88fafe56d118b6ee1d639868212378232ca09dc9bfad" + severity = 100 + arch_context = "x86" + scan_context = "file, memory" + license = "Elastic License v2" + os = "windows" + strings: + $a = { 74 19 48 85 FF 74 60 8B 46 08 39 47 08 76 6A 33 ED B1 01 B0 01 } + condition: + all of them +} + diff --git a/BLUESPAWN-win-client/external/Windows_Trojan_Zeus.yar b/BLUESPAWN-win-client/external/Windows_Trojan_Zeus.yar new file mode 100644 index 00000000..1097763e --- /dev/null +++ b/BLUESPAWN-win-client/external/Windows_Trojan_Zeus.yar @@ -0,0 +1,26 @@ +rule Windows_Trojan_Zeus_e51c60d7 { + meta: + author = "Elastic Security" + id = "e51c60d7-3afa-4cf5-91d8-7782e5026e46" + fingerprint = "813e2ee2447fcffdde6519dc6c52369a5d06c668b76c63bb8b65809805ecefba" + creation_date = "2021-02-07" + last_modified = "2021-10-04" + description = "Detects strings used in Zeus web injects. Many other malware families are built on Zeus and may hit on this signature." + threat_name = "Windows.Trojan.Zeus" + reference = "https://www.virusbulletin.com/virusbulletin/2014/10/paper-evolution-webinjects" + reference_sample = "d7e9cb60674e0a05ad17eb96f8796d9f23844a33f83aba5e207b81979d0f2bf3" + severity = 100 + arch_context = "x86" + scan_context = "file, memory" + license = "Elastic License v2" + os = "windows" + strings: + $a1 = "name=%s&port=%u" ascii fullword + $a2 = "data_inject" ascii wide fullword + $a3 = "keylog.txt" ascii fullword + $a4 = "User-agent: %s]]]" ascii fullword + $a5 = "%s\\%02d.bmp" ascii fullword + condition: + all of them +} + diff --git a/BLUESPAWN-win-client/external/Windows_Trojan_Zloader.yar b/BLUESPAWN-win-client/external/Windows_Trojan_Zloader.yar new file mode 100644 index 00000000..cc64fe3a --- /dev/null +++ b/BLUESPAWN-win-client/external/Windows_Trojan_Zloader.yar @@ -0,0 +1,80 @@ +rule Windows_Trojan_Zloader_5dd0a0bf { + meta: + author = "Elastic Security" + id = "5dd0a0bf-20e4-4c52-b9d9-c157e871b06b" + fingerprint = "06545df6c556adf8a6844724e77d005c0299b544f21df2ea44bb9679964dbb9f" + creation_date = "2022-03-03" + last_modified = "2022-04-12" + threat_name = "Windows.Trojan.Zloader" + reference_sample = "161e657587361b29cdb883a6836566a946d9d3e5175e166a9fe54981d0c667fa" + severity = 100 + arch_context = "x86" + scan_context = "file, memory" + license = "Elastic License v2" + os = "windows" + strings: + $a = { B6 08 89 CA 80 C2 F7 80 FA 05 72 F2 80 F9 20 74 ED 03 5D 0C 8D } + condition: + all of them +} + +rule Windows_Trojan_Zloader_4fe0f7f1 { + meta: + author = "Elastic Security" + id = "4fe0f7f1-93c6-4397-acd5-1557608efaf4" + fingerprint = "f340f41cc69930d24ffdae484d1080cd9ce5cb5e7720868c956923a5b8e6c9b1" + creation_date = "2022-03-03" + last_modified = "2022-04-12" + threat_name = "Windows.Trojan.Zloader" + reference_sample = "161e657587361b29cdb883a6836566a946d9d3e5175e166a9fe54981d0c667fa" + severity = 100 + arch_context = "x86" + scan_context = "file, memory" + license = "Elastic License v2" + os = "windows" + strings: + $a = { 08 8B 75 F0 85 DB 8D 7D 94 89 45 E8 0F 45 FB 31 DB 85 F6 0F } + condition: + all of them +} + +rule Windows_Trojan_Zloader_363c65ed { + meta: + author = "Elastic Security" + id = "363c65ed-e394-4a40-9c2a-a6f6fd284ed3" + fingerprint = "33ae4cee122269f4342a3fd829236cbd303d8821b548ab93bbebc9dee3eb67f2" + creation_date = "2022-03-03" + last_modified = "2022-04-12" + threat_name = "Windows.Trojan.Zloader" + reference_sample = "161e657587361b29cdb883a6836566a946d9d3e5175e166a9fe54981d0c667fa" + severity = 100 + arch_context = "x86" + scan_context = "file, memory" + license = "Elastic License v2" + os = "windows" + strings: + $a = { 04 8D 4D E4 8D 55 E8 6A 00 6A 00 51 6A 00 6A 00 50 52 57 53 } + condition: + all of them +} + +rule Windows_Trojan_Zloader_79535191 { + meta: + author = "Elastic Security" + id = "79535191-59df-4c78-9f62-b8614ef992d3" + fingerprint = "ee3c4cf0d694119acfdc945a964e4fc0f51355eabca900ffbcc21aec0b3e1e3c" + creation_date = "2022-03-03" + last_modified = "2022-04-12" + threat_name = "Windows.Trojan.Zloader" + reference_sample = "161e657587361b29cdb883a6836566a946d9d3e5175e166a9fe54981d0c667fa" + severity = 100 + arch_context = "x86" + scan_context = "file, memory" + license = "Elastic License v2" + os = "windows" + strings: + $a = { 28 4B 74 26 8B 46 FC 85 C0 74 F3 8B 4E F4 8B 16 39 C8 0F 47 C1 8B } + condition: + all of them +} + diff --git a/BLUESPAWN-win-client/external/apt_grizzlybear_uscert.yar b/BLUESPAWN-win-client/external/apt_grizzlybear_uscert.yar new file mode 100644 index 00000000..b56b1bdf --- /dev/null +++ b/BLUESPAWN-win-client/external/apt_grizzlybear_uscert.yar @@ -0,0 +1,1491 @@ +/* + Yara Rule Set + Author: US CERT + Date: 2017-02-10 + Identifier: US CERT Report on Grizzly Steppe - APT28/APT29 +*/ + +import "pe" + +/* Rule Set ----------------------------------------------------------------- */ + +rule IMPLANT_1_v1 { + meta: + description = "Downrage Implant by APT28" + author = "US CERT" + reference = "https://www.us-cert.gov/ncas/current-activity/2017/02/10/Enhanced-Analysis-GRIZZLY-STEPPE" + date = "2017-02-10" + score = 85 + strings: + $STR1 = {6A ?? E8 ?? ?? FF FF 59 85 C0 74 0B 8B C8 E8 ?? ?? FF FF 8B F0 + EB 02 33 F6 8B CE E8 ?? ?? FF FF 85 F6 74 0E 8B CE E8 ?? ?? FF FF 56 + E8 ?? ?? FF FF 59} + condition: + (uint16(0) == 0x5A4D) and all of them +} + +rule IMPLANT_1_v2 { + meta: + description = "Downrage Implant by APT28" + author = "US CERT" + reference = "https://www.us-cert.gov/ncas/current-activity/2017/02/10/Enhanced-Analysis-GRIZZLY-STEPPE" + date = "2017-02-10" + score = 85 + strings: + $STR1 = {83 3E 00 53 74 4F 8B 46 04 85 C0 74 48 83 C0 02 50 E8 ?? ?? 00 + 00 8B D8 59 85 DB 74 38 8B 4E 04 83 F9 FF 7E 21 57 } + $STR2 = {55 8B EC 8B 45 08 3B 41 08 72 04 32 C0 EB 1B 8B 49 04 8B 04 81 + 80 78 19 01 75 0D FF 70 10 FF [5] 85 C0 74 E3 } + condition: + (uint16(0) == 0x5A4D) and any of them +} + +rule IMPLANT_1_v3 { + meta: + description = "Downrage Implant by APT28" + author = "US CERT" + reference = "https://www.us-cert.gov/ncas/current-activity/2017/02/10/Enhanced-Analysis-GRIZZLY-STEPPE" + date = "2017-02-10" + score = 85 + strings: + $rol7encode = { 0F B7 C9 C1 C0 07 83 C2 02 33 C1 0F B7 0A 47 66 85 C9 75 } + condition: + (uint16(0) == 0x5A4D or uint16(0) == 0xCFD0 or uint16(0) == 0xC3D4 or + uint32(0) == 0x46445025 or uint32(1) == 0x6674725C) and all of them +} + +rule IMPLANT_1_v4 { + meta: + description = "Downrage Implant by APT28" + author = "US CERT" + reference = "https://www.us-cert.gov/ncas/current-activity/2017/02/10/Enhanced-Analysis-GRIZZLY-STEPPE" + date = "2017-02-10" + score = 85 + strings: + $XOR_LOOP = { 8B 45 FC 8D 0C 06 33 D2 6A 0B 8B C6 5B F7 F3 8A 82 ?? ?? + ?? ?? 32 04 0F 46 88 01 3B 75 0C 7C E0 } + condition: + (uint16(0) == 0x5A4D) and all of them +} + +rule IMPLANT_1_v5 { + meta: + description = "Downrage Implant by APT28" + author = "US CERT" + reference = "https://www.us-cert.gov/ncas/current-activity/2017/02/10/Enhanced-Analysis-GRIZZLY-STEPPE" + date = "2017-02-10" + score = 85 + strings: + $drivername = { 6A 30 ?? 6A 33 [5] 6A 37 [5] 6A 32 [5] 6A 31 [5] 6A 77 + [5] 6A 69 [5] 6A 6E [5] 6A 2E [5] 6A 73 [5-9] 6A 79 [5] 6A 73 } + $mutexname = { C7 45 ?? 2F 2F 64 66 C7 45 ?? 63 30 31 65 C7 45 ?? 6C 6C + 36 7A C7 45 ?? 73 71 33 2D C7 45 ?? 75 66 68 68 66 C7 45 ?? 66 } + condition: + (uint16(0) == 0x5A4D or uint16(0) == 0xCFD0 or uint16(0) == 0xC3D4 or + uint32(0) == 0x46445025 or uint32(1) == 0x6674725C) and any of them +} + +/* TOO MANY FALSE POSITIVES + +rule IMPLANT_1_v6 { + meta: + description = "Downrage Implant by APT28" + author = "US CERT" + reference = "https://www.us-cert.gov/ncas/current-activity/2017/02/10/Enhanced-Analysis-GRIZZLY-STEPPE" + date = "2017-02-10" + score = 85 + strings: + $XORopcodes_eax = { 35 (22 07 15 0e|56 d7 a7 0a) } + $XORopcodes_others = { 81 (F1|F2|F3|F4|F5|F6|F7) (22 07 15 0E|56 D7 A7 0A) } + condition: + (uint16(0) == 0x5A4D or uint16(0) == 0xCFD0 or uint16(0) == 0xC3D4 or + uint32(0) == 0x46445025) and any of them +} + +*/ + +rule IMPLANT_1_v7 { + meta: + description = "Downrage Implant by APT28" + author = "US CERT" + reference = "https://www.us-cert.gov/ncas/current-activity/2017/02/10/Enhanced-Analysis-GRIZZLY-STEPPE" + date = "2017-02-10" + score = 85 + strings: + $XOR_FUNCT = { C7 45 ?? ?? ?? 00 10 8B 0E 6A ?? FF 75 ?? E8 ?? ?? FF FF } + condition: + (uint16(0) == 0x5A4D) and all of them +} + +rule IMPLANT_2_v1 { + meta: + description = "CORESHELL/SOURFACE Implant by APT28" + author = "US CERT" + reference = "https://www.us-cert.gov/ncas/current-activity/2017/02/10/Enhanced-Analysis-GRIZZLY-STEPPE" + date = "2017-02-10" + score = 85 + strings: + $STR1 = { 8d ?? fa [2] e8 [2] FF FF C7 [2-5] 00 00 00 00 8D [2-5] 5? 6a 00 6a 01} + condition: + (uint16(0) == 0x5A4D) and all of them +} + +rule IMPLANT_2_v3 { + meta: + description = "CORESHELL/SOURFACE Implant by APT28" + author = "US CERT" + reference = "https://www.us-cert.gov/ncas/current-activity/2017/02/10/Enhanced-Analysis-GRIZZLY-STEPPE" + date = "2017-02-10" + score = 85 + strings: + $STR1 = {C1 EB 07 8D ?? 01 32 1C ?? 33 D2 } + $STR2 = {2B ?? 83 ?? 06 0F 83 ?? 00 00 00 EB 02 33 } + $STR3 = {89 ?? ?? 89 ?? ?? 89 55 ?? 89 45 ?? 3B ?? 0F 83 ?? 00 00 00 8D + ?? ?? 8D ?? ?? FE } + condition: + (uint16(0) == 0x5A4D) and any of them +} + +rule IMPLANT_2_v5 { + meta: + description = "CORESHELL/SOURFACE Implant by APT28" + author = "US CERT" + reference = "https://www.us-cert.gov/ncas/current-activity/2017/02/10/Enhanced-Analysis-GRIZZLY-STEPPE" + date = "2017-02-10" + score = 85 + strings: + $STR1 = {48 83 [2] 48 89 [3] c7 44 [6] 4c 8d 05 [3] 00 BA 01 00 00 00 33 + C9 ff 15 [2] 00 00 ff 15 [2] 00 00 3D B7 00 00 00 75 ?? 48 8D 15 ?? 00 + 00 00 48 8B CC E8} + condition: + (uint16(0) == 0x5A4D) and all of them +} + +rule IMPLANT_2_v6 { + meta: + description = "CORESHELL/SOURFACE Implant by APT28" + author = "US CERT" + reference = "https://www.us-cert.gov/ncas/current-activity/2017/02/10/Enhanced-Analysis-GRIZZLY-STEPPE" + date = "2017-02-10" + score = 85 + strings: + $STR1 = { e8 [2] ff ff 8b [0-6] 00 04 00 00 7F ?? [1-2] 00 02 00 00 7F + ?? [1-2] 00 01 00 00 7F ?? [1-2] 80 00 00 00 7F ?? 83 ?? 40 7F} + condition: + (uint16(0) == 0x5A4D) and all of them +} + +rule IMPLANT_2_v7 { + meta: + description = "CORESHELL/SOURFACE Implant by APT28" + author = "US CERT" + reference = "https://www.us-cert.gov/ncas/current-activity/2017/02/10/Enhanced-Analysis-GRIZZLY-STEPPE" + date = "2017-02-10" + score = 85 + strings: + $s1 = {10 A0 FA FD 83 3D 28 D4 1F FF 77 5? ?8 B4 50 CC 1E B0 78 D7 90 13 + 21 C0 23 3D 28 BC 78 95 DE 4B B0 60 00 00 0F 7F 38 B4 50 C8 D5 9F E0 + 25 DF F3 21 C0 28 BC 13 3D 2B 90 60 00 00 0F 7F 18 B4 50 C8 BC F2 21 + C0 28 B4 5E 48 B5 5E 00 8D 41 FE 83 F8 06 8B 45 ?? 72 ?? 8B 4D ?? 8B } + $s2 = {28 D9 B0 00 00 00 00 FB 65 C0 AF E8 D3 40 28 B4 5? ?0 3C 20 FA FD + 88 D7 A0 18 D4 2F F3 3D 2F 77 5? ?C 1E B0 78 BC 73 21 C0 A3 3D 2B 90 + 60 00 00 0F 7F 18 A4 D? ?8 B4 50 C8 0E 90 20 24 D? ?3 20 C0 28 B4 5? + ?3 3D 2F 77 5? ?8 B4 50 C2 20 C0 28 BD 70 2D 93 01 E8 B4 D0 C8 D4 2F + E3 B4 5E 88 B4 5? ?8 95 5? ?7 2A 05 F5 E5 B8 BE 55 DC 20 80 } + condition: + (uint16(0) == 0x5A4D) and any of them +} + +rule IMPLANT_2_v9 { + meta: + description = "CORESHELL/SOURFACE Implant by APT28" + author = "US CERT" + reference = "https://www.us-cert.gov/ncas/current-activity/2017/02/10/Enhanced-Analysis-GRIZZLY-STEPPE" + date = "2017-02-10" + score = 85 + strings: + $STR1 = { 8A C3 02 C0 02 D8 8B 45 F8 02 DB 83 C1 02 03 45 08 88 5D 0F 89 + 45 E8 8B FF 0F B6 5C 0E FE 8B 45 F8 03 C1 0F AF D8 8D 51 01 89 55 F4 + 33 D2 BF 06 00 00 00 8D 41 FF F7 F7 8B 45 F4 C1 EB 07 32 1C 32 33 D2 + F7 F7 8A C1 02 45 0F 2C 02 32 04 32 33 D2 88 45 FF 8B C1 8B F7 F7 F6 + 8A 45 FF 8B 75 14 22 04 32 02 D8 8B 45 E8 30 1C 08 8B 4D F4 8D 51 FE + 3B D7 72 A4 8B 45 E4 8B 7D E0 8B 5D F0 83 45 F8 06 43 89 5D F0 3B D8 + 0F 82 ?? ?? ?? ?? 3B DF 75 13 8D 04 7F 8B 7D 10 03 C0 2B F8 EB 09 33 + C9 E9 5B FF FF FF 33 FF 3B 7D EC 0F 83 ?? ?? ?? ?? 8B 55 08 8A CB 02 + C9 8D 04 19 02 C0 88 45 13 8D 04 5B 03 C0 8D 54 10 FE 89 45 E0 8D 4F + 02 89 55 E4 EB 09 8D 9B 00 00 00 00 8B 45 E0 0F B6 5C 31 FE 8D 44 01 + FE 0F AF D8 8D 51 01 89 55 0C 33 D2 BF 06 00 00 00 8D 41 FF F7 F7 8B + 45 0C C1 EB 07 32 1C 32 33 D2 F7 F7 8A C1 02 45 13 2C 02 32 04 32 33 + D2 88 45 0B 8B C1 8B F7 F7 F6 8A 45 0B 8B 75 14 22 04 32 02 D8 8B 45 + E4 30 1C 01 8B 4D 0C } + condition: + (uint16(0) == 0x5A4D or uint16(0) == 0xCFD0 or uint16(0) == 0xC3D4 or + uint32(0) == 0x46445025 or uint32(1) == 0x6674725C) and all of them +} + +rule IMPLANT_2_v10 { + meta: + description = "CORESHELL/SOURFACE Implant by APT28" + author = "US CERT" + reference = "https://www.us-cert.gov/ncas/current-activity/2017/02/10/Enhanced-Analysis-GRIZZLY-STEPPE" + date = "2017-02-10" + score = 85 + strings: + $STR1 = { 83 ?? 06 [7-17] fa [0-10] 45 [2-4] 48 [2-4] e8 [2] FF FF [6-8] + 48 8d [3] 48 89 [3] 45 [2] 4? [1-2] 01} + condition: + (uint16(0) == 0x5A4D) and all of them +} + +rule IMPLANT_2_v11 { + meta: + description = "CORESHELL/SOURFACE Implant by APT28" + author = "US CERT" + reference = "https://www.us-cert.gov/ncas/current-activity/2017/02/10/Enhanced-Analysis-GRIZZLY-STEPPE" + date = "2017-02-10" + score = 85 + strings: + $STR1 = {55 8b ec 6a fe 68 [4] 68 [4] 64 A1 00 00 00 00 50 83 EC 0C 53 + 56 57 A1 [4] 31 45 F8 33 C5 50 8D 45 F0 64 A3 00 00 00 00 [8-14] 68 + [4] 6a 01 [1-2] FF 15 [4] FF 15 [4] 3D B7 00 00 00 75 27} + condition: + (uint16(0) == 0x5A4D) and all of them +} + +rule IMPLANT_2_v14 { + meta: + description = "CORESHELL/SOURFACE Implant by APT28" + author = "US CERT" + reference = "https://www.us-cert.gov/ncas/current-activity/2017/02/10/Enhanced-Analysis-GRIZZLY-STEPPE" + date = "2017-02-10" + score = 85 + strings: + $STR1 = {8B ?? 44 89 44 24 60 41 F7 E0 8B F2 B8 AB AA AA AA C1 EE 02 89 + 74 24 58 44 8B ?? 41 F7 ?? 8B CA BA 03 00 00 00 C1 E9 02 89 0C 24 8D + 04 49 03 C0 44 2B ?? 44 89 ?? 24 04 3B F1 0F 83 ?? 01 00 00 8D 1C 76 + 4C 89 6C 24 } + $STR2 = {C5 41 F7 E0 ?? ?? ?? ?? ?? ?? 8D 0C 52 03 C9 2B C1 8B C8 ?? 8D + 04 ?? 46 0F B6 0C ?? 40 02 C7 41 8D 48 FF 44 32 C8 B8 AB AA AA AA F7 + E1 C1 EA 02 8D 04 52 03 C0 2B C8 B8 AB AA AA AA 46 22 0C ?? 41 8D 48 + FE F7 E1 C1 EA 02 8D 04 52 03 C0 2B C8 8B C1 } + $STR3 = {41 F7 E0 C1 EA 02 41 8B C0 8D 0C 52 03 C9 2B C1 8B C8 42 8D 04 + 1B 46 0F B6 0C ?? 40 02 C6 41 8D 48 FF 44 32 C8 B8 AB AA AA AA F7 E1 + C1 EA 02 8D 04 52 03 C0 2B C8 B8 AB AA AA AA } + $STR4 = {46 22 0C ?? 41 8D 48 FE F7 E1 C1 EA 02 8D 04 52 8B 54 24 58 03 + C0 2B C8 8B C1 0F B6 4F FF 42 0F B6 04 ?? 41 0F AF CB C1 } + condition: + (uint16(0) == 0x5A4D) and any of them +} + +rule IMPLANT_2_v15 { + meta: + description = "CORESHELL/SOURFACE Implant by APT28" + author = "US CERT" + reference = "https://www.us-cert.gov/ncas/current-activity/2017/02/10/Enhanced-Analysis-GRIZZLY-STEPPE" + date = "2017-02-10" + score = 85 + strings: + $XOR_LOOP1 = { 32 1C 02 33 D2 8B C7 89 5D E4 BB 06 00 00 00 F7 F3 } + $XOR_LOOP2 = { 32 1C 02 8B C1 33 D2 B9 06 00 00 00 F7 F1 } + $XOR_LOOP3 = { 02 C3 30 06 8B 5D F0 8D 41 FE 83 F8 06 } + condition: + (uint16(0) == 0x5A4D or uint16(0) == 0xCFD0 or uint16(0) == 0xC3D4 or + uint32(0) == 0x46445025 or uint32(1) == 0x6674725C) and all of them +} + +rule IMPLANT_2_v16 { + meta: + description = "CORESHELL/SOURFACE Implant by APT28" + author = "US CERT" + reference = "https://www.us-cert.gov/ncas/current-activity/2017/02/10/Enhanced-Analysis-GRIZZLY-STEPPE" + date = "2017-02-10" + score = 85 + strings: + $OBF_FUNCT = { 0F B6 1C 0B 8D 34 08 8D 04 0A 0F AF D8 33 D2 8D 41 FF F7 + 75 F8 8B 45 0C C1 EB 07 8D 79 01 32 1C 02 33 D2 8B C7 89 5D E4 BB 06 + 00 00 00 F7 F3 8B 45 0C 8D 59 FE 02 5D FF 32 1C 02 8B C1 33 D2 B9 06 + 00 00 00 F7 F1 8B 45 0C 8B CF 22 1C 02 8B 45 E4 8B 55 E0 02 C3 30 06 + 8B 5D F0 8D 41 FE 83 F8 06 8B 45 DC 72 9A } + condition: + (uint16(0) == 0x5A4D or uint16(0) == 0xCFD0 or uint16(0) == 0xC3D4 or + uint32(0) == 0x46445025 or uint32(1) == 0x6674725C) and $OBF_FUNCT +} + +rule IMPLANT_2_v17 { + meta: + description = "CORESHELL/SOURFACE Implant by APT28" + author = "US CERT" + reference = "https://www.us-cert.gov/ncas/current-activity/2017/02/10/Enhanced-Analysis-GRIZZLY-STEPPE" + date = "2017-02-10" + score = 85 + strings: + $STR1 = { 24108b44241c894424148b4424246836 } + $STR2 = { 518d4ddc516a018bd08b4de4e8360400 } + $STR3 = { e48178061591df75740433f6eb1a8b48 } + $STR4 = { 33d2f775f88b45d402d903c641321c3a } + $STR5 = { 006a0056ffd083f8ff74646a008d45f8 } + condition: + (uint16(0) == 0x5A4D) and 2 of them +} + +rule IMPLANT_2_v18 { + meta: + description = "CORESHELL/SOURFACE Implant by APT28" + author = "US CERT" + reference = "https://www.us-cert.gov/ncas/current-activity/2017/02/10/Enhanced-Analysis-GRIZZLY-STEPPE" + date = "2017-02-10" + score = 85 + strings: + $STR1 = { 8A C1 02 C0 8D 1C 08 8B 45 F8 02 DB 8D 4A 02 8B 55 0C 88 5D FF + 8B 5D EC 83 C2 FE 03 D8 89 55 E0 89 5D DC 8D 49 00 03 C1 8D 34 0B 0F + B6 1C 0A 0F AF D8 33 D2 8D 41 FF F7 75 F4 8B 45 0C C1 EB 07 8D 79 01 + 32 1C 02 33 D2 8B C7 89 5D E4 BB 06 00 00 00 F7 F3 8B 45 0C 8D 59 FE + 02 5D FF 32 1C 02 8B C1 33 D2 B9 06 00 00 00 F7 F1 8B 45 0C 8B CF 22 + 1C 02 8B 45 E4 8B 55 E0 02 C3 30 06 8B 5D DC 8D 41 FE 83 F8 06 8B 45 + F8 72 9B 8B 4D F0 8B 5D D8 8B 7D 08 8B F0 41 83 C6 06 89 4D F0 89 75 + F8 3B 4D D4 0F 82 ?? ?? ?? ?? 8B 55 E8 3B CB 75 09 8D 04 5B 03 C0 2B + F8 EB 02 33 FF 3B FA 0F 83 ?? ?? ?? ?? 8B 5D EC 8A C1 02 C0 83 C3 FE + 8D 14 08 8D 04 49 02 D2 03 C0 88 55 0B 8D 48 FE 8D 57 02 03 C3 89 4D + D4 8B 4D 0C 89 55 F8 89 45 D8 EB 06 8D 9B 00 00 00 00 0F B6 5C 0A FE + 8D 34 02 8B 45 D4 03 C2 0F AF D8 8D 7A 01 8D 42 FF 33 D2 F7 75 F4 C1 + EB 07 8B C7 32 1C 0A 33 D2 B9 06 00 00 00 F7 F1 8A 4D F8 8B 45 0C 80 + E9 02 02 4D 0B 32 0C 02 8B 45 F8 33 D2 F7 75 F4 8B 45 0C 22 0C 02 8B + D7 02 D9 30 1E 8B 4D 0C 8D 42 FE 3B 45 E8 } + condition: + (uint16(0) == 0x5A4D or uint16(0) == 0xCFD0 or uint16(0) == 0xC3D4 or + uint32(0) == 0x46445025 or uint32(1) == 0x6674725C) and all of them +} + +rule IMPLANT_2_v19 { + meta: + description = "CORESHELL/SOURFACE Implant by APT28" + author = "US CERT" + reference = "https://www.us-cert.gov/ncas/current-activity/2017/02/10/Enhanced-Analysis-GRIZZLY-STEPPE" + date = "2017-02-10" + score = 85 + strings: + $obfuscated_RSA1 = { 7C 41 B4 DB ED B0 B8 47 F1 9C A1 49 B6 57 A6 CC D6 + 74 B5 52 12 4D FC B1 B6 3B 85 73 DF AB 74 C9 25 D8 3C EA AE 8F 5E D2 + E3 7B 1E B8 09 3C AF 76 A1 38 56 76 BB A0 63 B6 9E 5D 86 E4 EC B0 DC + 89 1E FA 4A E5 79 81 3F DB 56 63 1B 08 0C BF DC FC 75 19 3E 1F B3 EE + 9D 4C 17 8B 16 9D 99 C3 0C 89 06 BB F1 72 46 7E F4 0B F6 CB B9 C2 11 + BE 5E 27 94 5D 6D C0 9A 28 F2 2F FB EE 8D 82 C7 0F 58 51 03 BF 6A 8D + CD 99 F8 04 D6 F7 F7 88 0E 51 88 B4 E1 A9 A4 3B } + $cleartext_RSA1 = { 06 02 00 00 00 A4 00 00 52 53 41 31 00 04 00 00 01 + 00 01 00 AF BD 26 C9 04 65 45 9F 0E 3F C4 A8 9A 18 C8 92 00 B2 CC 6E + 0F 2F B2 71 90 FC 70 2E 0A F0 CA AA 5D F4 CA 7A 75 8D 5F 9C 4B 67 32 + 45 CE 6E 2F 16 3C F1 8C 42 35 9C 53 64 A7 4A BD FA 32 99 90 E6 AC EC + C7 30 B2 9E 0B 90 F8 B2 94 90 1D 52 B5 2F F9 8B E2 E6 C5 9A 0A 1B 05 + 42 68 6A 3E 88 7F 38 97 49 5F F6 EB ED 9D EF 63 FA 56 56 0C 7E ED 14 + 81 3A 1D B9 A8 02 BD 3A E6 E0 FA 4D A9 07 5B E6 } + condition: + (uint16(0) == 0x5A4D or uint16(0) == 0xCFD0 or uint16(0) == 0xC3D4 or + uint32(0) == 0x46445025 or uint32(1) == 0x6674725C) and any of them +} + +rule IMPLANT_2_v20 { + meta: + description = "CORESHELL/SOURFACE Implant by APT28" + author = "US CERT" + reference = "https://www.us-cert.gov/ncas/current-activity/2017/02/10/Enhanced-Analysis-GRIZZLY-STEPPE" + date = "2017-02-10" + score = 85 + strings: + $func = { 0F B6 5C 0A FE 8D 34 02 8B 45 D4 03 C2 0F AF D8 8D 7A 01 8D 42 + FF 33 D2 F7 75 F4 C1 EB 07 8B C7 32 1C 0A 33 D2 B9 06 00 00 00 F7 F1 + 8A 4D F8 8B 45 0C 80 E9 02 02 4D 0B 32 0C 02 8B 45 F8 33 D2 F7 75 F4 + 8B 45 0C 22 0C 02 8B D7 02 D9 30 1E 8B 4D 0C 8D 42 FE 3B 45 E8 8B 45 + D8 89 55 F8 72 A0 } + condition: + (uint16(0) == 0x5A4D or uint16(0) == 0xCFD0 or uint16(0) == 0xC3D4 or + uint32(0) == 0x46445025 or uint32(1) == 0x6674725C) and all of them +} + +rule IMPLANT_3_v1 { + meta: + description = "X-Agent/CHOPSTICK Implant by APT28" + author = "US CERT" + reference = "https://www.us-cert.gov/ncas/current-activity/2017/02/10/Enhanced-Analysis-GRIZZLY-STEPPE" + date = "2017-02-10" + score = 85 + strings: + $STR1 = ">process isn't exist<" ascii wide + $STR2 = "shell\\open\\command=\"System Volume Information\\USBGuard.exe\" install" ascii wide + $STR3 = "User-Agent: Mozilla/5.0 (Windows NT 6.; WOW64; rv:20.0) Gecko/20100101 Firefox/20.0" ascii wide + $STR4 = "webhp?rel=psy&hl=7&ai=" ascii wide + $STR5 = {0f b6 14 31 88 55 ?? 33 d2 8b c1 f7 75 ?? 8b 45 ?? 41 0f b6 14 + 02 8a 45 ?? 03 fa} + condition: + any of them +} + +rule IMPLANT_3_v2 { + meta: + description = "X-Agent/CHOPSTICK Implant by APT28" + author = "US CERT" + reference = "https://www.us-cert.gov/ncas/current-activity/2017/02/10/Enhanced-Analysis-GRIZZLY-STEPPE" + date = "2017-02-10" + score = 85 + strings: + $base_key_moved = {C7 45 ?? 3B C6 73 0F C7 45 ?? 8B 07 85 C0 C7 45 ?? 74 + 02 FF D0 C7 45 ?? 83 C7 04 3B C7 45 ?? FE 72 F1 5F C7 45 ?? 5E C3 8B + FF C7 45 ?? 56 B8 D8 78 C7 45 ?? 75 07 50 E8 C7 45 ?? B1 D1 FF FF C7 + 45 ?? 59 5D C3 8B C7 45 ?? FF 55 8B EC C7 45 ?? 83 EC 10 A1 66 C7 45 + ?? 33 35} + $base_key_b_array = {3B C6 73 0F 8B 07 85 C0 74 02 FF D0 83 C7 04 3B FE + 72 F1 5F 5E C3 8B FF 56 B8 D8 78 75 07 50 E8 B1 D1 FF FF 59 5D C3 8B + FF 55 8B EC 83 EC 10 A1 33 35 } + condition: + (uint16(0) == 0x5A4D or uint16(0) == 0xCFD0 or uint16(0) == 0xC3D4 or + uint32(0) == 0x46445025 or uint32(1) == 0x6674725C) and any of them +} + +rule IMPLANT_3_v3 { + meta: + description = "X-Agent/CHOPSTICK Implant by APT28" + author = "US CERT" + reference = "https://www.us-cert.gov/ncas/current-activity/2017/02/10/Enhanced-Analysis-GRIZZLY-STEPPE" + date = "2017-02-10" + modified = "2021-03-15" + score = 65 + strings: + $STR1 = ".?AVAgentKernel@@" + $STR2 = ".?AVIAgentModule@@" + $STR3 = "AgentKernel" + + $fp1 = "Panda Security S.L." wide + condition: + (uint16(0) == 0x5A4D or uint16(0) == 0xCFD0 or uint16(0) == 0xC3D4 or + uint32(0) == 0x46445025 or uint32(1) == 0x6674725C) and 1 of ($STR*) + and not 1 of ($fp*) +} + +rule IMPLANT_4_v1 { + meta: + description = "BlackEnergy / Voodoo Bear Implant by APT28" + author = "US CERT" + reference = "https://www.us-cert.gov/ncas/current-activity/2017/02/10/Enhanced-Analysis-GRIZZLY-STEPPE" + date = "2017-02-10" + score = 85 + strings: + $STR1 = {55 8B EC 81 EC 54 01 00 00 83 65 D4 00 C6 45 D8 61 C6 45 D9 64 + C6 45 DA 76 C6 45 DB 61 C6 45 DC 70 C6 45 DD 69 C6 45 DE 33 C6 45 DF + 32 C6 45 E0 2EE9 ?? ?? ?? ??} $STR2 = {C7 45 EC 5A 00 00 00 C7 45 E0 + 46 00 00 00 C7 45 E8 5A 00 00 00 C7 45 E4 46 00 00 00} + condition: + (uint16(0)== 0x5A4D or uint16(0) == 0xCFD0 or uint16(0)== 0xC3D4 or + uint32(0) == 0x46445025 or uint32(1) == 0x6674725C) and 1 of them +} + +rule IMPLANT_4_v2 { + meta: + description = "BlackEnergy / Voodoo Bear Implant by APT28" + author = "US CERT" + reference = "https://www.us-cert.gov/ncas/current-activity/2017/02/10/Enhanced-Analysis-GRIZZLY-STEPPE" + date = "2017-02-10" + score = 85 + strings: + $BUILD_USER32 = {75 73 65 72 ?? ?? ?? 33 32 2E 64} + $BUILD_ADVAPI32 = {61 64 76 61 ?? ?? ?? 70 69 33 32} + $CONSTANT = {26 80 AC C8} + condition: + (uint16(0) == 0x5A4D or uint16(0) == 0xCFD0 or uint16(0) == 0xC3D4 or + uint32(0) == 0x46445025 or uint32(1) == 0x6674725C) and all of them +} + +/* Some false positives - replaced with alternative rule (see below) + +rule IMPLANT_4_v3 { + meta: + description = "BlackEnergy / Voodoo Bear Implant by APT28" + author = "US CERT" + reference = "https://www.us-cert.gov/ncas/current-activity/2017/02/10/Enhanced-Analysis-GRIZZLY-STEPPE" + date = "2017-02-10" + score = 85 + strings: + $a1 = "Adobe Flash Player Installer" wide nocase + $a3 = "regedt32.exe" wide nocase + $a4 = "WindowsSysUtility" wide nocase + $a6 = "USB MDM Driver" wide nocase + $b1 = {00 05 34 00 00 00 56 00 53 00 5F 00 56 00 45 00 52 00 53 00 49 00 + 4F 00 4E 00 5F 00 49 00 4E 00 46 00 4F 00 00 00 00 00 BD 04 EF FE 00 + 00 01 00 01 00 05 00 88 15 28 0A 01 00 05 00 88 15 28 0A 3F 00 00 00 + 00 00 00 00 04 00 04 00 03 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00 5C 04 00 00 01 00 53 00 74 00 72 00 69 00 6E 00 67 00 46 00 69 00 + 6C 00 65 00 49 00 6E 00 66 00 6F 00 00 00 1C 02 00 00 01 00 30 00 30 + 00 31 00 35 00 30 00 34 00 62 00 30 00 00 00 4C 00 16 00 01 00 43 00 + 6F 00 6D 00 70 00 61 00 6E 00 79 00 4E 00 61 00 6D 00 65 00 00 00 00 + 00 4D 00 69 00 63 00 72 00 6F 00 73 00 6F 00 66 00 74 00 20 00 43 00 + 6F 00 72 00 70 00 6F 00 72 00 61 00 74 00 69 00 6F 00 6E 00 00 00 46 + 00 0F 00 01 00 46 00 69 00 6C 00 65 00 44 00 65 00 73 00 63 00 72 00 + 69 00 70 00 74 00 69 00 6F 00 6E 00 00 00 00 00 55 00 53 00 42 00 20 + 00 4D 00 44 00 4D 00 20 00 44 00 72 00 69 00 76 00 65 00 72 00 00 00 + 00 00 3C 00 0E 00 01 00 46 00 69 00 6C 00 65 00 56 00 65 00 72 00 73 + 00 69 00 6F 00 6E 00 00 00 00 00 35 00 2E 00 31 00 2E 00 32 00 36 00 + 30 00 30 00 2E 00 35 00 35 00 31 00 32 00 00 00 4A 00 13 00 01 00 4C + 00 65 00 67 00 61 00 6C 00 43 00 6F 00 70 00 79 00 72 00 69 00 67 00 + 68 00 74 00 00 00 43 00 6F 00 70 00 79 00 72 00 69 00 67 00 68 00 74 + 00 20 00 28 00 43 00 29 00 20 00 32 00 30 00 31 00 33 00 00 00 00 00 + 3E 00 0B 00 01 00 4F 00 72 00 69 00 67 00 69 00 6E 00 61 00 6C 00 46 + 00 69 00 6C 00 65 00 6E 00 61 00 6D 00 65 00 00 00 75 00 73 00 62 00 + 6D 00 64 00 6D 00 2E 00 73 00 79 00 73 00 00 00 00 00 66 00 23 00 01 + 00 50 00 72 00 6F 00 64 00 75 00 63 00 74 00 4E 00 61 00 6D 00 65 00 + 00 00 00 00 4D 00 69 00 63 00 72 00 6F 00 73 00 6F 00 66 00 74 00 20 + 00 57 00 69 00 6E 00 64 00 6F 00 77 00 73 00 20 00 4F 00 70 00 65 00 + 72 00 61 00 74 00 69 00 6E 00 67 00 20 00 53 00 79 00 73 00 74 00 65 + 00 6D 00 00 00 00 00 40 00 0E 00 01 00 50 00 72 00 6F 00 64 00 75 00 + 63 00 74 00 56 00 65 00 72 00 73 00 69 00 6F 00 6E 00 00 00 35 00 2E + 00 31 00 2E 00 32 00 36 00 30 00 30 00 2E 00 35 00 35 00 31 00 32 00 + 00 00 1C 02 00 00 01 00 30 00 34 00 30 00 39 00 30 00 34 00 62 00 30 + 00 00 00 4C 00 16 00 01 00 43 00 6F 00 6D 00 70 00 61 00 6E 00 79 00 + 4E 00 61 00 6D 00 65 00 00 00 00 00 4D 00 69 00 63 00 72 00 6F 00 73 + 00 6F 00 66 00 74 00 20 00 43 00 6F 00 72 00 70 00 6F 00 72 00 61 00 + 74 00 69 00 6F 00 6E 00 00 00 46 00 0F 00 01 00 46 00 69 00 6C 00 65 + 00 44 00 65 00 73 00 63 00 72 00 69 00 70 00 74 00 69 00 6F 00 6E 00 + 00 00 00 00 55 00 53 00 42 00 20 00 4D 00 44 00 4D 00 20 00 44 00 72 + 00 69 00 76 00 65 00 72 00 00 00 00 00 3C 00 0E 00 01 00 46 00 69 00 + 6C 00 65 00 56 00 65 00 72 00 73 00 69 00 6F 00 6E 00 00 00 00 00 35 + 00 2E 00 31 00 2E 00 32 00 36 00 30 00 30 00 2E 00 35 00 35 00 31 00 + 32 00 00 00 4A 00 13 00 01 00 4C 00 65 00 67 00 61 00 6C 00 43 00 6F + 00 70 00 79 00 72 00 69 00 67 00 68 00 74 00 00 00 43 00 6F 00 70 00 + 79 00 72 00 69 00 67 00 68 00 74 00 20 00 28 00 43 00 29 00 20 00 32 + 00 30 00 31 00 33 00 00 00 00 00 3E 00 0B 00 01 00 4F 00 72 00 69 00 + 67 00 69 00 6E 00 61 00 6C 00 46 00 69 00 6C 00 65 00 6E 00 61 00 6D + 00 65 00 00 00 75 00 73 00 62 00 6D 00 64 00 6D 00 2E 00 73 00 79 00 + 73 00 00 00 00 00 66 00 23 00 01 00 50 00 72 00 6F 00 64 00 75 00 63 + 00 74 00 4E 00 61 00 6D 00 65 00 00 00 00 00 4D 00 69 00 63 00 72 00 + 6F 00 73 00 6F 00 66 00 74 00 20 00 57 00 69 00 6E 00 64 00 6F 00 77 + 00 73 00 20 00 4F 00 70 00 65 00 72 00 61 00 74 00 69 00 6E 00 67 00 + 20 00 53 00 79 00 73 00 74 00 65 00 6D 00 00 00 00 00 40 00 0E 00 01 + 00 50 00 72 00 6F 00 64 00 75 00 63 00 74 00 56 00 65 00 72 00 73 00 + 69 00 6F 00 6E 00 00 00 35 00 2E 00 31 00 2E 00 32 00 36 00 30 00 30 + 00 2E 00 35 00 35 00 31 00 32 00 00 00 48 00 00 00 01 00 56 00 61 00 + 72 00 46 00 69 00 6C 00 65 00 49 00 6E 00 66 00 6F 00 00 00 00 00 28 + 00 08 00 00 00 54 00 72 00 61 00 6E 00 73 00 6C 00 61 00 74 00 69 00 + 6F 00 6E 00 00 00 00 00 15 00 B0 04 09 04 B0 04} + $b2 = {34 03 34 00 00 00 56 00 53 00 5F 00 56 00 45 00 52 00 53 00 49 00 + 4F 00 4E 00 5F 00 49 00 4E 00 46 00 4F 00 00 00 00 00 BD 04 EF FE 00 + 00 01 00 03 00 03 00 04 00 02 00 03 00 03 00 04 00 02 00 3F 00 00 00 + 00 00 00 00 04 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00 94 02 00 00 00 00 53 00 74 00 72 00 69 00 6E 00 67 00 46 00 69 00 + 6C 00 65 00 49 00 6E 00 66 00 6F 00 00 00 70 02 00 00 00 00 30 00 34 + 00 30 00 39 00 30 00 34 00 65 00 34 00 00 00 4A 00 15 00 01 00 43 00 + 6F 00 6D 00 70 00 61 00 6E 00 79 00 4E 00 61 00 6D 00 65 00 00 00 00 + 00 53 00 6F 00 6C 00 69 00 64 00 20 00 53 00 74 00 61 00 74 00 65 00 + 20 00 4E 00 65 00 74 00 77 00 6F 00 72 00 6B 00 73 00 00 00 00 00 62 + 00 1D 00 01 00 46 00 69 00 6C 00 65 00 44 00 65 00 73 00 63 00 72 00 + 69 00 70 00 74 00 69 00 6F 00 6E 00 00 00 00 00 41 00 64 00 6F 00 62 + 00 65 00 20 00 46 00 6C 00 61 00 73 00 68 00 20 00 50 00 6C 00 61 00 + 79 00 65 00 72 00 20 00 49 00 6E 00 73 00 74 00 61 00 6C 00 6C 00 65 + 00 72 00 00 00 00 00 30 00 08 00 01 00 46 00 69 00 6C 00 65 00 56 00 + 65 00 72 00 73 00 69 00 6F 00 6E 00 00 00 00 00 33 00 2E 00 33 00 2E + 00 32 00 2E 00 34 00 00 00 32 00 09 00 01 00 49 00 6E 00 74 00 65 00 + 72 00 6E 00 61 00 6C 00 4E 00 61 00 6D 00 65 00 00 00 68 00 6F 00 73 + 00 74 00 2E 00 65 00 78 00 65 00 00 00 00 00 76 00 29 00 01 00 4C 00 + 65 00 67 00 61 00 6C 00 43 00 6F 00 70 00 79 00 72 00 69 00 67 00 68 + 00 74 00 00 00 43 00 6F 00 70 00 79 00 72 00 69 00 67 00 68 00 74 00 + 20 00 28 00 43 00 29 00 20 00 41 00 64 00 6F 00 62 00 65 00 20 00 53 + 00 79 00 73 00 74 00 65 00 6D 00 73 00 20 00 49 00 6E 00 63 00 6F 00 + 72 00 70 00 6F 00 72 00 61 00 74 00 65 00 64 00 00 00 00 00 3A 00 09 + 00 01 00 4F 00 72 00 69 00 67 00 69 00 6E 00 61 00 6C 00 46 00 69 00 + 6C 00 65 00 6E 00 61 00 6D 00 65 00 00 00 68 00 6F 00 73 00 74 00 2E + 00 65 00 78 00 65 00 00 00 00 00 5A 00 1D 00 01 00 50 00 72 00 6F 00 + 64 00 75 00 63 00 74 00 4E 00 61 00 6D 00 65 00 00 00 00 00 41 00 64 + 00 6F 00 62 00 65 00 20 00 46 00 6C 00 61 00 73 00 68 00 20 00 50 00 + 6C 00 61 00 79 00 65 00 72 00 20 00 49 00 6E 00 73 00 74 00 61 00 6C + 00 6C 00 65 00 72 00 00 00 00 00 34 00 08 00 01 00 50 00 72 00 6F 00 + 64 00 75 00 63 00 74 00 56 00 65 00 72 00 73 00 69 00 6F 00 6E 00 00 + 00 33 00 2E 00 33 00 2E 00 32 00 2E 00 34 00 00 00 44 00 00 00 00 00 + 56 00 61 00 72 00 46 00 69 00 6C 00 65 00 49 00 6E 00 66 00 6F 00 00 + 00 00 00 24 00 04 00 00 00 54 00 72 00 61 00 6E 00 73 00 6C 00 61 00 + 74 00 69 00 6F 00 6E 00 00 00 00 00 09 04 E4 04 46 45 32 58} + $b3 = {C8 02 34 00 00 00 56 00 53 00 5F 00 56 00 45 00 52 00 53 00 49 00 + 4F 00 4E 00 5F 00 49 00 4E 00 46 00 4F 00 00 00 00 00 BD 04 EF FE 00 + 00 01 00 01 00 05 00 88 15 28 0A 01 00 05 00 88 15 28 0A 17 00 00 00 + 00 00 00 00 04 00 04 00 03 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00 28 02 00 00 01 00 53 00 74 00 72 00 69 00 6E 00 67 00 46 00 69 00 + 6C 00 65 00 49 00 6E 00 66 00 6F 00 00 00 04 02 00 00 01 00 30 00 34 + 00 30 00 39 00 30 00 34 00 65 00 34 00 00 00 4C 00 16 00 01 00 43 00 + 6F 00 6D 00 70 00 61 00 6E 00 79 00 4E 00 61 00 6D 00 65 00 00 00 00 + 00 4D 00 69 00 63 00 72 00 6F 00 73 00 6F 00 66 00 74 00 20 00 43 00 + 6F 00 72 00 70 00 6F 00 72 00 61 00 74 00 69 00 6F 00 6E 00 00 00 48 + 00 10 00 01 00 46 00 69 00 6C 00 65 00 44 00 65 00 73 00 63 00 72 00 + 69 00 70 00 74 00 69 00 6F 00 6E 00 00 00 00 00 49 00 44 00 45 00 20 + 00 50 00 6F 00 72 00 74 00 20 00 44 00 72 00 69 00 76 00 65 00 72 00 + 00 00 62 00 21 00 01 00 46 00 69 00 6C 00 65 00 56 00 65 00 72 00 73 + 00 69 00 6F 00 6E 00 00 00 00 00 35 00 2E 00 31 00 2E 00 32 00 36 00 + 30 00 30 00 2E 00 35 00 35 00 31 00 32 00 20 00 28 00 78 00 70 00 73 + 00 70 00 2E 00 30 00 38 00 30 00 34 00 31 00 33 00 2D 00 30 00 38 00 + 35 00 32 00 29 00 00 00 00 00 4A 00 13 00 01 00 4C 00 65 00 67 00 61 + 00 6C 00 43 00 6F 00 70 00 79 00 72 00 69 00 67 00 68 00 74 00 00 00 + 43 00 6F 00 70 00 79 00 72 00 69 00 67 00 68 00 74 00 20 00 28 00 43 + 00 29 00 20 00 32 00 30 00 30 00 39 00 00 00 00 00 66 00 23 00 01 00 + 50 00 72 00 6F 00 64 00 75 00 63 00 74 00 4E 00 61 00 6D 00 65 00 00 + 00 00 00 4D 00 69 00 63 00 72 00 6F 00 73 00 6F 00 66 00 74 00 20 00 + 57 00 69 00 6E 00 64 00 6F 00 77 00 73 00 20 00 4F 00 70 00 65 00 72 + 00 61 00 74 00 69 00 6E 00 67 00 20 00 53 00 79 00 73 00 74 00 65 00 + 6D 00 00 00 00 00 40 00 0E 00 01 00 50 00 72 00 6F 00 64 00 75 00 63 + 00 74 00 56 00 65 00 72 00 73 00 69 00 6F 00 6E 00 00 00 35 00 2E 00 + 31 00 2E 00 32 00 36 00 30 00 30 00 2E 00 35 00 35 00 31 00 32 00 00 + 00 44 00 00 00 01 00 56 00 61 00 72 00 46 00 69 00 6C 00 65 00 49 00 + 6E 00 66 00 6F 00 00 00 00 00 24 00 04 00 00 00 54 00 72 00 61 00 6E + 00 73 00 6C 00 61 00 74 00 69 00 6F 00 6E 00 00 00 00 00 09 04 E4 04 } + $b4 = {9C 03 34 00 00 00 56 00 53 00 5F 00 56 00 45 00 52 00 53 00 49 00 + 4F 00 4E 00 5F 00 49 00 4E 00 46 00 4F 00 00 00 00 00 BD 04 EF FE 00 + 00 01 00 01 00 06 00 01 40 B0 1D 01 00 06 00 01 40 B0 1D 3F 00 00 00 + 00 00 00 00 04 00 04 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00 FA 02 00 00 01 00 53 00 74 00 72 00 69 00 6E 00 67 00 46 00 69 00 + 6C 00 65 00 49 00 6E 00 66 00 6F 00 00 00 D6 02 00 00 01 00 30 00 34 + 00 30 00 39 00 30 00 34 00 42 00 30 00 00 00 4C 00 16 00 01 00 43 00 + 6F 00 6D 00 70 00 61 00 6E 00 79 00 4E 00 61 00 6D 00 65 00 00 00 00 + 00 4D 00 69 00 63 00 72 00 6F 00 73 00 6F 00 66 00 74 00 20 00 43 00 + 6F 00 72 00 70 00 6F 00 72 00 61 00 74 00 69 00 6F 00 6E 00 00 00 58 + 00 18 00 01 00 46 00 69 00 6C 00 65 00 44 00 65 00 73 00 63 00 72 00 + 69 00 70 00 74 00 69 00 6F 00 6E 00 00 00 00 00 52 00 65 00 67 00 69 + 00 73 00 74 00 72 00 79 00 20 00 45 00 64 00 69 00 74 00 6F 00 72 00 + 20 00 55 00 74 00 69 00 6C 00 69 00 74 00 79 00 00 00 6C 00 26 00 01 + 00 46 00 69 00 6C 00 65 00 56 00 65 00 72 00 73 00 69 00 6F 00 6E 00 + 00 00 00 00 36 00 2E 00 31 00 2E 00 37 00 36 00 30 00 30 00 2E 00 31 + 00 36 00 33 00 38 00 35 00 20 00 28 00 77 00 69 00 6E 00 37 00 5F 00 + 72 00 74 00 6D 00 2E 00 30 00 39 00 30 00 37 00 31 00 33 00 2D 00 31 + 00 32 00 35 00 35 00 29 00 00 00 3A 00 0D 00 01 00 49 00 6E 00 74 00 + 65 00 72 00 6E 00 61 00 6C 00 4E 00 61 00 6D 00 65 00 00 00 72 00 65 + 00 67 00 65 00 64 00 74 00 33 00 32 00 2E 00 65 00 78 00 65 00 00 00 + 00 00 80 00 2E 00 01 00 4C 00 65 00 67 00 61 00 6C 00 43 00 6F 00 70 + 00 79 00 72 00 69 00 67 00 68 00 74 00 00 00 A9 00 20 00 4D 00 69 00 + 63 00 72 00 6F 00 73 00 6F 00 66 00 74 00 20 00 43 00 6F 00 72 00 70 + 00 6F 00 72 00 61 00 74 00 69 00 6F 00 6E 00 2E 00 20 00 41 00 6C 00 + 6C 00 20 00 72 00 69 00 67 00 68 00 74 00 73 00 20 00 72 00 65 00 73 + 00 65 00 72 00 76 00 65 00 64 00 2E 00 00 00 42 00 0D 00 01 00 4F 00 + 72 00 69 00 67 00 69 00 6E 00 61 00 6C 00 46 00 69 00 6C 00 65 00 6E + 00 61 00 6D 00 65 00 00 00 72 00 65 00 67 00 65 00 64 00 74 00 33 00 + 32 00 2E 00 65 00 78 00 65 00 00 00 00 00 6A 00 25 00 01 00 50 00 72 + 00 6F 00 64 00 75 00 63 00 74 00 4E 00 61 00 6D 00 65 00 00 00 00 00 + 4D 00 69 00 63 00 72 00 6F 00 73 00 6F 00 66 00 74 00 AE 00 20 00 57 + 00 69 00 6E 00 64 00 6F 00 77 00 73 00 AE 00 20 00 4F 00 70 00 65 00 + 72 00 61 00 74 00 69 00 6E 00 67 00 20 00 53 00 79 00 73 00 74 00 65 + 00 6D 00 00 00 00 00 42 00 0F 00 01 00 50 00 72 00 6F 00 64 00 75 00 + 63 00 74 00 56 00 65 00 72 00 73 00 69 00 6F 00 6E 00 00 00 36 00 2E + 00 31 00 2E 00 37 00 36 00 30 00 30 00 2E 00 31 00 36 00 33 00 38 00 + 35 00 00 00 00 00 44 00 00 00 01 00 56 00 61 00 72 00 46 00 69 00 6C + 00 65 00 49 00 6E 00 66 00 6F 00 00 00 00 00 24 00 04 00 00 00 54 00 + 72 00 61 00 6E 00 73 00 6C 00 61 00 74 00 69 00 6F 00 6E 00 00 00 00 + 00 09 04 B0 04} + $b5 = {78 03 34 00 00 00 56 00 53 00 5F 00 56 00 45 00 52 00 53 00 49 00 + 4F 00 4E 00 5F 00 49 00 4E 00 46 00 4F 00 00 00 00 00 BD 04 EF FE 00 + 00 01 00 00 00 05 00 6A 44 B1 1D 00 00 05 00 6A 44 B1 1D 3F 00 00 00 + 00 00 00 00 04 00 04 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00 D6 02 00 00 01 00 53 00 74 00 72 00 69 00 6E 00 67 00 46 00 69 00 + 6C 00 65 00 49 00 6E 00 66 00 6F 00 00 00 B2 02 00 00 01 00 30 00 34 + 00 30 00 39 00 30 00 34 00 42 00 30 00 00 00 4C 00 16 00 01 00 43 00 + 6F 00 6D 00 70 00 61 00 6E 00 79 00 4E 00 61 00 6D 00 65 00 00 00 00 + 00 4D 00 69 00 63 00 72 00 6F 00 73 00 6F 00 66 00 74 00 20 00 43 00 + 6F 00 72 00 70 00 6F 00 72 00 61 00 74 00 69 00 6F 00 6E 00 00 00 4E + 00 13 00 01 00 46 00 69 00 6C 00 65 00 44 00 65 00 73 00 63 00 72 00 + 69 00 70 00 74 00 69 00 6F 00 6E 00 00 00 00 00 57 00 69 00 6E 00 64 + 00 6F 00 77 00 73 00 AE 00 53 00 79 00 73 00 55 00 74 00 69 00 6C 00 + 69 00 74 00 79 00 00 00 00 00 72 00 29 00 01 00 46 00 69 00 6C 00 65 + 00 56 00 65 00 72 00 73 00 69 00 6F 00 6E 00 00 00 00 00 35 00 2E 00 + 30 00 2E 00 37 00 36 00 30 00 31 00 2E 00 31 00 37 00 35 00 31 00 34 + 00 20 00 28 00 77 00 69 00 6E 00 37 00 73 00 70 00 31 00 5F 00 72 00 + 74 00 6D 00 2E 00 31 00 30 00 31 00 31 00 31 00 39 00 2D 00 31 00 38 + 00 35 00 30 00 29 00 00 00 00 00 30 00 08 00 01 00 49 00 6E 00 74 00 + 65 00 72 00 6E 00 61 00 6C 00 4E 00 61 00 6D 00 65 00 00 00 6D 00 73 + 00 69 00 65 00 78 00 65 00 63 00 00 00 80 00 2E 00 01 00 4C 00 65 00 + 67 00 61 00 6C 00 43 00 6F 00 70 00 79 00 72 00 69 00 67 00 68 00 74 + 00 00 00 A9 00 20 00 4D 00 69 00 63 00 72 00 6F 00 73 00 6F 00 66 00 + 74 00 20 00 43 00 6F 00 72 00 70 00 6F 00 72 00 61 00 74 00 69 00 6F + 00 6E 00 2E 00 20 00 41 00 6C 00 6C 00 20 00 72 00 69 00 67 00 68 00 + 74 00 73 00 20 00 72 00 65 00 73 00 65 00 72 00 76 00 65 00 64 00 2E + 00 00 00 40 00 0C 00 01 00 4F 00 72 00 69 00 67 00 69 00 6E 00 61 00 + 6C 00 46 00 69 00 6C 00 65 00 6E 00 61 00 6D 00 65 00 00 00 6D 00 73 + 00 69 00 65 00 78 00 65 00 63 00 2E 00 65 00 78 00 65 00 00 00 58 00 + 1C 00 01 00 50 00 72 00 6F 00 64 00 75 00 63 00 74 00 4E 00 61 00 6D + 00 65 00 00 00 00 00 57 00 69 00 6E 00 64 00 6F 00 77 00 73 00 53 00 + 79 00 73 00 55 00 74 00 69 00 6C 00 69 00 74 00 79 00 20 00 2D 00 20 + 00 55 00 6E 00 69 00 63 00 6F 00 64 00 65 00 00 00 42 00 0F 00 01 00 + 50 00 72 00 6F 00 64 00 75 00 63 00 74 00 56 00 65 00 72 00 73 00 69 + 00 6F 00 6E 00 00 00 35 00 2E 00 30 00 2E 00 37 00 36 00 30 00 31 00 + 2E 00 31 00 37 00 35 00 31 00 34 00 00 00 00 00 44 00 00 00 01 00 56 + 00 61 00 72 00 46 00 69 00 6C 00 65 00 49 00 6E 00 66 00 6F 00 00 00 + 00 00 24 00 04 00 00 00 54 00 72 00 61 00 6E 00 73 00 6C 00 61 00 74 + 00 69 00 6F 00 6E 00 00 00 00 00 09 04 B0 04} + $b6 = {D4 02 34 00 00 00 56 00 53 00 5F 00 56 00 45 00 52 00 53 00 49 00 + 4F 00 4E 00 5F 00 49 00 4E 00 46 00 4F 00 00 00 00 00 BD 04 EF FE 00 + 00 01 00 01 00 05 00 88 15 28 0A 01 00 05 00 88 15 28 0A 17 00 00 00 + 00 00 00 00 04 00 04 00 03 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00 34 02 00 00 01 00 53 00 74 00 72 00 69 00 6E 00 67 00 46 00 69 00 + 00 65 00 49 00 6E 00 66 00 6F 00 00 00 10 02 00 00 01 00 30 00 34 00 + 30 00 39 00 30 00 34 00 65 00 34 00 00 00 4C 00 16 00 01 00 43 00 6F + 00 6D 00 70 00 61 00 6E 00 79 00 4E 00 61 00 6D 00 65 00 00 00 00 00 + 4D 00 69 00 63 00 72 00 6F 00 73 00 6F 00 66 00 74 00 20 00 43 00 6F + 00 72 00 70 00 6F 00 72 00 61 00 74 00 69 00 6F 00 6E 00 00 00 4E 00 + 13 00 01 00 46 00 69 00 6C 00 65 00 44 00 65 00 73 00 63 00 72 00 69 + 00 70 00 74 00 69 00 6F 00 6E 00 00 00 00 00 53 00 65 00 72 00 69 00 + 61 00 6C 00 20 00 50 00 6F 00 72 00 74 00 20 00 44 00 72 00 69 00 76 + 00 65 00 72 00 00 00 00 00 62 00 21 00 01 00 46 00 69 00 6C 00 65 00 + 56 00 65 00 72 00 73 00 69 00 6F 00 6E 00 00 00 00 00 35 00 2E 00 31 + 00 2E 00 32 00 36 00 30 00 30 00 2E 00 35 00 35 00 31 00 32 00 20 00 + 28 00 78 00 70 00 73 00 70 00 2E 00 30 00 38 00 30 00 34 00 31 00 33 + 00 2D 00 30 00 38 00 35 00 32 00 29 00 00 00 00 00 4A 00 13 00 01 00 + 4C 00 65 00 67 00 61 00 6C 00 43 00 6F 00 70 00 79 00 72 00 69 00 67 + 00 68 00 74 00 00 00 43 00 6F 00 70 00 79 00 72 00 69 00 67 00 68 00 + 74 00 20 00 28 00 43 00 29 00 20 00 32 00 30 00 30 00 34 00 00 00 00 + 00 6A 00 25 00 01 00 50 00 72 00 6F 00 64 00 75 00 63 00 74 00 4E 00 + 61 00 6D 00 65 00 00 00 00 00 4D 00 69 00 63 00 72 00 6F 00 73 00 6F + 00 66 00 74 00 AE 00 20 00 57 00 69 00 6E 00 64 00 6F 00 77 00 73 00 + AE 00 20 00 4F 00 70 00 65 00 72 00 61 00 74 00 69 00 6E 00 67 00 20 + 00 53 00 79 00 73 00 74 00 65 00 6D 00 00 00 00 00 40 00 0E 00 01 00 + 50 00 72 00 6F 00 64 00 75 00 63 00 74 00 56 00 65 00 72 00 73 00 69 + 00 6F 00 6E 00 00 00 35 00 2E 00 31 00 2E 00 32 00 36 00 30 00 30 00 + 2E 00 35 00 35 00 31 00 32 00 00 00 44 00 00 00 01 00 56 00 61 00 72 + 00 46 00 69 00 6C 00 65 00 49 00 6E 00 66 00 6F 00 00 00 00 00 24 00 + 04 00 00 00 54 00 72 00 61 00 6E 00 73 00 6C 00 61 00 74 00 69 00 6F + 00 6E 00 00 00 00 00 09 04 E4 04} + condition: + (uint16(0) == 0x5A4D and uint32(uint32(0x3C)) == 0x00004550) and + (((any of ($a*)) and (uint32(uint32(0x3C)+8) == 0x00000000)) or + (for any of ($b*): ($ in (uint32(uint32(0x3C)+248+(40*(uint16(uint32(0x3C)+6)-1)+20))..(uint32(uint32(0x3C)+248+(40*(uint16(uint32(0x3C)+6)-1)+20))+uint32(uint32(0x3C)+248+(40*(uint16(uint32(0x3C)+6)-1)+16))))))) +} + +*/ + +/* + Yara Rule Set + Author: Florian Roth + Date: 2017-02-12 + Identifier: Grizzly Steppe Alternatives +*/ + +/* Alternative Rule Set ---------------------------------------------------- */ + +rule IMPLANT_4_v3_AlternativeRule : HIGHVOL { + meta: + description = "Detects a group of different malware samples" + comment = "Alternative rule - not based on the original samples but samples on which the original rule matched" + license = "Detection Rule License 1.1 https://github.com/Neo23x0/signature-base/blob/master/LICENSE" + author = "Florian Roth" + reference = "US CERT Grizzly Steppe Report" + date = "2017-02-12" + hash1 = "2244fe9c5d038edcb5406b45361613cf3909c491e47debef35329060b00c985a" + strings: + $op1 = { 33 c9 41 ff 13 13 c9 ff 13 72 f8 c3 53 1e 01 00 } /* Opcode */ + $op2 = { 21 da 40 00 00 a0 40 00 08 a0 40 00 b0 70 40 00 } /* Opcode */ + condition: + ( uint16(0) == 0x5a4d and all of them ) +} + +/* Alternative Rule Set ---------------------------------------------------- */ + +rule IMPLANT_4_v4 { + meta: + description = "BlackEnergy / Voodoo Bear Implant by APT28" + author = "US CERT" + reference = "https://www.us-cert.gov/ncas/current-activity/2017/02/10/Enhanced-Analysis-GRIZZLY-STEPPE" + date = "2017-02-10" + score = 85 + strings: + $DK_format1 = "/c format %c: /Y /Q" ascii + $DK_format2 = "/c format %c: /Y /X /FS:NTFS" ascii + $DK_physicaldrive = "PhysicalDrive%d" wide + $DK_shutdown = "shutdown /r /t %d" + condition: + uint16(0) == 0x5A4D and all of ($DK*) +} + +rule IMPLANT_4_v5 { + meta: + description = "BlackEnergy / Voodoo Bear Implant by APT28" + author = "US CERT" + reference = "https://www.us-cert.gov/ncas/current-activity/2017/02/10/Enhanced-Analysis-GRIZZLY-STEPPE" + date = "2017-02-10" + score = 85 + strings: + $GEN_HASH = {0F BE C9 C1 C0 07 33 C1} + condition: + (uint16(0) == 0x5A4D or uint16(0) == 0xCFD0 or + uint16(0) == 0xC3D4 or uint32(0) == 0x46445025 or + uint32(1) == 0x6674725C) and all of them +} + +/* TOO MANY FALSE POSITIVES + +rule IMPLANT_4_v6 { + meta: + description = "BlackEnergy / Voodoo Bear Implant by APT28" + author = "US CERT" + reference = "https://www.us-cert.gov/ncas/current-activity/2017/02/10/Enhanced-Analysis-GRIZZLY-STEPPE" + date = "2017-02-10" + score = 85 + strings: + $STR1 = "DispatchCommand" wide ascii + $STR2 = "DispatchEvent" wide ascii + condition: + (uint16(0) == 0x5A4D or uint16(0) == 0xCFD0 or uint16(0) == 0xC3D4 or + uint32(0) == 0x46445025 or uint32(1) == 0x6674725C) and all of them +} + +*/ + +rule IMPLANT_4_v7 { + meta: + description = "BlackEnergy / Voodoo Bear Implant by APT28" + author = "US CERT" + reference = "https://www.us-cert.gov/ncas/current-activity/2017/02/10/Enhanced-Analysis-GRIZZLY-STEPPE" + date = "2017-02-10" + score = 85 + strings: + $sb1 = {C7 [1-5] 33 32 2E 64 C7 [1-5] 77 73 32 5F 66 C7 [1-5] 6C 6C} + $sb2 = {C7 [1-5] 75 73 65 72 C7 [1-5] 33 32 2E 64 66 C7 [1-5] 6C 6C} + $sb3 = {C7 [1-5] 61 64 76 61 C7 [1-5] 70 69 33 32 C7 [1-5] 2E 64 6C 6C} + $sb4 = {C7 [1-5] 77 69 6E 69 C7 [1-5] 6E 65 74 2E C7 [1-5] 64 6C 6C} + $sb5 = {C7 [1-5] 73 68 65 6C C7 [1-5] 6C 33 32 2E C7 [1-5] 64 6C 6C} + $sb6 = {C7 [1-5] 70 73 61 70 C7 [1-5] 69 2E 64 6C 66 C7 [1-5] 6C} + $sb7 = {C7 [1-5] 6E 65 74 61 C7 [1-5] 70 69 33 32 C7 [1-5] 2E 64 6C 6C} + $sb8 = {C7 [1-5] 76 65 72 73 C7 [1-5] 69 6F 6E 2E C7 [1-5] 64 6C 6C} + $sb9 = {C7 [1-5] 6F 6C 65 61 C7 [1-5] 75 74 33 32 C7 [1-5] 2E 64 6C 6C} + $sb10 = {C7 [1-5] 69 6D 61 67 C7 [1-5] 65 68 6C 70 C7 [1-5] 2E 64 6C 6C} + condition: + (uint16(0) == 0x5A4D or uint16(0) == 0xCFD0 or uint16(0) == 0xC3D4 or + uint32(0) == 0x46445025 or uint32(1) == 0x6674725C) and 3 of them +} + +rule IMPLANT_4_v8 { + meta: + description = "BlackEnergy / Voodoo Bear Implant by APT28" + author = "US CERT" + reference = "https://www.us-cert.gov/ncas/current-activity/2017/02/10/Enhanced-Analysis-GRIZZLY-STEPPE" + date = "2017-02-10" + score = 85 + strings: + $f1 = {5E 81 EC 04 01 00 00 8B D4 68 04 01 00 00 52 6A 00 FF 57 1C 8B D4 + 33 C9 03 D0 4A 41 3B C8 74 05 80 3A 5C 75 F5 42 81 EC 04 01 00 00 8B + DC 52 51 53 68 04 01 00 00 FF 57 20 59 5A 66 C7 04 03 5C 20 56 57 8D + 3C 03 8B F2 F3 A4 C6 07 00 5F 5E 33 C0 50 68 80 00 00 00 6A 02 50 50 + 68 00 00 00 40 53 FF 57 14 53 8B 4F 4C 8B D6 33 DB 30 1A 42 43 3B D9 + 7C F8 5B 83 EC 04 8B D4 50 6A 00 52 FF 77 4C 8B D6 52 50 FF 57 24 FF + 57 18} + $f2 = {5E 83 EC 1C 8B 45 08 8B 4D 08 03 48 3C 89 4D E4 89 75 EC 8B 45 08 + 2B 45 10 89 45 E8 33 C0 89 45 F4 8B 55 0C 3B 55 F4 0F 86 98 00 00 00 + 8B 45 EC 8B 4D F4 03 48 04 89 4D F4 8B 55 EC 8B 42 04 83 E8 08 D1 E8 + 89 45 F8 8B 4D EC 83 C1 08 89 4D FC} + $f3 = {5F 8B DF 83 C3 60 2B 5F 54 89 5C 24 20 8B 44 24 24 25 00 00 FF FF + 66 8B 18 66 81 FB 4D 5A 74 07 2D 00 00 01 00 EB EF 8B 48 3C 03 C8 66 + 8B 19 66 81 FB 50 45 75 E0 8B E8 8B F7 83 EC 60 8B FC B9 60 00 00 00 + F3 A4 83 EF 60 6A 0D 59 E8 88 00 00 00 E2 F9 68 6C 33 32 00 68 73 68 + 65 6C 54 FF 57} + $a1 = {83 EC 04 60 E9 1E 01 00 00} + condition: + $a1 at pe.entry_point or any of ($f*) +} + +rule IMPLANT_4_v9 { + meta: + description = "BlackEnergy / Voodoo Bear Implant by APT28" + author = "US CERT" + reference = "https://www.us-cert.gov/ncas/current-activity/2017/02/10/Enhanced-Analysis-GRIZZLY-STEPPE" + date = "2017-02-10" + score = 85 + strings: + $a = "wevtutil clear-log" ascii wide nocase + $b = "vssadmin delete shadows" ascii wide nocase + $c = "AGlobal\\23d1a259-88fa-41df-935f-cae523bab8e6" ascii wide nocase + $d = "Global\\07fd3ab3-0724-4cfd-8cc2-60c0e450bb9a" ascii wide nocase //$e = {57 55 33 c9 51 8b c3 99 57 52 50} + $openPhysicalDiskOverwriteWithZeros = { 57 55 33 C9 51 8B C3 99 57 52 + 50 E8 ?? ?? ?? ?? 52 50 E8 ?? ?? ?? ?? 83 C4 10 84 C0 75 21 33 C0 89 + 44 24 10 89 44 24 14 6A 01 8B C7 99 8D 4C 24 14 51 52 50 56 FF 15 ?? + ?? ?? ?? 85 C0 74 0B 83 C3 01 81 FB 00 01 00 00 7C B6 } + $f = {83 c4 0c 53 53 6a 03 53 6a 03 68 00 00 00 c0} + condition: + ($a and $b) or $c or $d or ($openPhysicalDiskOverwriteWithZeros and $f) +} + +rule IMPLANT_4_v10 { + meta: + description = "BlackEnergy / Voodoo Bear Implant by APT28" + author = "US CERT" + reference = "https://www.us-cert.gov/ncas/current-activity/2017/02/10/Enhanced-Analysis-GRIZZLY-STEPPE" + date = "2017-02-10" + score = 85 + strings: + $ ={A1B05C72} + $ ={EB3D0384} + $ ={6F45594E} + $ ={71815A4E} + $ ={D5B03E72} + $ ={6B43594E} + $ ={F572993D} + $ ={665D9DC0} + $ ={0BE7A75A} + $ ={F37443C5} + $ ={A2A474BB} + $ ={97DEEC67} + $ ={7E0CB078} + $ ={9C9678BF} + $ ={4A37A149} + $ ={8667416B} + $ ={0A375BA4} + $ ={DC505A8D} + $ ={02F1F808} + $ ={2C819712} + condition: + uint16(0) == 0x5A4D and uint16(uint32(0x3c)) == 0x4550 and 15 of them +} + +rule IMPLANT_4_v11 { + meta: + description = "BlackEnergy / Voodoo Bear Implant by APT28" + author = "US CERT" + reference = "https://www.us-cert.gov/ncas/current-activity/2017/02/10/Enhanced-Analysis-GRIZZLY-STEPPE" + date = "2017-02-10" + score = 85 + strings: + $ = "/c format %c: /Y /X /FS:NTFS" + $ = ".exe.sys.drv.doc.docx.xls.xlsx.mdb.ppt.pptx.xml.jpg.jpeg.ini.inf.ttf" wide + $ = ".dll.exe.xml.ttf.nfo.fon.ini.cfg.boot.jar" wide + $= ".crt.bin.exe.db.dbf.pdf.djvu.doc.docx.xls.xlsx.jar.ppt.pptx.tib.vhd.iso.lib.mdb.accdb.sql.mdf.xml.rtf.ini.cf g.boot.txt.rar.msi.zip.jpg.bmp.jpeg.tiff" wide + $tempfilename = "%ls_%ls_%ls_%d.~tmp" ascii wide + condition: + (uint16(0) == 0x5A4D or uint16(0) == 0xCFD0 or uint16(0) == 0xC3D4 or + uint32(0) == 0x46445025 or uint32(1) == 0x6674725C) and 2 of them +} + +/* Deactivated - Slowing down scanning + +rule IMPLANT_4_v12 { + meta: + description = "BlackEnergy / Voodoo Bear Implant by APT28" + author = "US CERT" + reference = "https://www.us-cert.gov/ncas/current-activity/2017/02/10/Enhanced-Analysis-GRIZZLY-STEPPE" + date = "2017-02-10" + score = 85 + strings: + $CMP1 = {81 ?? 4D 5A 00 00 } + $SUB1 = {81 ?? 00 10 00 00} + $CMP2 = {66 81 38 4D 5A} + $SUB2 = {2D 00 10 00 00} + $HAL = "HAL.dll" + $OUT = {E6 64 E9 ?? ?? FF FF} + condition: + (uint16(0) == 0x5A4D or uint16(0) == 0xCFD0 or uint16(0) == 0xC3D4 or + uint32(0) == 0x46445025 or uint32(1) == 0x6674725C) and ($CMP1 or $CMP2) + and ($SUB1 or $SUB2) and $OUT and $HAL +} +*/ + +rule IMPLANT_4_v13 { + meta: + description = "BlackEnergy / Voodoo Bear Implant by APT28" + author = "US CERT" + reference = "https://www.us-cert.gov/ncas/current-activity/2017/02/10/Enhanced-Analysis-GRIZZLY-STEPPE" + date = "2017-02-10" + score = 85 + strings: + $XMLDOM1 = {81 BF 33 29 36 7B D2 11 B2 0E 00 C0 4F 98 3E 60} + $XMLDOM2 = {90 BF 33 29 36 7B D2 11 B2 0E 00 C0 4F 98 3E 60} + $XMLPARSE = {8B 06 [0-2] 8D 55 ?C 52 FF 75 08 [0-2] 50 FF 91 04 01 00 00 + 66 83 7D ?C FF 75 3? 8B 06 [0-2] 8D 55 F? 52 50 [0-2] FF 51 30 85 C0 + 78 2?} + $EXP1 = "DispatchCommand" + $EXP2 = "DispatchEvent" + $BDATA = {85 C0 74 1? 0F B7 4? 06 83 C? 28 [0-6] 72 ?? 33 C0 5F 5E 5B 5D + C2 08 00 8B 4? 0? 8B 4? 0? 89 01 8B 4? 0C 03 [0-2] EB E?} + condition: + (uint16(0) == 0x5A4D or uint16(0) == 0xCFD0 or uint16(0) == 0xC3D4 or + uint32(0) == 0x46445025 or uint32(1) == 0x6674725C) and all of them +} + +rule IMPLANT_5_v1 { + meta: + description = "XTunnel Implant by APT28" + author = "US CERT" + reference = "https://www.us-cert.gov/ncas/current-activity/2017/02/10/Enhanced-Analysis-GRIZZLY-STEPPE" + date = "2017-02-10" + score = 85 + strings: + $hexstr = {2D 00 53 00 69 00 00 00 2D 00 53 00 70 00 00 00 2D 00 55 00 + 70 00 00 00 2D 00 50 00 69 00 00 00 2D 00 50 00 70 00 00 00} + $UDPMSG1 = "error 2005 recv from server UDP - %d\x0a" + $TPSMSG1 = "error 2004 send to TPS - %d\x0a" + $TPSMSG2 = "error 2003 recv from TPS - %d\x0a" + $UDPMSG2 = "error 2002 send to server UDP - %d\x0a" + condition: + any of them +} + +rule IMPLANT_5_v2 { + meta: + description = "XTunnel Implant by APT28" + author = "US CERT" + reference = "https://www.us-cert.gov/ncas/current-activity/2017/02/10/Enhanced-Analysis-GRIZZLY-STEPPE" + date = "2017-02-10" + score = 85 + strings: + $key0 = { 987AB999FE0924A2DF0A412B14E26093746FCDF9BA31DC05536892C33B116AD3 } + $key1 = { 8B236C892D902B0C9A6D37AE4F9842C3070FBDC14099C6930158563C6AC00FF5 } + $key2 = { E47B7F110CAA1DA617545567EC972AF3A6E7B4E6807B7981D3CFBD3D8FCC3373 } + $key3 = { 48B284545CA1FA74F64FDBE2E605D68CED8A726D05EBEFD9BAAC164A7949BDC1 } + $key4 = { FB421558E30FCCD95FA7BC45AC92D2991C44072230F6FBEAA211341B5BF2DC56 } + $key5 = { 34F1AE17017AF16021ADA5CE3F77675BBC6E7DEC6478D6078A0B22E5FDFF3B31 } + $key6 = { F0EA48F164395186E6F754256EBB812A2AFE168E77ED9501F8B8E6F5B72126A7 } + $key7 = { 0B6E9970A8EAF68EE14AB45005357A2F3391BEAA7E53AB760B916BC2B3916ABE } + $key8 = { FF032EA7ED2436CF6EEA1F741F99A3522A61FDA8B5A81EC03A8983ED1AEDAB1A } + $key9 = { F0DAC1DDFEF7AC6DE1CBE1006584538FE650389BF8565B32E0DE1FFACBCB14BB } + $key10 = { A5D699A3CD4510AF11F1AF767602055C523DF74B94527D74319D6EFC6883B80D } + $key11 = { 5951B02696C1D5A7B2851D28872384DA607B25F4CEA268FF3FD7FBA75AB3B4B3 } + $key12 = { 0465D99B26AF42D8346001BB838595E301BAD8CF5D40CE9C17C944717DF82481 } + $key13 = { 5DFE1C83AD5F5CE1BF5D9C42E23225E3ECFDB2493E80E6554A2AC7C722EB4880 } + $key14 = { E9650396C45F7783BC14C59F46EA8232E8357C26B5627BFF8C42C6AE2E0F2E17 } + $key15 = { 7432AE389125BB4E3980ED7F6A6FB252A42E785A90F4591C3620CA642FF97CA3 } + $key16 = { 2B2ADBBC4F960A8916F7088067BAD30BE84B65783FBF9476DF5FDA0E5856B183 } + $key17 = { 808C3FD0224A59384161B8A81C8BB404D7197D16D8118CB77067C5C8BD764B3E } + $key18 = { 028B0E24D5675C16C815BFE4A073E9778C668E65771A1CE881E2B03F58FC7D5B } + $key19 = { 878B7F5CF2DC72BAF1319F91A4880931EE979665B1B24D3394FE72EDFAEF4881 } + $key20 = { 7AC7DD6CA34F269481C526254D2F563BC6ECA1779FEEAA33EC1C20E60B686785 } + $key21 = { 3044F1D394186815DD8E3A2BBD9166837D07FA1CF6A550E2C170C9CDD9305209 } + $key22 = { 7544DC095C441E39D258648FE9CB1267D20D83C8B2D3AB734474401DA4932619 } + $key23 = { D702223347406C1999D1A9829CBBE96EC86D377A40E2EE84562EA1FAC1C71498 } + $key24 = { CA36CB1177382A1009D392A58F7C1357E94AD2292CC0AE82EE4F7DB0179148E1 } + $key25 = { C714F23E4C1C4E55F0E1FA7F5D0DD64658A86F84681D07576D840784154F65DC } + $key26 = { 63571BAF736904634AFEE2A70CB9ED64615DE8CA7AEF21E773286B8877D065DB } + $key27 = { 27808A9BE98FFE348DE1DB999AC9FDFB26E6C5A0D5E688490EF3D186C43661EB } + $key28 = { B6EB86A07A85D40866AFA100789FFB9E85C13F5AA7C7A3B6BA753C7EAB9D6A62 } + $key29 = { 88F0020375D60BDB85ACDBFE4BD79CD098DB2B3FA2CEF55D4331DBEFCE455157 } + $key30 = { 36535AAB296587AE1162AC5D39492DD1245811C72706246A38FF590645AA5D7B } + $key31 = { FDB726261CADD52E10818B49CAB81BEF112CB63832DAA26AD9FC711EA6CE99A4 } + $key32 = { 86C0CAA26D9FD07D215BC7EB14E2DA250E905D406AFFAB44FB1C62A2EAFC4670 } + $key33 = { BC101329B0E3A7D13F6EBC535097785E27D59E92D449D6D06538725034B8C0F0 } + $key34 = { C8D31A78B7C149F62F06497F9DC1DDC4967B566AC52C3A2A65AC7A99643B8A2D } + $key35 = { 0EA4A5C565EFBB94F5041392C5F0565B6BADC630D9005B3EADD5D81110623E1F } + $key36 = { 06E4E46BD3A0FFC8A4125A6A02B0C56D5D8B9E378CF97539CE4D4ADFAF89FEB5 } + $key37 = { 6DE22040821F0827316291331256A170E23FA76E381CA7066AF1E5197AE3CFE7 } + $key38 = { C6EF27480F2F6F40910074A45715143954BBA78CD74E92413F785BBA5B2AA121 } + $key39 = { 19C96A28F8D9698ADADD2E31F2426A46FD11D2D45F64169EDC7158389BFA59B4 } + $key40 = { C3C3DDBB9D4645772373A815B5125BB2232D8782919D206E0E79A6A973FF5D36 } + $key41 = { C33AF1608037D7A3AA7FB860911312B4409936D236564044CFE6ED42E54B78A8 } + $key42 = { 856A0806A1DFA94B5E62ABEF75BEA3B657D9888E30C8D2FFAEC042930BBA3C90 } + $key43 = { 244496C524401182A2BC72177A15CDD2EF55601F1D321ECBF2605FFD1B9B8E3F } + $key44 = { DF24050364168606D2F81E4D0DEB1FFC417F1B5EB13A2AA49A89A1B5242FF503 } + $key45 = { 54FA07B8108DBFE285DD2F92C84E8F09CDAA687FE492237F1BC4343FF4294248 } + $key46 = { 23490033D6BF165B9C45EE65947D6E6127D6E00C68038B83C8BFC2BCE905040C } + $key47 = { 4E044025C45680609B6EC52FEB3491130A711F7375AAF63D69B9F952BEFD5F0C } + $key48 = { 019F31C5F5B2269020EBC00C1F511F2AC23E9D37E89374514C6DA40A6A03176C } + $key49 = { A2483197FA57271B43E7276238468CFB8429326CBDA7BD091461147F642BEB06 } + $key50 = { 731C9D6E74C589B7ACB019E5F6A6E07ACF12E68CB9A396CE05AA4D69D5387048 } + $key51 = { 540DB6C8D23F7F7FEF9964E53F445F0E56459B10E931DEEEDB2B57B063C7F8B7 } + $key52 = { D5AF80A7EEFF26DE988AC3D7CE23E62568813551B2133F8D3E973DA15E355833 } + $key53 = { E4D8DBD3D801B1708C74485A972E7F00AFB45161C791EE05282BA68660FFBA45 } + $key54 = { D79518AF96C920223D687DD596FCD545B126A678B7947EDFBF24661F232064FB } + $key55 = { B57CAA4B45CA6E8332EB58C8E72D0D9853B3110B478FEA06B35026D7708AD225 } + $key56 = { 077C714C47DFCF79CA2742B1544F4AA8035BB34AEA9D519DEE77745E01468408 } + $key57 = { C3F5550AD424839E4CC54FA015994818F4FB62DE99B37C872AF0E52C376934FA } + $key58 = { 5E890432AE87D0FA4D209A62B9E37AAEDEDC8C779008FEBAF9E4E6304D1B2AAC } + $key59 = { A42EDE52B5AF4C02CFE76488CADE36A8BBC3204BCB1E05C402ECF450071EFCAB } + $key60 = { 4CDAFE02894A04583169E1FB4717A402DAC44DA6E2536AE53F5F35467D31F1CA } + $key61 = { 0BEFCC953AD0ED6B39CE6781E60B83C0CFD166B124D1966330CBA9ADFC9A7708 } + $key62 = { 8A439DC4148A2F4D5996CE3FA152FF702366224737B8AA6784531480ED8C8877 } + $key63 = { CF253BE3B06B310901FF48A351471374AD35BBE4EE654B72B860F2A6EC7B1DBB } + $key64 = { A0599F50C4D059C5CFA16821E97C9596B1517B9FB6C6116F260415127F32CE1F } + $key65 = { 8B6D704F3DC9150C6B7D2D54F9C3EAAB14654ACA2C5C3952604E65DF8133FE0C } + $key66 = { A06E5CDD3871E9A3EE17F7E8DAE193EE47DDB87339F2C599402A78C15D77CEFD } + $key67 = { E52ADA1D9BC4C089DBB771B59904A3E0E25B531B4D18B58E432D4FA0A41D9E8A } + $key68 = { 4778A7E23C686C171FDDCCB8E26F98C4CBEBDF180494A647C2F6E7661385F05B } + $key69 = { FE983D3A00A9521F871ED8698E702D595C0C7160A118A7630E8EC92114BA7C12 } + $key70 = { 52BA4C52639E71EABD49534BBA80A4168D15762E2D1D913BAB5A5DBF14D9D166 } + $key71 = { 931EB8F7BC2AE1797335C42DB56843427EB970ABD601E7825C4441701D13D7B1 } + $key72 = { 318FA8EDB989672DBE2B5A74949EB6125727BD2E28A4B084E8F1F50604CCB735 } + $key73 = { 5B5F2315E88A42A7B59C1B493AD15B92F819C021BD70A5A6619AAC6666639BC2 } + $key74 = { C2BED7AA481951FEB56C47F03EA38236BC425779B2FD1F1397CB79FE2E15C0F0 } + $key75 = { D3979B1CB0EC1A655961559704D7CDC019253ACB2259DFB92558B7536D774441 } + $key76 = { 0EDF5DBECB772424D879BBDD51899D6AAED736D0311589566D41A9DBB8ED1CC7 } + $key77 = { CC798598F0A9BCC82378A5740143DEAF1A147F4B2908A197494B7202388EC905 } + $key78 = { 074E9DF7F859BF1BD1658FD2A86D81C282000EAB09AF4252FAB45433421D3849 } + $key79 = { 6CD540642E007F00650ED20D7B54CFFD54DDA95D8DEBB087A004BAE222F22C8E } + $key80 = { C76CF2F66C71F6D17FC8DEFA1CAEF8718BA1CE188C7EA02C835A0FA54D3B3314 } + $key81 = { A7250A149600E515C9C40FE5720756FDA8251635A3B661261070CB5DABFE7253 } + $key82 = { 237C67B97D4CCE4610DE2B82E582808EA796C34A4C24715C953CBA403B2C935E } + $key83 = { A8FA182547E66B57C497DAAA195A38C0F0FB0A3C1F7B98B4B852F5F37E885127 } + $key84 = { 83694CCA50B821144FFBBE6855F62845F1328111AE1AC5666CBA59EB43AA12C6 } + $key85 = { 145E906416B17865AD37CD022DF5481F28C930D6E3F53C50B0953BF33F4DB953 } + $key86 = { AB49B7C2FA3027A767F5AA94EAF2B312BBE3E89FD924EF89B92A7CF977354C22 } + $key87 = { 7E04E478340C209B01CA2FEBBCE3FE77C6E6169F0B0528C42FA4BDA6D90AC957 } + $key88 = { 0EADD042B9F0DDBABA0CA676EFA4EDB68A045595097E5A392217DFFC21A8532F } + $key89 = { 5623710F134ECACD5B70434A1431009E3556343ED48E77F6A557F2C7FF46F655 } + $key90 = { 6968657DB62F4A119F8E5CB3BF5C51F4B285328613AA7DB9016F8000B576561F } + $key91 = { DEBB9C95EAE6A68974023C335F8D2711135A98260415DF05845F053AD65B59B4 } + $key92 = { 16F54900DBF08950F2C5835153AB636605FB8C09106C0E94CB13CEA16F275685 } + $key93 = { 1C9F86F88F0F4882D5CBD32876368E7B311A84418692D652A6A4F315CC499AE8 } + $key94 = { E920E0783028FA05F4CE2D6A04BBE636D56A775CFD4DAEA3F2A1B8BEEB52A6D4 } + $key95 = { 73874CA3AF47A8A315D50E1990F44F655EC7C15B146FFE0611B6C4FC096BD07C } + $key96 = { F21C1FA163C745789C53922C47E191A5A85301BDC2FFC3D3B688CFBFF39F3BE5 } + $key97 = { BC5A861F21CB98BD1E2AE9650B7A0BB4CD0C71900B3463C1BC3380AFD2BB948E } + $key98 = { 151BAE36E646F30570DC6A7B57752F2481A0B48DD5184E914BCF411D8AD5ACA0 } + $key99 = { F05AD6D7A0CADC10A6468BFDBCBB223D5BD6CA30EE19C239E8035772D80312C9 } + $key100 = { 5DE9A0FDB37C0D59C298577E5379BCAF4F86DF3E9FA17787A4CEFA7DD10C462E } + $key101 = { F5E62BA862380224D159A324D25FD321E5B35F8554D70CF9A506767713BCA508 } + $key102 = { A2D1B10409B328DA0CCBFFDE2AD2FF10855F95DA36A1D3DBA84952BB05F8C3A7 } + $key103 = { C974ABD227D3AD339FAC11C97E11D904706EDEA610B181B8FAD473FFCC36A695 } + $key104 = { AB5167D2241406C3C0178D3F28664398D5213EE5D2C09DCC9410CB604671F5F1 } + $key105 = { C25CC4E671CAAA31E137700A9DB3A272D4E157A6A1F47235043D954BAE8A3C70 } + $key106 = { E6005757CA0189AC38F9B6D5AD584881399F28DA949A0F98D8A4E3862E20F715 } + $key107 = { 204E6CEB4FF59787EF4D5C9CA5A41DDF4445B9D8E0C970B86D543E9C7435B194 } + $key108 = { 831D7FD21316590263B69E095ABBE89E01A176E16AE799D83BD774AF0D254390 } + $key109 = { 42C36355D9BC573D72F546CDB12E6BB2CFE2933AC92C12040386B310ABF6A1ED } + $key110 = { B9044393C09AD03390160041446BF3134D864D16B25F1AB5E5CDC690C4677E7D } + $key111 = { 6BC1102B5BE05EEBF65E2C3ACA1F4E17A59B2E57FB480DE016D371DA3AEF57A5 } + $key112 = { B068D00B482FF73F8D23795743C76FE8639D405EE54D3EFB20AFD55A9E2DFF4E } + $key113 = { 95CF5ADDFE511C8C7496E3B75D52A0C0EFE01ED52D5DD04D0CA6A7ABD3A6F968 } + $key114 = { 75534574A4620019F8E3D055367016255034FA7D91CBCA9E717149441742AC8D } + $key115 = { 96F1013A5301534BE424A11A94B740E5EB3A627D052D1B769E64BAB6A666433C } + $key116 = { 584477AB45CAF729EE9844834F84683ABECAB7C4F7D23A9636F54CDD5B8F19B3 } + $key117 = { D3905F185B564149EE85CC3D093477C8FF2F8CF601C68C38BBD81517672ECA3A } + $key118 = { BF29521A7F94636D1930AA236422EB6351775A523DE68AF9BF9F1026CEDA618D } + $key119 = { 04B3A783470AF1613A9B849FBD6F020EE65C612343EB1C028B2C28590789E60B } + $key120 = { 3D8D8E84977FE5D21B6971D8D873E7BED048E21333FE15BE2B3D1732C7FD3D04 } + $key121 = { 8ACB88224B6EF466D7653EB0D8256EA86D50BBA14FD05F7A0E77ACD574E9D9FF } + $key122 = { B46121FFCF1565A77AA45752C9C5FB3716B6D8658737DF95AE8B6A2374432228 } + $key123 = { A4432874588D1BD2317224FB371F324DD60AB25D4191F2F01C5C13909F35B943 } + $key124 = { 78E1B7D06ED2A2A044C69B7CE6CDC9BCD77C19180D0B082A671BBA06507349C8 } + $key125 = { 540198C3D33A631801FE94E7CB5DA3A2D9BCBAE7C7C3112EDECB342F3F7DF793 } + $key126 = { 7E905652CAB96ACBB7FEB2825B55243511DF1CD8A22D0680F83AAF37B8A7CB36 } + $key127 = { 37218801DBF2CD92F07F154CD53981E6189DBFBACAC53BC200EAFAB891C5EEC8 } + condition: + any of them +} + +rule IMPLANT_5_v3 { + meta: + description = "XTunnel Implant by APT28" + author = "US CERT" + reference = "https://www.us-cert.gov/ncas/current-activity/2017/02/10/Enhanced-Analysis-GRIZZLY-STEPPE" + date = "2017-02-10" + score = 85 + strings: + $BYTES1 = { 0F AF C0 6? C0 07 00 00 00 2D 01 00 00 00 0F AF ?? 39 ?8 } + $BYTES2 = { 0F AF C0 6? C0 07 48 0F AF ?? 39 ?8 } + condition: + any of them +} + +rule IMPLANT_5_v4 { + meta: + description = "XTunnel Implant by APT28" + author = "US CERT" + reference = "https://www.us-cert.gov/ncas/current-activity/2017/02/10/Enhanced-Analysis-GRIZZLY-STEPPE" + date = "2017-02-10" + score = 85 + strings: + $FBKEY1 = { 987AB999FE0924A2DF0A412B14E26093746FCDF9BA31DC05536892C33B116AD3 } + $FBKEY2 = { 8B236C892D902B0C9A6D37AE4F9842C3070FBDC14099C6930158563C6AC00FF5 } + $FBKEY3 = { E47B7F110CAA1DA617545567EC972AF3A6E7B4E6807B7981D3CFBD3D8FCC3373 } + $FBKEY4 = { 48B284545CA1FA74F64FDBE2E605D68CED8A726D05EBEFD9BAAC164A7949BDC1 } + $FBKEY5 = { FB421558E30FCCD95FA7BC45AC92D2991C44072230F6FBEAA211341B5BF2DC56 } + condition: + all of them +} + +rule IMPLANT_6_v1 +{ + meta: + description = "Sednit / EVILTOSS Implant by APT28" + author = "US CERT" + reference = "https://www.us-cert.gov/ncas/current-activity/2017/02/10/Enhanced-Analysis-GRIZZLY-STEPPE" + date = "2017-02-10" + score = 85 + strings: + $STR1 = "dll.dll" wide ascii + $STR2 = "Init1" wide ascii + $STR3 = "netui.dll" wide ascii + condition: + (uint16(0) == 0x5A4D or uint16(0) == 0xCFD0 or uint16(0) == 0xC3D4 or + uint32(0) == 0x46445025 or uint32(1) == 0x6674725C) and all of them +} + +rule IMPLANT_6_v2 { + meta: + description = "Sednit / EVILTOSS Implant by APT28" + author = "US CERT" + reference = "https://www.us-cert.gov/ncas/current-activity/2017/02/10/Enhanced-Analysis-GRIZZLY-STEPPE" + date = "2017-02-10" + score = 85 + strings: + $obf_func = { 8B 45 F8 6A 07 03 C7 33 D2 89 45 E8 8D 47 01 5B 02 4D 0F F7 F3 6A 07 8A 04 32 33 D2 F6 E9 8A C8 8B C7 F7 F3 8A 44 3E FE 02 45 FC 02 0C 32 B2 03 F6 EA 8A D8 8D 47 FF 33 D2 5F F7 F7 02 5D 14 8B 45 E8 8B 7D F4 C0 E3 06 02 1C 32 32 CB 30 08 8B 4D 14 41 47 83 FF 09 89 4D 14 89 7D F4 72 A1 } + condition: + (uint16(0) == 0x5A4D or uint16(0) == 0xCFD0 or uint16(0) == 0xC3D4 or + uint32(0) == 0x46445025 or uint32(1) == 0x6674725C) and all of them +} + +rule IMPLANT_6_v3 { + meta: + description = "Sednit / EVILTOSS Implant by APT28" + author = "US CERT" + reference = "https://www.us-cert.gov/ncas/current-activity/2017/02/10/Enhanced-Analysis-GRIZZLY-STEPPE" + date = "2017-02-10" + score = 85 + strings: + $deob_func = { 8D 46 01 02 D1 83 E0 07 8A 04 38 F6 EA 8B D6 83 E2 07 0A + 04 3A 33 D2 8A 54 37 FE 03 D3 03 D1 D3 EA 32 C2 8D 56 FF 83 E2 07 8A + 1C 3A 8A 14 2E 32 C3 32 D0 41 88 14 2E 46 83 FE 0A 7C ?? } + condition: + (uint16(0) == 0x5A4D or uint16(0) == 0xCFD0 or uint16(0) == 0xC3D4 or + uint32(0) == 0x46445025 or uint32(1) == 0x6674725C) and all of them +} + +rule IMPLANT_6_v4 { + meta: + description = "Sednit / EVILTOSS Implant by APT28" + author = "US CERT" + reference = "https://www.us-cert.gov/ncas/current-activity/2017/02/10/Enhanced-Analysis-GRIZZLY-STEPPE" + date = "2017-02-10" + score = 85 + strings: + $ASM = {53 5? 5? [6-15] ff d? 8b ?? b? a0 86 01 00 [7-13] ff d? ?b + [6-10] c0 [0-1] c3} + condition: + (uint16(0) == 0x5A4D or uint16(0) == 0xCFD0 or uint16(0) == 0xC3D4 or + uint32(0) == 0x46445025 or uint32(1) == 0x6674725C) and all of them +} + +rule IMPLANT_6_v5 { + meta: + description = "Sednit / EVILTOSS Implant by APT28" + author = "US CERT" + reference = "https://www.us-cert.gov/ncas/current-activity/2017/02/10/Enhanced-Analysis-GRIZZLY-STEPPE" + date = "2017-02-10" + score = 85 + strings: + $STR1 = { 83 EC 18 8B 4C 24 24 B8 AB AA AA AA F7 E1 8B 44 24 20 53 55 8B + EA 8D 14 08 B8 AB AA AA AA 89 54 24 1C F7 E2 56 8B F2 C1 ED 02 8B DD + 57 8B 7C 24 38 89 6C 24 1C C1 EE 02 3B DE 89 5C 24 18 89 74 24 20 0F + 83 CF 00 00 00 8D 14 5B 8D 44 12 FE 89 44 24 10 3B DD 0F 85 CF 00 00 + 00 8B C1 33 D2 B9 06 00 00 00 F7 F1 8B CA 83 F9 06 89 4C 24 38 0F 83 + 86 00 00 00 8A C3 B2 06 F6 EA 8B 54 24 10 88 44 24 30 8B 44 24 2C 8D + 71 02 03 D0 89 54 24 14 8B 54 24 10 33 C0 8A 44 37 FE 03 D6 8B D8 8D + 46 FF 0F AF DA 33 D2 BD 06 00 00 00 F7 F5 C1 EB 07 8A 04 3A 33 D2 32 + D8 8D 46 01 F7 F5 8A 44 24 30 02 C1 8A 0C 3A 33 D2 32 C8 8B C6 F7 F5 + 8A 04 3A 22 C8 8B 44 24 14 02 D9 8A 0C 30 32 CB 88 0C 30 8B 4C 24 38 + 41 46 83 FE 08 89 4C 24 38 72 A1 8B 5C 24 18 8B 6C 24 1C 8B 74 24 20 + 8B 4C 24 10 43 83 C1 06 3B DE 89 4C 24 10 8B 4C 24 34 89 5C 24 18 0F + 82 3C FF FF FF 3B DD 75 1A 8B C1 33 D2 B9 06 00 00 00 F7 F1 8B CA EB + 0D 33 C9 89 4C 24 38 E9 40 FF FF FF 33 C9 8B 44 24 24 33 D2 BE 06 00 + 00 00 89 4C 24 38 F7 F6 3B CA 89 54 24 24 0F 83 95 00 00 00 8A C3 B2 + 06 F6 EA 8D 1C 5B 88 44 24 30 8B 44 24 2C 8D 71 02 D1 E3 89 5C 24 34 + 8D 54 03 FE 89 54 24 14 EB 04 8B 5C 24 34 33 C0 BD 06 00 00 00 8A 44 + 3E FE 8B D0 8D 44 1E FE 0F AF D0 C1 EA 07 89 54 24 2C 8D 46 FF 33 D2 + BB 06 00 00 00 F7 F3 8B 5C 24 2C 8A 04 3A 33 D2 32 D8 8D 46 01 F7 F5 + 8A 44 24 30 02 C1 8A 0C 3A 33 D2 32 C8 8B C6 F7 F5 8A 04 3A 22 C8 8B + 44 24 14 02 D9 8A 0C 06 32 CB 88 0C 06 8B 4C 24 38 8B 44 24 24 41 46 + 3B C8 89 4C 24 38 72 8F 5F 5E 5D 5B 83 C4 18 C2 10 00 } + condition: + (uint16(0) == 0x5A4D or uint16(0) == 0xCFD0 or uint16(0) == 0xC3D4 or + uint32(0) == 0x46445025 or uint32(1) == 0x6674725C) and all of them +} + +rule IMPLANT_6_v6 { + meta: + description = "Sednit / EVILTOSS Implant by APT28" + author = "US CERT" + reference = "https://www.us-cert.gov/ncas/current-activity/2017/02/10/Enhanced-Analysis-GRIZZLY-STEPPE" + date = "2017-02-10" + score = 85 + strings: + $Init1_fun = {68 10 27 00 00 FF 15 ?? ?? ?? ?? A1 ?? ?? ?? ?? 6A FF 50 + FF 15 ?? ?? ?? ?? 33 C0 C3} + condition: + (uint16(0) == 0x5A4D or uint16(0) == 0xCFD0 or uint16(0) == 0xC3D4 or + uint32(0) == 0x46445025 or uint32(1) == 0x6674725C) and all of them +} + +/* TOO MANY FALSE POSITIVES + +rule IMPLANT_6_v7 { + meta: + description = "Sednit / EVILTOSS Implant by APT28" + author = "US CERT" + reference = "https://www.us-cert.gov/ncas/current-activity/2017/02/10/Enhanced-Analysis-GRIZZLY-STEPPE" + date = "2017-02-10" + score = 85 + strings: + $STR1 = "Init1" + $OPT1 = "ServiceMain" + $OPT2 = "netids" nocase wide ascii + $OPT3 = "netui" nocase wide ascii + $OPT4 = "svchost.exe" wide ascii + $OPT5 = "network" nocase wide ascii + condition: + (uint16(0) == 0x5A4D or uint16(0) == 0xCFD0 or uint16(0) == 0xC3D4 or + uint32(0) == 0x46445025 or uint32(1) == 0x6674725C) and $STR1 and 2 of ($OPT*) +} + +*/ + +rule IMPLANT_7_v1 { + meta: + description = "Implant 7 by APT29" + author = "US CERT" + reference = "https://www.us-cert.gov/ncas/current-activity/2017/02/10/Enhanced-Analysis-GRIZZLY-STEPPE" + date = "2017-02-10" + score = 85 + strings: + $STR1 = { 8A 44 0A 03 32 C3 0F B6 C0 66 89 04 4E 41 3B CF 72 EE } + $STR2 = { F3 0F 6F 04 08 66 0F EF C1 F3 0F 7F 04 11 83 C1 10 3B CF 72 EB } + condition: + (uint16(0) == 0x5A4D) and ($STR1 or $STR2) +} + +rule IMPLANT_8_v1 +{ + meta: + description = "HAMMERTOSS / HammerDuke Implant by APT29" + author = "US CERT" + reference = "https://www.us-cert.gov/ncas/current-activity/2017/02/10/Enhanced-Analysis-GRIZZLY-STEPPE" + date = "2017-02-10" + score = 65 + strings: + $DOTNET = "mscorlib" ascii + $REF_URL = "https://www.google.com/url?sa=" wide + $REF_var_1 = "&rct=" wide + $REF_var_2 = "&q=&esrc=" wide + $REF_var_3 = "&source=" wide + $REF_var_4 = "&cd=" wide + $REF_var_5 = "&ved=" wide + $REF_var_6 = "&url=" wide + $REF_var_7 = "&ei=" wide + $REF_var_8 = "&usg=" wide + $REF_var_9 = "&bvm=" wide + /* + $REF_value_1 = "QFj" wide + $REF_value_2 = "bv.81" wide + */ /* disabled due to performance reasons */ + condition: + (uint16(0) == 0x5A4D) and ($DOTNET) and ($REF_URL) and + (3 of ($REF_var*)) /* and (1 of ($REF_value*)) */ +} + +/* TOO MANY FALSE POSITIVES + +rule IMPLANT_8_v2 { + meta: + description = "HAMMERTOSS / HammerDuke Implant by APT29" + author = "US CERT" + reference = "https://www.us-cert.gov/ncas/current-activity/2017/02/10/Enhanced-Analysis-GRIZZLY-STEPPE" + date = "2017-02-10" + score = 85 + strings: + $DOTNET= "mscorlib" ascii + $XOR = {61 20 AA 00 00 00 61} + condition: + (uint16(0) == 0x5A4D) and all of them +} + +*/ + +rule IMPLANT_9_v1 { + meta: + description = "Onion Duke Implant by APT29" + author = "US CERT" + reference = "https://www.us-cert.gov/ncas/current-activity/2017/02/10/Enhanced-Analysis-GRIZZLY-STEPPE" + date = "2017-02-10" + score = 85 + strings: + $STR1 = { 8B 03 8A 54 01 03 32 55 FF 41 88 54 39 FF 3B CE 72 EE } + $STR2 = { 8B C8 83 E1 03 8A 54 19 08 8B 4D 08 32 54 01 04 40 88 54 38 FF + 3B C6 72 E7 } + $STR3 = { 8B 55 F8 8B C8 83 E1 03 8A 4C 11 08 8B 55 FC 32 0C 10 8B 17 88 + 4C 02 04 40 3B 06 72 E3 } + condition: + (uint16(0) == 0x5A4D or uint16(0)) and all of them +} + +/* TOO MANY FALSE POSITIVES + +rule IMPLANT_10_v1 { + meta: + description = "CozyDuke / CozyCar / CozyBear Implant by APT29" + author = "US CERT" + reference = "https://www.us-cert.gov/ncas/current-activity/2017/02/10/Enhanced-Analysis-GRIZZLY-STEPPE" + date = "2017-02-10" + score = 85 + strings: + $STR1 = {33 ?? 83 F2 ?? 81 E2 FF 00 00 00} + $STR2 = {0F BE 14 01 33 D0 ?? F2 [1-4] 81 E2 FF 00 00 00 66 89 [6] 40 83 + F8 ?? 72} + condition: + uint16(0) == 0x5A4D and ($STR1 or $STR2) +} + +*/ + +rule IMPLANT_10_v2 { + meta: + description = "CozyDuke / CozyCar / CozyBear Implant by APT29" + author = "US CERT" + reference = "https://www.us-cert.gov/ncas/current-activity/2017/02/10/Enhanced-Analysis-GRIZZLY-STEPPE" + date = "2017-02-10" + score = 85 + strings: + $xor = { 34 ?? 66 33 C1 48 FF C1 } + $nop = { 66 66 66 66 66 66 0f 1f 84 00 00 00 00 00} + condition: + uint16(0) == 0x5A4D and $xor and $nop +} + +/* Deactivated - Slowing down scanning + +rule IMPLANT_11_v12 { + meta: + description = "Mini Duke Implant by APT29" + author = "US CERT" + reference = "https://www.us-cert.gov/ncas/current-activity/2017/02/10/Enhanced-Analysis-GRIZZLY-STEPPE" + date = "2017-02-10" + score = 85 + strings: + $STR1 = {63 74 00 00} // ct + $STR2 = {72 6F 74 65} // rote + $STR3 = {75 61 6C 50} // triV + $STR4 = {56 69 72 74} // Plau + $STR5 = { e8 00 00 00 00 } + $STR6 = { 64 FF 35 00 00 00 00 } + $STR7 = {D2 C0} + $STR8 = /\x63\x74\x00\x00.{3,20}\x72\x6F\x74\x65.{3,20}\x75\x61\x6C\x50.{3,20}\x56\x69\x72\x74/ + condition: + (uint16(0) == 0x5A4D) and #STR5 > 4 and all of them +} + +rule IMPLANT_12_v1 { + meta: + description = "Cosmic Duke Implant by APT29" + author = "US CERT" + reference = "https://www.us-cert.gov/ncas/current-activity/2017/02/10/Enhanced-Analysis-GRIZZLY-STEPPE" + date = "2017-02-10" + score = 85 + strings: + $FUNC = {A1 [3-5] 33 C5 89 [2-3] 56 57 83 [4-6] 64} + condition: + (uint16(0) == 0x5A4D) and $FUNC +} + +*/ + +rule Unidentified_Malware_Two { + meta: + description = "Unidentified Implant by APT29" + author = "US CERT" + reference = "https://www.us-cert.gov/ncas/current-activity/2017/02/10/Enhanced-Analysis-GRIZZLY-STEPPE" + date = "2017-02-10" + score = 85 + strings: + $my_string_one = "/zapoy/gate.php" + $my_string_two = { E3 40 FE 45 FD 0F B6 45 FD 0F B6 14 38 88 55 FF 00 55 + FC 0F B6 45 FC 8A 14 38 88 55 FE 0F B6 45 FD 88 14 38 0F B6 45 FC 8A + 55 FF 88 14 38 8A 55 FF 02 55 FE 8A 14 3A 8B 45 F8 30 14 30 } + $my_string_three = "S:\\Lidstone\\renewing\\HA\\disable\\In.pdb" + $my_string_four = { 8B CF 0F AF CE 8B C6 99 2B C2 8B 55 08 D1 F8 03 C8 + 8B 45 FC 03 C2 89 45 10 8A 00 2B CB 32 C1 85 DB 74 07 } + $my_string_five = "fuckyou1" + $my_string_six = "xtool.exe" + condition: + ($my_string_one and $my_string_two) + or ($my_string_three or $my_string_four) + or ($my_string_five and $my_string_six) +} \ No newline at end of file diff --git a/BLUESPAWN-win-client/external/mal_netsha.yar b/BLUESPAWN-win-client/external/mal_netsha.yar new file mode 100644 index 00000000..c77763be --- /dev/null +++ b/BLUESPAWN-win-client/external/mal_netsha.yar @@ -0,0 +1,35 @@ +import "pe" + +rule MAL_Neshta_Generic : HIGHVOL { + meta: + description = "Detects Neshta malware" + author = "Florian Roth" + reference = "Internal Research" + date = "2018-01-15" + modified = "2021-04-14" + hash1 = "27c67eb1378c2fd054c6649f92ec8ee9bfcb6f790224036c974f6c883c46f586" + hash1 = "0283c0f02307adc4ee46c0382df4b5d7b4eb80114fbaf5cb7fe5412f027d165e" + hash2 = "b7f8233dafab45e3abbbb4f3cc76e6860fae8d5337fb0b750ea20058b56b0efb" + hash3 = "1954e06fc952a5a0328774aaf07c23970efd16834654793076c061dffb09a7eb" + strings: + $x1 = "the best. Fuck off all the rest." + $x2 = "! Best regards 2 Tommy Salo. [Nov-2005] yours [Dziadulja Apanas]" fullword ascii + + $s1 = "Neshta" ascii fullword + $s2 = "Made in Belarus. " ascii fullword + + $op1 = { 85 c0 93 0f 85 62 ff ff ff 5e 5b 89 ec 5d c2 04 } + $op2 = { e8 e5 f1 ff ff 8b c3 e8 c6 ff ff ff 85 c0 75 0c } + $op3 = { eb 02 33 db 8b c3 5b c3 53 85 c0 74 15 ff 15 34 } + + $sop1 = { e8 3c 2a ff ff b8 ff ff ff 7f eb 3e 83 7d 0c 00 } + $sop2 = { 2b c7 50 e8 a4 40 ff ff ff b6 88 } + condition: + uint16(0) == 0x5a4d and + filesize < 3000KB and ( + 1 of ($x*) or + all of ($s*) or + 3 of them or + pe.imphash() == "9f4693fc0c511135129493f2161d1e86" + ) +} \ No newline at end of file diff --git a/BLUESPAWN-win-client/external/win.pitou_auto.yar b/BLUESPAWN-win-client/external/win.pitou_auto.yar new file mode 100644 index 00000000..abcfee9a --- /dev/null +++ b/BLUESPAWN-win-client/external/win.pitou_auto.yar @@ -0,0 +1,114 @@ +rule win_pitou_auto { + + meta: + author = "Felix Bilstein - yara-signator at cocacoding dot com" + date = "2023-07-11" + version = "1" + description = "Detects win.pitou." + 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.pitou" + malpedia_rule_date = "20230705" + malpedia_hash = "42d0574f4405bd7d2b154d321d345acb18834a41" + malpedia_version = "20230715" + 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 = { ac 8bda c1e305 03c3 8bda c1eb02 } + // n = 6, score = 700 + // ac | mov edx, dword ptr [ebp - 0x24] + // 8bda | push edx + // c1e305 | mov eax, dword ptr [ebp - 0x1c] + // 03c3 | mov dword ptr [eax + 8], 0 + // 8bda | mov ecx, dword ptr [ebp - 0x1c] + // c1eb02 | mov edx, dword ptr [ebp - 0x24] + + $sequence_1 = { 80f457 8acc 80e103 8aec c0ed03 } + // n = 5, score = 700 + // 80f457 | push eax + // 8acc | call ebx + // 80e103 | push edi + // 8aec | push 2 + // c0ed03 | lea ecx, [ebp - 0x18] + + $sequence_2 = { ac 8bda c1e305 03c3 } + // n = 4, score = 700 + // ac | lcall 0x1536:0xed56af10 + // 8bda | cmp esi, dword ptr [ebx] + // c1e305 | pop edx + // 03c3 | pop ss + + $sequence_3 = { 8bda c1e305 03c3 8bda } + // n = 4, score = 700 + // 8bda | mov edx, dword ptr [ebp + 0xc] + // c1e305 | mov dword ptr [edx + 0x514], eax + // 03c3 | cmp eax, ebx + // 8bda | jne 0xfffe613c + + $sequence_4 = { 8acc 80e103 8aec c0ed03 80e507 } + // n = 5, score = 700 + // 8acc | cmp dword ptr [ebp - 8], 8 + // 80e103 | test al, al + // 8aec | jne 0xf8be + // c0ed03 | and ecx, 0xf0 + // 80e507 | cmp cl, 0xe0 + + $sequence_5 = { c1e305 03c3 8bda c1eb02 03c3 } + // n = 5, score = 700 + // c1e305 | je 0xffff21f7 + // 03c3 | mov dword ptr [esi + 8], 0x110 + // 8bda | mov dword ptr [esi], 0 + // c1eb02 | mov esi, eax + // 03c3 | test esi, esi + + $sequence_6 = { 80f457 8acc 80e103 8aec } + // n = 4, score = 700 + // 80f457 | push ss + // 8acc | aas + // 80e103 | imul dword ptr [ecx - 0x7d] + // 8aec | push edi + + $sequence_7 = { c1e305 03c3 8bda c1eb02 03c3 33d0 } + // n = 6, score = 700 + // c1e305 | push eax + // 03c3 | call edi + // 8bda | mov eax, dword ptr [esi + 0x28c] + // c1eb02 | mov eax, dword ptr [esi + 0x28c] + // 03c3 | test eax, eax + // 33d0 | je 0xfffffe8e + + $sequence_8 = { ac 8bda c1e305 03c3 8bda c1eb02 03c3 } + // n = 7, score = 700 + // ac | mov dl, byte ptr [edi + eax + 1] + // 8bda | inc eax + // c1e305 | cmp dl, byte ptr [eax] + // 03c3 | mov dl, byte ptr [edi + eax] + // 8bda | mov dword ptr [ebp - 0x1c], edi + // c1eb02 | cmp dl, byte ptr [eax] + // 03c3 | jne 0x11478 + + $sequence_9 = { c1e305 03c3 8bda c1eb02 } + // n = 4, score = 700 + // c1e305 | cmp ecx, eax + // 03c3 | jb 0x99c5 + // 8bda | adc ecx, esi + // c1eb02 | cmp ecx, eax + + condition: + 7 of them and filesize < 1106944 +} \ No newline at end of file diff --git a/BLUESPAWN-win-client/external/win.qakbot_auto.yar b/BLUESPAWN-win-client/external/win.qakbot_auto.yar new file mode 100644 index 00000000..a88d7a32 --- /dev/null +++ b/BLUESPAWN-win-client/external/win.qakbot_auto.yar @@ -0,0 +1,253 @@ +rule win_qakbot_auto { + + meta: + author = "Felix Bilstein - yara-signator at cocacoding dot com" + date = "2022-11-21" + version = "1" + description = "Detects win.qakbot." + 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.qakbot" + malpedia_rule_date = "20221118" + malpedia_hash = "e0702e2e6d1d00da65c8a29a4ebacd0a4c59e1af" + malpedia_version = "20221125" + 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 = { c9 c3 55 8bec 81ecc4090000 } + // n = 5, score = 5500 + // c9 | leave + // c3 | ret + // 55 | push ebp + // 8bec | mov ebp, esp + // 81ecc4090000 | sub esp, 0x9c4 + + $sequence_1 = { 50 e8???????? 8b06 47 } + // n = 4, score = 5400 + // 50 | push eax + // e8???????? | + // 8b06 | mov eax, dword ptr [esi] + // 47 | inc edi + + $sequence_2 = { 33c0 7402 ebfa e8???????? } + // n = 4, score = 5400 + // 33c0 | xor eax, eax + // 7402 | je 4 + // ebfa | jmp 0xfffffffc + // e8???????? | + + $sequence_3 = { 740d 8d45fc 6a00 50 e8???????? 59 59 } + // n = 7, score = 5400 + // 740d | je 0xf + // 8d45fc | lea eax, [ebp - 4] + // 6a00 | push 0 + // 50 | push eax + // e8???????? | + // 59 | pop ecx + // 59 | pop ecx + + $sequence_4 = { ebfa eb06 33c0 7402 } + // n = 4, score = 5200 + // ebfa | jmp 0xfffffffc + // eb06 | jmp 8 + // 33c0 | xor eax, eax + // 7402 | je 4 + + $sequence_5 = { 7402 ebfa 33c0 7402 } + // n = 4, score = 5200 + // 7402 | je 4 + // ebfa | jmp 0xfffffffc + // 33c0 | xor eax, eax + // 7402 | je 4 + + $sequence_6 = { e8???????? 83c410 33c0 7402 } + // n = 4, score = 4600 + // e8???????? | + // 83c410 | add esp, 0x10 + // 33c0 | xor eax, eax + // 7402 | je 4 + + $sequence_7 = { 7cef eb10 c644301c00 ff465c 8b465c 83f838 7cf0 } + // n = 7, score = 4300 + // 7cef | jl 0xfffffff1 + // eb10 | jmp 0x12 + // c644301c00 | mov byte ptr [eax + esi + 0x1c], 0 + // ff465c | inc dword ptr [esi + 0x5c] + // 8b465c | mov eax, dword ptr [esi + 0x5c] + // 83f838 | cmp eax, 0x38 + // 7cf0 | jl 0xfffffff2 + + $sequence_8 = { eb0b c644301c00 ff465c 8b465c 83f840 7cf0 } + // n = 6, score = 4300 + // eb0b | jmp 0xd + // c644301c00 | mov byte ptr [eax + esi + 0x1c], 0 + // ff465c | inc dword ptr [esi + 0x5c] + // 8b465c | mov eax, dword ptr [esi + 0x5c] + // 83f840 | cmp eax, 0x40 + // 7cf0 | jl 0xfffffff2 + + $sequence_9 = { 50 ff5508 8bf0 59 } + // n = 4, score = 4300 + // 50 | push eax + // ff5508 | call dword ptr [ebp + 8] + // 8bf0 | mov esi, eax + // 59 | pop ecx + + $sequence_10 = { 85c0 750a 33c0 7402 } + // n = 4, score = 4300 + // 85c0 | test eax, eax + // 750a | jne 0xc + // 33c0 | xor eax, eax + // 7402 | je 4 + + $sequence_11 = { 57 ff15???????? 33c0 85f6 0f94c0 } + // n = 5, score = 4100 + // 57 | push edi + // ff15???????? | + // 33c0 | xor eax, eax + // 85f6 | test esi, esi + // 0f94c0 | sete al + + $sequence_12 = { 85c0 750c 57 ff15???????? 6afe 58 } + // n = 6, score = 3900 + // 85c0 | test eax, eax + // 750c | jne 0xe + // 57 | push edi + // ff15???????? | + // 6afe | push -2 + // 58 | pop eax + + $sequence_13 = { c3 33c9 3d80000000 0f94c1 } + // n = 4, score = 3900 + // c3 | ret + // 33c9 | xor ecx, ecx + // 3d80000000 | cmp eax, 0x80 + // 0f94c1 | sete cl + + $sequence_14 = { 7402 ebfa e9???????? 6a00 } + // n = 4, score = 3900 + // 7402 | je 4 + // ebfa | jmp 0xfffffffc + // e9???????? | + // 6a00 | push 0 + + $sequence_15 = { 7507 c74508???????? e8???????? 85c0 } + // n = 4, score = 3900 + // 7507 | jne 9 + // c74508???????? | + // e8???????? | + // 85c0 | test eax, eax + + $sequence_16 = { 6a02 ff15???????? 8bf8 83c8ff } + // n = 4, score = 3900 + // 6a02 | push 2 + // ff15???????? | + // 8bf8 | mov edi, eax + // 83c8ff | or eax, 0xffffffff + + $sequence_17 = { 6a00 58 0f95c0 40 50 } + // n = 5, score = 3700 + // 6a00 | push 0 + // 58 | pop eax + // 0f95c0 | setne al + // 40 | inc eax + // 50 | push eax + + $sequence_18 = { 817de8ffffff7f 7506 837dec00 740f 817de800000080 } + // n = 5, score = 3600 + // 817de8ffffff7f | cmp dword ptr [ebp - 0x18], 0x7fffffff + // 7506 | jne 8 + // 837dec00 | cmp dword ptr [ebp - 0x14], 0 + // 740f | je 0x11 + // 817de800000080 | cmp dword ptr [ebp - 0x18], 0x80000000 + + $sequence_19 = { ff750c 8d85d8feffff 50 ff5508 } + // n = 4, score = 3500 + // ff750c | push dword ptr [ebp + 0xc] + // 8d85d8feffff | lea eax, [ebp - 0x128] + // 50 | push eax + // ff5508 | call dword ptr [ebp + 8] + + $sequence_20 = { 7412 8d85d8feffff 50 57 ff15???????? 85c0 } + // n = 6, score = 3500 + // 7412 | je 0x14 + // 8d85d8feffff | lea eax, [ebp - 0x128] + // 50 | push eax + // 57 | push edi + // ff15???????? | + // 85c0 | test eax, eax + + $sequence_21 = { 01c1 81e1ffff0000 83c101 8b442474 } + // n = 4, score = 100 + // 01c1 | add ecx, eax + // 81e1ffff0000 | and ecx, 0xffff + // 83c101 | add ecx, 1 + // 8b442474 | mov eax, dword ptr [esp + 0x74] + + $sequence_22 = { 01c1 894c2404 8b442404 8d65fc } + // n = 4, score = 100 + // 01c1 | add ecx, eax + // 894c2404 | mov dword ptr [esp + 4], ecx + // 8b442404 | mov eax, dword ptr [esp + 4] + // 8d65fc | lea esp, [ebp - 4] + + $sequence_23 = { 00e9 8b55e4 880c1a 8a4df3 } + // n = 4, score = 100 + // 00e9 | add cl, ch + // 8b55e4 | mov edx, dword ptr [ebp - 0x1c] + // 880c1a | mov byte ptr [edx + ebx], cl + // 8a4df3 | mov cl, byte ptr [ebp - 0xd] + + $sequence_24 = { 01c1 894c2430 e9???????? 55 } + // n = 4, score = 100 + // 01c1 | add ecx, eax + // 894c2430 | mov dword ptr [esp + 0x30], ecx + // e9???????? | + // 55 | push ebp + + $sequence_25 = { 00ca 66897c2446 31f6 8974244c } + // n = 4, score = 100 + // 00ca | add dl, cl + // 66897c2446 | mov word ptr [esp + 0x46], di + // 31f6 | xor esi, esi + // 8974244c | mov dword ptr [esp + 0x4c], esi + + $sequence_26 = { 01c1 8b442448 01c8 8944243c } + // n = 4, score = 100 + // 01c1 | add ecx, eax + // 8b442448 | mov eax, dword ptr [esp + 0x48] + // 01c8 | add eax, ecx + // 8944243c | mov dword ptr [esp + 0x3c], eax + + $sequence_27 = { 00e9 884c0451 83c001 39d0 } + // n = 4, score = 100 + // 00e9 | add cl, ch + // 884c0451 | mov byte ptr [esp + eax + 0x51], cl + // 83c001 | add eax, 1 + // 39d0 | cmp eax, edx + + $sequence_28 = { 01c1 21d1 8a442465 f6642465 } + // n = 4, score = 100 + // 01c1 | add ecx, eax + // 21d1 | and ecx, edx + // 8a442465 | mov al, byte ptr [esp + 0x65] + // f6642465 | mul byte ptr [esp + 0x65] + + condition: + 7 of them and filesize < 958464 +} \ No newline at end of file diff --git a/BLUESPAWN-win-client/headers/yara.h b/BLUESPAWN-win-client/headers/yara.h new file mode 100644 index 00000000..cb774bd5 --- /dev/null +++ b/BLUESPAWN-win-client/headers/yara.h @@ -0,0 +1,46 @@ +/* +Copyright (c) 2007-2013. The YARA Authors. All Rights Reserved. + +Redistribution and use in source and binary forms, with or without modification, +are permitted provided that the following conditions are met: + +1. Redistributions of source code must retain the above copyright notice, this +list of conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright notice, +this list of conditions and the following disclaimer in the documentation and/or +other materials provided with the distribution. + +3. Neither the name of the copyright holder nor the names of its contributors +may be used to endorse or promote products derived from this software without +specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR +ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ + +#ifndef YR_YARA_H +#define YR_YARA_H + +#include "yara/compiler.h" +#include "yara/error.h" +#include "yara/filemap.h" +#include "yara/hash.h" +#include "yara/libyara.h" +#include "yara/mem.h" +#include "yara/modules.h" +#include "yara/object.h" +#include "yara/scanner.h" +#include "yara/stream.h" +#include "yara/strutils.h" +#include "yara/utils.h" + +#endif diff --git a/BLUESPAWN-win-client/headers/yara/ahocorasick.h b/BLUESPAWN-win-client/headers/yara/ahocorasick.h new file mode 100644 index 00000000..b35742b1 --- /dev/null +++ b/BLUESPAWN-win-client/headers/yara/ahocorasick.h @@ -0,0 +1,68 @@ +/* +Copyright (c) 2013. The YARA Authors. All Rights Reserved. + +Redistribution and use in source and binary forms, with or without modification, +are permitted provided that the following conditions are met: + +1. Redistributions of source code must retain the above copyright notice, this +list of conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright notice, +this list of conditions and the following disclaimer in the documentation and/or +other materials provided with the distribution. + +3. Neither the name of the copyright holder nor the names of its contributors +may be used to endorse or promote products derived from this software without +specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR +ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ + +#ifndef _AHOCORASICK_H +#define _AHOCORASICK_H + +#include +#include +#include + +// Number of bits dedicated to store the offset of the slot relative to its +// own state. +#define YR_AC_SLOT_OFFSET_BITS 9 + +// Max number of slots in the transition table. This is the maximum number of +// slots that can be addressed with 23-bit indexes. +#define YR_AC_MAX_TRANSITION_TABLE_SIZE 0x800000 + +#define YR_AC_ROOT_STATE 0 +#define YR_AC_NEXT_STATE(t) (t >> YR_AC_SLOT_OFFSET_BITS) +#define YR_AC_INVALID_TRANSITION(t, c) (((t) &0x1FF) != c) + +#define YR_AC_MAKE_TRANSITION(state, code) \ + ((YR_AC_TRANSITION)( \ + (((YR_AC_TRANSITION) state) << YR_AC_SLOT_OFFSET_BITS) | (code))) + +int yr_ac_automaton_create(YR_ARENA* arena, YR_AC_AUTOMATON** automaton); + +int yr_ac_automaton_destroy(YR_AC_AUTOMATON* automaton); + +int yr_ac_add_string( + YR_AC_AUTOMATON* automaton, + YR_STRING* string, + uint32_t string_idx, + YR_ATOM_LIST_ITEM* atom, + YR_ARENA* arena); + +int yr_ac_compile(YR_AC_AUTOMATON* automaton, YR_ARENA* arena); + +void yr_ac_print_automaton(YR_AC_AUTOMATON* automaton); + +#endif diff --git a/BLUESPAWN-win-client/headers/yara/arena.h b/BLUESPAWN-win-client/headers/yara/arena.h new file mode 100644 index 00000000..11b66e2a --- /dev/null +++ b/BLUESPAWN-win-client/headers/yara/arena.h @@ -0,0 +1,250 @@ +/* +Copyright (c) 2020. The YARA Authors. All Rights Reserved. + +Redistribution and use in source and binary forms, with or without modification, + are permitted provided that the following conditions are met: + +1. Redistributions of source code must retain the above copyright notice, this +list of conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright notice, +this list of conditions and the following disclaimer in the documentation and/or +other materials provided with the distribution. + +3. Neither the name of the copyright holder nor the names of its contributors + may be used to endorse or promote products derived from this software without +specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR +ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ + +#ifndef YR_ARENA_H +#define YR_ARENA_H + +#include +#include +#include +#include + +#define EOL ((size_t) -1) + +#define YR_ARENA_FILE_VERSION 20 + +#define YR_ARENA_NULL_REF \ + (YR_ARENA_REF) { UINT32_MAX, UINT32_MAX } + +#define YR_ARENA_IS_NULL_REF(ref) \ + (memcmp(&(ref), &YR_ARENA_NULL_REF, sizeof(YR_ARENA_NULL_REF)) == 0) + +typedef uint32_t yr_arena_off_t; + +typedef struct YR_ARENA YR_ARENA; +typedef struct YR_ARENA_BUFFER YR_ARENA_BUFFER; +typedef struct YR_ARENA_REF YR_ARENA_REF; +typedef struct YR_RELOC YR_RELOC; + +// The YR_ARENA_REF must be 64-bits long because this structure occupies +// the place of relocatable pointers when arenas are saved to file. The pack(4) +// directive ensures that fields are aligned to 4-byte boundaries and the total +// size of the structure is 8 bytes. When compiling YARA for 32-bits, pointers +// are 4 bytes but this structure is still 8 bytes. For that reason structures +// that are saved in arenas must declare pointers using the DECLARE_REFERENCE +// macro, which ensures that 8 bytes are reserved for the pointer no matter if +// they are 32-bits pointers. + +#pragma pack(push) +#pragma pack(4) + +struct YR_ARENA_REF +{ + uint32_t buffer_id; + yr_arena_off_t offset; +}; + +#pragma pack(pop) + +struct YR_ARENA_BUFFER +{ + // Pointer the buffer's data. + uint8_t* data; + + // Total buffer size, including the used and unused areas. The maximum size + // allowed for a buffer is 4GB because offsets in YR_ARENA_REF are 32-bit + // integers. + size_t size; + + // Number of bytes that are actually used (equal to or lower than size). + size_t used; +}; + +struct YR_RELOC +{ + // Buffer ID associated to this relocation entry. + uint32_t buffer_id; + + // Offset within the buffer where the relocatable pointer resides. + yr_arena_off_t offset; + + // Pointer to the next entry in the list. + struct YR_RELOC* next; +}; + +/* +YR_ARENA is the structure that represents an arena. + +An arena is a set of buffers in which you can write arbitrary data. When the +arena is created you can specify how many buffers it will have, this number is +limited by YR_MAX_ARENA_BUFFERS. Buffers are numbered 0, 1, 2, and so on, and +they are referenced by its number. + +Initially each buffer will have a size that is determined by an argument +passed to yr_create_arena, but the size will grow automatically as you write +data into it. When the buffer is re-sized it may be moved to a different +location in memory, which means that any pointer you hold to data contained +in the buffer is valid only until the next call to a function that may +cause a buffer re-sizing. For long-lived references to data in a buffer +you should use a YR_ARENA_REF, which is simply a struct storing the buffer +number and the offset of the data relative to the beginning of the buffer. +Such YR_ARENA_REF structures are returned by all functions that allocate space +or write data in a buffer. + +The yr_arena_get_ptr function can be used for getting a pointer to data +stored in the buffer given its offset, but this pointer should be used with +only in a limited scope where you can be sure that your program is not calling +a function that may cause a buffer re-sizing, like yr_arena_allocate_xxx and +yr_arena_write_xxx. + +Arenas can also keep track pointers stored in some of its buffers that point to +some location within the arena (it can be to the same buffer or a different one +within the same arena). This is done with yr_arena_make_ptr_relocatable, this +function receives a buffer number and an offset, and it tells the arena that +the pointer stored at that particular location of the buffer must be adjusted +every time the memory it points to is moved around. + +The yr_arena_allocate_struct function is an even more powerful mechanism for +tracking relocatable pointers. This function allows to allocate space in a +buffer for a structure, while at the same time telling the arena which fields +in the structure are relocatable pointers. + +*/ + +struct YR_ARENA +{ + // Number of users of this arena. This is set to one when the arena is + // created, and can be incremented by calling yr_arena_acquire. On each call + // to yr_arena_release it gets decremented by one, if xrefs reaches zero + // the buffers and the YR_ARENA structures are freed. + uint32_t xrefs; + + // Number of buffers in this arena. + uint32_t num_buffers; + + // Status of individual buffers. + YR_ARENA_BUFFER buffers[YR_MAX_ARENA_BUFFERS]; + + // Initial size for each buffer. + size_t initial_buffer_size; + + // Head of the list containing relocation entries. + YR_RELOC* reloc_list_head; + + // Tail of the list containing relocation entries. + YR_RELOC* reloc_list_tail; +}; + +// Creates an arena with the specified number of buffers and takes ownership of +// it. Initially each buffer is empty, the first time that some data is written +// into a buffer at least initial_buffer_size are reserved for the buffer. +int yr_arena_create( + uint32_t num_buffers, + size_t initial_buffer_size, + YR_ARENA** arena); + +// Takes ownership of the arena. +void yr_arena_acquire(YR_ARENA* arena); + +// Release ownership of the arena. If the number of owners drops to zero the +// arena is destroyed and all its resources are freed. +int yr_arena_release(YR_ARENA* arena); + +// Given a reference to some data within the arena, it returns a pointer to +// the data. This pointer is valid only until the next call to any of the +// functions that allocates space in the buffer where the data resides, like +// yr_arena_allocate_xxx and yr_arena_write_xxx. These functions can cause +// the buffer to be moved to different memory location and the pointer won't +// valid any longer. +void* yr_arena_ref_to_ptr(YR_ARENA* arena, YR_ARENA_REF* ref); + +// Given a pointer into the arena, it returns a reference to it. The reference +// can be used with yr_arena_ref_to_ptr to obtain a pointer again. Unlike +// pointers, references are during the arena's lifetime, even if the buffers +// are moved to a different memory location. +int yr_arena_ptr_to_ref( + YR_ARENA* arena, + const void* address, + YR_ARENA_REF* ref); + +// Given a buffer number and an offset within the buffer, returns a pointer +// to that offset. The same limitations explained for yr_arena_ref_to_ptr +// applies for the pointers returned by this function. +void* yr_arena_get_ptr( + YR_ARENA* arena, + uint32_t buffer_id, + yr_arena_off_t offset); + +yr_arena_off_t yr_arena_get_current_offset(YR_ARENA* arena, uint32_t buffer_id); + +int yr_arena_allocate_memory( + YR_ARENA* arena, + uint32_t buffer_id, + size_t size, + YR_ARENA_REF* ref); + +int yr_arena_allocate_zeroed_memory( + YR_ARENA* arena, + uint32_t buffer_id, + size_t size, + YR_ARENA_REF* ref); + +int yr_arena_allocate_struct( + YR_ARENA* arena, + uint32_t buffer_id, + size_t size, + YR_ARENA_REF* ref, + ...); + +int yr_arena_make_ptr_relocatable(YR_ARENA* arena, uint32_t buffer_id, ...); + +int yr_arena_write_data( + YR_ARENA* arena, + uint32_t buffer_id, + const void* data, + size_t size, + YR_ARENA_REF* ref); + +int yr_arena_write_string( + YR_ARENA* arena, + uint32_t buffer_id, + const char* string, + YR_ARENA_REF* ref); + +int yr_arena_write_uint32( + YR_ARENA* arena, + uint32_t buffer_id, + uint32_t integer, + YR_ARENA_REF* ref); + +int yr_arena_load_stream(YR_STREAM* stream, YR_ARENA** arena); + +int yr_arena_save_stream(YR_ARENA* arena, YR_STREAM* stream); + +#endif // YR_ARENA_H diff --git a/BLUESPAWN-win-client/headers/yara/atoms.h b/BLUESPAWN-win-client/headers/yara/atoms.h new file mode 100644 index 00000000..5a928980 --- /dev/null +++ b/BLUESPAWN-win-client/headers/yara/atoms.h @@ -0,0 +1,135 @@ +/* +Copyright (c) 2013. The YARA Authors. All Rights Reserved. + +Redistribution and use in source and binary forms, with or without modification, +are permitted provided that the following conditions are met: + +1. Redistributions of source code must retain the above copyright notice, this +list of conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright notice, +this list of conditions and the following disclaimer in the documentation and/or +other materials provided with the distribution. + +3. Neither the name of the copyright holder nor the names of its contributors +may be used to endorse or promote products derived from this software without +specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR +ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ + +#ifndef YR_ATOMS_H +#define YR_ATOMS_H + +#include +#include + +#define ATOM_TREE_LEAF 1 +#define ATOM_TREE_AND 2 +#define ATOM_TREE_OR 3 + +typedef struct YR_ATOM YR_ATOM; +typedef struct YR_ATOM_TREE_NODE YR_ATOM_TREE_NODE; +typedef struct YR_ATOM_TREE YR_ATOM_TREE; + +typedef struct YR_ATOM_LIST_ITEM YR_ATOM_LIST_ITEM; + +typedef struct YR_ATOM_QUALITY_TABLE_ENTRY YR_ATOM_QUALITY_TABLE_ENTRY; +typedef struct YR_ATOMS_CONFIG YR_ATOMS_CONFIG; + +struct YR_ATOM +{ + uint8_t length; + uint8_t bytes[YR_MAX_ATOM_LENGTH]; + uint8_t mask[YR_MAX_ATOM_LENGTH]; +}; + +struct YR_ATOM_TREE_NODE +{ + uint8_t type; + + YR_ATOM atom; + + // RE nodes that correspond to each byte in the atom. + RE_NODE* re_nodes[YR_MAX_ATOM_LENGTH]; + + YR_ATOM_TREE_NODE* children_head; + YR_ATOM_TREE_NODE* children_tail; + YR_ATOM_TREE_NODE* next_sibling; +}; + +struct YR_ATOM_TREE +{ + YR_ATOM_TREE_NODE* root_node; +}; + +struct YR_ATOM_LIST_ITEM +{ + YR_ATOM atom; + + uint16_t backtrack; + + YR_ARENA_REF forward_code_ref; + YR_ARENA_REF backward_code_ref; + + YR_ATOM_LIST_ITEM* next; +}; + +#pragma pack(push) +#pragma pack(1) + +struct YR_ATOM_QUALITY_TABLE_ENTRY +{ + const uint8_t atom[YR_MAX_ATOM_LENGTH]; + const uint8_t quality; +}; + +#pragma pack(pop) + +typedef int (*YR_ATOMS_QUALITY_FUNC)(YR_ATOMS_CONFIG* config, YR_ATOM* atom); + +struct YR_ATOMS_CONFIG +{ + YR_ATOMS_QUALITY_FUNC get_atom_quality; + YR_ATOM_QUALITY_TABLE_ENTRY* quality_table; + + int quality_warning_threshold; + int quality_table_entries; + bool free_quality_table; +}; + +int yr_atoms_extract_from_re( + YR_ATOMS_CONFIG* config, + RE_AST* re_ast, + YR_MODIFIER modifier, + YR_ATOM_LIST_ITEM** atoms, + int* min_atom_quality); + +int yr_atoms_extract_from_string( + YR_ATOMS_CONFIG* config, + uint8_t* string, + int string_length, + YR_MODIFIER modifier, + YR_ATOM_LIST_ITEM** atoms, + int* min_atom_quality); + +int yr_atoms_extract_triplets(RE_NODE* re_node, YR_ATOM_LIST_ITEM** atoms); + +int yr_atoms_heuristic_quality(YR_ATOMS_CONFIG* config, YR_ATOM* atom); + +int yr_atoms_table_quality(YR_ATOMS_CONFIG* config, YR_ATOM* atom); + +int yr_atoms_min_quality(YR_ATOMS_CONFIG* config, YR_ATOM_LIST_ITEM* atom_list); + +void yr_atoms_list_destroy(YR_ATOM_LIST_ITEM* list_head); + +#endif diff --git a/BLUESPAWN-win-client/headers/yara/base64.h b/BLUESPAWN-win-client/headers/yara/base64.h new file mode 100644 index 00000000..7ebb2991 --- /dev/null +++ b/BLUESPAWN-win-client/headers/yara/base64.h @@ -0,0 +1,51 @@ +/* +Copyright (c) 2020. The YARA Authors. All Rights Reserved. + +Redistribution and use in source and binary forms, with or without modification, +are permitted provided that the following conditions are met: + +1. Redistributions of source code must retain the above copyright notice, this +list of conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright notice, +this list of conditions and the following disclaimer in the documentation and/or +other materials provided with the distribution. + +3. Neither the name of the copyright holder nor the names of its contributors +may be used to endorse or promote products derived from this software without +specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR +ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ + +#ifndef YR_BASE64_H +#define YR_BASE64_H + +#include +#include +#include + +typedef struct BASE64_NODE BASE64_NODE; + +struct BASE64_NODE +{ + SIZED_STRING* str; + int escaped; + BASE64_NODE* next; +}; + +int yr_base64_ast_from_string( + SIZED_STRING* in_str, + YR_MODIFIER modifier, + RE_AST** re_ast, + RE_ERROR* error); +#endif diff --git a/BLUESPAWN-win-client/headers/yara/bitmask.h b/BLUESPAWN-win-client/headers/yara/bitmask.h new file mode 100644 index 00000000..af827477 --- /dev/null +++ b/BLUESPAWN-win-client/headers/yara/bitmask.h @@ -0,0 +1,95 @@ +/* +Copyright (c) 2018. The YARA Authors. All Rights Reserved. + +Redistribution and use in source and binary forms, with or without modification, +are permitted provided that the following conditions are met: + +1. Redistributions of source code must retain the above copyright notice, this +list of conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright notice, +this list of conditions and the following disclaimer in the documentation and/or +other materials provided with the distribution. + +3. Neither the name of the copyright holder nor the names of its contributors +may be used to endorse or promote products derived from this software without +specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR +ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ + +#ifndef YR_BITMASK_H +#define YR_BITMASK_H + +#include + +// +// Utility macros for working with bitmaps. +// +// Declare a bitmask of n bits: +// YR_BITMASK my_bitmask[YR_BITMASK_SIZE(n)]; +// +// Clear all bits: +// yr_bitmask_clear_all(my_bitmask) +// +// Set bit n to 1: +// yr_bitmask_set(my_bitmask, n) +// +// Clear bit n (set to 0): +// yr_bitmask_clear(my_bitmask, n) +// +// Check if bit n is set: +// yr_bitmask_is_set(my_bitmask, n) +// + +#define YR_BITMASK unsigned long + +#define YR_BITMASK_SLOT_BITS (sizeof(YR_BITMASK) * 8) +#define YR_BITMASK_SIZE(n) (((n) / (YR_BITMASK_SLOT_BITS)) + 1) + +#define yr_bitmask_set(bm, i) \ + do \ + { \ + (bm)[(i) / YR_BITMASK_SLOT_BITS] |= 1UL << ((i) % YR_BITMASK_SLOT_BITS); \ + } while (0) + +#define yr_bitmask_clear(bm, i) \ + do \ + { \ + (bm)[(i) / YR_BITMASK_SLOT_BITS] &= ~( \ + 1UL << ((i) % YR_BITMASK_SLOT_BITS)); \ + } while (0) + +#define yr_bitmask_clear_all(bm) memset(bm, 0, sizeof(bm)) + +#define yr_bitmask_is_set(bm, i) \ + ((bm)[(i) / YR_BITMASK_SLOT_BITS] & (1UL << ((i) % YR_BITMASK_SLOT_BITS))) + +#define yr_bitmask_is_not_set(bm, i) (!yr_bitmask_is_set(bm, i)) + +#define yr_bitmask_print(bm) \ + { \ + int i; \ + for (i = 0; i < sizeof(bm) / sizeof(bm[0]); i++) \ + { \ + printf("%016lX\n", bm[i]); \ + } \ + } + +uint32_t yr_bitmask_find_non_colliding_offset( + YR_BITMASK* a, + YR_BITMASK* b, + uint32_t len_a, + uint32_t len_b, + uint32_t* off_a); + +#endif diff --git a/BLUESPAWN-win-client/headers/yara/compiler.h b/BLUESPAWN-win-client/headers/yara/compiler.h new file mode 100644 index 00000000..a5bd5608 --- /dev/null +++ b/BLUESPAWN-win-client/headers/yara/compiler.h @@ -0,0 +1,418 @@ +/* +Copyright (c) 2013. The YARA Authors. All Rights Reserved. + +Redistribution and use in source and binary forms, with or without modification, +are permitted provided that the following conditions are met: + +1. Redistributions of source code must retain the above copyright notice, this +list of conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright notice, +this list of conditions and the following disclaimer in the documentation and/or +other materials provided with the distribution. + +3. Neither the name of the copyright holder nor the names of its contributors +may be used to endorse or promote products derived from this software without +specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR +ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ + +#ifndef YR_COMPILER_H +#define YR_COMPILER_H + +#include +#include +#include +#include +#include +#include +#include + +#define YARA_ERROR_LEVEL_ERROR 0 +#define YARA_ERROR_LEVEL_WARNING 1 + +// Expression type constants are powers of two because they are used as flags. +#define EXPRESSION_TYPE_UNKNOWN 0 +#define EXPRESSION_TYPE_BOOLEAN 1 +#define EXPRESSION_TYPE_INTEGER 2 +#define EXPRESSION_TYPE_STRING 4 +#define EXPRESSION_TYPE_REGEXP 8 +#define EXPRESSION_TYPE_OBJECT 16 +#define EXPRESSION_TYPE_FLOAT 32 +#define EXPRESSION_TYPE_QUANTIFIER 64 + +// The compiler uses an arena to store the data it generates during the +// compilation. Each buffer in the arena is used for storing a different type +// of data. The following identifiers indicate the purpose of each buffer. +#define YR_NAMESPACES_TABLE 0 +#define YR_RULES_TABLE 1 +#define YR_METAS_TABLE 2 +#define YR_STRINGS_TABLE 3 +#define YR_EXTERNAL_VARIABLES_TABLE 4 +#define YR_SZ_POOL 5 +#define YR_CODE_SECTION 6 +#define YR_RE_CODE_SECTION 7 +#define YR_AC_TRANSITION_TABLE 8 +#define YR_AC_STATE_MATCHES_TABLE 9 +#define YR_AC_STATE_MATCHES_POOL 10 +#define YR_SUMMARY_SECTION 11 + +// This is the number of buffers used by the compiler, should match the number +// of items in the list above. +#define YR_NUM_SECTIONS 12 + +// Number of variables used by loops. This doesn't include user defined +// variables. +#define YR_INTERNAL_LOOP_VARS 3 + +typedef struct _YR_ENUMERATION +{ + int type; + int count; +} YR_ENUMERATION; + +typedef struct _YR_EXPRESSION +{ + int type; + + union + { + int64_t integer; + double double_; + YR_OBJECT* object; + YR_ARENA_REF sized_string_ref; + } value; + + // Boolean expressions can hold a string count. If not empty, this indicates that the condition + // can only be fulfilled if at least so many strings match. + struct { + int count; + } required_strings; + + // An expression can have an associated identifier, if "ptr" is not NULL it + // points to the identifier name, if it is NULL, then "ref" holds a reference + // to the identifier within YR_SZ_POOL. When the identifier is in YR_SZ_POOL + // a pointer can't be used as the YR_SZ_POOL can be moved to a different + // memory location. + struct + { + const char* ptr; + YR_ARENA_REF ref; + } identifier; + +} YR_EXPRESSION; + +typedef void (*YR_COMPILER_CALLBACK_FUNC)( + int error_level, + const char* file_name, + int line_number, + const YR_RULE* rule, + const char* message, + void* user_data); + +typedef const char* (*YR_COMPILER_INCLUDE_CALLBACK_FUNC)( + const char* include_name, + const char* calling_rule_filename, + const char* calling_rule_namespace, + void* user_data); + +typedef void (*YR_COMPILER_INCLUDE_FREE_FUNC)( + const char* callback_result_ptr, + void* user_data); + +typedef void (*YR_COMPILER_RE_AST_CALLBACK_FUNC)( + const YR_RULE* rule, + const char* string_identifier, + const RE_AST* re_ast, + void* user_data); + +typedef struct _YR_FIXUP +{ + YR_ARENA_REF ref; + struct _YR_FIXUP* next; + +} YR_FIXUP; + +// Each "for" loop in the condition has an associated context which holds +// information about loop, like the target address for the jump instruction +// that goes back to the beginning of the loop and the local variables used +// by the loop. + +typedef struct _YR_LOOP_CONTEXT +{ + // Reference indicating the the place in the code where the loop starts. The + // loop goes back to this address on each iteration. + YR_ARENA_REF start_ref; + + // vars_count is the number of local variables defined by the loop, and vars + // is an array of expressions with the identifier and type for each of those + // local variables. + int vars_count; + YR_EXPRESSION vars[YR_MAX_LOOP_VARS]; + + // vars_internal_count is the number of variables used by the loop which are + // not defined by the rule itself but that are necessary for keeping the + // loop's state. One example is the iteration counter. + int vars_internal_count; +} YR_LOOP_CONTEXT; + +typedef struct _YR_COMPILER +{ + // Arena that contains the data generated by the compiled. The arena has + // the following buffers: + // + // YR_SUMMARY_SECTION: + // A YR_SUMMARY struct. + // YR_RULES_TABLE: + // An array of YR_RULE structures, one per each rule. + // YR_STRINGS_TABLE: + // An array of YR_STRING structures, one per each string. + // YR_METAS_TABLE: + // An array of YR_META structures, one per each meta definition. + // YR_NAMESPACES_TABLE: + // An array of YR_NAMESPACE structures, one per each namespace. + // YR_EXTERNAL_VARIABLES_TABLE: + // An array of YR_EXTERNAL_VARIABLE structures, one per each external + // variable defined. + // YR_SZ_POOL: + // A collection of null-terminated strings. This buffer contains + // identifiers, literal strings, and in general any null-terminated + // string referenced by other data structures. + // YR_CODE_SECTION: + // The code for the condition section of all the rules. This is the + // code executed by yr_execute_code. + // YR_RE_CODE_SECTION: + // Similar to YR_CODE_SECTION, but it contains the code for regular + // expressions. This is the code executed by yr_re_exec and + // yr_re_fast_exec. + // YR_AC_TRANSITION_TABLE: + // An array of uint32_t containing the Aho-Corasick transition table. + // See comment in _yr_ac_build_transition_table for details. + // YR_AC_STATE_MATCHES_TABLE: + // An array of uint32_t with the same number of items than the transition + // table. If entry N in the transition table corresponds to some + // Aho-Corasick state, the N-th item in this array has the index within + // the matches pool where the list of matches for that state begins. + // YR_AC_STATE_MATCHES_POOL: + // An array of YR_AC_MATCH structures. + // + YR_ARENA* arena; + + // Index of the rule being compiled in the array of YR_RULE structures + // stored in YR_RULES_TABLE. If this is MAX_UINT32 the compiler is not + // parsing a rule. + uint32_t current_rule_idx; + + // Index of the rule that comes next during parsing. + uint32_t next_rule_idx; + + // Index of the string being compiled in the array of YR_STRING structures + // stored in YR_STRINGS_TABLE. + uint32_t current_string_idx; + + // Index of the current namespace in the array of YR_NAMESPACE structures + // stored in YR_NAMESPACES_TABLE. + uint32_t current_namespace_idx; + + // Index of the current meta in the array of YR_META structures stored in + // YR_METAS_TABLE. + uint32_t current_meta_idx; + + // Pointer to a YR_RULES structure that represents the compiled rules. This + // is what yr_compiler_get_rules returns. Once these rules are generated you + // can't call any of the yr_compiler_add_xxx functions. + YR_RULES* rules; + + int errors; + int current_line; + int last_error; + int last_error_line; + + jmp_buf error_recovery; + + YR_AC_AUTOMATON* automaton; + YR_HASH_TABLE* rules_table; + YR_HASH_TABLE* objects_table; + YR_HASH_TABLE* strings_table; + + // Hash table that contains all the identifiers with wildcards used in + // conditions. This is used to make sure we error out if we are parsing a + // rule _AFTER_ an existing rule has referenced it in a condition. For + // example: + // + // rule a1 { condition: true } + // rule b { condition: 1 of (a*) } + // rule a2 { condition: true } + // + // This must be a compiler error when parsing a2 because b has already been + // parsed and the instructions to check _ONLY_ a1 have been emitted. Rule b + // has no concept of a2 and would not work as expected. + YR_HASH_TABLE* wildcard_identifiers_table; + + // Hash table that contains all the strings that has been written to the + // YR_SZ_POOL buffer in the compiler's arena. Values in the hash table are + // the offset within the YR_SZ_POOL where the string resides. This allows to + // know is some string has already been written in order to reuse instead of + // writting it again. + YR_HASH_TABLE* sz_table; + + YR_FIXUP* fixup_stack_head; + + int num_namespaces; + + YR_LOOP_CONTEXT loop[YR_MAX_LOOP_NESTING]; + int loop_index; + int loop_for_of_var_index; + + char* file_name_stack[YR_MAX_INCLUDE_DEPTH]; + int file_name_stack_ptr; + + char last_error_extra_info[YR_MAX_COMPILER_ERROR_EXTRA_INFO]; + + // This buffer is used by the lexer for accumulating text strings. Those + // strings are copied from flex's internal variables. lex_buf_ptr points to + // the end of the string and lex_buf_len contains the number of bytes that + // have been copied into lex_buf. + char lex_buf[YR_LEX_BUF_SIZE]; + char* lex_buf_ptr; + unsigned short lex_buf_len; + + char include_base_dir[MAX_PATH]; + void* user_data; + void* incl_clbk_user_data; + void* re_ast_clbk_user_data; + + YR_COMPILER_CALLBACK_FUNC callback; + YR_COMPILER_INCLUDE_CALLBACK_FUNC include_callback; + YR_COMPILER_INCLUDE_FREE_FUNC include_free; + YR_COMPILER_RE_AST_CALLBACK_FUNC re_ast_callback; + YR_ATOMS_CONFIG atoms_config; + +} YR_COMPILER; + +#define yr_compiler_set_error_extra_info(compiler, info) \ + strlcpy( \ + compiler->last_error_extra_info, \ + info, \ + sizeof(compiler->last_error_extra_info)); + +#define yr_compiler_set_error_extra_info_fmt(compiler, fmt, ...) \ + snprintf( \ + compiler->last_error_extra_info, \ + sizeof(compiler->last_error_extra_info), \ + fmt, \ + __VA_ARGS__); + +int _yr_compiler_push_file_name(YR_COMPILER* compiler, const char* file_name); + +void _yr_compiler_pop_file_name(YR_COMPILER* compiler); + +int _yr_compiler_get_var_frame(YR_COMPILER* compiler); + +const char* _yr_compiler_default_include_callback( + const char* include_name, + const char* calling_rule_filename, + const char* calling_rule_namespace, + void* user_data); + +YR_RULE* _yr_compiler_get_rule_by_idx(YR_COMPILER* compiler, uint32_t rule_idx); + +int _yr_compiler_store_string( + YR_COMPILER* compiler, + const char* string, + YR_ARENA_REF* ref); + +int _yr_compiler_store_data( + YR_COMPILER* compiler, + const void* data, + size_t data_length, + YR_ARENA_REF* ref); + +YR_API int yr_compiler_create(YR_COMPILER** compiler); + +YR_API void yr_compiler_destroy(YR_COMPILER* compiler); + +YR_API void yr_compiler_set_callback( + YR_COMPILER* compiler, + YR_COMPILER_CALLBACK_FUNC callback, + void* user_data); + +YR_API void yr_compiler_set_include_callback( + YR_COMPILER* compiler, + YR_COMPILER_INCLUDE_CALLBACK_FUNC include_callback, + YR_COMPILER_INCLUDE_FREE_FUNC include_free, + void* user_data); + +YR_API void yr_compiler_set_re_ast_callback( + YR_COMPILER* compiler, + YR_COMPILER_RE_AST_CALLBACK_FUNC re_ast_callback, + void* user_data); + +YR_API void yr_compiler_set_atom_quality_table( + YR_COMPILER* compiler, + const void* table, + int entries, + unsigned char warning_threshold); + +YR_API int yr_compiler_load_atom_quality_table( + YR_COMPILER* compiler, + const char* filename, + unsigned char warning_threshold); + +YR_API int yr_compiler_add_file( + YR_COMPILER* compiler, + FILE* rules_file, + const char* namespace_, + const char* file_name); + +YR_API int yr_compiler_add_fd( + YR_COMPILER* compiler, + YR_FILE_DESCRIPTOR rules_fd, + const char* namespace_, + const char* file_name); + +YR_API int yr_compiler_add_string( + YR_COMPILER* compiler, + const char* rules_string, + const char* namespace_); + +YR_API char* yr_compiler_get_error_message( + YR_COMPILER* compiler, + char* buffer, + int buffer_size); + +YR_API char* yr_compiler_get_current_file_name(YR_COMPILER* compiler); + +YR_API int yr_compiler_define_integer_variable( + YR_COMPILER* compiler, + const char* identifier, + int64_t value); + +YR_API int yr_compiler_define_boolean_variable( + YR_COMPILER* compiler, + const char* identifier, + int value); + +YR_API int yr_compiler_define_float_variable( + YR_COMPILER* compiler, + const char* identifier, + double value); + +YR_API int yr_compiler_define_string_variable( + YR_COMPILER* compiler, + const char* identifier, + const char* value); + +YR_API int yr_compiler_get_rules(YR_COMPILER* compiler, YR_RULES** rules); + +#endif diff --git a/BLUESPAWN-win-client/headers/yara/dex.h b/BLUESPAWN-win-client/headers/yara/dex.h new file mode 100644 index 00000000..e09f522b --- /dev/null +++ b/BLUESPAWN-win-client/headers/yara/dex.h @@ -0,0 +1,147 @@ +#ifndef _DEX_H +#define _DEX_H + +#include +#include +#include + +#define DEX_FILE_MAGIC_035 "dex\n035\x00" +#define DEX_FILE_MAGIC_036 "dex\n036\x00" +#define DEX_FILE_MAGIC_037 "dex\n037\x00" +#define DEX_FILE_MAGIC_038 "dex\n038\x00" +#define DEX_FILE_MAGIC_039 "dex\n039\x00" + +#pragma pack(push, 1) + +typedef struct +{ + uint8_t magic[8]; + uint32_t checksum; + uint8_t signature[20]; + uint32_t file_size; + uint32_t header_size; + uint32_t endian_tag; + uint32_t link_size; + uint32_t link_offset; + uint32_t map_offset; + uint32_t string_ids_size; + uint32_t string_ids_offset; + uint32_t type_ids_size; + uint32_t type_ids_offset; + uint32_t proto_ids_size; + uint32_t proto_ids_offset; + uint32_t field_ids_size; + uint32_t field_ids_offset; + uint32_t method_ids_size; + uint32_t method_ids_offset; + uint32_t class_defs_size; + uint32_t class_defs_offset; + uint32_t data_size; + uint32_t data_offset; +} dex_header_t; + +typedef struct +{ + uint32_t string_data_offset; +} string_id_item_t; + +typedef struct +{ + uint32_t utf16_size; +} string_data_item_t; + +typedef struct +{ + uint32_t descriptor_idx; +} type_id_item_t; + +typedef struct +{ + uint32_t shorty_idx; + uint32_t return_type_idx; + uint32_t parameters_offset; +} proto_id_item_t; + +typedef struct +{ + uint16_t class_idx; + uint16_t type_idx; + uint32_t name_idx; +} field_id_item_t; + +typedef struct +{ + uint16_t class_idx; + uint16_t proto_idx; + uint32_t name_idx; +} method_id_item_t; + +typedef struct +{ + uint32_t class_idx; + uint32_t access_flags; + uint32_t super_class_idx; + uint32_t interfaces_offset; + uint32_t source_file_idx; + uint32_t annotations_offset; + uint32_t class_data_offset; + uint32_t static_values_offset; +} class_id_item_t; + +typedef struct +{ + uint32_t static_fields_size; + uint32_t instance_fields_size; + uint32_t direct_methods_size; + uint32_t virtual_methods_size; +} class_data_item_t; + +typedef struct +{ + uint32_t field_idx_diff; + uint32_t access_flags; +} encoded_field_t; + +typedef struct +{ + uint32_t method_idx_diff; + uint32_t access_flags; + uint32_t code_off; +} encoded_method_t; + +typedef struct +{ + uint16_t registers_size; + uint16_t ins_size; + uint16_t outs_size; + uint16_t tries_size; + uint32_t debug_info_off; + uint32_t insns_size; +} code_item_t; + +typedef struct +{ + uint16_t type; + uint16_t unused; + uint32_t size; + uint32_t offset; +} map_item_t; + +typedef struct _DEX +{ + const uint8_t* data; + size_t data_size; + dex_header_t* header; + YR_OBJECT* object; +} DEX; + +#define fits_in_dex(dex, pointer, size) \ + ((size_t) size <= dex->data_size && (uint8_t*) (pointer) >= dex->data && \ + (uint8_t*) (pointer) <= dex->data + dex->data_size - size) + +#define struct_fits_in_dex(dex, pointer, struct_type) \ + fits_in_dex(dex, pointer, sizeof(struct_type)) + +#pragma pack(pop) + +#endif diff --git a/BLUESPAWN-win-client/headers/yara/dotnet.h b/BLUESPAWN-win-client/headers/yara/dotnet.h new file mode 100644 index 00000000..8462deac --- /dev/null +++ b/BLUESPAWN-win-client/headers/yara/dotnet.h @@ -0,0 +1,573 @@ +#ifndef YR_DOTNET_H +#define YR_DOTNET_H + +#include +#include +#include + +#pragma pack(push, 1) + +// +// CLI header. +// ECMA-335 Section II.25.3.3 +// +typedef struct _CLI_HEADER +{ + DWORD Size; // Called "Cb" in documentation. + WORD MajorRuntimeVersion; + WORD MinorRuntimeVersion; + IMAGE_DATA_DIRECTORY MetaData; + DWORD Flags; + DWORD EntryPointToken; + IMAGE_DATA_DIRECTORY Resources; + IMAGE_DATA_DIRECTORY StrongNameSignature; + ULONGLONG CodeManagerTable; + IMAGE_DATA_DIRECTORY VTableFixups; + ULONGLONG ExportAddressTableJumps; + ULONGLONG ManagedNativeHeader; +} CLI_HEADER, *PCLI_HEADER; + +#define NET_METADATA_MAGIC 0x424a5342 + +// +// CLI MetaData +// ECMA-335 Section II.24.2.1 +// +// Note: This is only part of the struct, as the rest of it is variable length. +// +typedef struct _NET_METADATA +{ + DWORD Magic; + WORD MajorVersion; + WORD MinorVersion; + DWORD Reserved; + DWORD Length; + char Version[0]; +} NET_METADATA, *PNET_METADATA; + +#define DOTNET_STREAM_NAME_SIZE 32 + +// +// CLI Stream Header +// ECMA-335 Section II.24.2.2 +// +typedef struct _STREAM_HEADER +{ + DWORD Offset; + DWORD Size; + char Name[0]; +} STREAM_HEADER, *PSTREAM_HEADER; + +// +// CLI #~ Stream Header +// ECMA-335 Section II.24.2.6 +// +typedef struct _TILDE_HEADER +{ + DWORD Reserved1; + BYTE MajorVersion; + BYTE MinorVersion; + BYTE HeapSizes; + BYTE Reserved2; + ULONGLONG Valid; + ULONGLONG Sorted; +} TILDE_HEADER, *PTILDE_HEADER; + +// flag in HeapSizes that denotes extra 4 bytes after Rows +#define HEAP_EXTRA_DATA 0x40 +#define SIG_FLAG_GENERIC 0x10 + +// These are the bit positions in Valid which will be set if the table +// exists. +#define BIT_MODULE 0x00 +#define BIT_TYPEREF 0x01 +#define BIT_TYPEDEF 0x02 +#define BIT_FIELDPTR 0x03 // Not documented in ECMA-335 +#define BIT_FIELD 0x04 +#define BIT_METHODDEFPTR 0x05 // Not documented in ECMA-335 +#define BIT_METHODDEF 0x06 +#define BIT_PARAMPTR 0x07 // Not documented in ECMA-335 +#define BIT_PARAM 0x08 +#define BIT_INTERFACEIMPL 0x09 +#define BIT_MEMBERREF 0x0A +#define BIT_CONSTANT 0x0B +#define BIT_CUSTOMATTRIBUTE 0x0C +#define BIT_FIELDMARSHAL 0x0D +#define BIT_DECLSECURITY 0x0E +#define BIT_CLASSLAYOUT 0x0F +#define BIT_FIELDLAYOUT 0x10 +#define BIT_STANDALONESIG 0x11 +#define BIT_EVENTMAP 0x12 +#define BIT_EVENTPTR 0x13 // Not documented in ECMA-335 +#define BIT_EVENT 0x14 +#define BIT_PROPERTYMAP 0x15 +#define BIT_PROPERTYPTR 0x16 // Not documented in ECMA-335 +#define BIT_PROPERTY 0x17 +#define BIT_METHODSEMANTICS 0x18 +#define BIT_METHODIMPL 0x19 +#define BIT_MODULEREF 0x1A +#define BIT_TYPESPEC 0x1B +#define BIT_IMPLMAP 0x1C +#define BIT_FIELDRVA 0x1D +#define BIT_ENCLOG 0x1E // Not documented in ECMA-335 +#define BIT_ENCMAP 0x1F // Not documented in ECMA-335 +#define BIT_ASSEMBLY 0x20 +#define BIT_ASSEMBLYPROCESSOR 0x21 +#define BIT_ASSEMBLYOS 0x22 +#define BIT_ASSEMBLYREF 0x23 +#define BIT_ASSEMBLYREFPROCESSOR 0x24 +#define BIT_ASSEMBLYREFOS 0x25 +#define BIT_FILE 0x26 +#define BIT_EXPORTEDTYPE 0x27 +#define BIT_MANIFESTRESOURCE 0x28 +#define BIT_NESTEDCLASS 0x29 +#define BIT_GENERICPARAM 0x2A +#define BIT_METHODSPEC 0x2B +#define BIT_GENERICPARAMCONSTRAINT 0x2C +// These are not documented in ECMA-335 nor is it clear what the format is. +// They are for debugging information as far as I can tell. +//#define BIT_DOCUMENT 0x30 +//#define BIT_METHODDEBUGINFORMATION 0x31 +//#define BIT_LOCALSCOPE 0x32 +//#define BIT_LOCALVARIABLE 0x33 +//#define BIT_LOCALCONSTANT 0x34 +//#define BIT_IMPORTSCOPE 0x35 +//#define BIT_STATEMACHINEMETHOD 0x36 + +// The string length of a typelib attribute is at most 0xFF. +#define MAX_TYPELIB_SIZE 0xFF + +// Flags and Masks for .NET tables +#define TYPE_ATTR_CLASS_SEMANTIC_MASK 0x20 +#define TYPE_ATTR_CLASS 0x0 +#define TYPE_ATTR_INTERFACE 0x20 + +#define TYPE_ATTR_VISIBILITY_MASK 0x7 +#define TYPE_ATTR_NOT_PUBLIC 0x0 +#define TYPE_ATTR_PUBLIC 0x1 +#define TYPE_ATTR_NESTED_PUBLIC 0x2 +#define TYPE_ATTR_NESTED_PRIVATE 0x3 +#define TYPE_ATTR_NESTED_FAMILY 0x4 +#define TYPE_ATTR_NESTED_ASSEMBLY 0x5 +#define TYPE_ATTR_NESTED_FAM_AND_ASSEM 0x6 +#define TYPE_ATTR_NESTED_FAM_OR_ASSEM 0x7 + +#define TYPE_ATTR_ABSTRACT 0x80 +#define TYPE_ATTR_SEALED 0x100 + +#define METHOD_ATTR_ACCESS_MASK 0x7 +#define METHOD_ATTR_PRIVATE 0x1 +#define METHOD_ATTR_FAM_AND_ASSEM 0x2 +#define METHOD_ATTR_ASSEM 0x3 +#define METHOD_ATTR_FAMILY 0x4 +#define METHOD_ATTR_FAM_OR_ASSEM 0x5 +#define METHOD_ATTR_PUBLIC 0x6 + +#define METHOD_ATTR_STATIC 0x10 +#define METHOD_ATTR_FINAL 0x20 +#define METHOD_ATTR_VIRTUAL 0x40 +#define METHOD_ATTR_ABSTRACT 0x400 + +// Element types ECMA-335 Section II.23.1.16 +#define TYPE_END 0x0 +#define TYPE_VOID 0x1 +#define TYPE_BOOL 0x2 +#define TYPE_CHAR 0x3 +#define TYPE_I1 0x4 +#define TYPE_U1 0x5 +#define TYPE_I2 0x6 +#define TYPE_U2 0x7 +#define TYPE_I4 0x8 +#define TYPE_U4 0x9 +#define TYPE_I8 0xa +#define TYPE_U8 0xb +#define TYPE_R4 0xc +#define TYPE_R8 0xd +#define TYPE_STRING 0xe +#define TYPE_PTR 0xf +#define TYPE_BYREF 0x10 +#define TYPE_VALUETYPE 0x11 +#define TYPE_CLASS 0x12 +#define TYPE_VAR 0x13 +#define TYPE_ARRAY 0x14 +#define TYPE_GENERICINST 0x15 +#define TYPE_TYPEDREF 0x16 +#define TYPE_I 0x18 +#define TYPE_U 0x19 +#define TYPE_FNPTR 0x1b +#define TYPE_OBJECT 0x1c +#define TYPE_SZARRAY 0x1d +#define TYPE_MVAR 0x1e +#define TYPE_CMOD_REQD 0x1f +#define TYPE_CMOD_OPT 0x20 +#define TYPE_INTERNAL 0x21 +#define TYPE_MODIFIER 0x40 +#define TYPE_SENTINEL 0x41 +#define TYPE_PINNED 0x45 + +// Sane boundaries for invalid files +#define MAX_ARRAY_RANK 50 +#define MAX_PARAM_COUNT 2000 +#define MAX_GEN_PARAM_COUNT 1000 +#define MAX_METHOD_COUNT 20000 +#define MAX_STRING_LENGTH 10000 +// Sanity check for loops in type parser +#define MAX_TYPE_DEPTH 0x10 +#define MAX_NAMESPACE_DEPTH 0x0a + +// +// Module table +// ECMA-335 Section II.22.30 +// +typedef struct _MODULE_TABLE +{ + WORD Generation; + union + { + WORD Name_Short; + DWORD Name_Long; + } Name; + union + { + WORD Mvid_Short; + DWORD Mvid_Long; + } Mvid; + union + { + WORD EncId_Short; + DWORD EncId_Long; + } EncId; + union + { + WORD EncBaseId_Short; + DWORD EncBaseId_Long; + } EncBaseId; +} MODULE_TABLE, *PMODULE_TABLE; + +// +// Assembly Table +// ECMA-335 Section II.22.2 +// +typedef struct _ASSEMBLY_TABLE +{ + DWORD HashAlgId; + WORD MajorVersion; + WORD MinorVersion; + WORD BuildNumber; + WORD RevisionNumber; + DWORD Flags; + union + { + WORD PublicKey_Short; + DWORD PublicKey_Long; + } PublicKey; + union + { + WORD Name_Short; + DWORD Name_Long; + } Name; +} ASSEMBLY_TABLE, *PASSEMBLY_TABLE; + +// +// Assembly Reference Table +// ECMA-335 Section II.22.5 +// +typedef struct _ASSEMBLYREF_TABLE +{ + WORD MajorVersion; + WORD MinorVersion; + WORD BuildNumber; + WORD RevisionNumber; + DWORD Flags; + union + { + WORD PublicKeyOrToken_Short; + DWORD PublicKeyOrToken_Long; + } PublicKeyOrToken; + union + { + WORD Name_Short; + DWORD Name_Long; + } Name; +} ASSEMBLYREF_TABLE, *PASSEMBLYREF_TABLE; + +// +// Manifest Resource Table +// ECMA-335 Section II.22.24 +// +typedef struct _MANIFESTRESOURCE_TABLE +{ + DWORD Offset; + DWORD Flags; + union + { + WORD Name_Short; + DWORD Name_Long; + } Name; + union + { + WORD Implementation_Short; + DWORD Implementation_Long; + } Implementation; +} MANIFESTRESOURCE_TABLE, *PMANIFESTRESOURCE_TABLE; + +// +// ModuleRef Table +// ECMA-335 Section II.22.31 +// +// This is a short table, but necessary because the field size can change. +// +typedef struct _MODULEREF_TABLE +{ + union + { + WORD Name_Short; + DWORD Name_Long; + } Name; +} MODULEREF_TABLE, *PMODULEREF_TABLE; + +// +// FieldRVA Table +// ECMA-335 Section II.22.18 +// +typedef struct _FIELDRVA_TABLE +{ + DWORD RVA; + union + { + WORD Field_Short; + DWORD Field_LONG; + } Field; +} FIELDRVA_TABLE, *PFIELDRVA_TABLE; + +// +// CustomAttribute Table +// ECMA-335 Section II.22.10 +// +typedef struct _CUSTOMATTRIBUTE_TABLE +{ + union + { + WORD Parent_Short; + DWORD Parent_Long; + } Parent; + union + { + WORD Type_Short; + DWORD Type_Long; + } Type; + union + { + WORD Value_Short; + DWORD Value_Long; + } Value; +} CUSTOMATTRIBUTE_TABLE, *PCUSTOMATTRIBUTE_TABLE; + +// +// Constant TAble +// ECMA-335 Section II.22.9 +// +typedef struct _CONSTANT_TABLE +{ + WORD Type; + union + { + WORD Parent_Short; + DWORD Parent_Long; + } Parent; + union + { + WORD Value_Short; + DWORD Value_Long; + } Value; +} CONSTANT_TABLE, *PCONSTANT_TABLE; + +// ECMA 335 - II.22.37 +typedef struct _TYPEDEF_ROW +{ + uint32_t Flags; + uint32_t Name; + uint32_t Namespace; + uint32_t Extends; + uint32_t Field; + uint32_t Method; +} TYPEDEF_ROW, *PTYPEDEF_ROW; + +// ECMA 335 - II.22.38 +typedef struct _TYPEREF_ROW +{ + uint32_t ResolutionScope; + uint32_t Name; + uint32_t Namespace; +} TYPEREF_ROW, *PTYPEREF_ROW; + +// ECMA 335 - II.22.39 +typedef struct _TYPESPEC_ROW +{ + uint32_t Signature; +} TYPESPEC_ROW, *PTYPESPEC_ROW; + +// ECMA 335 - II.22.23 +typedef struct _INTERFACEIMPL_ROW +{ + uint32_t Class; + uint32_t Interface; +} INTERFACEIMPL_ROW, *PINTERFACEIMPL_ROW; + +// ECMA 335 II.22.26 +typedef struct _METHODDEF_ROW +{ + uint32_t Rva; + uint16_t ImplFlags; + uint16_t Flags; + uint32_t Name; + uint32_t Signature; + uint32_t ParamList; +} METHODDEF_ROW, *PMETHODDEF_ROW; + +// ECMA 335 II.22.33 +typedef struct _PARAM_ROW +{ + uint16_t Flags; + uint16_t Sequence; + uint32_t Name; +} PARAM_ROW, *PPARAM_ROW; + +// ECMA 335 II.22.20 +typedef struct _GENERICPARAM_ROW +{ + uint16_t Number; + uint16_t Flags; + uint32_t Owner; + uint32_t Name; +} GENERICPARAM_ROW, *PGENERICPARAM_ROW; + +// ECMA 335 II.22.32 +typedef struct _NESTEDCLASS_ROW +{ + uint32_t NestedClass; + uint32_t EnclosingClass; +} NESTEDCLASS_ROW, *PNESTEDCLASS_ROW; + +// For easy passing of gen param collection +typedef struct _GENERIC_PARAMETERS +{ + char **names; + uint32_t len; +} GENERIC_PARAMETERS, *PGENERIC_PARAMETERS; + +// Used to return offsets to the various headers. +typedef struct _STREAMS +{ + int64_t metadata_root; // base from which are stream offsets relative + PSTREAM_HEADER guid; + PSTREAM_HEADER tilde; + PSTREAM_HEADER string; + PSTREAM_HEADER blob; + PSTREAM_HEADER us; +} STREAMS, *PSTREAMS; + +// Used to return the value of parsing a #US or #Blob entry. +// ECMA-335 Section II.24.2.4 +typedef struct _BLOB_PARSE_RESULT +{ + uint8_t size; // Number of bytes parsed. This is the new offset. + uint32_t length; // Value of the bytes parsed. This is the blob length. +} BLOB_PARSE_RESULT, *PBLOB_PARSE_RESULT; + +typedef struct _TABLE_INFO +{ + uint8_t *Offset; + uint32_t RowCount; + uint32_t RowSize; +} TABLE_INFO, *PTABLE_INFO; + +// Structure that stores table information for parsing +typedef struct _TABLES +{ + TABLE_INFO typedef_; + TABLE_INFO typespec; + TABLE_INFO typeref; + TABLE_INFO methoddef; + TABLE_INFO param; + TABLE_INFO module; + TABLE_INFO moduleref; + TABLE_INFO assembly; + TABLE_INFO assemblyref; + TABLE_INFO intefaceimpl; + TABLE_INFO genericparam; + TABLE_INFO nestedclass; +} TABLES, *PTABLES; + +// Used to store the number of rows of each table. +typedef struct _ROWS +{ + uint32_t module; + uint32_t moduleref; + uint32_t assemblyref; + uint32_t typeref; + uint32_t methoddef; + uint32_t memberref; + uint32_t typedef_; + uint32_t typespec; + uint32_t field; + uint32_t param; + uint32_t property; + uint32_t interfaceimpl; + uint32_t event; + uint32_t standalonesig; + uint32_t assembly; + uint32_t file; + uint32_t exportedtype; + uint32_t manifestresource; + uint32_t genericparam; + uint32_t genericparamconstraint; + uint32_t methodspec; + uint32_t assemblyrefprocessor; +} ROWS, *PROWS; + +// Used to store the index sizes for the various tables. +typedef struct _INDEX_SIZES +{ + uint8_t string; + uint8_t guid; + uint8_t blob; + uint8_t field; + uint8_t methoddef; + uint8_t methodspec; + uint8_t memberref; + uint8_t param; + uint8_t event; + uint8_t typedef_; + uint8_t typeref; + uint8_t typespec; + uint8_t interfaceimpl; + uint8_t property; + uint8_t moduleref; + uint8_t module; + uint8_t assemblyrefprocessor; + uint8_t assemblyref; + uint8_t assembly; + uint8_t genericparam; +} INDEX_SIZES, *PINDEX_SIZES; + +typedef struct _CLASS_CONTEXT +{ + PE* pe; + TABLES* tables; + INDEX_SIZES* index_sizes; + const uint8_t* str_heap; + uint32_t str_size; + const uint8_t* blob_heap; + uint32_t blob_size; +} CLASS_CONTEXT, *PCLASS_CONTEXT; + +typedef struct _PARAMETERS +{ + char* name; + char* type; + bool alloc; // if name is allocated and needs to be free +} PARAMETERS, *PPARAMETERS; + +#pragma pack(pop) +#endif diff --git a/BLUESPAWN-win-client/headers/yara/elf.h b/BLUESPAWN-win-client/headers/yara/elf.h new file mode 100644 index 00000000..40344754 --- /dev/null +++ b/BLUESPAWN-win-client/headers/yara/elf.h @@ -0,0 +1,319 @@ +/* +Copyright (c) 2013. The YARA Authors. All Rights Reserved. + +Redistribution and use in source and binary forms, with or without modification, +are permitted provided that the following conditions are met: + +1. Redistributions of source code must retain the above copyright notice, this +list of conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright notice, +this list of conditions and the following disclaimer in the documentation and/or +other materials provided with the distribution. + +3. Neither the name of the copyright holder nor the names of its contributors +may be used to endorse or promote products derived from this software without +specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR +ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ + +#ifndef _ELF_H +#define _ELF_H + +#include + +// 32-bit ELF base types + +typedef uint32_t elf32_addr_t; +typedef uint16_t elf32_half_t; +typedef uint32_t elf32_off_t; +typedef uint32_t elf32_word_t; + +// 64-bit ELF base types + +typedef uint64_t elf64_addr_t; +typedef uint16_t elf64_half_t; +typedef uint64_t elf64_off_t; +typedef uint32_t elf64_word_t; +typedef uint64_t elf64_xword_t; + +#define ELF_MAGIC 0x464C457F + +#define ELF_ET_NONE 0x0000 // no type +#define ELF_ET_REL 0x0001 // relocatable +#define ELF_ET_EXEC 0x0002 // executable +#define ELF_ET_DYN 0x0003 // Shared-Object-File +#define ELF_ET_CORE 0x0004 // Corefile +#define ELF_ET_LOPROC 0xFF00 // Processor-specific +#define ELF_ET_HIPROC 0x00FF // Processor-specific + +#define ELF_EM_NONE 0x0000 // no type +#define ELF_EM_M32 0x0001 // AT&T WE 32100 +#define ELF_EM_SPARC 0x0002 // SPARC +#define ELF_EM_386 0x0003 // Intel 80386 +#define ELF_EM_68K 0x0004 // Motorola 68000 +#define ELF_EM_88K 0x0005 // Motorola 88000 +#define ELF_EM_860 0x0007 // Intel 80860 +#define ELF_EM_MIPS 0x0008 // MIPS I Architecture +#define ELF_EM_MIPS_RS3_LE 0x000A // MIPS RS3000 Little-endian +#define ELF_EM_PPC 0x0014 // PowerPC +#define ELF_EM_PPC64 0x0015 // 64-bit PowerPC +#define ELF_EM_ARM 0x0028 // ARM +#define ELF_EM_X86_64 0x003E // AMD/Intel x86_64 +#define ELF_EM_AARCH64 0x00B7 // 64-bit ARM + +#define ELF_CLASS_NONE 0x0000 +#define ELF_CLASS_32 0x0001 // 32bit file +#define ELF_CLASS_64 0x0002 // 64bit file + +#define ELF_DATA_NONE 0x0000 +#define ELF_DATA_2LSB 0x0001 +#define ELF_DATA_2MSB 0x002 + +#define ELF_SHT_NULL 0 // Section header table entry unused +#define ELF_SHT_PROGBITS 1 // Program data +#define ELF_SHT_SYMTAB 2 // Symbol table +#define ELF_SHT_STRTAB 3 // String table +#define ELF_SHT_RELA 4 // Relocation entries with addends +#define ELF_SHT_HASH 5 // Symbol hash table +#define ELF_SHT_DYNAMIC 6 // Dynamic linking information +#define ELF_SHT_NOTE 7 // Notes +#define ELF_SHT_NOBITS 8 // Program space with no data (bss) +#define ELF_SHT_REL 9 // Relocation entries, no addends +#define ELF_SHT_SHLIB 10 // Reserved +#define ELF_SHT_DYNSYM 11 // Dynamic linker symbol table +#define ELF_SHT_NUM 12 // Number of defined types + +#define ELF_SHF_WRITE 0x1 // Section is writable +#define ELF_SHF_ALLOC 0x2 // Section is present during execution +#define ELF_SHF_EXECINSTR 0x4 // Section contains executable instructions + +#define ELF_SHN_LORESERVE 0xFF00 + +#define ELF_PT_NULL 0 // The array element is unused +#define ELF_PT_LOAD 1 // Loadable segment +#define ELF_PT_DYNAMIC 2 // Segment contains dynamic linking info +#define ELF_PT_INTERP 3 // Contains interpreter pathname +#define ELF_PT_NOTE 4 // Location & size of auxiliary info +#define ELF_PT_SHLIB 5 // Reserved, unspecified semantics +#define ELF_PT_PHDR 6 // Location and size of program header table +#define ELF_PT_TLS 7 // Thread-Local Storage +#define ELF_PT_GNU_EH_FRAME 0x6474e550 +#define ELF_PT_GNU_STACK 0x6474e551 + +#define ELF_DT_NULL 0 // End of the dynamic entries +#define ELF_DT_NEEDED 1 // Name of needed library +#define ELF_DT_PLTRELSZ 2 // Size in bytes of PLT relocs +#define ELF_DT_PLTGOT 3 // Processor defined value */ +#define ELF_DT_HASH 4 // Address of symbol hash table +#define ELF_DT_STRTAB 5 // Address of string table +#define ELF_DT_SYMTAB 6 // Address of symbol table +#define ELF_DT_RELA 7 // Address of Rela relocs +#define ELF_DT_RELASZ 8 // Total size of Rela relocs +#define ELF_DT_RELAENT 9 // Size of one Rela reloc +#define ELF_DT_STRSZ 10 // Size of string table +#define ELF_DT_SYMENT 11 // Size of one symbol table entry +#define ELF_DT_INIT 12 // Address of init function +#define ELF_DT_FINI 13 // Address of termination function +#define ELF_DT_SONAME 14 // Name of shared object +#define ELF_DT_RPATH 15 // Library search path (deprecated) +#define ELF_DT_SYMBOLIC 16 // Start symbol search here +#define ELF_DT_REL 17 // Address of Rel relocs +#define ELF_DT_RELSZ 18 // Total size of Rel relocs +#define ELF_DT_RELENT 19 // Size of one Rel reloc +#define ELF_DT_PLTREL 20 // Type of reloc in PLT +#define ELF_DT_DEBUG 21 // For debugging; unspecified +#define ELF_DT_TEXTREL 22 // Reloc might modify .text +#define ELF_DT_JMPREL 23 // Address of PLT relocs +#define ELF_DT_BIND_NOW 24 // Process relocations of object +#define ELF_DT_INIT_ARRAY 25 // Array with addresses of init fct +#define ELF_DT_FINI_ARRAY 26 // Array with addresses of fini fct +#define ELF_DT_INIT_ARRAYSZ 27 // Size in bytes of DT_INIT_ARRAY +#define ELF_DT_FINI_ARRAYSZ 28 // Size in bytes of DT_FINI_ARRAY +#define ELF_DT_RUNPATH 29 // Library search path +#define ELF_DT_FLAGS 30 // Flags for the object being loaded +#define ELF_DT_ENCODING 32 // Start of encoded range + +#define ELF_STT_NOTYPE 0 // Symbol type is unspecified +#define ELF_STT_OBJECT 1 // Symbol is a data object +#define ELF_STT_FUNC 2 // Symbol is a code object +#define ELF_STT_SECTION 3 // Symbol associated with a section +#define ELF_STT_FILE 4 // Symbol's name is file name +#define ELF_STT_COMMON 5 // Symbol is a common data object +#define ELF_STT_TLS 6 // Symbol is thread-local data object + +#define ELF_STV_DEFAULT 0 // Visibility by binding +#define ELF_STV_INTERNAL 1 // Reserved +#define ELF_STV_HIDDEN 2 // Not visible to other components +#define ELF_STV_PROTECTED 3 // Visible in other but cannot be preempted. + +#define ELF_STB_LOCAL 0 // Local symbol +#define ELF_STB_GLOBAL 1 // Global symbol +#define ELF_STB_WEAK 2 // Weak symbol + +#define ELF_PF_X 0x1 // Segment is executable +#define ELF_PF_W 0x2 // Segment is writable +#define ELF_PF_R 0x4 // Segment is readable + +#define ELF_PN_XNUM 0xffff + +#define ELF_SHN_UNDEF 0 // Missing, undefined section index +#define ELF_SHN_ABS 0xFFF1 // Absolute references, not affected by relocs +#define ELF_SHN_COMMON 0xFFF2 // Symbols relative to this are common + +#pragma pack(push, 1) + +typedef struct +{ + uint32_t magic; + uint8_t _class; + uint8_t data; + uint8_t version; + uint8_t pad[8]; + uint8_t nident; + +} elf_ident_t; + +typedef struct +{ + elf_ident_t ident; + elf32_half_t type; + elf32_half_t machine; + elf32_word_t version; + elf32_addr_t entry; + elf32_off_t ph_offset; + elf32_off_t sh_offset; + elf32_word_t flags; + elf32_half_t header_size; + elf32_half_t ph_entry_size; + elf32_half_t ph_entry_count; + elf32_half_t sh_entry_size; + elf32_half_t sh_entry_count; + elf32_half_t sh_str_table_index; + +} elf32_header_t; + +typedef struct +{ + elf_ident_t ident; + elf64_half_t type; + elf64_half_t machine; + elf64_word_t version; + elf64_addr_t entry; + elf64_off_t ph_offset; + elf64_off_t sh_offset; + elf64_word_t flags; + elf64_half_t header_size; + elf64_half_t ph_entry_size; + elf64_half_t ph_entry_count; + elf64_half_t sh_entry_size; + elf64_half_t sh_entry_count; + elf64_half_t sh_str_table_index; + +} elf64_header_t; + +typedef struct +{ + elf32_word_t type; + elf32_off_t offset; + elf32_addr_t virt_addr; + elf32_addr_t phys_addr; + elf32_word_t file_size; + elf32_word_t mem_size; + elf32_word_t flags; + elf32_word_t alignment; + +} elf32_program_header_t; + +typedef struct +{ + elf64_word_t type; + elf64_word_t flags; + elf64_off_t offset; + elf64_addr_t virt_addr; + elf64_addr_t phys_addr; + elf64_xword_t file_size; + elf64_xword_t mem_size; + elf64_xword_t alignment; + +} elf64_program_header_t; + +typedef struct +{ + elf32_word_t name; + elf32_word_t type; + elf32_word_t flags; + elf32_addr_t addr; + elf32_off_t offset; + elf32_word_t size; + elf32_word_t link; + elf32_word_t info; + elf32_word_t align; + elf32_word_t entry_size; + +} elf32_section_header_t; + +typedef struct +{ + elf64_word_t name; + elf64_word_t type; + elf64_xword_t flags; + elf64_addr_t addr; + elf64_off_t offset; + elf64_xword_t size; + elf64_word_t link; + elf64_word_t info; + elf64_xword_t align; + elf64_xword_t entry_size; + +} elf64_section_header_t; + +typedef struct +{ + elf32_word_t tag; + elf32_word_t val; + +} elf32_dyn_t; + +typedef struct +{ + elf64_xword_t tag; + elf64_xword_t val; + +} elf64_dyn_t; + +typedef struct +{ + elf32_word_t name; + elf32_addr_t value; + elf32_word_t size; + unsigned char info; + unsigned char other; + elf32_half_t shndx; + +} elf32_sym_t; + +typedef struct +{ + elf32_word_t name; + unsigned char info; + unsigned char other; + elf32_half_t shndx; + elf64_addr_t value; + elf64_xword_t size; + +} elf64_sym_t; + +#pragma pack(pop) + +#endif diff --git a/BLUESPAWN-win-client/headers/yara/elf_utils.h b/BLUESPAWN-win-client/headers/yara/elf_utils.h new file mode 100644 index 00000000..a3df5b68 --- /dev/null +++ b/BLUESPAWN-win-client/headers/yara/elf_utils.h @@ -0,0 +1,34 @@ +#ifndef YR_ELF_UTILS_H +#define YR_ELF_UTILS_H + +#include + +typedef struct _ELF_SYMBOL +{ + char *name; + int value; + int size; + int type; + int bind; + int shndx; + int visibility; + + struct _ELF_SYMBOL *next; // Next symbol in the list +} ELF_SYMBOL; + +// Linked list of symbols +typedef struct _ELF_SYMBOL_LIST +{ + int count; + ELF_SYMBOL *symbols; +} ELF_SYMBOL_LIST; + +typedef struct _ELF +{ + ELF_SYMBOL_LIST *symtab; + ELF_SYMBOL_LIST *dynsym; + char *telfhash; + char *import_hash; +} ELF; + +#endif //YR_ELF_UTILS_H diff --git a/BLUESPAWN-win-client/headers/yara/endian.h b/BLUESPAWN-win-client/headers/yara/endian.h new file mode 100644 index 00000000..9998d16d --- /dev/null +++ b/BLUESPAWN-win-client/headers/yara/endian.h @@ -0,0 +1,96 @@ +/* +Copyright (c) 2016. The YARA Authors. All Rights Reserved. + +Redistribution and use in source and binary forms, with or without modification, +are permitted provided that the following conditions are met: + +1. Redistributions of source code must retain the above copyright notice, this +list of conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright notice, +this list of conditions and the following disclaimer in the documentation and/or +other materials provided with the distribution. + +3. Neither the name of the copyright holder nor the names of its contributors +may be used to endorse or promote products derived from this software without +specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR +ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ + +#ifndef YR_ENDIAN_H +#define YR_ENDIAN_H + +#include + +#if defined(__has_builtin) +#if __has_builtin(__builtin_bswap16) +#define yr_bswap16(x) __builtin_bswap16(x) +#endif +#endif + +#if !defined(yr_bswap16) && defined(_MSC_VER) +#define yr_bswap16(x) _byteswap_ushort(x) +#endif + +#if !defined(yr_bswap16) +uint16_t _yr_bswap16(uint16_t x); +#define yr_bswap16(x) _yr_bswap16(x) +#endif + +#if defined(__has_builtin) +#if __has_builtin(__builtin_bswap32) +#define yr_bswap32(x) __builtin_bswap32(x) +#endif +#endif + +#if !defined(yr_bswap32) && defined(_MSC_VER) +#define yr_bswap32(x) _byteswap_ulong(x) +#endif + +#if !defined(yr_bswap32) +uint32_t _yr_bswap32(uint32_t x); +#define yr_bswap32(x) _yr_bswap32(x) +#endif + +#if defined(__has_builtin) +#if __has_builtin(__builtin_bswap64) +#define yr_bswap64(x) __builtin_bswap64(x) +#endif +#endif + +#if !defined(yr_bswap64) && defined(_MSC_VER) +#define yr_bswap64(x) _byteswap_uint64(x) +#endif + +#if !defined(yr_bswap64) +uint64_t _yr_bswap64(uint64_t x); +#define yr_bswap64(x) _yr_bswap64(x) +#endif + +#if defined(WORDS_BIGENDIAN) +#define yr_le16toh(x) yr_bswap16(x) +#define yr_le32toh(x) yr_bswap32(x) +#define yr_le64toh(x) yr_bswap64(x) +#define yr_be16toh(x) (x) +#define yr_be32toh(x) (x) +#define yr_be64toh(x) (x) +#else +#define yr_le16toh(x) (x) +#define yr_le32toh(x) (x) +#define yr_le64toh(x) (x) +#define yr_be16toh(x) yr_bswap16(x) +#define yr_be32toh(x) yr_bswap32(x) +#define yr_be64toh(x) yr_bswap64(x) +#endif + +#endif diff --git a/BLUESPAWN-win-client/headers/yara/error.h b/BLUESPAWN-win-client/headers/yara/error.h new file mode 100644 index 00000000..0cd1ea6f --- /dev/null +++ b/BLUESPAWN-win-client/headers/yara/error.h @@ -0,0 +1,168 @@ +/* +Copyright (c) 2014. The YARA Authors. All Rights Reserved. + +Redistribution and use in source and binary forms, with or without modification, +are permitted provided that the following conditions are met: + +1. Redistributions of source code must retain the above copyright notice, this +list of conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright notice, +this list of conditions and the following disclaimer in the documentation and/or +other materials provided with the distribution. + +3. Neither the name of the copyright holder nor the names of its contributors +may be used to endorse or promote products derived from this software without +specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR +ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ + +#ifndef YR_ERROR_H +#define YR_ERROR_H + +#include + +#if defined(_WIN32) || defined(__CYGWIN__) +#include +#endif + +#ifndef ERROR_SUCCESS +#define ERROR_SUCCESS 0 +#endif + +// ERROR_INSUFICIENT_MEMORY is misspelled but it's kept for backward +// compatibility, as some other programs can be using it in this form. +#define ERROR_INSUFICIENT_MEMORY 1 + +#define ERROR_INSUFFICIENT_MEMORY 1 +#define ERROR_COULD_NOT_ATTACH_TO_PROCESS 2 +#define ERROR_COULD_NOT_OPEN_FILE 3 +#define ERROR_COULD_NOT_MAP_FILE 4 +#define ERROR_INVALID_FILE 6 +#define ERROR_CORRUPT_FILE 7 +#define ERROR_UNSUPPORTED_FILE_VERSION 8 +#define ERROR_INVALID_REGULAR_EXPRESSION 9 +#define ERROR_INVALID_HEX_STRING 10 +#define ERROR_SYNTAX_ERROR 11 +#define ERROR_LOOP_NESTING_LIMIT_EXCEEDED 12 +#define ERROR_DUPLICATED_LOOP_IDENTIFIER 13 +#define ERROR_DUPLICATED_IDENTIFIER 14 +#define ERROR_DUPLICATED_TAG_IDENTIFIER 15 +#define ERROR_DUPLICATED_META_IDENTIFIER 16 +#define ERROR_DUPLICATED_STRING_IDENTIFIER 17 +#define ERROR_UNREFERENCED_STRING 18 +#define ERROR_UNDEFINED_STRING 19 +#define ERROR_UNDEFINED_IDENTIFIER 20 +#define ERROR_MISPLACED_ANONYMOUS_STRING 21 +#define ERROR_INCLUDES_CIRCULAR_REFERENCE 22 +#define ERROR_INCLUDE_DEPTH_EXCEEDED 23 +#define ERROR_WRONG_TYPE 24 +#define ERROR_EXEC_STACK_OVERFLOW 25 +#define ERROR_SCAN_TIMEOUT 26 +#define ERROR_TOO_MANY_SCAN_THREADS 27 +#define ERROR_CALLBACK_ERROR 28 +#define ERROR_INVALID_ARGUMENT 29 +#define ERROR_TOO_MANY_MATCHES 30 +#define ERROR_INTERNAL_FATAL_ERROR 31 +#define ERROR_NESTED_FOR_OF_LOOP 32 +#define ERROR_INVALID_FIELD_NAME 33 +#define ERROR_UNKNOWN_MODULE 34 +#define ERROR_NOT_A_STRUCTURE 35 +#define ERROR_NOT_INDEXABLE 36 +#define ERROR_NOT_A_FUNCTION 37 +#define ERROR_INVALID_FORMAT 38 +#define ERROR_TOO_MANY_ARGUMENTS 39 +#define ERROR_WRONG_ARGUMENTS 40 +#define ERROR_WRONG_RETURN_TYPE 41 +#define ERROR_DUPLICATED_STRUCTURE_MEMBER 42 +#define ERROR_EMPTY_STRING 43 +#define ERROR_DIVISION_BY_ZERO 44 +#define ERROR_REGULAR_EXPRESSION_TOO_LARGE 45 +#define ERROR_TOO_MANY_RE_FIBERS 46 +#define ERROR_COULD_NOT_READ_PROCESS_MEMORY 47 +#define ERROR_INVALID_EXTERNAL_VARIABLE_TYPE 48 +#define ERROR_REGULAR_EXPRESSION_TOO_COMPLEX 49 +#define ERROR_INVALID_MODULE_NAME 50 +#define ERROR_TOO_MANY_STRINGS 51 +#define ERROR_INTEGER_OVERFLOW 52 +#define ERROR_CALLBACK_REQUIRED 53 +#define ERROR_INVALID_OPERAND 54 +#define ERROR_COULD_NOT_READ_FILE 55 +#define ERROR_DUPLICATED_EXTERNAL_VARIABLE 56 +#define ERROR_INVALID_MODULE_DATA 57 +#define ERROR_WRITING_FILE 58 +#define ERROR_INVALID_MODIFIER 59 +#define ERROR_DUPLICATED_MODIFIER 60 +#define ERROR_BLOCK_NOT_READY 61 +#define ERROR_INVALID_PERCENTAGE 62 +#define ERROR_IDENTIFIER_MATCHES_WILDCARD 63 +#define ERROR_INVALID_VALUE 64 +#define ERROR_TOO_SLOW_SCANNING 65 + +#define GOTO_EXIT_ON_ERROR(x) \ + { \ + result = (x); \ + if (result != ERROR_SUCCESS) \ + goto _exit; \ + } + +#define GOTO_EXIT_ON_ERROR_WITH_CLEANUP(x, cleanup) \ + { \ + result = (x); \ + if (result != ERROR_SUCCESS) \ + { \ + cleanup; \ + goto _exit; \ + } \ + } + + +#define FAIL_ON_ERROR(x) \ + { \ + int __error = (x); \ + if (__error != ERROR_SUCCESS) \ + return __error; \ + } + + +#define FAIL_ON_ERROR_WITH_CLEANUP(x, cleanup) \ + { \ + int __error = (x); \ + if (__error != ERROR_SUCCESS) \ + { \ + cleanup; \ + return __error; \ + } \ + } + +#define FAIL_ON_NULL_WITH_CLEANUP(x, cleanup) \ + { \ + if ((x) == NULL) \ + { \ + cleanup; \ + return ERROR_INSUFFICIENT_MEMORY; \ + } \ + } + +#ifdef NDEBUG +#define assertf(expr, msg, ...) ((void) 0) +#else +#define assertf(expr, msg, ...) \ + if (!(expr)) \ + { \ + fprintf(stderr, "%s:%d: " msg "\n", __FILE__, __LINE__, ##__VA_ARGS__); \ + abort(); \ + } +#endif + +#endif diff --git a/BLUESPAWN-win-client/headers/yara/exec.h b/BLUESPAWN-win-client/headers/yara/exec.h new file mode 100644 index 00000000..945c5a7b --- /dev/null +++ b/BLUESPAWN-win-client/headers/yara/exec.h @@ -0,0 +1,204 @@ +/* +Copyright (c) 2013-2014. The YARA Authors. All Rights Reserved. + +Redistribution and use in source and binary forms, with or without modification, +are permitted provided that the following conditions are met: + +1. Redistributions of source code must retain the above copyright notice, this +list of conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright notice, +this list of conditions and the following disclaimer in the documentation and/or +other materials provided with the distribution. + +3. Neither the name of the copyright holder nor the names of its contributors +may be used to endorse or promote products derived from this software without +specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR +ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ + +#ifndef YR_EXEC_H +#define YR_EXEC_H + +#include +#include +#include +#include + +#define YR_UNDEFINED 0xFFFABADAFABADAFFLL +#define IS_UNDEFINED(x) ((size_t)(x) == (size_t) YR_UNDEFINED) + +// Used to tell OP_OF and OP_OF_PERCENT what kind of set is being used. +#define OF_STRING_SET 0 +#define OF_RULE_SET 1 + +#define OP_ERROR 0 +#define OP_HALT 255 +#define OP_NOP 254 + +#define OP_AND 1 +#define OP_OR 2 +#define OP_NOT 3 +#define OP_BITWISE_NOT 4 +#define OP_BITWISE_AND 5 +#define OP_BITWISE_OR 6 +#define OP_BITWISE_XOR 7 +#define OP_SHL 8 +#define OP_SHR 9 +#define OP_MOD 10 +#define OP_INT_TO_DBL 11 +#define OP_STR_TO_BOOL 12 +#define OP_PUSH 13 +#define OP_POP 14 +#define OP_CALL 15 +#define OP_OBJ_LOAD 16 +#define OP_OBJ_VALUE 17 +#define OP_OBJ_FIELD 18 +#define OP_INDEX_ARRAY 19 +#define OP_COUNT 20 +#define OP_LENGTH 21 +#define OP_FOUND 22 +#define OP_FOUND_AT 23 +#define OP_FOUND_IN 24 +#define OP_OFFSET 25 +#define OP_OF 26 +#define OP_PUSH_RULE 27 +#define OP_INIT_RULE 28 +#define OP_MATCH_RULE 29 +#define OP_INCR_M 30 +#define OP_CLEAR_M 31 +#define OP_ADD_M 32 +#define OP_POP_M 33 +#define OP_PUSH_M 34 +#define OP_SET_M 35 +#define OP_SWAPUNDEF 36 +#define OP_FILESIZE 37 +#define OP_ENTRYPOINT 38 +#define OP_UNUSED 39 +#define OP_MATCHES 40 +#define OP_IMPORT 41 +#define OP_LOOKUP_DICT 42 +#define OP_JUNDEF 43 /* Not used */ +#define OP_JUNDEF_P 44 +#define OP_JNUNDEF 45 +#define OP_JNUNDEF_P 46 /* Not used */ +#define OP_JFALSE 47 +#define OP_JFALSE_P 48 +#define OP_JTRUE 49 +#define OP_JTRUE_P 50 +#define OP_JL_P 51 +#define OP_JLE_P 52 +#define OP_ITER_NEXT 53 +#define OP_ITER_START_ARRAY 54 +#define OP_ITER_START_DICT 55 +#define OP_ITER_START_INT_RANGE 56 +#define OP_ITER_START_INT_ENUM 57 +#define OP_ITER_START_STRING_SET 58 +#define OP_ITER_CONDITION 59 +#define OP_ITER_END 60 +#define OP_JZ 61 +#define OP_JZ_P 62 +#define OP_PUSH_8 63 +#define OP_PUSH_16 64 +#define OP_PUSH_32 65 +#define OP_PUSH_U 66 +#define OP_CONTAINS 67 +#define OP_STARTSWITH 68 +#define OP_ENDSWITH 69 +#define OP_ICONTAINS 70 +#define OP_ISTARTSWITH 71 +#define OP_IENDSWITH 72 +#define OP_IEQUALS 73 +#define OP_OF_PERCENT 74 +#define OP_OF_FOUND_IN 75 +#define OP_COUNT_IN 76 +#define OP_DEFINED 77 +#define OP_ITER_START_TEXT_STRING_SET 78 +#define OP_OF_FOUND_AT 79 + +#define _OP_EQ 0 +#define _OP_NEQ 1 +#define _OP_LT 2 +#define _OP_GT 3 +#define _OP_LE 4 +#define _OP_GE 5 +#define _OP_ADD 6 +#define _OP_SUB 7 +#define _OP_MUL 8 +#define _OP_DIV 9 +#define _OP_MINUS 10 + +#define OP_INT_BEGIN 100 +#define OP_INT_EQ (OP_INT_BEGIN + _OP_EQ) +#define OP_INT_NEQ (OP_INT_BEGIN + _OP_NEQ) +#define OP_INT_LT (OP_INT_BEGIN + _OP_LT) +#define OP_INT_GT (OP_INT_BEGIN + _OP_GT) +#define OP_INT_LE (OP_INT_BEGIN + _OP_LE) +#define OP_INT_GE (OP_INT_BEGIN + _OP_GE) +#define OP_INT_ADD (OP_INT_BEGIN + _OP_ADD) +#define OP_INT_SUB (OP_INT_BEGIN + _OP_SUB) +#define OP_INT_MUL (OP_INT_BEGIN + _OP_MUL) +#define OP_INT_DIV (OP_INT_BEGIN + _OP_DIV) +#define OP_INT_MINUS (OP_INT_BEGIN + _OP_MINUS) +#define OP_INT_END OP_INT_MINUS + +#define OP_DBL_BEGIN 120 +#define OP_DBL_EQ (OP_DBL_BEGIN + _OP_EQ) +#define OP_DBL_NEQ (OP_DBL_BEGIN + _OP_NEQ) +#define OP_DBL_LT (OP_DBL_BEGIN + _OP_LT) +#define OP_DBL_GT (OP_DBL_BEGIN + _OP_GT) +#define OP_DBL_LE (OP_DBL_BEGIN + _OP_LE) +#define OP_DBL_GE (OP_DBL_BEGIN + _OP_GE) +#define OP_DBL_ADD (OP_DBL_BEGIN + _OP_ADD) +#define OP_DBL_SUB (OP_DBL_BEGIN + _OP_SUB) +#define OP_DBL_MUL (OP_DBL_BEGIN + _OP_MUL) +#define OP_DBL_DIV (OP_DBL_BEGIN + _OP_DIV) +#define OP_DBL_MINUS (OP_DBL_BEGIN + _OP_MINUS) +#define OP_DBL_END OP_DBL_MINUS + +#define OP_STR_BEGIN 140 +#define OP_STR_EQ (OP_STR_BEGIN + _OP_EQ) +#define OP_STR_NEQ (OP_STR_BEGIN + _OP_NEQ) +#define OP_STR_LT (OP_STR_BEGIN + _OP_LT) +#define OP_STR_GT (OP_STR_BEGIN + _OP_GT) +#define OP_STR_LE (OP_STR_BEGIN + _OP_LE) +#define OP_STR_GE (OP_STR_BEGIN + _OP_GE) +#define OP_STR_END OP_STR_GE + +#define IS_INT_OP(x) ((x) >= OP_INT_BEGIN && (x) <= OP_INT_END) +#define IS_DBL_OP(x) ((x) >= OP_DBL_BEGIN && (x) <= OP_DBL_END) +#define IS_STR_OP(x) ((x) >= OP_STR_BEGIN && (x) <= OP_STR_END) + +#define OP_READ_INT 240 +#define OP_INT8 (OP_READ_INT + 0) +#define OP_INT16 (OP_READ_INT + 1) +#define OP_INT32 (OP_READ_INT + 2) +#define OP_UINT8 (OP_READ_INT + 3) +#define OP_UINT16 (OP_READ_INT + 4) +#define OP_UINT32 (OP_READ_INT + 5) +#define OP_INT8BE (OP_READ_INT + 6) +#define OP_INT16BE (OP_READ_INT + 7) +#define OP_INT32BE (OP_READ_INT + 8) +#define OP_UINT8BE (OP_READ_INT + 9) +#define OP_UINT16BE (OP_READ_INT + 10) +#define OP_UINT32BE (OP_READ_INT + 11) + +#define OPERATION(operator, op1, op2) \ + (IS_UNDEFINED(op1) || IS_UNDEFINED(op2)) ? (YR_UNDEFINED) : (op1 operator op2) + +#define COMPARISON(operator, op1, op2) \ + (IS_UNDEFINED(op1) || IS_UNDEFINED(op2)) ? (0) : (op1 operator op2) + +int yr_execute_code(YR_SCAN_CONTEXT* context); + +#endif diff --git a/BLUESPAWN-win-client/headers/yara/exefiles.h b/BLUESPAWN-win-client/headers/yara/exefiles.h new file mode 100644 index 00000000..a91df5ca --- /dev/null +++ b/BLUESPAWN-win-client/headers/yara/exefiles.h @@ -0,0 +1,40 @@ +/* +Copyright (c) 2007. The YARA Authors. All Rights Reserved. + +Redistribution and use in source and binary forms, with or without modification, +are permitted provided that the following conditions are met: + +1. Redistributions of source code must retain the above copyright notice, this +list of conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright notice, +this list of conditions and the following disclaimer in the documentation and/or +other materials provided with the distribution. + +3. Neither the name of the copyright holder nor the names of its contributors +may be used to endorse or promote products derived from this software without +specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR +ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ + +#ifndef YR_EXEFILES_H +#define YR_EXEFILES_H + +uint64_t yr_get_entry_point_offset(const uint8_t* buffer, size_t buffer_length); + +uint64_t yr_get_entry_point_address( + const uint8_t* buffer, + size_t buffer_length, + uint64_t base_address); + +#endif diff --git a/BLUESPAWN-win-client/headers/yara/filemap.h b/BLUESPAWN-win-client/headers/yara/filemap.h new file mode 100644 index 00000000..81060147 --- /dev/null +++ b/BLUESPAWN-win-client/headers/yara/filemap.h @@ -0,0 +1,81 @@ +/* +Copyright (c) 2007-2015. The YARA Authors. All Rights Reserved. + +Redistribution and use in source and binary forms, with or without modification, +are permitted provided that the following conditions are met: + +1. Redistributions of source code must retain the above copyright notice, this +list of conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright notice, +this list of conditions and the following disclaimer in the documentation and/or +other materials provided with the distribution. + +3. Neither the name of the copyright holder nor the names of its contributors +may be used to endorse or promote products derived from this software without +specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR +ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ + +#ifndef YR_FILEMAP_H +#define YR_FILEMAP_H + +#include + +#if defined(_WIN32) || defined(__CYGWIN__) +#include +#define YR_FILE_DESCRIPTOR HANDLE +#else +#define YR_FILE_DESCRIPTOR int +#endif + +#include +#include +#include + + +typedef struct _YR_MAPPED_FILE +{ + YR_FILE_DESCRIPTOR file; + size_t size; + const uint8_t* data; +#if defined(_WIN32) || defined(__CYGWIN__) + HANDLE mapping; +#endif + +} YR_MAPPED_FILE; + + +YR_API int yr_filemap_map(const char* file_path, YR_MAPPED_FILE* pmapped_file); + + +YR_API int yr_filemap_map_fd( + YR_FILE_DESCRIPTOR file, + uint64_t offset, + size_t size, + YR_MAPPED_FILE* pmapped_file); + + +YR_API int yr_filemap_map_ex( + const char* file_path, + uint64_t offset, + size_t size, + YR_MAPPED_FILE* pmapped_file); + + +YR_API void yr_filemap_unmap(YR_MAPPED_FILE* pmapped_file); + + +YR_API void yr_filemap_unmap_fd(YR_MAPPED_FILE* pmapped_file); + +#endif diff --git a/BLUESPAWN-win-client/headers/yara/globals.h b/BLUESPAWN-win-client/headers/yara/globals.h new file mode 100644 index 00000000..9cfb319a --- /dev/null +++ b/BLUESPAWN-win-client/headers/yara/globals.h @@ -0,0 +1,109 @@ +/* +Copyright (c) 2014. The YARA Authors. All Rights Reserved. + +Redistribution and use in source and binary forms, with or without modification, +are permitted provided that the following conditions are met: + +1. Redistributions of source code must retain the above copyright notice, this +list of conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright notice, +this list of conditions and the following disclaimer in the documentation and/or +other materials provided with the distribution. + +3. Neither the name of the copyright holder nor the names of its contributors +may be used to endorse or promote products derived from this software without +specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR +ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ + +#ifndef YR_GLOBALS_H +#define YR_GLOBALS_H + +#include +#include + +// Pre-computed tables for quickly converting a character to lowercase or to +// its alternative case (uppercase if it is a lowercase and vice versa). This +// tables are initialized by yr_initialize. +extern uint8_t yr_lowercase[256]; +extern uint8_t yr_altercase[256]; + +// Thread-local storage (TLS) key used by the regexp and hex string parsers. +// Each thread calling yr_parse_re_string/yr_parse_hex_string stores a pointer +// to a jmp_buf struct used by setjmp/longjmp for recovering when a fatal error +// occurs in the parser. +extern YR_THREAD_STORAGE_KEY yr_yyfatal_trampoline_tls; + +// Thread-local storage (TLS) key used by YR_TRYCATCH. +extern YR_THREAD_STORAGE_KEY yr_trycatch_trampoline_tls; + +// When YARA is built with YR_DEBUG_VERBOSITY defined as larger than 0 it can +// print debug information to stdout. +#if 0 == YR_DEBUG_VERBOSITY + +#define YR_DEBUG_INITIALIZE() +#define YR_DEBUG_FPRINTF(VERBOSITY, FORMAT, ...) + +#else + +// for getpid() +#include +#include + +extern double yr_debug_get_elapsed_seconds(void); + +extern char* yr_debug_callback_message_as_string(int message); + +extern char* yr_debug_error_as_string(int error); + +// Default is 0 for production, which means be silent, else verbose. +extern uint64_t yr_debug_verbosity; + +extern YR_TLS int yr_debug_indent; + +extern const char yr_debug_spaces[]; + +extern size_t yr_debug_spaces_len; + +#define YR_DEBUG_INITIALIZE() \ + yr_debug_verbosity = getenv("YR_DEBUG_VERBOSITY") \ + ? atoi(getenv("YR_DEBUG_VERBOSITY")) \ + : YR_DEBUG_VERBOSITY + +#define YR_DEBUG_FPRINTF(VERBOSITY, STREAM, FORMAT, ...) \ + if (yr_debug_verbosity >= VERBOSITY) \ + { \ + if (FORMAT[0] == '}') \ + { \ + yr_debug_indent--; \ + } \ + assert((2 * yr_debug_indent) >= 0); \ + assert((2 * yr_debug_indent) < (yr_debug_spaces_len - 2)); \ + fprintf( \ + STREAM, \ + "%f %06u %.*s", \ + yr_debug_get_elapsed_seconds(), \ + getpid(), \ + (2 * yr_debug_indent), \ + yr_debug_spaces); \ + fprintf(STREAM, FORMAT, __VA_ARGS__); \ + if (FORMAT[0] == '+') \ + { \ + yr_debug_indent++; \ + } \ + } + +#endif + +#endif diff --git a/BLUESPAWN-win-client/headers/yara/hash.h b/BLUESPAWN-win-client/headers/yara/hash.h new file mode 100644 index 00000000..77d97dc2 --- /dev/null +++ b/BLUESPAWN-win-client/headers/yara/hash.h @@ -0,0 +1,154 @@ +/* +Copyright (c) 2013. The YARA Authors. All Rights Reserved. + +Redistribution and use in source and binary forms, with or without modification, +are permitted provided that the following conditions are met: + +1. Redistributions of source code must retain the above copyright notice, this +list of conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright notice, +this list of conditions and the following disclaimer in the documentation and/or +other materials provided with the distribution. + +3. Neither the name of the copyright holder nor the names of its contributors +may be used to endorse or promote products derived from this software without +specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR +ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ + +#ifndef YR_HASH_H +#define YR_HASH_H + +#include +#include +#include + +typedef struct _YR_HASH_TABLE_ENTRY +{ + void* key; + size_t key_length; + char* ns; + void* value; + + struct _YR_HASH_TABLE_ENTRY* next; + +} YR_HASH_TABLE_ENTRY; + + +typedef struct _YR_HASH_TABLE +{ + int size; + + YR_HASH_TABLE_ENTRY* buckets[1]; + +} YR_HASH_TABLE; + + +typedef int (*YR_HASH_TABLE_FREE_VALUE_FUNC)(void* value); +typedef int (*YR_HASH_TABLE_ITERATE_FUNC)( + void* key, size_t key_length, void* value, void* data); + + +uint32_t yr_hash(uint32_t seed, const void* buffer, size_t len); + + +YR_API int yr_hash_table_create(int size, YR_HASH_TABLE** table); + + +YR_API void yr_hash_table_clean( + YR_HASH_TABLE* table, + YR_HASH_TABLE_FREE_VALUE_FUNC free_value); + + +YR_API void yr_hash_table_destroy( + YR_HASH_TABLE* table, + YR_HASH_TABLE_FREE_VALUE_FUNC free_value); + + +YR_API int yr_hash_table_iterate( + YR_HASH_TABLE* table, + const char* ns, + YR_HASH_TABLE_ITERATE_FUNC iterate_func, + void* data); + + +YR_API void* yr_hash_table_lookup( + YR_HASH_TABLE* table, + const char* key, + const char* ns); + + +YR_API void* yr_hash_table_remove( + YR_HASH_TABLE* table, + const char* key, + const char* ns); + + +YR_API int yr_hash_table_add( + YR_HASH_TABLE* table, + const char* key, + const char* ns, + void* value); + + +YR_API int yr_hash_table_add_uint32( + YR_HASH_TABLE* table, + const char* key, + const char* ns, + uint32_t value); + + +YR_API uint32_t yr_hash_table_lookup_uint32( + YR_HASH_TABLE* table, + const char* key, + const char* ns); + + +YR_API void* yr_hash_table_lookup_raw_key( + YR_HASH_TABLE* table, + const void* key, + size_t key_length, + const char* ns); + + +YR_API void* yr_hash_table_remove_raw_key( + YR_HASH_TABLE* table, + const void* key, + size_t key_length, + const char* ns); + + +YR_API int yr_hash_table_add_raw_key( + YR_HASH_TABLE* table, + const void* key, + size_t key_length, + const char* ns, + void* value); + + +YR_API int yr_hash_table_add_uint32_raw_key( + YR_HASH_TABLE* table, + const void* key, + size_t key_length, + const char* ns, + uint32_t value); + + +YR_API uint32_t yr_hash_table_lookup_uint32_raw_key( + YR_HASH_TABLE* table, + const void* key, + size_t key_length, + const char* ns); + +#endif diff --git a/BLUESPAWN-win-client/headers/yara/hex_lexer.h b/BLUESPAWN-win-client/headers/yara/hex_lexer.h new file mode 100644 index 00000000..588adf38 --- /dev/null +++ b/BLUESPAWN-win-client/headers/yara/hex_lexer.h @@ -0,0 +1,110 @@ +/* +Copyright (c) 2007. Victor M. Alvarez [plusvic@gmail.com]. + +Redistribution and use in source and binary forms, with or without modification, +are permitted provided that the following conditions are met: + +1. Redistributions of source code must retain the above copyright notice, this +list of conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright notice, +this list of conditions and the following disclaimer in the documentation and/or +other materials provided with the distribution. + +3. Neither the name of the copyright holder nor the names of its contributors +may be used to endorse or promote products derived from this software without +specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR +ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ + +#include + +#undef yyparse +#undef yylex +#undef yyerror +#undef yyfatal +#undef yychar +#undef yydebug +#undef yynerrs +#undef yyget_extra +#undef yyget_lineno + +#undef YY_FATAL_ERROR +#undef YY_DECL +#undef LEX_ENV + +#define yyparse hex_yyparse +#define yylex hex_yylex +#define yyerror hex_yyerror +#define yyfatal hex_yyfatal +#define yychar hex_yychar +#define yydebug hex_yydebug +#define yynerrs hex_yynerrs +#define yyget_extra hex_yyget_extra +#define yyget_lineno hex_yyget_lineno + + +#ifndef YY_TYPEDEF_YY_SCANNER_T +#define YY_TYPEDEF_YY_SCANNER_T +typedef void* yyscan_t; +#endif + +#define YY_EXTRA_TYPE RE_AST* +#define YY_USE_CONST + + +typedef struct _HEX_LEX_ENVIRONMENT +{ + int inside_or; + int last_error; + char last_error_message[256]; + +} HEX_LEX_ENVIRONMENT; + + +// The default behavior when a fatal error occurs in the parser is calling +// exit(YY_EXIT_FAILURE) for terminating the process. This is not acceptable +// for a library, which should return gracefully to the calling program. For +// this reason we redefine the YY_FATAL_ERROR macro so that it expands to our +// own function instead of the one provided by default. +#define YY_FATAL_ERROR(msg) hex_yyfatal(yyscanner, msg) + +#define LEX_ENV ((HEX_LEX_ENVIRONMENT*) lex_env) + +#include + +#define YY_DECL \ + int hex_yylex( \ + YYSTYPE* yylval_param, yyscan_t yyscanner, HEX_LEX_ENVIRONMENT* lex_env) + + +YY_EXTRA_TYPE yyget_extra(yyscan_t yyscanner); + +int yylex( + YYSTYPE* yylval_param, + yyscan_t yyscanner, + HEX_LEX_ENVIRONMENT* lex_env); + +int yyparse(void* yyscanner, HEX_LEX_ENVIRONMENT* lex_env); + +void yyerror( + yyscan_t yyscanner, + HEX_LEX_ENVIRONMENT* lex_env, + const char* error_message); + +void yyfatal(yyscan_t yyscanner, const char* error_message); + +int yr_parse_hex_string( + const char* hex_string, + RE_AST** re_ast, + RE_ERROR* error); diff --git a/BLUESPAWN-win-client/headers/yara/integers.h b/BLUESPAWN-win-client/headers/yara/integers.h new file mode 100644 index 00000000..0d1546b2 --- /dev/null +++ b/BLUESPAWN-win-client/headers/yara/integers.h @@ -0,0 +1,117 @@ +/* +Copyright (c) 2007-2015. The YARA Authors. All Rights Reserved. + +Redistribution and use in source and binary forms, with or without modification, +are permitted provided that the following conditions are met: + +1. Redistributions of source code must retain the above copyright notice, this +list of conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright notice, +this list of conditions and the following disclaimer in the documentation and/or +other materials provided with the distribution. + +3. Neither the name of the copyright holder nor the names of its contributors +may be used to endorse or promote products derived from this software without +specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR +ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ + +#ifndef YR_INTEGERS_H +#define YR_INTEGERS_H + + +#if (defined(_MSC_VER) && (_MSC_VER < 1600)) || \ + (defined(__BORLANDC__) && (__BORLANDC__ <= 0x0560)) + +#ifdef __cplusplus +extern "C" +{ +#endif + + // Microsoft Visual Studio C++ before Visual Studio 2010 or earlier versions + // of the Borland C++ Builder do not support the (u)int#_t type definitions + // but have __int# definitions instead + + typedef __int8 int8_t; + typedef unsigned __int8 uint8_t; + typedef __int16 int16_t; + typedef unsigned __int16 uint16_t; + typedef __int32 int32_t; + typedef unsigned __int32 uint32_t; + typedef __int64 int64_t; + typedef unsigned __int64 uint64_t; + +#ifdef __cplusplus +} +#endif + + +#ifndef INT8_MIN +#define INT8_MIN (-127i8 - 1) +#endif + +#ifndef INT16_MIN +#define INT16_MIN (-32767i16 - 1) +#endif + +#ifndef INT32_MIN +#define INT32_MIN (-2147483647i32 - 1) +#endif + +#ifndef INT64_MIN +#define INT64_MIN (-9223372036854775807i64 - 1) +#endif + +#ifndef INT8_MAX +#define INT8_MAX 127i8 +#endif + +#ifndef INT16_MAX +#define INT16_MAX 32767i16 +#endif + +#ifndef INT32_MAX +#define INT32_MAX 2147483647i32 +#endif + +#ifndef INT64_MAX +#define INT64_MAX 9223372036854775807i64 +#endif + +#ifndef UINT8_MAX +#define UINT8_MAX 0xffui8 +#endif + +#ifndef UINT16_MAX +#define UINT16_MAX 0xffffui16 +#endif + +#ifndef UINT32_MAX +#define UINT32_MAX 0xffffffffui32 +#endif + +#ifndef UINT64_MAX +#define UINT64_MAX 0xffffffffffffffffui64 +#endif + +#else + +// Other "compilers" and later versions of Microsoft Visual Studio C++ and +// Borland C/C++ define the types in + +#include + +#endif + +#endif diff --git a/BLUESPAWN-win-client/headers/yara/lexer.h b/BLUESPAWN-win-client/headers/yara/lexer.h new file mode 100644 index 00000000..5146f563 --- /dev/null +++ b/BLUESPAWN-win-client/headers/yara/lexer.h @@ -0,0 +1,103 @@ +/* +Copyright (c) 2007. Victor M. Alvarez [plusvic@gmail.com]. + +Redistribution and use in source and binary forms, with or without modification, +are permitted provided that the following conditions are met: + +1. Redistributions of source code must retain the above copyright notice, this +list of conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright notice, +this list of conditions and the following disclaimer in the documentation and/or +other materials provided with the distribution. + +3. Neither the name of the copyright holder nor the names of its contributors +may be used to endorse or promote products derived from this software without +specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR +ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ + +#include + + +#undef yyparse +#undef yylex +#undef yyerror +#undef yyfatal +#undef yychar +#undef yydebug +#undef yynerrs +#undef yyget_extra +#undef yyget_lineno + +#undef YY_DECL +#undef YY_FATAL_ERROR +#undef YY_EXTRA_TYPE + +#define yyparse yara_yyparse +#define yylex yara_yylex +#define yyerror yara_yyerror +#define yyfatal yara_yyfatal +#define yywarning yara_yywarning +#define yychar yara_yychar +#define yydebug yara_yydebug +#define yynerrs yara_yynerrs +#define yyget_extra yara_yyget_extra +#define yyget_lineno yara_yyget_lineno + + +#ifndef YY_TYPEDEF_YY_SCANNER_T +#define YY_TYPEDEF_YY_SCANNER_T +typedef void* yyscan_t; +#endif + +union YYSTYPE; + +#define YY_DECL \ + int yylex( \ + union YYSTYPE* yylval_param, yyscan_t yyscanner, YR_COMPILER* compiler) + + +#define YY_FATAL_ERROR(msg) yara_yyfatal(yyscanner, msg) + + +#define YY_EXTRA_TYPE YR_COMPILER* +#define YY_USE_CONST + + +int yyget_lineno(yyscan_t yyscanner); + +int yylex( + union YYSTYPE* yylval_param, + yyscan_t yyscanner, + YR_COMPILER* compiler); + +int yyparse(void* yyscanner, YR_COMPILER* compiler); + +void yyerror( + yyscan_t yyscanner, + YR_COMPILER* compiler, + const char* error_message); + +void yywarning(yyscan_t yyscanner, const char* message_fmt, ...) + YR_PRINTF_LIKE(2, 3); + +void yyfatal(yyscan_t yyscanner, const char* error_message); + +YY_EXTRA_TYPE yyget_extra(yyscan_t yyscanner); + +int yr_lex_parse_rules_string(const char* rules_string, YR_COMPILER* compiler); + +int yr_lex_parse_rules_file(FILE* rules_file, YR_COMPILER* compiler); + +int yr_lex_parse_rules_fd(YR_FILE_DESCRIPTOR rules_fd, YR_COMPILER* compiler); diff --git a/BLUESPAWN-win-client/headers/yara/libyara.h b/BLUESPAWN-win-client/headers/yara/libyara.h new file mode 100644 index 00000000..535c6979 --- /dev/null +++ b/BLUESPAWN-win-client/headers/yara/libyara.h @@ -0,0 +1,98 @@ +/* +Copyright (c) 2014. The YARA Authors. All Rights Reserved. + +Redistribution and use in source and binary forms, with or without modification, +are permitted provided that the following conditions are met: + +1. Redistributions of source code must retain the above copyright notice, this +list of conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright notice, +this list of conditions and the following disclaimer in the documentation and/or +other materials provided with the distribution. + +3. Neither the name of the copyright holder nor the names of its contributors +may be used to endorse or promote products derived from this software without +specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR +ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ + +#ifndef YR_LIBYARA_H +#define YR_LIBYARA_H + +#include + +#define YR_MAJOR_VERSION 4 +#define YR_MINOR_VERSION 3 +#define YR_MICRO_VERSION 0 + +#define version_str(s) _version_str(s) +#define _version_str(s) #s + +// Version as a string +#define YR_VERSION \ + version_str(YR_MAJOR_VERSION) "." version_str( \ + YR_MINOR_VERSION) "." version_str(YR_MICRO_VERSION) + +// Version as a single 4-byte hex number, e.g. 0x030401 == 3.4.1. +#define YR_VERSION_HEX \ + ((YR_MAJOR_VERSION << 16) | (YR_MINOR_VERSION << 8) | (YR_MICRO_VERSION << 0)) + +// Turn on paranoid mode by default if not defined otherwise. In paranoid +// mode additional checks are performed in order to mitigate the effects of +// malicious tampering with compiled rules. Such checks are not necessary +// when you can ensure that the compiled rules are executed exactly as they +// were generated by YARA, without any further modification. Check issue #891 +// (https://github.com/VirusTotal/yara/issues/891) for more context. +// +// Paranoid mode does not guarantee that it's safe to load compiled rules from +// third parties, it only prevents severe security issues. Maliciously crafted +// compiled rules can still crash YARA. Loading third-party compiled rules is +// *highly* discouraged. If you need to distribute YARA rules in compiled +// form you should encapsulate them in some digitally-signed package that +// ensure that they haven't been modified by someone else. + +#if !defined(YR_PARANOID_EXEC) +#define YR_PARANOID_EXEC 1 +#endif + +// Enumerated type listing configuration options +typedef enum _YR_CONFIG_NAME +{ + YR_CONFIG_STACK_SIZE, + YR_CONFIG_MAX_STRINGS_PER_RULE, + YR_CONFIG_MAX_MATCH_DATA, + YR_CONFIG_MAX_PROCESS_MEMORY_CHUNK, + + YR_CONFIG_LAST // End-of-enum marker, not a configuration + +} YR_CONFIG_NAME; + +#define DEFAULT_STACK_SIZE 16384 +#define DEFAULT_MAX_STRINGS_PER_RULE 10000 +#define DEFAULT_MAX_MATCH_DATA 512 +#define DEFAULT_MAX_PROCESS_MEMORY_CHUNK 1073741824 + +YR_API int yr_initialize(void); + +YR_API int yr_finalize(void); + +YR_API int yr_set_configuration(YR_CONFIG_NAME, void*); +YR_API int yr_set_configuration_uint32(YR_CONFIG_NAME, uint32_t); +YR_API int yr_set_configuration_uint64(YR_CONFIG_NAME, uint64_t); + +YR_API int yr_get_configuration(YR_CONFIG_NAME, void*); +YR_API int yr_get_configuration_uint32(YR_CONFIG_NAME, uint32_t*); +YR_API int yr_get_configuration_uint64(YR_CONFIG_NAME, uint64_t*); + +#endif diff --git a/BLUESPAWN-win-client/headers/yara/limits.h b/BLUESPAWN-win-client/headers/yara/limits.h new file mode 100644 index 00000000..7ef95495 --- /dev/null +++ b/BLUESPAWN-win-client/headers/yara/limits.h @@ -0,0 +1,183 @@ +/* +Copyright (c) 2013. The YARA Authors. All Rights Reserved. + +Redistribution and use in source and binary forms, with or without modification, +are permitted provided that the following conditions are met: + +1. Redistributions of source code must retain the above copyright notice, this +list of conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright notice, +this list of conditions and the following disclaimer in the documentation and/or +other materials provided with the distribution. + +3. Neither the name of the copyright holder nor the names of its contributors +may be used to endorse or promote products derived from this software without +specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR +ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ + +#ifndef YR_LIMITS_H +#define YR_LIMITS_H + +#if defined(_WIN32) || defined(__CYGWIN__) +#include +#endif + +#include "utils.h" + +// Maximum length of file paths. This is the only limit that doesn't have the +// YR_ prefix. The intention is using the default MAX_PATH if defined. +#ifndef MAX_PATH +#define MAX_PATH 1024 +#endif + +// Maximum number of threads that can use a YR_RULES structure simultaneously. +// Increasing this number also increase memory usage as each YR_STRING structure +// has an array with YR_MAX_THREADS entries for storing pointers to YR_MATCH +// structures. +#ifndef YR_MAX_THREADS +#define YR_MAX_THREADS 32 +#endif + +// Maximum number of buffers that an arena can have. +#ifndef YR_MAX_ARENA_BUFFERS +#define YR_MAX_ARENA_BUFFERS 16 +#endif + +// Capacity of the buffer used for storing compiler error messages. Messages +// will be truncated at this size. +#ifndef YR_MAX_COMPILER_ERROR_EXTRA_INFO +#define YR_MAX_COMPILER_ERROR_EXTRA_INFO 256 +#endif + +// Maximum size for the substring (atoms) extracted from strings and regular +// expressions and put into the Aho-Corasick automaton. The maximum allows size +// for this constant is 255. +#ifndef YR_MAX_ATOM_LENGTH +#define YR_MAX_ATOM_LENGTH 4 +#endif + +#ifndef YR_MAX_ATOM_QUALITY +#define YR_MAX_ATOM_QUALITY 255 +#endif + +#ifndef YR_MIN_ATOM_QUALITY +#define YR_MIN_ATOM_QUALITY 0 +#endif + +// If the minimum atom quality for a string or regexp is below this constant, +// a warning like " is slowing down the scan" is shown. This is used +// only with heuristic atom quality, when using an atom quality table the user +// must specify the threshold when calling yr_compiler_set_atom_quality_table. +#ifndef YR_ATOM_QUALITY_WARNING_THRESHOLD +#define YR_ATOM_QUALITY_WARNING_THRESHOLD \ + YR_MAX_ATOM_QUALITY - 22 * YR_MAX_ATOM_LENGTH + 38 +#endif + +// If a rule generates more than this number of atoms a warning is shown. +#ifndef YR_ATOMS_PER_RULE_WARNING_THRESHOLD +#define YR_ATOMS_PER_RULE_WARNING_THRESHOLD 12000 +#endif + +// Maximum number of nested "for" loops in rule. Rules ith nested loops +// exceeding this number will be rejected by the compiler. +#ifndef YR_MAX_LOOP_NESTING +#define YR_MAX_LOOP_NESTING 4 +#endif + +// Maximum number of local variables in a "for" loop. This includes the +// variables defined explicitly defined by the user, not the internal variables +// required for maintaining the loop's state. +#ifndef YR_MAX_LOOP_VARS +#define YR_MAX_LOOP_VARS 2 +#endif + +// Maximum number of nested included files. +#ifndef YR_MAX_INCLUDE_DEPTH +#define YR_MAX_INCLUDE_DEPTH 16 +#endif + +// Maximum number of matches allowed for a string. If more matches are found +// the scan will have a CALLBACK_MSG_TOO_MANY_MATCHES. +#ifndef YR_MAX_STRING_MATCHES +#define YR_MAX_STRING_MATCHES 1000000 +#endif + +// The number of matches before detecting slow scanning. If more matches are found +// the scan will have a CALLBACK_MSG_TOO_SLOW_SCANNING. +#ifndef YR_SLOW_STRING_MATCHES +#define YR_SLOW_STRING_MATCHES 600000 +#endif + +// If size of the input is bigger then 0.2 MB and 0-length atoms are used +// the scan will have a CALLBACK_MSG_TOO_SLOW_SCANNING. +#ifndef YR_FILE_SIZE_THRESHOLD +#define YR_FILE_SIZE_THRESHOLD 200000 +#endif + +// Maximum number of argument that a function in a YARA module can have. +#ifndef YR_MAX_FUNCTION_ARGS +#define YR_MAX_FUNCTION_ARGS 128 +#endif + +// How many overloaded functions can share the same name in a YARA module. +#ifndef YR_MAX_OVERLOADED_FUNCTIONS +#define YR_MAX_OVERLOADED_FUNCTIONS 10 +#endif + +// Regular expressions like /foo.{x,y}bar/ are split in two separate ones /foo/ +// and /bar/ if x is larger than YR_STRING_CHAINING_THRESHOLD. This also applies +// to hex strings like { 01 02 03 [x-y] 004 05 06 }. +#ifndef YR_STRING_CHAINING_THRESHOLD +#define YR_STRING_CHAINING_THRESHOLD 200 +#endif + +// Size of the buffer used by the lexer for storing strings like include file +// paths and regular expressions. +#ifndef YR_LEX_BUF_SIZE +#define YR_LEX_BUF_SIZE 8192 +#endif + +// Each time an atom is found it means that we have a potential match for some +// string, and that match must be verified. The time spent in verifying those +// matches is measured in one out of YR_MATCH_VERIFICATION_PROFILING_RATE +// matches. The time is not measured for all matches because measuring it is +// expensive by itself and match verification is a frequent operation. +#ifndef YR_MATCH_VERIFICATION_PROFILING_RATE +#define YR_MATCH_VERIFICATION_PROFILING_RATE 1024 +#endif + +// Maximum allowed split ID, also limiting the number of split instructions +// allowed in a regular expression. This number can't be increased +// over 255 without changing RE_SPLIT_ID_TYPE. +#ifndef RE_MAX_SPLIT_ID +#define RE_MAX_SPLIT_ID 128 +#endif + +// Maximum stack size for regexp evaluation +#ifndef RE_MAX_STACK +#define RE_MAX_STACK 1024 +#endif + +// Maximum input size scanned by yr_re_exec and yr_re_fast_exec +#ifndef YR_RE_SCAN_LIMIT +#define YR_RE_SCAN_LIMIT 4096 +#endif + +// Maximum number of fibers +#ifndef RE_MAX_FIBERS +#define RE_MAX_FIBERS 1024 +#endif + +#endif diff --git a/BLUESPAWN-win-client/headers/yara/macho.h b/BLUESPAWN-win-client/headers/yara/macho.h new file mode 100644 index 00000000..9b08c6a9 --- /dev/null +++ b/BLUESPAWN-win-client/headers/yara/macho.h @@ -0,0 +1,585 @@ +/* +Copyright (c) 2014. The YARA Authors. All Rights Reserved. + +Redistribution and use in source and binary forms, with or without modification, +are permitted provided that the following conditions are met: + +1. Redistributions of source code must retain the above copyright notice, this +list of conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright notice, +this list of conditions and the following disclaimer in the documentation and/or +other materials provided with the distribution. + +3. Neither the name of the copyright holder nor the names of its contributors +may be used to endorse or promote products derived from this software without +specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR +ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ + +#ifndef _MACHO_H +#define _MACHO_H + +#include + +// Mach-O file format magic constants + +#define MH_MAGIC 0xfeedface +#define MH_CIGAM 0xcefaedfe +#define MH_MAGIC_64 0xfeedfacf +#define MH_CIGAM_64 0xcffaedfe + +// Mach-O universal binary magic constants + +#define FAT_MAGIC 0xcafebabe +#define FAT_CIGAM 0xbebafeca +#define FAT_MAGIC_64 0xcafebabf +#define FAT_CIGAM_64 0xbfbafeca + +// Mach-O 64-bit masks + +#define CPU_ARCH_ABI64 0x01000000 // 64-bit ABI mask (for cputype) +#define CPU_SUBTYPE_LIB64 0x80000000 // 64-bit library mask (for cpusubtype) + +// Mach-O CPU types + +#define CPU_TYPE_MC680X0 0x00000006 // Motorola 68000 +#define CPU_TYPE_I386 0x00000007 // AMD/Intel x86 +#define CPU_TYPE_X86 0x00000007 // AMD/Intel x86 +#define CPU_TYPE_X86_64 0x01000007 // AMD/Intel x86-64 +#define CPU_TYPE_MIPS 0x00000008 // MIPS +#define CPU_TYPE_MC98000 0x0000000a // Motorola PowerPC +#define CPU_TYPE_HPPA 0x0000000b // HP PA-RISC +#define CPU_TYPE_ARM 0x0000000c // ARM +#define CPU_TYPE_ARM64 0x0100000c // ARM 64-bit +#define CPU_TYPE_MC88000 0x0000000d // Motorola 88000 +#define CPU_TYPE_SPARC 0x0000000e // SPARC +#define CPU_TYPE_I860 0x0000000f // Intel i860 +#define CPU_TYPE_ALPHA 0x00000010 // DEC Alpha +#define CPU_TYPE_POWERPC 0x00000012 // PowerPC +#define CPU_TYPE_POWERPC64 0x01000012 // PowerPC 64-bit + +// Mach-O Intel CPU sub-types + +#define CPU_SUBTYPE_INTEL_MODEL_ALL 0x00 +#define CPU_SUBTYPE_386 0x03 +#define CPU_SUBTYPE_486 0x04 +#define CPU_SUBTYPE_486SX 0x84 +#define CPU_SUBTYPE_586 0x05 +#define CPU_SUBTYPE_PENT 0x05 +#define CPU_SUBTYPE_PENTPRO 0x16 +#define CPU_SUBTYPE_PENTII_M3 0x36 +#define CPU_SUBTYPE_PENTII_M5 0x56 +#define CPU_SUBTYPE_CELERON 0x67 +#define CPU_SUBTYPE_CELERON_MOBILE 0x77 +#define CPU_SUBTYPE_PENTIUM_3 0x08 +#define CPU_SUBTYPE_PENTIUM_3_M 0x18 +#define CPU_SUBTYPE_PENTIUM_3_XEON 0x28 +#define CPU_SUBTYPE_PENTIUM_M 0x09 +#define CPU_SUBTYPE_PENTIUM_4 0x0a +#define CPU_SUBTYPE_PENTIUM_4_M 0x1a +#define CPU_SUBTYPE_ITANIUM 0x0b +#define CPU_SUBTYPE_ITANIUM_2 0x1b +#define CPU_SUBTYPE_XEON 0x0c +#define CPU_SUBTYPE_XEON_MP 0x1c + +// Mach-O ARM CPU sub-types + +#define CPU_SUBTYPE_ARM_ALL 0x00 +#define CPU_SUBTYPE_ARM_V4T 0x05 +#define CPU_SUBTYPE_ARM_V6 0x06 +#define CPU_SUBTYPE_ARM_V5 0x07 +#define CPU_SUBTYPE_ARM_V5TEJ 0x07 +#define CPU_SUBTYPE_ARM_XSCALE 0x08 +#define CPU_SUBTYPE_ARM_V7 0x09 +#define CPU_SUBTYPE_ARM_V7F 0x0a +#define CPU_SUBTYPE_ARM_V7S 0x0b +#define CPU_SUBTYPE_ARM_V7K 0x0c +#define CPU_SUBTYPE_ARM_V6M 0x0e +#define CPU_SUBTYPE_ARM_V7M 0x0f +#define CPU_SUBTYPE_ARM_V7EM 0x10 + +// Mach-O ARM 64-bit CPU sub-types + +#define CPU_SUBTYPE_ARM64_ALL 0x00 + +// Mach-O SPARC CPU sub-types + +#define CPU_SUBTYPE_SPARC_ALL 0x00 + +// Mach-O PowerPC CPU sub-types + +#define CPU_SUBTYPE_POWERPC_ALL 0x00 +#define CPU_SUBTYPE_MC980000_ALL 0x00 +#define CPU_SUBTYPE_POWERPC_601 0x01 +#define CPU_SUBTYPE_MC98601 0x01 +#define CPU_SUBTYPE_POWERPC_602 0x02 +#define CPU_SUBTYPE_POWERPC_603 0x03 +#define CPU_SUBTYPE_POWERPC_603e 0x04 +#define CPU_SUBTYPE_POWERPC_603ev 0x05 +#define CPU_SUBTYPE_POWERPC_604 0x06 +#define CPU_SUBTYPE_POWERPC_604e 0x07 +#define CPU_SUBTYPE_POWERPC_620 0x08 +#define CPU_SUBTYPE_POWERPC_750 0x09 +#define CPU_SUBTYPE_POWERPC_7400 0x0a +#define CPU_SUBTYPE_POWERPC_7450 0x0b +#define CPU_SUBTYPE_POWERPC_970 0x64 + +// Mach-O file types + +#define MH_OBJECT 0x01 // Object file +#define MH_EXECUTE 0x02 // Executable file +#define MH_FVMLIB 0x03 // Fixed VM shared library +#define MH_CORE 0x04 // Core dump file +#define MH_PRELOAD 0x05 // Preloaded executable file +#define MH_DYLIB 0x06 // Dynamic shared library +#define MH_DYLINKER 0x07 // Dynamic linker shared library +#define MH_BUNDLE 0x08 // Bundle file +#define MH_DYLIB_STUB 0x09 // Dynamic shared library stub +#define MH_DSYM 0x0a // Companion debug sections file +#define MH_KEXT_BUNDLE 0x0b // Kernel extension + +// Mach-O file flags + +#define MH_NOUNDEFS 0x00000001 +#define MH_INCRLINK 0x00000002 +#define MH_DYLDLINK 0x00000004 +#define MH_BINDATLOAD 0x00000008 +#define MH_PREBOUND 0x00000010 +#define MH_SPLIT_SEGS 0x00000020 +#define MH_LAZY_INIT 0x00000040 +#define MH_TWOLEVEL 0x00000080 +#define MH_FORCE_FLAT 0x00000100 +#define MH_NOMULTIDEFS 0x00000200 +#define MH_NOFIXPREBINDING 0x00000400 +#define MH_PREBINDABLE 0x00000800 +#define MH_ALLMODSBOUND 0x00001000 +#define MH_SUBSECTIONS_VIA_SYMBOLS 0x00002000 +#define MH_CANONICAL 0x00004000 +#define MH_WEAK_DEFINES 0x00008000 +#define MH_BINDS_TO_WEAK 0x00010000 +#define MH_ALLOW_STACK_EXECUTION 0x00020000 +#define MH_ROOT_SAFE 0x00040000 +#define MH_SETUID_SAFE 0x00080000 +#define MH_NO_REEXPORTED_DYLIBS 0x00100000 +#define MH_PIE 0x00200000 +#define MH_DEAD_STRIPPABLE_DYLIB 0x00400000 +#define MH_HAS_TLV_DESCRIPTORS 0x00800000 +#define MH_NO_HEAP_EXECUTION 0x01000000 +#define MH_APP_EXTENSION_SAFE 0x02000000 + +// Mach-O load commands + +#define LC_SEGMENT 0x00000001 +#define LC_SYMTAB 0x00000002 +#define LC_SYMSEG 0x00000003 +#define LC_THREAD 0x00000004 +#define LC_UNIXTHREAD 0x00000005 +#define LC_LOADFVMLIB 0x00000006 +#define LC_IDFVMLIB 0x00000007 +#define LC_IDENT 0x00000008 +#define LC_FVMFILE 0x00000009 +#define LC_PREPAGE 0x0000000a +#define LC_DYSYMTAB 0x0000000b +#define LC_LOAD_DYLIB 0x0000000c +#define LC_ID_DYLIB 0x0000000d +#define LC_LOAD_DYLINKER 0x0000000e +#define LC_ID_DYLINKER 0x0000000f +#define LC_PREBOUND_DYLIB 0x00000010 +#define LC_ROUTINES 0x00000011 +#define LC_SUB_FRAMEWORK 0x00000012 +#define LC_SUB_UMBRELLA 0x00000013 +#define LC_SUB_CLIENT 0x00000014 +#define LC_SUB_LIBRARY 0x00000015 +#define LC_TWOLEVEL_HINTS 0x00000016 +#define LC_PREBIND_CKSUM 0x00000017 +#define LC_LOAD_WEAK_DYLIB 0x80000018 +#define LC_SEGMENT_64 0x00000019 +#define LC_ROUTINES_64 0x0000001A +#define LC_UUID 0x0000001B +#define LC_RPATH 0x8000001C +#define LC_CODE_SIGNATURE 0x0000001D +#define LC_SEGMENT_SPLIT_INFO 0x0000001E +#define LC_REEXPORT_DYLIB 0x8000001F +#define LC_LAZY_LOAD_DYLIB 0x00000020 +#define LC_ENCRYPTION_INFO 0x00000021 +#define LC_DYLD_INFO 0x00000022 +#define LC_DYLD_INFO_ONLY 0x80000022 +#define LC_LOAD_UPWARD_DYLIB 0x80000023 +#define LC_VERSION_MIN_MACOSX 0x00000024 +#define LC_VERSION_MIN_IPHONEOS 0x00000025 +#define LC_FUNCTION_STARTS 0x00000026 +#define LC_DYLD_ENVIRONMENT 0x00000027 +#define LC_MAIN 0x80000028 +#define LC_DATA_IN_CODE 0x00000029 +#define LC_SOURCE_VERSION 0x0000002A +#define LC_DYLIB_CODE_SIGN_DRS 0x0000002B +#define LC_ENCRYPTION_INFO_64 0x0000002C +#define LC_LINKER_OPTION 0x0000002D +#define LC_LINKER_OPTIMIZATION_HINT 0x0000002E +#define LC_VERSION_MIN_TVOS 0x0000002F +#define LC_VERSION_MIN_WATCHOS 0x00000030 + +// Segment flags + +#define SG_HIGHVM 0x00000001 // Use high part of VM (stack) +#define SG_FVMLIB 0x00000002 // Allocated by a fixed VM library +#define SG_NORELOC 0x00000004 // No associated relocations +#define SG_PROTECTED_VERSION_1 0x00000008 // Segment is encryption protected + +// Section flag masks + +#define SECTION_TYPE 0x000000ff // Section type mask +#define SECTION_ATTRIBUTES 0xffffff00 // Section attributes mask + +// Section type (use SECTION_TYPE mask) + +#define S_REGULAR 0x00 +#define S_ZEROFILL 0x01 +#define S_CSTRING_LITERALS 0x02 +#define S_4BYTE_LITERALS 0x03 +#define S_8BYTE_LITERALS 0x04 +#define S_LITERAL_POINTERS 0x05 +#define S_NON_LAZY_SYMBOL_POINTERS 0x06 +#define S_LAZY_SYMBOL_POINTERS 0x07 +#define S_SYMBOL_STUBS 0x08 +#define S_MOD_INIT_FUNC_POINTERS 0x09 +#define S_MOD_TERM_FUNC_POINTERS 0x0a +#define S_COALESCED 0x0b +#define S_GB_ZEROFILL 0x0c +#define S_INTERPOSING 0x0d +#define S_16BYTE_LITERALS 0x0e +#define S_DTRACE_DOF 0x0f +#define S_LAZY_DYLIB_SYMBOL_POINTERS 0x10 +#define S_THREAD_LOCAL_REGULAR 0x11 +#define S_THREAD_LOCAL_ZEROFILL 0x12 +#define S_THREAD_LOCAL_VARIABLES 0x13 +#define S_THREAD_LOCAL_VARIABLE_POINTERS 0x14 +#define S_THREAD_LOCAL_INIT_FUNCTION_POINTERS 0x15 + +// Section attributes (use SECTION_ATTRIBUTES mask) + +#define S_ATTR_PURE_INSTRUCTIONS 0x80000000 // Only pure instructions +#define S_ATTR_NO_TOC 0x40000000 // Contains coalesced symbols +#define S_ATTR_STRIP_STATIC_SYMS 0x20000000 // Can strip static symbols +#define S_ATTR_NO_DEAD_STRIP 0x10000000 // No dead stripping +#define S_ATTR_LIVE_SUPPORT 0x08000000 // Live blocks support +#define S_ATTR_SELF_MODIFYING_CODE 0x04000000 // Self modifying code +#define S_ATTR_DEBUG 0x02000000 // Debug section +#define S_ATTR_SOME_INSTRUCTIONS 0x00000400 // Some machine instructions +#define S_ATTR_EXT_RELOC 0x00000200 // Has external relocations +#define S_ATTR_LOC_RELOC 0x00000100 // Has local relocations + +#pragma pack(push, 1) + +typedef struct +{ + uint32_t magic; + uint32_t cputype; + uint32_t cpusubtype; + uint32_t filetype; + uint32_t ncmds; + uint32_t sizeofcmds; + uint32_t flags; +} yr_mach_header_32_t; + +typedef struct +{ + uint32_t magic; + uint32_t cputype; + uint32_t cpusubtype; + uint32_t filetype; + uint32_t ncmds; + uint32_t sizeofcmds; + uint32_t flags; + uint32_t reserved; +} yr_mach_header_64_t; + +typedef struct +{ + uint32_t cmd; + uint32_t cmdsize; +} yr_load_command_t; + +typedef struct +{ + uint32_t cmd; + uint32_t cmdsize; + char segname[16]; + uint32_t vmaddr; + uint32_t vmsize; + uint32_t fileoff; + uint32_t filesize; + uint32_t maxprot; + uint32_t initprot; + uint32_t nsects; + uint32_t flags; +} yr_segment_command_32_t; + +typedef struct +{ + uint32_t cmd; + uint32_t cmdsize; + char segname[16]; + uint64_t vmaddr; + uint64_t vmsize; + uint64_t fileoff; + uint64_t filesize; + uint32_t maxprot; + uint32_t initprot; + uint32_t nsects; + uint32_t flags; +} yr_segment_command_64_t; + +typedef struct +{ + char sectname[16]; + char segname[16]; + uint32_t addr; + uint32_t size; + uint32_t offset; + uint32_t align; + uint32_t reloff; + uint32_t nreloc; + uint32_t flags; + uint32_t reserved1; + uint32_t reserved2; +} yr_section_32_t; + +typedef struct +{ + char sectname[16]; + char segname[16]; + uint64_t addr; + uint64_t size; + uint32_t offset; + uint32_t align; + uint32_t reloff; + uint32_t nreloc; + uint32_t flags; + uint32_t reserved1; + uint32_t reserved2; + uint32_t reserved3; +} yr_section_64_t; + +typedef struct +{ + uint32_t cmd; + uint32_t cmdsize; + uint8_t uuid[16]; +} yr_uuid_command_t; + +typedef struct +{ + uint32_t cmd; + uint32_t cmdsize; + uint64_t entryoff; + uint64_t stacksize; +} yr_entry_point_command_t; + +typedef struct +{ + uint32_t cmd; + uint32_t cmdsize; + uint32_t flavor; + uint32_t count; + // cpu_thread_state +} yr_thread_command_t; + +typedef struct +{ + uint32_t eax; + uint32_t ebx; + uint32_t ecx; + uint32_t edx; + uint32_t edi; + uint32_t esi; + uint32_t ebp; + uint32_t esp; + uint32_t ss; + uint32_t eflags; + uint32_t eip; + uint32_t cs; + uint32_t ds; + uint32_t es; + uint32_t fs; + uint32_t gs; +} yr_x86_thread_state_t; + +typedef struct +{ + uint32_t r[13]; + uint32_t sp; + uint32_t lr; + uint32_t pc; + uint32_t cpsr; +} yr_arm_thread_state_t; + +typedef struct +{ + uint32_t srr0; + uint32_t srr1; + uint32_t r[32]; + uint32_t cr; + uint32_t xer; + uint32_t lr; + uint32_t ctr; + uint32_t mq; + uint32_t vrsavead; +} yr_ppc_thread_state_t; + +typedef struct +{ + uint32_t psr; + uint32_t pc; + uint32_t npc; + uint32_t y; + uint32_t g1; + uint32_t g2; + uint32_t g3; + uint32_t g4; + uint32_t g5; + uint32_t g6; + uint32_t g7; + uint32_t o0; + uint32_t o1; + uint32_t o2; + uint32_t o3; + uint32_t o4; + uint32_t o5; + uint32_t o6; + uint32_t o7; +} yr_sparc_thread_state_t; + +typedef struct +{ + uint32_t dreg[8]; + uint32_t areg[8]; + uint16_t pad; + uint16_t sr; + uint32_t pc; +} yr_m68k_thread_state_t; + +typedef struct +{ + uint32_t r1; + uint32_t r2; + uint32_t r3; + uint32_t r4; + uint32_t r5; + uint32_t r6; + uint32_t r7; + uint32_t r8; + uint32_t r9; + uint32_t r10; + uint32_t r11; + uint32_t r12; + uint32_t r13; + uint32_t r14; + uint32_t r15; + uint32_t r16; + uint32_t r17; + uint32_t r18; + uint32_t r19; + uint32_t r20; + uint32_t r21; + uint32_t r22; + uint32_t r23; + uint32_t r24; + uint32_t r25; + uint32_t r26; + uint32_t r27; + uint32_t r28; + uint32_t r29; + uint32_t r30; + uint32_t r31; + uint32_t xip; + uint32_t xip_in_bd; + uint32_t nip; +} yr_m88k_thread_state_t; + +typedef struct +{ + uint64_t rax; + uint64_t rbx; + uint64_t rcx; + uint64_t rdx; + uint64_t rdi; + uint64_t rsi; + uint64_t rbp; + uint64_t rsp; + uint64_t r8; + uint64_t r9; + uint64_t r10; + uint64_t r11; + uint64_t r12; + uint64_t r13; + uint64_t r14; + uint64_t r15; + uint64_t rip; + uint64_t rflags; + uint64_t cs; + uint64_t fs; + uint64_t gs; +} yr_x86_thread_state64_t; + +typedef struct +{ + uint64_t r[29]; + uint64_t fp; + uint64_t lr; + uint64_t sp; + uint64_t pc; + uint32_t cpsr; +} yr_arm_thread_state64_t; + +typedef struct +{ + uint64_t srr0; + uint64_t srr1; + uint64_t r[32]; + uint32_t cr; + uint64_t xer; + uint64_t lr; + uint64_t ctr; + uint32_t vrsave; +} yr_ppc_thread_state64_t; + +typedef struct +{ + uint32_t magic; + uint32_t nfat_arch; +} yr_fat_header_t; + +typedef struct +{ + uint32_t cputype; + uint32_t cpusubtype; + uint32_t offset; + uint32_t size; + uint32_t align; +} yr_fat_arch_32_t; + +typedef struct +{ + uint32_t cputype; + uint32_t cpusubtype; + uint64_t offset; + uint64_t size; + uint32_t align; + uint32_t reserved; +} yr_fat_arch_64_t; + +#pragma pack(pop) + +#endif diff --git a/BLUESPAWN-win-client/headers/yara/mem.h b/BLUESPAWN-win-client/headers/yara/mem.h new file mode 100644 index 00000000..a35447d4 --- /dev/null +++ b/BLUESPAWN-win-client/headers/yara/mem.h @@ -0,0 +1,67 @@ +/* +Copyright (c) 2007. The YARA Authors. All Rights Reserved. + +Redistribution and use in source and binary forms, with or without modification, +are permitted provided that the following conditions are met: + +1. Redistributions of source code must retain the above copyright notice, this +list of conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright notice, +this list of conditions and the following disclaimer in the documentation and/or +other materials provided with the distribution. + +3. Neither the name of the copyright holder nor the names of its contributors +may be used to endorse or promote products derived from this software without +specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR +ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ + +#ifndef YR_MEM_H +#define YR_MEM_H + +#include +#include + +#ifdef DMALLOC + +#define yr_malloc malloc +#define yr_calloc calloc +#define yr_realloc realloc +#define yr_free free +#define yr_strdup strdup +#define yr_strndup strndup + +#include + +#else + +void* yr_calloc(size_t count, size_t size); + +void* yr_malloc(size_t size); + +void* yr_realloc(void* ptr, size_t size); + +char* yr_strdup(const char* str); + +char* yr_strndup(const char* str, size_t n); + +YR_API void yr_free(void* ptr); + +#endif + +int yr_heap_alloc(void); + +int yr_heap_free(void); + +#endif diff --git a/BLUESPAWN-win-client/headers/yara/modules.h b/BLUESPAWN-win-client/headers/yara/modules.h new file mode 100644 index 00000000..1e3a9ea4 --- /dev/null +++ b/BLUESPAWN-win-client/headers/yara/modules.h @@ -0,0 +1,327 @@ +/* +Copyright (c) 2014. The YARA Authors. All Rights Reserved. + +Redistribution and use in source and binary forms, with or without modification, +are permitted provided that the following conditions are met: + +1. Redistributions of source code must retain the above copyright notice, this +list of conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright notice, +this list of conditions and the following disclaimer in the documentation and/or +other materials provided with the distribution. + +3. Neither the name of the copyright holder nor the names of its contributors +may be used to endorse or promote products derived from this software without +specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR +ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ + +#ifndef YR_MODULES_H +#define YR_MODULES_H + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +// Concatenation that macro-expands its arguments. + +#define YR_CONCAT(arg1, arg2) _YR_CONCAT(arg1, arg2) // expands the arguments. +#define _YR_CONCAT(arg1, arg2) arg1##arg2 // do the actual concatenation. + +#define module_declarations YR_CONCAT(MODULE_NAME, __declarations) +#define module_load YR_CONCAT(MODULE_NAME, __load) +#define module_unload YR_CONCAT(MODULE_NAME, __unload) +#define module_initialize YR_CONCAT(MODULE_NAME, __initialize) +#define module_finalize YR_CONCAT(MODULE_NAME, __finalize) + +#define begin_declarations \ + int module_declarations(YR_OBJECT* module) \ + { \ + YR_OBJECT* stack[64]; \ + int stack_top = 0; \ + stack[stack_top] = module; + +#define end_declarations \ + return ERROR_SUCCESS; \ + } + +#define begin_struct(name) \ + { \ + YR_OBJECT* structure; \ + FAIL_ON_ERROR(yr_object_create( \ + OBJECT_TYPE_STRUCTURE, name, stack[stack_top], &structure)); \ + assertf( \ + stack_top < sizeof(stack) / sizeof(stack[0]) - 1, \ + "too many nested structures"); \ + stack[++stack_top] = structure; \ + } + +#define begin_struct_array(name) \ + { \ + YR_OBJECT* structure; \ + YR_OBJECT* array; \ + FAIL_ON_ERROR( \ + yr_object_create(OBJECT_TYPE_ARRAY, name, stack[stack_top], &array)); \ + FAIL_ON_ERROR( \ + yr_object_create(OBJECT_TYPE_STRUCTURE, name, array, &structure)); \ + assertf( \ + stack_top < sizeof(stack) / sizeof(stack[0]) - 1, \ + "too many nested structures"); \ + stack[++stack_top] = structure; \ + } + +#define begin_struct_dictionary(name) \ + { \ + YR_OBJECT* structure; \ + YR_OBJECT* array; \ + FAIL_ON_ERROR(yr_object_create( \ + OBJECT_TYPE_DICTIONARY, name, stack[stack_top], &array)); \ + FAIL_ON_ERROR( \ + yr_object_create(OBJECT_TYPE_STRUCTURE, name, array, &structure)); \ + assertf( \ + stack_top < sizeof(stack) / sizeof(stack[0]) - 1, \ + "too many nested structures"); \ + stack[++stack_top] = structure; \ + } + +#define end_struct(name) \ + { \ + assert(stack[stack_top]->type == OBJECT_TYPE_STRUCTURE); \ + assertf( \ + strcmp(stack[stack_top]->identifier, name) == 0, \ + "unbalanced begin_struct/end_struct"); \ + stack_top--; \ + } + +#define end_struct_array(name) \ + end_struct \ + (name) + +#define end_struct_dictionary(name) \ + end_struct \ + (name) + +#define declare_integer(name) \ + { \ + FAIL_ON_ERROR( \ + yr_object_create(OBJECT_TYPE_INTEGER, name, stack[stack_top], NULL)); \ + } + +#define declare_integer_array(name) \ + { \ + YR_OBJECT* array; \ + FAIL_ON_ERROR( \ + yr_object_create(OBJECT_TYPE_ARRAY, name, stack[stack_top], &array)); \ + FAIL_ON_ERROR(yr_object_create(OBJECT_TYPE_INTEGER, name, array, NULL)); \ + } + +#define declare_integer_dictionary(name) \ + { \ + YR_OBJECT* dict; \ + FAIL_ON_ERROR(yr_object_create( \ + OBJECT_TYPE_DICTIONARY, name, stack[stack_top], &dict)); \ + FAIL_ON_ERROR(yr_object_create(OBJECT_TYPE_INTEGER, name, dict, NULL)); \ + } + +#define declare_float(name) \ + { \ + FAIL_ON_ERROR( \ + yr_object_create(OBJECT_TYPE_FLOAT, name, stack[stack_top], NULL)); \ + } + +#define declare_float_array(name) \ + { \ + YR_OBJECT* array; \ + FAIL_ON_ERROR( \ + yr_object_create(OBJECT_TYPE_ARRAY, name, stack[stack_top], &array)); \ + FAIL_ON_ERROR(yr_object_create(OBJECT_TYPE_FLOAT, name, array, NULL)); \ + } + +#define declare_float_dictionary(name) \ + { \ + YR_OBJECT* dict; \ + FAIL_ON_ERROR(yr_object_create( \ + OBJECT_TYPE_DICTIONARY, name, stack[stack_top], &dict)); \ + FAIL_ON_ERROR(yr_object_create(OBJECT_TYPE_FLOAT, name, dict, NULL)); \ + } + +#define declare_string(name) \ + { \ + FAIL_ON_ERROR( \ + yr_object_create(OBJECT_TYPE_STRING, name, stack[stack_top], NULL)); \ + } + +#define declare_string_array(name) \ + { \ + YR_OBJECT* array; \ + FAIL_ON_ERROR( \ + yr_object_create(OBJECT_TYPE_ARRAY, name, stack[stack_top], &array)); \ + FAIL_ON_ERROR(yr_object_create(OBJECT_TYPE_STRING, name, array, NULL)); \ + } + +#define declare_string_dictionary(name) \ + { \ + YR_OBJECT* dict; \ + FAIL_ON_ERROR(yr_object_create( \ + OBJECT_TYPE_DICTIONARY, name, stack[stack_top], &dict)); \ + FAIL_ON_ERROR(yr_object_create(OBJECT_TYPE_STRING, name, dict, NULL)); \ + } + +#define declare_function(name, args_fmt, ret_fmt, func) \ + { \ + YR_OBJECT* function; \ + FAIL_ON_ERROR(yr_object_function_create( \ + name, args_fmt, ret_fmt, func, stack[stack_top], &function)); \ + } + +#define define_function(func) \ + int func( \ + YR_VALUE* __args, \ + YR_SCAN_CONTEXT* __context, \ + YR_OBJECT_FUNCTION* __function_obj) + +#define sized_string_argument(n) (__args[n - 1].ss) + +#define string_argument(n) (sized_string_argument(n)->c_string) + +#define integer_argument(n) (__args[n - 1].i) + +#define float_argument(n) (__args[n - 1].d) + +#define regexp_argument(n) ((RE*) (__args[n - 1].re)) + +#define yr_module() yr_object_get_root((YR_OBJECT*) __function_obj) +#define yr_parent() (__function_obj->parent) +#define yr_scan_context() (__context) + +#define foreach_memory_block(iterator, block) \ + for (block = iterator->first(iterator); block != NULL; \ + block = iterator->next(iterator)) + +#define first_memory_block(context) \ + (context)->iterator->first((context)->iterator) + +#define yr_is_undefined(object, ...) \ + yr_object_has_undefined_value(object, __VA_ARGS__) + +#define yr_get_object(object, ...) yr_object_lookup(object, 0, __VA_ARGS__) + +#define yr_get_integer(object, ...) yr_object_get_integer(object, __VA_ARGS__) + +#define yr_get_float(object, ...) yr_object_get_float(object, __VA_ARGS__) + +#define yr_get_string(object, ...) yr_object_get_string(object, __VA_ARGS__) + +#define yr_set_integer(value, object, ...) \ + yr_object_set_integer(value, object, __VA_ARGS__) + +#define yr_set_float(value, object, ...) \ + yr_object_set_float(value, object, __VA_ARGS__) + +#define yr_set_sized_string(value, len, object, ...) \ + yr_object_set_string(value, len, object, __VA_ARGS__) + +#define yr_set_string(value, object, ...) \ + yr_set_sized_string( \ + value, (value == NULL) ? 0 : strlen(value), object, __VA_ARGS__) + +#define return_integer(integer) \ + { \ + assertf( \ + __function_obj->return_obj->type == OBJECT_TYPE_INTEGER, \ + "return type differs from function declaration"); \ + return yr_object_set_integer((integer), __function_obj->return_obj, NULL); \ + } + +#define return_float(double_) \ + { \ + double d = (double) (double_); \ + assertf( \ + __function_obj->return_obj->type == OBJECT_TYPE_FLOAT, \ + "return type differs from function declaration"); \ + return yr_object_set_float( \ + (d != (double) YR_UNDEFINED) ? d : NAN, \ + __function_obj->return_obj, \ + NULL); \ + } + +#define return_string(string) \ + { \ + char* s = (char*) (string); \ + assertf( \ + __function_obj->return_obj->type == OBJECT_TYPE_STRING, \ + "return type differs from function declaration"); \ + return yr_object_set_string( \ + (s != (char*) YR_UNDEFINED) ? s : NULL, \ + (s != (char*) YR_UNDEFINED) ? strlen(s) : 0, \ + __function_obj->return_obj, \ + NULL); \ + } + +typedef int (*YR_EXT_INITIALIZE_FUNC)(YR_MODULE* module); + +typedef int (*YR_EXT_FINALIZE_FUNC)(YR_MODULE* module); + +typedef int (*YR_EXT_DECLARATIONS_FUNC)(YR_OBJECT* module_object); + +typedef int (*YR_EXT_LOAD_FUNC)( + YR_SCAN_CONTEXT* context, + YR_OBJECT* module_object, + void* module_data, + size_t module_data_size); + +typedef int (*YR_EXT_UNLOAD_FUNC)(YR_OBJECT* module_object); + +struct YR_MODULE +{ + char* name; + + YR_EXT_DECLARATIONS_FUNC declarations; + YR_EXT_LOAD_FUNC load; + YR_EXT_UNLOAD_FUNC unload; + YR_EXT_INITIALIZE_FUNC initialize; + YR_EXT_FINALIZE_FUNC finalize; +}; + +struct YR_MODULE_IMPORT +{ + const char* module_name; + void* module_data; + size_t module_data_size; +}; + +int yr_modules_initialize(void); + +int yr_modules_finalize(void); + +int yr_modules_do_declarations( + const char* module_name, + YR_OBJECT* main_structure); + +int yr_modules_load(const char* module_name, YR_SCAN_CONTEXT* context); + +int yr_modules_unload_all(YR_SCAN_CONTEXT* context); + +YR_API YR_MODULE* yr_modules_get_table(void); + +#endif diff --git a/BLUESPAWN-win-client/headers/yara/notebook.h b/BLUESPAWN-win-client/headers/yara/notebook.h new file mode 100644 index 00000000..6b66a320 --- /dev/null +++ b/BLUESPAWN-win-client/headers/yara/notebook.h @@ -0,0 +1,18 @@ +// +// Created by Victor Manuel Alvarez on 3/4/20. +// + +#ifndef YR_NOTEBOOK_H +#define YR_NOTEBOOK_H + +#include + +typedef struct YR_NOTEBOOK YR_NOTEBOOK; + +int yr_notebook_create(size_t page_size, YR_NOTEBOOK** pool); + +int yr_notebook_destroy(YR_NOTEBOOK* pool); + +void* yr_notebook_alloc(YR_NOTEBOOK* notebook, size_t size); + +#endif // YR_NOTEBOOK_H diff --git a/BLUESPAWN-win-client/headers/yara/object.h b/BLUESPAWN-win-client/headers/yara/object.h new file mode 100644 index 00000000..f127add4 --- /dev/null +++ b/BLUESPAWN-win-client/headers/yara/object.h @@ -0,0 +1,151 @@ +/* +Copyright (c) 2014. The YARA Authors. All Rights Reserved. + +Redistribution and use in source and binary forms, with or without modification, +are permitted provided that the following conditions are met: + +1. Redistributions of source code must retain the above copyright notice, this +list of conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright notice, +this list of conditions and the following disclaimer in the documentation and/or +other materials provided with the distribution. + +3. Neither the name of the copyright holder nor the names of its contributors +may be used to endorse or promote products derived from this software without +specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR +ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ + +#ifndef YR_OBJECT_H +#define YR_OBJECT_H + +#ifdef _MSC_VER + #include + #ifndef yr_isnan + #define yr_isnan _isnan + #endif +#else + #ifndef yr_isnan + #define yr_isnan isnan + #endif +#endif + +#ifndef INFINITY + #define INFINITY (DBL_MAX + DBL_MAX) +#endif + +#ifndef NAN + #define NAN (INFINITY - INFINITY) +#endif + +#include +#include +#include + +#define OBJECT_CREATE 1 + +#define OBJECT_TYPE_INTEGER 1 +#define OBJECT_TYPE_STRING 2 +#define OBJECT_TYPE_STRUCTURE 3 +#define OBJECT_TYPE_ARRAY 4 +#define OBJECT_TYPE_FUNCTION 5 +#define OBJECT_TYPE_DICTIONARY 6 +#define OBJECT_TYPE_FLOAT 7 + +int yr_object_create( + int8_t type, + const char* identifier, + YR_OBJECT* parent, + YR_OBJECT** object); + +void yr_object_set_canary(YR_OBJECT* object, int canary); + +int yr_object_function_create( + const char* identifier, + const char* arguments_fmt, + const char* return_fmt, + YR_MODULE_FUNC func, + YR_OBJECT* parent, + YR_OBJECT** function); + +int yr_object_from_external_variable( + YR_EXTERNAL_VARIABLE* external, + YR_OBJECT** object); + +void yr_object_destroy(YR_OBJECT* object); + +int yr_object_copy(YR_OBJECT* object, YR_OBJECT** object_copy); + +YR_OBJECT* yr_object_lookup_field(YR_OBJECT* object, const char* field_name); + +YR_OBJECT* yr_object_lookup( + YR_OBJECT* root, + int flags, + const char* pattern, + ...) YR_PRINTF_LIKE(3, 4); + +bool yr_object_has_undefined_value(YR_OBJECT* object, const char* field, ...) + YR_PRINTF_LIKE(2, 3); + +double yr_object_get_float(YR_OBJECT* object, const char* field, ...) + YR_PRINTF_LIKE(2, 3); + +int64_t yr_object_get_integer(YR_OBJECT* object, const char* field, ...) + YR_PRINTF_LIKE(2, 3); + +SIZED_STRING* yr_object_get_string(YR_OBJECT* object, const char* field, ...) + YR_PRINTF_LIKE(2, 3); + +int yr_object_set_integer( + int64_t value, + YR_OBJECT* object, + const char* field, + ...) YR_PRINTF_LIKE(3, 4); + +int yr_object_set_float(double value, YR_OBJECT* object, const char* field, ...) + YR_PRINTF_LIKE(3, 4); + +int yr_object_set_string( + const char* value, + size_t len, + YR_OBJECT* object, + const char* field, + ...) YR_PRINTF_LIKE(4, 5); + +int yr_object_array_length(YR_OBJECT* object); + +YR_OBJECT* yr_object_array_get_item(YR_OBJECT* object, int flags, int index); + +int yr_object_array_set_item(YR_OBJECT* object, YR_OBJECT* item, int index); + +YR_OBJECT* yr_object_dict_get_item( + YR_OBJECT* object, + int flags, + const char* key); + +int yr_object_dict_set_item( + YR_OBJECT* object, + YR_OBJECT* item, + const char* key); + +int yr_object_structure_set_member(YR_OBJECT* object, YR_OBJECT* member); + +YR_OBJECT* yr_object_get_root(YR_OBJECT* object); + +YR_API void yr_object_print_data( + YR_OBJECT* object, + int indent, + int print_identifier); + +#endif diff --git a/BLUESPAWN-win-client/headers/yara/parser.h b/BLUESPAWN-win-client/headers/yara/parser.h new file mode 100644 index 00000000..437e6425 --- /dev/null +++ b/BLUESPAWN-win-client/headers/yara/parser.h @@ -0,0 +1,139 @@ +/* +Copyright (c) 2013. The YARA Authors. All Rights Reserved. + +Redistribution and use in source and binary forms, with or without modification, +are permitted provided that the following conditions are met: + +1. Redistributions of source code must retain the above copyright notice, this +list of conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright notice, +this list of conditions and the following disclaimer in the documentation and/or +other materials provided with the distribution. + +3. Neither the name of the copyright holder nor the names of its contributors +may be used to endorse or promote products derived from this software without +specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR +ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ + +#ifndef YR_PARSER_H +#define YR_PARSER_H + +#include "lexer.h" + +int yr_parser_emit( + yyscan_t yyscanner, + uint8_t instruction, + YR_ARENA_REF* instruction_ref); + +int yr_parser_emit_with_arg( + yyscan_t yyscanner, + uint8_t instruction, + int64_t argument, + YR_ARENA_REF* instruction_ref, + YR_ARENA_REF* argument_ref); + +int yr_parser_emit_with_arg_int32( + yyscan_t yyscanner, + uint8_t instruction, + int32_t argument, + YR_ARENA_REF* instruction_ref, + YR_ARENA_REF* argument_ref); + +int yr_parser_emit_with_arg_double( + yyscan_t yyscanner, + uint8_t instruction, + double argument, + YR_ARENA_REF* instruction_ref, + YR_ARENA_REF* argument_ref); + +int yr_parser_emit_with_arg_reloc( + yyscan_t yyscanner, + uint8_t instruction, + void* argument, + YR_ARENA_REF* instruction_ref, + YR_ARENA_REF* argument_ref); + +int yr_parser_emit_push_const(yyscan_t yyscanner, uint64_t argument); + +int yr_parser_check_types( + YR_COMPILER* compiler, + YR_OBJECT_FUNCTION* function, + const char* actual_args_fmt); + +int yr_parser_lookup_string( + yyscan_t yyscanner, + const char* identifier, + YR_STRING** string); + +int yr_parser_lookup_loop_variable( + yyscan_t yyscanner, + const char* identifier, + YR_EXPRESSION*); + +int yr_parser_reduce_rule_declaration_phase_1( + yyscan_t yyscanner, + int32_t flags, + const char* identifier, + YR_ARENA_REF* rule_ref); + +int yr_parser_reduce_rule_declaration_phase_2( + yyscan_t yyscanner, + YR_ARENA_REF* rule_ref); + +int yr_parser_reduce_string_declaration( + yyscan_t yyscanner, + YR_MODIFIER modifier, + const char* identifier, + SIZED_STRING* str, + YR_ARENA_REF* string_ref); + +int yr_parser_reduce_meta_declaration( + yyscan_t yyscanner, + int32_t type, + const char* identifier, + const char* string, + int64_t integer, + YR_ARENA_REF* meta_ref); + +int yr_parser_reduce_string_identifier( + yyscan_t yyscanner, + const char* identifier, + uint8_t instruction, + uint64_t at_offset); + +int yr_parser_emit_pushes_for_strings( + yyscan_t yyscanner, + const char* identifier, + int* count); + +int yr_parser_emit_pushes_for_rules( + yyscan_t yyscanner, + const char* identifier, + int *count); + +int yr_parser_reduce_external( + yyscan_t yyscanner, + const char* identifier, + uint8_t instruction); + +int yr_parser_reduce_import(yyscan_t yyscanner, SIZED_STRING* module_name); + +int yr_parser_reduce_operation( + yyscan_t yyscanner, + const char* operation, + YR_EXPRESSION left_operand, + YR_EXPRESSION right_operand); + +#endif diff --git a/BLUESPAWN-win-client/headers/yara/pe.h b/BLUESPAWN-win-client/headers/yara/pe.h new file mode 100644 index 00000000..096e75af --- /dev/null +++ b/BLUESPAWN-win-client/headers/yara/pe.h @@ -0,0 +1,882 @@ +/* +Copyright (c) 2013. The YARA Authors. All Rights Reserved. + +Redistribution and use in source and binary forms, with or without modification, +are permitted provided that the following conditions are met: + +1. Redistributions of source code must retain the above copyright notice, this +list of conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright notice, +this list of conditions and the following disclaimer in the documentation and/or +other materials provided with the distribution. + +3. Neither the name of the copyright holder nor the names of its contributors +may be used to endorse or promote products derived from this software without +specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR +ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ + +#ifndef YR_PE_H +#define YR_PE_H + +#include +#include + +#if defined(_WIN32) || defined(__CYGWIN__) +#include + +// PKCS7_SIGNER_INFO is defined by wincrypt.h, but it conflicts with a type +// defined in openssl/pkcs7.h which is used in pe.c. Let's undefine the macro. +#undef PKCS7_SIGNER_INFO + +// These definitions are not present in older Windows headers. + +#ifndef IMAGE_FILE_MACHINE_ARMNT +#define IMAGE_FILE_MACHINE_ARMNT 0x01c4 +#endif + +#ifndef IMAGE_FILE_MACHINE_ARM64 +#define IMAGE_FILE_MACHINE_ARM64 0xaa64 +#endif + +#ifndef IMAGE_SUBSYSTEM_EFI_ROM_IMAGE +#define IMAGE_SUBSYSTEM_EFI_ROM_IMAGE 13 +#endif + +#ifndef IMAGE_DIRECTORY_ENTRY_COPYRIGHT +#define IMAGE_DIRECTORY_ENTRY_COPYRIGHT 7 // (X86 usage) +#endif + +#ifndef IMAGE_FILE_MACHINE_TARGET_HOST +#define IMAGE_FILE_MACHINE_TARGET_HOST 0x0001 +#endif + +#else + +#include +#include + +typedef uint8_t BYTE; +typedef uint16_t WORD; +typedef uint16_t WCHAR; +typedef int16_t SHORT; +typedef uint32_t DWORD; +typedef int32_t LONG; +typedef uint32_t ULONG; +typedef uint64_t ULONGLONG; + +#ifndef _MAC + +#define IMAGE_DOS_SIGNATURE 0x5A4D // MZ +#define IMAGE_OS2_SIGNATURE 0x454E // NE +#define IMAGE_OS2_SIGNATURE_LE 0x454C // LE +#define IMAGE_VXD_SIGNATURE 0x454C // LE +#define IMAGE_NT_SIGNATURE 0x00004550 // PE00 + +#else + +#define IMAGE_DOS_SIGNATURE 0x4D5A // MZ +#define IMAGE_OS2_SIGNATURE 0x4E45 // NE +#define IMAGE_OS2_SIGNATURE_LE 0x4C45 // LE +#define IMAGE_NT_SIGNATURE 0x50450000 // PE00 + +#endif + +#pragma pack(push, 1) + +typedef struct _IMAGE_DOS_HEADER +{ // DOS .EXE header + WORD e_magic; // Magic number + WORD e_cblp; // Bytes on last page of file + WORD e_cp; // Pages in file + WORD e_crlc; // Relocations + WORD e_cparhdr; // Size of header in paragraphs + WORD e_minalloc; // Minimum extra paragraphs needed + WORD e_maxalloc; // Maximum extra paragraphs needed + WORD e_ss; // Initial (relative) SS value + WORD e_sp; // Initial SP value + WORD e_csum; // Checksum + WORD e_ip; // Initial IP value + WORD e_cs; // Initial (relative) CS value + WORD e_lfarlc; // File address of relocation table + WORD e_ovno; // Overlay number + WORD e_res[4]; // Reserved words + WORD e_oemid; // OEM identifier (for e_oeminfo) + WORD e_oeminfo; // OEM information; e_oemid specific + WORD e_res2[10]; // Reserved words + LONG e_lfanew; // File address of new exe header +} IMAGE_DOS_HEADER, *PIMAGE_DOS_HEADER; + +typedef struct _IMAGE_FILE_HEADER +{ + WORD Machine; + WORD NumberOfSections; + DWORD TimeDateStamp; + DWORD PointerToSymbolTable; + DWORD NumberOfSymbols; + WORD SizeOfOptionalHeader; + WORD Characteristics; +} IMAGE_FILE_HEADER, *PIMAGE_FILE_HEADER; + +#define IMAGE_SIZEOF_FILE_HEADER 20 + +// Relocation info stripped from file. +#define IMAGE_FILE_RELOCS_STRIPPED 0x0001 +// File is executable (i.e. no unresolved external references). +#define IMAGE_FILE_EXECUTABLE_IMAGE 0x0002 +// Line numbers stripped from file. +#define IMAGE_FILE_LINE_NUMS_STRIPPED 0x0004 +// Local symbols stripped from file. +#define IMAGE_FILE_LOCAL_SYMS_STRIPPED 0x0008 +// Aggressively trim working set +#define IMAGE_FILE_AGGRESIVE_WS_TRIM 0x0010 +// App can handle >2gb addresses +#define IMAGE_FILE_LARGE_ADDRESS_AWARE 0x0020 +// Bytes of machine word are reversed. +#define IMAGE_FILE_BYTES_REVERSED_LO 0x0080 +// 32 bit word machine. +#define IMAGE_FILE_32BIT_MACHINE 0x0100 +// Debugging info stripped from file in .DBG file +#define IMAGE_FILE_DEBUG_STRIPPED 0x0200 +// If Image is on removable media, copy and run from the swap file. +#define IMAGE_FILE_REMOVABLE_RUN_FROM_SWAP 0x0400 +// If Image is on Net, copy and run from the swap file. +#define IMAGE_FILE_NET_RUN_FROM_SWAP 0x0800 +// System File. +#define IMAGE_FILE_SYSTEM 0x1000 +// File is a DLL.s +#define IMAGE_FILE_DLL 0x2000 +// File should only be run on a UP machine +#define IMAGE_FILE_UP_SYSTEM_ONLY 0x4000 +// Bytes of machine word are reversed. +#define IMAGE_FILE_BYTES_REVERSED_HI 0x8000 + +#define IMAGE_FILE_MACHINE_UNKNOWN 0x0000 +#define IMAGE_FILE_MACHINE_AM33 0x01d3 +#define IMAGE_FILE_MACHINE_AMD64 0x8664 +#define IMAGE_FILE_MACHINE_ARM 0x01c0 +#define IMAGE_FILE_MACHINE_ARMNT 0x01c4 +#define IMAGE_FILE_MACHINE_ARM64 0xaa64 +#define IMAGE_FILE_MACHINE_EBC 0x0ebc +#define IMAGE_FILE_MACHINE_I386 0x014c +#define IMAGE_FILE_MACHINE_IA64 0x0200 +#define IMAGE_FILE_MACHINE_M32R 0x9041 +#define IMAGE_FILE_MACHINE_MIPS16 0x0266 +#define IMAGE_FILE_MACHINE_MIPSFPU 0x0366 +#define IMAGE_FILE_MACHINE_MIPSFPU16 0x0466 +#define IMAGE_FILE_MACHINE_POWERPC 0x01f0 +#define IMAGE_FILE_MACHINE_POWERPCFP 0x01f1 +#define IMAGE_FILE_MACHINE_R4000 0x0166 +#define IMAGE_FILE_MACHINE_SH3 0x01a2 +#define IMAGE_FILE_MACHINE_SH3DSP 0x01a3 +#define IMAGE_FILE_MACHINE_SH4 0x01a6 +#define IMAGE_FILE_MACHINE_SH5 0x01a8 +#define IMAGE_FILE_MACHINE_THUMB 0x01c2 +#define IMAGE_FILE_MACHINE_WCEMIPSV2 0x0169 +// Useful for indicating we want to interact with the host and not a WoW guest. +#define IMAGE_FILE_MACHINE_TARGET_HOST 0x0001 +// MIPS little-endian, 0x160 big-endian +#define IMAGE_FILE_MACHINE_R3000 0x0162 // MIPS little-endian +#define IMAGE_FILE_MACHINE_R10000 0x0168 // Alpha_AXP +#define IMAGE_FILE_MACHINE_ALPHA 0x0184 // SH3E little-endian +#define IMAGE_FILE_MACHINE_SH3E 0x01a4 // ALPHA64 +#define IMAGE_FILE_MACHINE_ALPHA64 0x0284 +#define IMAGE_FILE_MACHINE_AXP64 IMAGE_FILE_MACHINE_ALPHA64 +#define IMAGE_FILE_MACHINE_TRICORE 0x0520 // Infineon +#define IMAGE_FILE_MACHINE_CEF 0x0CEF +#define IMAGE_FILE_MACHINE_CEE 0xC0EE + +// Section characteristics +#define IMAGE_SCN_TYPE_NO_PAD 0x00000008 +#define IMAGE_SCN_CNT_CODE 0x00000020 +#define IMAGE_SCN_CNT_INITIALIZED_DATA 0x00000040 +#define IMAGE_SCN_CNT_UNINITIALIZED_DATA 0x00000080 +#define IMAGE_SCN_LNK_OTHER 0x00000100 +#define IMAGE_SCN_LNK_INFO 0x00000200 +#define IMAGE_SCN_LNK_REMOVE 0x00000800 +#define IMAGE_SCN_LNK_COMDAT 0x00001000 +#define IMAGE_SCN_NO_DEFER_SPEC_EXC 0x00004000 +#define IMAGE_SCN_GPREL 0x00008000 +#define IMAGE_SCN_MEM_FARDATA 0x00008000 +#define IMAGE_SCN_MEM_PURGEABLE 0x00020000 +#define IMAGE_SCN_MEM_16BIT 0x00020000 +#define IMAGE_SCN_MEM_LOCKED 0x00040000 +#define IMAGE_SCN_MEM_PRELOAD 0x00080000 +#define IMAGE_SCN_ALIGN_1BYTES 0x00100000 +#define IMAGE_SCN_ALIGN_2BYTES 0x00200000 +#define IMAGE_SCN_ALIGN_4BYTES 0x00300000 +#define IMAGE_SCN_ALIGN_8BYTES 0x00400000 +#define IMAGE_SCN_ALIGN_16BYTES 0x00500000 +#define IMAGE_SCN_ALIGN_32BYTES 0x00600000 +#define IMAGE_SCN_ALIGN_64BYTES 0x00700000 +#define IMAGE_SCN_ALIGN_128BYTES 0x00800000 +#define IMAGE_SCN_ALIGN_256BYTES 0x00900000 +#define IMAGE_SCN_ALIGN_512BYTES 0x00A00000 +#define IMAGE_SCN_ALIGN_1024BYTES 0x00B00000 +#define IMAGE_SCN_ALIGN_2048BYTES 0x00C00000 +#define IMAGE_SCN_ALIGN_4096BYTES 0x00D00000 +#define IMAGE_SCN_ALIGN_8192BYTES 0x00E00000 +#define IMAGE_SCN_ALIGN_MASK 0x00F00000 +#define IMAGE_SCN_LNK_NRELOC_OVFL 0x01000000 +#define IMAGE_SCN_MEM_DISCARDABLE 0x02000000 +#define IMAGE_SCN_MEM_NOT_CACHED 0x04000000 +#define IMAGE_SCN_MEM_NOT_PAGED 0x08000000 +#define IMAGE_SCN_MEM_SHARED 0x10000000 +#define IMAGE_SCN_MEM_EXECUTE 0x20000000 +#define IMAGE_SCN_MEM_READ 0x40000000 +#define IMAGE_SCN_MEM_WRITE 0x80000000 +#define IMAGE_SCN_SCALE_INDEX 0x00000001 + +// +// Directory format. +// + +typedef struct _IMAGE_DATA_DIRECTORY +{ + DWORD VirtualAddress; + DWORD Size; +} IMAGE_DATA_DIRECTORY, *PIMAGE_DATA_DIRECTORY; + +#define IMAGE_NUMBEROF_DIRECTORY_ENTRIES 16 + +#define IMAGE_DIRECTORY_ENTRY_EXPORT 0 +#define IMAGE_DIRECTORY_ENTRY_IMPORT 1 +#define IMAGE_DIRECTORY_ENTRY_RESOURCE 2 +#define IMAGE_DIRECTORY_ENTRY_EXCEPTION 3 +#define IMAGE_DIRECTORY_ENTRY_SECURITY 4 +#define IMAGE_DIRECTORY_ENTRY_BASERELOC 5 +#define IMAGE_DIRECTORY_ENTRY_DEBUG 6 +#define IMAGE_DIRECTORY_ENTRY_COPYRIGHT 7 +#define IMAGE_DIRECTORY_ENTRY_ARCHITECTURE 7 +#define IMAGE_DIRECTORY_ENTRY_GLOBALPTR 8 +#define IMAGE_DIRECTORY_ENTRY_TLS 9 +#define IMAGE_DIRECTORY_ENTRY_LOAD_CONFIG 10 +#define IMAGE_DIRECTORY_ENTRY_BOUND_IMPORT 11 +#define IMAGE_DIRECTORY_ENTRY_IAT 12 +#define IMAGE_DIRECTORY_ENTRY_DELAY_IMPORT 13 +#define IMAGE_DIRECTORY_ENTRY_COM_DESCRIPTOR 14 + +// +// Optional header format. +// + +typedef struct _IMAGE_OPTIONAL_HEADER32 +{ + WORD Magic; + BYTE MajorLinkerVersion; + BYTE MinorLinkerVersion; + DWORD SizeOfCode; + DWORD SizeOfInitializedData; + DWORD SizeOfUninitializedData; + DWORD AddressOfEntryPoint; + DWORD BaseOfCode; + DWORD BaseOfData; + DWORD ImageBase; + DWORD SectionAlignment; + DWORD FileAlignment; + WORD MajorOperatingSystemVersion; + WORD MinorOperatingSystemVersion; + WORD MajorImageVersion; + WORD MinorImageVersion; + WORD MajorSubsystemVersion; + WORD MinorSubsystemVersion; + DWORD Win32VersionValue; + DWORD SizeOfImage; + DWORD SizeOfHeaders; + DWORD CheckSum; + WORD Subsystem; + WORD DllCharacteristics; + DWORD SizeOfStackReserve; + DWORD SizeOfStackCommit; + DWORD SizeOfHeapReserve; + DWORD SizeOfHeapCommit; + DWORD LoaderFlags; + DWORD NumberOfRvaAndSizes; + IMAGE_DATA_DIRECTORY DataDirectory[IMAGE_NUMBEROF_DIRECTORY_ENTRIES]; + +} IMAGE_OPTIONAL_HEADER32, *PIMAGE_OPTIONAL_HEADER32; + +typedef struct _IMAGE_OPTIONAL_HEADER64 +{ + WORD Magic; + BYTE MajorLinkerVersion; + BYTE MinorLinkerVersion; + DWORD SizeOfCode; + DWORD SizeOfInitializedData; + DWORD SizeOfUninitializedData; + DWORD AddressOfEntryPoint; + DWORD BaseOfCode; + ULONGLONG ImageBase; + DWORD SectionAlignment; + DWORD FileAlignment; + WORD MajorOperatingSystemVersion; + WORD MinorOperatingSystemVersion; + WORD MajorImageVersion; + WORD MinorImageVersion; + WORD MajorSubsystemVersion; + WORD MinorSubsystemVersion; + DWORD Win32VersionValue; + DWORD SizeOfImage; + DWORD SizeOfHeaders; + DWORD CheckSum; + WORD Subsystem; + WORD DllCharacteristics; + ULONGLONG SizeOfStackReserve; + ULONGLONG SizeOfStackCommit; + ULONGLONG SizeOfHeapReserve; + ULONGLONG SizeOfHeapCommit; + DWORD LoaderFlags; + DWORD NumberOfRvaAndSizes; + IMAGE_DATA_DIRECTORY DataDirectory[IMAGE_NUMBEROF_DIRECTORY_ENTRIES]; + +} IMAGE_OPTIONAL_HEADER64, *PIMAGE_OPTIONAL_HEADER64; + +#define IMAGE_NT_OPTIONAL_HDR32_MAGIC 0x10b +#define IMAGE_NT_OPTIONAL_HDR64_MAGIC 0x20b +#define IMAGE_ROM_OPTIONAL_HDR_MAGIC 0x107 + +typedef struct _IMAGE_NT_HEADERS32 +{ + DWORD Signature; + IMAGE_FILE_HEADER FileHeader; + IMAGE_OPTIONAL_HEADER32 OptionalHeader; + +} IMAGE_NT_HEADERS32, *PIMAGE_NT_HEADERS32; + +typedef struct _IMAGE_NT_HEADERS64 +{ + DWORD Signature; + IMAGE_FILE_HEADER FileHeader; + IMAGE_OPTIONAL_HEADER64 OptionalHeader; + +} IMAGE_NT_HEADERS64, *PIMAGE_NT_HEADERS64; + +// IMAGE_FIRST_SECTION doesn't need 32/64 versions since the file header is +// the same either way. + +#define IMAGE_FIRST_SECTION(ntheader) \ + ((PIMAGE_SECTION_HEADER)( \ + (BYTE*) ntheader + offsetof(IMAGE_NT_HEADERS32, OptionalHeader) + \ + yr_le16toh(((PIMAGE_NT_HEADERS32)(ntheader)) \ + ->FileHeader.SizeOfOptionalHeader))) + +// Subsystem Values + +#define IMAGE_SUBSYSTEM_UNKNOWN 0 +#define IMAGE_SUBSYSTEM_NATIVE 1 +#define IMAGE_SUBSYSTEM_WINDOWS_GUI 2 +#define IMAGE_SUBSYSTEM_WINDOWS_CUI 3 +#define IMAGE_SUBSYSTEM_OS2_CUI 5 +#define IMAGE_SUBSYSTEM_POSIX_CUI 7 +#define IMAGE_SUBSYSTEM_NATIVE_WINDOWS 8 +#define IMAGE_SUBSYSTEM_WINDOWS_CE_GUI 9 +#define IMAGE_SUBSYSTEM_EFI_APPLICATION 10 +#define IMAGE_SUBSYSTEM_EFI_BOOT_SERVICE_DRIVER 11 +#define IMAGE_SUBSYSTEM_EFI_RUNTIME_DRIVER 12 +#define IMAGE_SUBSYSTEM_EFI_ROM_IMAGE 13 +#define IMAGE_SUBSYSTEM_XBOX 14 +#define IMAGE_SUBSYSTEM_WINDOWS_BOOT_APPLICATION 16 + +// DllCharacteristics values + +#define IMAGE_DLLCHARACTERISTICS_HIGH_ENTROPY_VA 0x0020 +#define IMAGE_DLLCHARACTERISTICS_DYNAMIC_BASE 0x0040 +#define IMAGE_DLLCHARACTERISTICS_FORCE_INTEGRITY 0x0080 +#define IMAGE_DLLCHARACTERISTICS_NX_COMPAT 0x0100 +#define IMAGE_DLLCHARACTERISTICS_NO_ISOLATION 0x0200 +#define IMAGE_DLLCHARACTERISTICS_NO_SEH 0x0400 +#define IMAGE_DLLCHARACTERISTICS_NO_BIND 0x0800 +#define IMAGE_DLLCHARACTERISTICS_APPCONTAINER 0x1000 +#define IMAGE_DLLCHARACTERISTICS_WDM_DRIVER 0x2000 +#define IMAGE_DLLCHARACTERISTICS_GUARD_CF 0x4000 +#define IMAGE_DLLCHARACTERISTICS_TERMINAL_SERVER_AWARE 0x8000 + +// +// Section header format. +// + +#define IMAGE_SIZEOF_SHORT_NAME 8 + +typedef struct _IMAGE_SECTION_HEADER +{ + BYTE Name[IMAGE_SIZEOF_SHORT_NAME]; + union + { + DWORD PhysicalAddress; + DWORD VirtualSize; + } Misc; + DWORD VirtualAddress; + DWORD SizeOfRawData; + DWORD PointerToRawData; + DWORD PointerToRelocations; + DWORD PointerToLinenumbers; + WORD NumberOfRelocations; + WORD NumberOfLinenumbers; + DWORD Characteristics; + +} IMAGE_SECTION_HEADER, *PIMAGE_SECTION_HEADER; + +#define IMAGE_SIZEOF_SECTION_HEADER 40 + +typedef struct _IMAGE_EXPORT_DIRECTORY +{ + DWORD Characteristics; + DWORD TimeDateStamp; + WORD MajorVersion; + WORD MinorVersion; + DWORD Name; + DWORD Base; + DWORD NumberOfFunctions; + DWORD NumberOfNames; + DWORD AddressOfFunctions; + DWORD AddressOfNames; + DWORD AddressOfNameOrdinals; +} IMAGE_EXPORT_DIRECTORY, *PIMAGE_EXPORT_DIRECTORY; + +typedef struct _IMAGE_IMPORT_DESCRIPTOR +{ + union + { + DWORD Characteristics; + DWORD OriginalFirstThunk; + }; + DWORD TimeDateStamp; + DWORD ForwarderChain; + DWORD Name; + DWORD FirstThunk; + +} IMAGE_IMPORT_DESCRIPTOR, *PIMAGE_IMPORT_DESCRIPTOR; + +typedef struct _IMAGE_IMPORT_BY_NAME +{ + WORD Hint; + BYTE Name[1]; + +} IMAGE_IMPORT_BY_NAME, *PIMAGE_IMPORT_BY_NAME; + +typedef struct _IMAGE_THUNK_DATA32 +{ + union + { + DWORD ForwarderString; + DWORD Function; + DWORD Ordinal; + DWORD AddressOfData; + } u1; + +} IMAGE_THUNK_DATA32, *PIMAGE_THUNK_DATA32; + +#define IMAGE_ORDINAL_FLAG32 0x80000000 +#define IMAGE_ORDINAL_FLAG64 0x8000000000000000L + +typedef struct _IMAGE_BOUND_IMPORT_DESCRIPTOR +{ + DWORD TimeDateStamp; + WORD OffsetModuleName; + WORD NumberOfModuleForwarderRefs; + // Array of zero or more IMAGE_BOUND_FORWARDER_REF follows +} IMAGE_BOUND_IMPORT_DESCRIPTOR, *PIMAGE_BOUND_IMPORT_DESCRIPTOR; + +typedef struct _IMAGE_BOUND_FORWARDER_REF +{ + DWORD TimeDateStamp; + WORD OffsetModuleName; + WORD Reserved; +} IMAGE_BOUND_FORWARDER_REF, *PIMAGE_BOUND_FORWARDER_REF; + +typedef struct _IMAGE_DELAYLOAD_DESCRIPTOR +{ + union + { + DWORD AllAttributes; + struct + { + DWORD RvaBased : 1; // Delay load version 2 + DWORD ReservedAttributes : 31; + } DUMMYSTRUCTNAME; + } Attributes; + + // RVA to the name of the target library (NULL-terminate ASCII string) + DWORD DllNameRVA; + // RVA to the HMODULE caching location (PHMODULE) + DWORD ModuleHandleRVA; + // RVA to the start of the IAT (PIMAGE_THUNK_DATA) + DWORD ImportAddressTableRVA; + // RVA to the start of the name table (PIMAGE_THUNK_DATA::AddressOfData) + DWORD ImportNameTableRVA; + // RVA to an optional bound IAT + DWORD BoundImportAddressTableRVA; + // RVA to an optional unload info table + DWORD UnloadInformationTableRVA; + // 0 if not bound, otherwise, date/time of the target DLL + DWORD TimeDateStamp; + +} IMAGE_DELAYLOAD_DESCRIPTOR, *PIMAGE_DELAYLOAD_DESCRIPTOR; + +typedef struct _IMAGE_THUNK_DATA64 +{ + union + { + ULONGLONG ForwarderString; + ULONGLONG Function; + ULONGLONG Ordinal; + ULONGLONG AddressOfData; + } u1; + +} IMAGE_THUNK_DATA64, *PIMAGE_THUNK_DATA64; + +typedef struct _IMAGE_RESOURCE_DIR_STRING_U +{ + WORD Length; + WCHAR NameString[1]; +} IMAGE_RESOURCE_DIR_STRING_U, *PIMAGE_RESOURCE_DIR_STRING_U; + +typedef struct _IMAGE_RESOURCE_DIRECTORY_ENTRY +{ + DWORD Name; + DWORD OffsetToData; +} IMAGE_RESOURCE_DIRECTORY_ENTRY, *PIMAGE_RESOURCE_DIRECTORY_ENTRY; + +typedef struct _IMAGE_RESOURCE_DATA_ENTRY +{ + DWORD OffsetToData; + DWORD Size; + DWORD CodePage; + DWORD Reserved; +} IMAGE_RESOURCE_DATA_ENTRY, *PIMAGE_RESOURCE_DATA_ENTRY; + +typedef struct _IMAGE_RESOURCE_DIRECTORY +{ + DWORD Characteristics; + DWORD TimeDateStamp; + WORD MajorVersion; + WORD MinorVersion; + WORD NumberOfNamedEntries; + WORD NumberOfIdEntries; +} IMAGE_RESOURCE_DIRECTORY, *PIMAGE_RESOURCE_DIRECTORY; + +#define IMAGE_DEBUG_TYPE_FPO 3 +#define IMAGE_DEBUG_TYPE_MISC 4 +#define IMAGE_DEBUG_TYPE_EXCEPTION 5 +#define IMAGE_DEBUG_TYPE_FIXUP 6 +#define IMAGE_DEBUG_TYPE_OMAP_TO_SRC 7 +#define IMAGE_DEBUG_TYPE_OMAP_FROM_SRC 8 +#define IMAGE_DEBUG_TYPE_BORLAND 9 +#define IMAGE_DEBUG_TYPE_RESERVED10 10 +#define IMAGE_DEBUG_TYPE_CLSID 11 +#define IMAGE_DEBUG_TYPE_VC_FEATURE 12 +#define IMAGE_DEBUG_TYPE_POGO 13 +#define IMAGE_DEBUG_TYPE_ILTCG 14 +#define IMAGE_DEBUG_TYPE_MPX 15 +#define IMAGE_DEBUG_TYPE_REPRO 16 + +typedef struct _IMAGE_DEBUG_DIRECTORY +{ + DWORD Characteristics; + DWORD TimeDateStamp; + WORD MajorVersion; + WORD MinorVersion; + DWORD Type; + DWORD SizeOfData; + DWORD AddressOfRawData; + DWORD PointerToRawData; +} IMAGE_DEBUG_DIRECTORY, *PIMAGE_DEBUG_DIRECTORY; + +// +// Symbol format. +// + +typedef struct _IMAGE_SYMBOL +{ + union + { + BYTE ShortName[8]; + struct + { + DWORD Short; // if 0, use LongName + DWORD Long; // offset into string table + } Name; + DWORD LongName[2]; // PBYTE [2] + } N; + DWORD Value; + SHORT SectionNumber; + WORD Type; + BYTE StorageClass; + BYTE NumberOfAuxSymbols; +} IMAGE_SYMBOL, *PIMAGE_SYMBOL; + +#define IMAGE_SIZEOF_SYMBOL 18 + +typedef struct _IMAGE_SYMBOL_EX +{ + union + { + BYTE ShortName[8]; + struct + { + DWORD Short; // if 0, use LongName + DWORD Long; // offset into string table + } Name; + DWORD LongName[2]; // PBYTE [2] + } N; + DWORD Value; + LONG SectionNumber; + WORD Type; + BYTE StorageClass; + BYTE NumberOfAuxSymbols; +} IMAGE_SYMBOL_EX, *PIMAGE_SYMBOL_EX; + +// +// Section values. +// +// Symbols have a section number of the section in which they are +// defined. Otherwise, section numbers have the following meanings: +// + +#define IMAGE_SYM_UNDEFINED (SHORT) 0 // Symbol is undefined or is common. +#define IMAGE_SYM_ABSOLUTE (SHORT) - 1 // Symbol is an absolute value. +#define IMAGE_SYM_DEBUG (SHORT) - 2 // Symbol is a special debug item. +#define IMAGE_SYM_SECTION_MAX 0xFEFF // Values 0xFF00-0xFFFF are special +#define IMAGE_SYM_SECTION_MAX_EX MAXLONG + +// +// Type (fundamental) values. +// + +#define IMAGE_SYM_TYPE_NULL 0x0000 // no type. +#define IMAGE_SYM_TYPE_VOID 0x0001 // +#define IMAGE_SYM_TYPE_CHAR 0x0002 // type character. +#define IMAGE_SYM_TYPE_SHORT 0x0003 // type short integer. +#define IMAGE_SYM_TYPE_INT 0x0004 // +#define IMAGE_SYM_TYPE_LONG 0x0005 // +#define IMAGE_SYM_TYPE_FLOAT 0x0006 // +#define IMAGE_SYM_TYPE_DOUBLE 0x0007 // +#define IMAGE_SYM_TYPE_STRUCT 0x0008 // +#define IMAGE_SYM_TYPE_UNION 0x0009 // +#define IMAGE_SYM_TYPE_ENUM 0x000A // enumeration. +#define IMAGE_SYM_TYPE_MOE 0x000B // member of enumeration. +#define IMAGE_SYM_TYPE_BYTE 0x000C // +#define IMAGE_SYM_TYPE_WORD 0x000D // +#define IMAGE_SYM_TYPE_UINT 0x000E // +#define IMAGE_SYM_TYPE_DWORD 0x000F // +#define IMAGE_SYM_TYPE_PCODE 0x8000 // +// +// Type (derived) values. +// + +#define IMAGE_SYM_DTYPE_NULL 0 // no derived type. +#define IMAGE_SYM_DTYPE_POINTER 1 // pointer. +#define IMAGE_SYM_DTYPE_FUNCTION 2 // function. +#define IMAGE_SYM_DTYPE_ARRAY 3 // array. + +// +// Storage classes. +// +#define IMAGE_SYM_CLASS_END_OF_FUNCTION (BYTE) - 1 +#define IMAGE_SYM_CLASS_NULL 0x0000 +#define IMAGE_SYM_CLASS_AUTOMATIC 0x0001 +#define IMAGE_SYM_CLASS_EXTERNAL 0x0002 +#define IMAGE_SYM_CLASS_STATIC 0x0003 +#define IMAGE_SYM_CLASS_REGISTER 0x0004 +#define IMAGE_SYM_CLASS_EXTERNAL_DEF 0x0005 +#define IMAGE_SYM_CLASS_LABEL 0x0006 +#define IMAGE_SYM_CLASS_UNDEFINED_LABEL 0x0007 +#define IMAGE_SYM_CLASS_MEMBER_OF_STRUCT 0x0008 +#define IMAGE_SYM_CLASS_ARGUMENT 0x0009 +#define IMAGE_SYM_CLASS_STRUCT_TAG 0x000A +#define IMAGE_SYM_CLASS_MEMBER_OF_UNION 0x000B +#define IMAGE_SYM_CLASS_UNION_TAG 0x000C +#define IMAGE_SYM_CLASS_TYPE_DEFINITION 0x000D +#define IMAGE_SYM_CLASS_UNDEFINED_STATIC 0x000E +#define IMAGE_SYM_CLASS_ENUM_TAG 0x000F +#define IMAGE_SYM_CLASS_MEMBER_OF_ENUM 0x0010 +#define IMAGE_SYM_CLASS_REGISTER_PARAM 0x0011 +#define IMAGE_SYM_CLASS_BIT_FIELD 0x0012 + +#define IMAGE_SYM_CLASS_FAR_EXTERNAL 0x0044 // + +#define IMAGE_SYM_CLASS_BLOCK 0x0064 +#define IMAGE_SYM_CLASS_FUNCTION 0x0065 +#define IMAGE_SYM_CLASS_END_OF_STRUCT 0x0066 +#define IMAGE_SYM_CLASS_FILE 0x0067 +// new +#define IMAGE_SYM_CLASS_SECTION 0x0068 +#define IMAGE_SYM_CLASS_WEAK_EXTERNAL 0x0069 + +#define IMAGE_SYM_CLASS_CLR_TOKEN 0x006B + +// type packing constants + +#define N_BTMASK 0x000F +#define N_TMASK 0x0030 +#define N_TMASK1 0x00C0 +#define N_TMASK2 0x00F0 +#define N_BTSHFT 4 +#define N_TSHIFT 2 +// MACROS + +// Basic Type of x +#define BTYPE(x) ((x) &N_BTMASK) + +// Is x a pointer? +#ifndef ISPTR +#define ISPTR(x) (((x) &N_TMASK) == (IMAGE_SYM_DTYPE_POINTER << N_BTSHFT)) +#endif + +// Is x a function? +#ifndef ISFCN +#define ISFCN(x) (((x) &N_TMASK) == (IMAGE_SYM_DTYPE_FUNCTION << N_BTSHFT)) +#endif + +// Is x an array? + +#ifndef ISARY +#define ISARY(x) (((x) &N_TMASK) == (IMAGE_SYM_DTYPE_ARRAY << N_BTSHFT)) +#endif + +// Is x a structure, union, or enumeration TAG? +#ifndef ISTAG +#define ISTAG(x) \ + ((x) == IMAGE_SYM_CLASS_STRUCT_TAG || (x) == IMAGE_SYM_CLASS_UNION_TAG || \ + (x) == IMAGE_SYM_CLASS_ENUM_TAG) +#endif + +#ifndef INCREF +#define INCREF(x) \ + ((((x) & ~N_BTMASK) << N_TSHIFT) | (IMAGE_SYM_DTYPE_POINTER << N_BTSHFT) | \ + ((x) &N_BTMASK)) +#endif +#ifndef DECREF +#define DECREF(x) ((((x) >> N_TSHIFT) & ~N_BTMASK) | ((x) &N_BTMASK)) +#endif + +#pragma pack(pop) + +#endif // _WIN32 || defined(__CYGWIN__) + +#define CVINFO_PDB70_CVSIGNATURE 0x53445352 // "RSDS" +#define CVINFO_PDB20_CVSIGNATURE 0x3031424e // "NB10" +#define CODEVIEW_SIGNATURE_MTOC 0x434f544d // "MTOC" + +#pragma pack(push, 1) + +typedef struct _CV_HEADER +{ + DWORD dwSignature; + DWORD dwOffset; +} CV_HEADER, *PCV_HEADER; + +typedef struct _CV_INFO_PDB20 +{ + CV_HEADER CvHeader; + DWORD dwSignature; + DWORD dwAge; + BYTE PdbFileName[1]; +} CV_INFO_PDB20, *PCV_INFO_PDB20; + +typedef struct _CV_INFO_PDB70 +{ + DWORD CvSignature; + DWORD Signature[4]; + DWORD Age; + BYTE PdbFileName[1]; +} CV_INFO_PDB70, *PCV_INFO_PDB70; + +typedef struct _MTOC_ENTRY +{ + DWORD Signature; + BYTE uuid[16]; + BYTE PdbFileName[1]; +} MTOC_ENTRY, *PMTOC_ENTRY; + +typedef struct _VERSION_INFO +{ + WORD Length; + WORD ValueLength; + WORD Type; + char Key[0]; +} VERSION_INFO, *PVERSION_INFO; + +#define MAX_PE_CERTS 16 + +#define WIN_CERT_REVISION_1_0 0x0100 +#define WIN_CERT_REVISION_2_0 0x0200 + +#define WIN_CERT_TYPE_X509 0x0001 +#define WIN_CERT_TYPE_PKCS_SIGNED_DATA 0x0002 +#define WIN_CERT_TYPE_RESERVED_1 0x0003 +#define WIN_CERT_TYPE_TS_STACK_SIGNED 0x0004 + +#define WIN_CERTIFICATE_HEADER_SIZE 8 + +typedef struct _WIN_CERTIFICATE +{ + DWORD Length; + WORD Revision; + WORD CertificateType; + BYTE Certificate[0]; +} WIN_CERTIFICATE, *PWIN_CERTIFICATE; + +#define SPC_NESTED_SIGNATURE_OBJID "1.3.6.1.4.1.311.2.4.1" + +// +// Rich signature. +// http://www.ntcore.com/files/richsign.htm +// + +#define RICH_VERSION_ID(id_version) (id_version >> 16) +#define RICH_VERSION_VERSION(id_version) (id_version & 0xFFFF) +#define IMAGE_DEBUG_TYPE_UNKNOWN 0 +#define IMAGE_DEBUG_TYPE_COFF 1 +#define IMAGE_DEBUG_TYPE_CODEVIEW 2 +#define IMAGE_DEBUG_TYPE_FPO 3 +#define IMAGE_DEBUG_TYPE_MISC 4 +#define IMAGE_DEBUG_TYPE_EXCEPTION 5 +#define IMAGE_DEBUG_TYPE_FIXUP 6 +#define IMAGE_DEBUG_TYPE_OMAP_TO_SRC 7 +#define IMAGE_DEBUG_TYPE_OMAP_FROM_SRC 8 +#define IMAGE_DEBUG_TYPE_BORLAND 9 +#define IMAGE_DEBUG_TYPE_RESERVED10 10 +#define IMAGE_DEBUG_TYPE_CLSID 11 +#define IMAGE_DEBUG_TYPE_VC_FEATURE 12 +#define IMAGE_DEBUG_TYPE_POGO 13 +#define IMAGE_DEBUG_TYPE_ILTCG 14 +#define IMAGE_DEBUG_TYPE_MPX 15 +#define IMAGE_DEBUG_TYPE_REPRO 16 + +typedef struct _RICH_VERSION_INFO +{ + DWORD id_version; // tool id and version (use RICH_VERSION_ID and + // RICH_VERSION_VERSION macros) + DWORD times; // number of times this tool was used +} RICH_VERSION_INFO, *PRICH_VERSION_INFO; + +typedef struct _RICH_SIGNATURE +{ + DWORD dans; + DWORD key1; + DWORD key2; + DWORD key3; + RICH_VERSION_INFO versions[0]; +} RICH_SIGNATURE, *PRICH_SIGNATURE; + +#define RICH_DANS 0x536e6144 // "DanS" +#define RICH_RICH 0x68636952 // "Rich" + +#define PE_PAGE_SIZE 0x1000 +#define PE_SECTOR_SIZE 0x0200 + +#pragma pack(pop) + +#endif diff --git a/BLUESPAWN-win-client/headers/yara/pe_utils.h b/BLUESPAWN-win-client/headers/yara/pe_utils.h new file mode 100644 index 00000000..7893ae28 --- /dev/null +++ b/BLUESPAWN-win-client/headers/yara/pe_utils.h @@ -0,0 +1,87 @@ +#ifndef YR_PE_UTILS_H +#define YR_PE_UTILS_H + +#include + +#define MAX_PE_SECTIONS 96 + +#define IS_64BITS_PE(pe) \ + (yr_le16toh(pe->header64->OptionalHeader.Magic) == \ + IMAGE_NT_OPTIONAL_HDR64_MAGIC) + +#define OptionalHeader(pe, field) \ + (IS_64BITS_PE(pe) ? pe->header64->OptionalHeader.field \ + : pe->header->OptionalHeader.field) + +// +// Imports are stored in a linked list. Each node (IMPORTED_DLL) contains the +// name of the DLL and a pointer to another linked list of +// IMPORT_EXPORT_FUNCTION structures containing the details of imported +// functions. +// + +typedef struct _IMPORTED_DLL +{ + char* name; + + struct _IMPORT_FUNCTION* functions; + struct _IMPORTED_DLL* next; + +} IMPORTED_DLL, *PIMPORTED_DLL; + +// +// This is used to track imported and exported functions. The "has_ordinal" +// field is only used in the case of imports as those are optional. Every export +// has an ordinal so we don't need the field there, but in the interest of +// keeping duplicate code to a minimum we use this function for both imports and +// exports. +// + +typedef struct _IMPORT_FUNCTION +{ + char* name; + uint8_t has_ordinal; + uint16_t ordinal; + uint64_t rva; + + struct _IMPORT_FUNCTION* next; + +} IMPORT_FUNCTION, *PIMPORT_FUNCTION; + +typedef struct _PE +{ + const uint8_t* data; + size_t data_size; + + union + { + PIMAGE_NT_HEADERS32 header; + PIMAGE_NT_HEADERS64 header64; + }; + + YR_HASH_TABLE* hash_table; + YR_OBJECT* object; + IMPORTED_DLL* imported_dlls; + IMPORTED_DLL* delay_imported_dlls; + + uint32_t resources; + uint32_t version_infos; + +} PE; + +#define fits_in_pe(pe, pointer, size) \ + ((size_t)(size) <= pe->data_size && (uint8_t*) (pointer) >= pe->data && \ + (uint8_t*) (pointer) <= pe->data + pe->data_size - (size)) + +#define struct_fits_in_pe(pe, pointer, struct_type) \ + fits_in_pe(pe, pointer, sizeof(struct_type)) + +PIMAGE_NT_HEADERS32 pe_get_header(const uint8_t* data, size_t data_size); + +PIMAGE_DATA_DIRECTORY pe_get_directory_entry(PE* pe, int entry); + +int64_t pe_rva_to_offset(PE* pe, uint64_t rva); + +char* ord_lookup(char* dll, uint16_t ord); + +#endif diff --git a/BLUESPAWN-win-client/headers/yara/proc.h b/BLUESPAWN-win-client/headers/yara/proc.h new file mode 100644 index 00000000..2e6486c2 --- /dev/null +++ b/BLUESPAWN-win-client/headers/yara/proc.h @@ -0,0 +1,58 @@ +/* +Copyright (c) 2007. The YARA Authors. All Rights Reserved. + +Redistribution and use in source and binary forms, with or without modification, +are permitted provided that the following conditions are met: + +1. Redistributions of source code must retain the above copyright notice, this +list of conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright notice, +this list of conditions and the following disclaimer in the documentation and/or +other materials provided with the distribution. + +3. Neither the name of the copyright holder nor the names of its contributors +may be used to endorse or promote products derived from this software without +specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR +ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ + +#ifndef YR_PROC_H +#define YR_PROC_H + +#include + +typedef struct _YR_PROC_ITERATOR_CTX +{ + const uint8_t* buffer; + size_t buffer_size; + YR_MEMORY_BLOCK current_block; + void* proc_info; +} YR_PROC_ITERATOR_CTX; + +YR_API int yr_process_open_iterator( + int pid, + YR_MEMORY_BLOCK_ITERATOR* iterator); + +YR_API int yr_process_close_iterator(YR_MEMORY_BLOCK_ITERATOR* iterator); + +YR_API YR_MEMORY_BLOCK* yr_process_get_first_memory_block( + YR_MEMORY_BLOCK_ITERATOR* iterator); + +YR_API YR_MEMORY_BLOCK* yr_process_get_next_memory_block( + YR_MEMORY_BLOCK_ITERATOR* iterator); + +YR_API const uint8_t* yr_process_fetch_memory_block_data( + YR_MEMORY_BLOCK* block); + +#endif diff --git a/BLUESPAWN-win-client/headers/yara/re.h b/BLUESPAWN-win-client/headers/yara/re.h new file mode 100644 index 00000000..1098c27c --- /dev/null +++ b/BLUESPAWN-win-client/headers/yara/re.h @@ -0,0 +1,171 @@ +/* +Copyright (c) 2013. The YARA Authors. All Rights Reserved. + +Redistribution and use in source and binary forms, with or without modification, +are permitted provided that the following conditions are met: + +1. Redistributions of source code must retain the above copyright notice, this +list of conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright notice, +this list of conditions and the following disclaimer in the documentation and/or +other materials provided with the distribution. + +3. Neither the name of the copyright holder nor the names of its contributors +may be used to endorse or promote products derived from this software without +specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR +ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ + +#ifndef YR_RE_H +#define YR_RE_H + +#include +#include +#include +#include +#include + +#define RE_MAX_RANGE INT16_MAX + +#define RE_NODE_LITERAL 1 +#define RE_NODE_MASKED_LITERAL 2 +#define RE_NODE_ANY 3 +#define RE_NODE_CONCAT 4 +#define RE_NODE_ALT 5 +#define RE_NODE_RANGE 6 +#define RE_NODE_STAR 7 +#define RE_NODE_PLUS 8 +#define RE_NODE_CLASS 9 +#define RE_NODE_WORD_CHAR 10 +#define RE_NODE_NON_WORD_CHAR 11 +#define RE_NODE_SPACE 12 +#define RE_NODE_NON_SPACE 13 +#define RE_NODE_DIGIT 14 +#define RE_NODE_NON_DIGIT 15 +#define RE_NODE_EMPTY 16 +#define RE_NODE_ANCHOR_START 17 +#define RE_NODE_ANCHOR_END 18 +#define RE_NODE_WORD_BOUNDARY 19 +#define RE_NODE_NON_WORD_BOUNDARY 20 +#define RE_NODE_RANGE_ANY 21 +#define RE_NODE_NOT_LITERAL 22 +#define RE_NODE_MASKED_NOT_LITERAL 23 + +#define RE_OPCODE_ANY 0xA0 +#define RE_OPCODE_LITERAL 0xA2 +#define RE_OPCODE_MASKED_LITERAL 0xA4 +#define RE_OPCODE_CLASS 0xA5 +#define RE_OPCODE_WORD_CHAR 0xA7 +#define RE_OPCODE_NON_WORD_CHAR 0xA8 +#define RE_OPCODE_SPACE 0xA9 +#define RE_OPCODE_NON_SPACE 0xAA +#define RE_OPCODE_DIGIT 0xAB +#define RE_OPCODE_NON_DIGIT 0xAC +#define RE_OPCODE_MATCH 0xAD +#define RE_OPCODE_NOT_LITERAL 0xAE +#define RE_OPCODE_MASKED_NOT_LITERAL 0xAF + +#define RE_OPCODE_MATCH_AT_END 0xB0 +#define RE_OPCODE_MATCH_AT_START 0xB1 +#define RE_OPCODE_WORD_BOUNDARY 0xB2 +#define RE_OPCODE_NON_WORD_BOUNDARY 0xB3 +#define RE_OPCODE_REPEAT_ANY_GREEDY 0xB4 +#define RE_OPCODE_REPEAT_ANY_UNGREEDY 0xB5 + +#define RE_OPCODE_SPLIT_A 0xC0 +#define RE_OPCODE_SPLIT_B 0xC1 +#define RE_OPCODE_JUMP 0xC2 +#define RE_OPCODE_REPEAT_START_GREEDY 0xC3 +#define RE_OPCODE_REPEAT_END_GREEDY 0xC4 +#define RE_OPCODE_REPEAT_START_UNGREEDY 0xC5 +#define RE_OPCODE_REPEAT_END_UNGREEDY 0xC6 + +#define RE_FLAGS_FAST_REGEXP 0x02 +#define RE_FLAGS_BACKWARDS 0x04 +#define RE_FLAGS_EXHAUSTIVE 0x08 +#define RE_FLAGS_WIDE 0x10 +#define RE_FLAGS_NO_CASE 0x20 +#define RE_FLAGS_SCAN 0x40 +#define RE_FLAGS_DOT_ALL 0x80 +#define RE_FLAGS_GREEDY 0x400 +#define RE_FLAGS_UNGREEDY 0x800 + +typedef int RE_MATCH_CALLBACK_FUNC( + const uint8_t* match, + int match_length, + int flags, + void* args); + +int yr_re_ast_create(RE_AST** re_ast); + +void yr_re_ast_destroy(RE_AST* re_ast); + +void yr_re_ast_print(RE_AST* re_ast); + +SIZED_STRING* yr_re_ast_extract_literal(RE_AST* re_ast); + +int yr_re_ast_has_unbounded_quantifier_for_dot(RE_AST* re_ast); + +int yr_re_ast_split_at_chaining_point( + RE_AST* re_ast, + RE_AST** remainder_re_ast, + int32_t* min_gap, + int32_t* max_gap); + +int yr_re_ast_emit_code(RE_AST* re_ast, YR_ARENA* arena, int backwards_code); + +RE_NODE* yr_re_node_create(int type); + +void yr_re_node_destroy(RE_NODE* node); + +void yr_re_node_append_child(RE_NODE* node, RE_NODE* child); + +void yr_re_node_prepend_child(RE_NODE* node, RE_NODE* child); + +int yr_re_exec( + YR_SCAN_CONTEXT* context, + const uint8_t* code, + const uint8_t* input_data, + size_t input_forwards_size, + size_t input_backwards_size, + int flags, + RE_MATCH_CALLBACK_FUNC callback, + void* callback_args, + int* matches); + +int yr_re_fast_exec( + YR_SCAN_CONTEXT* context, + const uint8_t* code, + const uint8_t* input_data, + size_t input_forwards_size, + size_t input_backwards_size, + int flags, + RE_MATCH_CALLBACK_FUNC callback, + void* callback_args, + int* matches); + +int yr_re_parse(const char* re_string, RE_AST** re_ast, RE_ERROR* error); + +int yr_re_parse_hex(const char* hex_string, RE_AST** re_ast, RE_ERROR* error); + +int yr_re_compile( + const char* re_string, + int flags, + YR_ARENA* arena, + YR_ARENA_REF* ref, + RE_ERROR* error); + +int yr_re_match(YR_SCAN_CONTEXT* context, RE* re, const char* target); + +#endif diff --git a/BLUESPAWN-win-client/headers/yara/re_lexer.h b/BLUESPAWN-win-client/headers/yara/re_lexer.h new file mode 100644 index 00000000..297aa031 --- /dev/null +++ b/BLUESPAWN-win-client/headers/yara/re_lexer.h @@ -0,0 +1,101 @@ +/* +Copyright (c) 2013. The YARA Authors. All Rights Reserved. + +Redistribution and use in source and binary forms, with or without modification, +are permitted provided that the following conditions are met: + +1. Redistributions of source code must retain the above copyright notice, this +list of conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright notice, +this list of conditions and the following disclaimer in the documentation and/or +other materials provided with the distribution. + +3. Neither the name of the copyright holder nor the names of its contributors +may be used to endorse or promote products derived from this software without +specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR +ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ + +#undef yyparse +#undef yylex +#undef yyerror +#undef yyfatal +#undef yychar +#undef yydebug +#undef yynerrs +#undef yyget_extra +#undef yyget_lineno + +#undef YY_FATAL_ERROR +#undef YY_DECL +#undef LEX_ENV + +#define yyparse re_yyparse +#define yylex re_yylex +#define yyerror re_yyerror +#define yyfatal re_yyfatal +#define yychar re_yychar +#define yydebug re_yydebug +#define yynerrs re_yynerrs +#define yyget_extra re_yyget_extra +#define yyget_lineno re_yyget_lineno + +#ifndef YY_TYPEDEF_YY_SCANNER_T +#define YY_TYPEDEF_YY_SCANNER_T +typedef void* yyscan_t; +#endif + +#define YY_EXTRA_TYPE RE_AST* +#define YY_USE_CONST + +typedef struct _RE_LEX_ENVIRONMENT +{ + RE_CLASS re_class; + int last_error; + char last_error_message[256]; + +} RE_LEX_ENVIRONMENT; + +#define LEX_ENV ((RE_LEX_ENVIRONMENT*) lex_env) + +// The default behavior when a fatal error occurs in the parser is calling +// exit(YY_EXIT_FAILURE) for terminating the process. This is not acceptable +// for a library, which should return gracefully to the calling program. For +// this reason we redefine the YY_FATAL_ERROR macro so that it expands to our +// own function instead of the one provided by default. +#define YY_FATAL_ERROR(msg) re_yyfatal(yyscanner, msg) + +#include + +#define YY_DECL \ + int re_yylex( \ + YYSTYPE* yylval_param, yyscan_t yyscanner, RE_LEX_ENVIRONMENT* lex_env) + +YY_EXTRA_TYPE yyget_extra(yyscan_t yyscanner); + +int yylex( + YYSTYPE* yylval_param, + yyscan_t yyscanner, + RE_LEX_ENVIRONMENT* lex_env); + +void yyerror( + yyscan_t yyscanner, + RE_LEX_ENVIRONMENT* lex_env, + const char* error_message); + +void yyfatal(yyscan_t yyscanner, const char* error_message); + +int yyparse(void* yyscanner, RE_LEX_ENVIRONMENT* lex_env); + +int yr_parse_re_string(const char* re_string, RE_AST** re_ast, RE_ERROR* error); diff --git a/BLUESPAWN-win-client/headers/yara/rules.h b/BLUESPAWN-win-client/headers/yara/rules.h new file mode 100644 index 00000000..2606e93c --- /dev/null +++ b/BLUESPAWN-win-client/headers/yara/rules.h @@ -0,0 +1,155 @@ +/* +Copyright (c) 2014. The YARA Authors. All Rights Reserved. + +Redistribution and use in source and binary forms, with or without modification, +are permitted provided that the following conditions are met: + +1. Redistributions of source code must retain the above copyright notice, this +list of conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright notice, +this list of conditions and the following disclaimer in the documentation and/or +other materials provided with the distribution. + +3. Neither the name of the copyright holder nor the names of its contributors +may be used to endorse or promote products derived from this software without +specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR +ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ + +#ifndef YR_RULES_H +#define YR_RULES_H + +#include +#include +#include +#include + +#define CALLBACK_MSG_RULE_MATCHING 1 +#define CALLBACK_MSG_RULE_NOT_MATCHING 2 +#define CALLBACK_MSG_SCAN_FINISHED 3 +#define CALLBACK_MSG_IMPORT_MODULE 4 +#define CALLBACK_MSG_MODULE_IMPORTED 5 +#define CALLBACK_MSG_TOO_MANY_MATCHES 6 +#define CALLBACK_MSG_CONSOLE_LOG 7 +#define CALLBACK_MSG_TOO_SLOW_SCANNING 8 + +#define CALLBACK_CONTINUE 0 +#define CALLBACK_ABORT 1 +#define CALLBACK_ERROR 2 + +#define yr_rule_tags_foreach(rule, tag_name) \ + for (tag_name = rule->tags; tag_name != NULL && *tag_name != '\0'; \ + tag_name += strlen(tag_name) + 1) + +#define yr_rule_metas_foreach(rule, meta) \ + for (meta = rule->metas; meta != NULL; \ + meta = META_IS_LAST_IN_RULE(meta) ? NULL : meta + 1) + +#define yr_rule_strings_foreach(rule, string) \ + for (string = rule->strings; string != NULL; \ + string = STRING_IS_LAST_IN_RULE(string) ? NULL : string + 1) + +#define yr_string_matches_foreach(context, string, match) \ + for (match = context->matches[string->idx].head; match != NULL; \ + match = match->next) \ + /* private matches are skipped */ \ + if (match->is_private) \ + { \ + continue; \ + } \ + else /* user code block goes here */ + +#define yr_rules_foreach(rules, rule) \ + for (rule = rules->rules_table; !RULE_IS_NULL(rule); rule++) + +YR_API int yr_rules_scan_mem_blocks( + YR_RULES* rules, + YR_MEMORY_BLOCK_ITERATOR* iterator, + int flags, + YR_CALLBACK_FUNC callback, + void* user_data, + int timeout); + +YR_API int yr_rules_scan_mem( + YR_RULES* rules, + const uint8_t* buffer, + size_t buffer_size, + int flags, + YR_CALLBACK_FUNC callback, + void* user_data, + int timeout); + +YR_API int yr_rules_scan_file( + YR_RULES* rules, + const char* filename, + int flags, + YR_CALLBACK_FUNC callback, + void* user_data, + int timeout); + +YR_API int yr_rules_scan_fd( + YR_RULES* rules, + YR_FILE_DESCRIPTOR fd, + int flags, + YR_CALLBACK_FUNC callback, + void* user_data, + int timeout); + +YR_API int yr_rules_scan_proc( + YR_RULES* rules, + int pid, + int flags, + YR_CALLBACK_FUNC callback, + void* user_data, + int timeout); + +YR_API int yr_rules_save(YR_RULES* rules, const char* filename); + +YR_API int yr_rules_save_stream(YR_RULES* rules, YR_STREAM* stream); + +YR_API int yr_rules_load(const char* filename, YR_RULES** rules); + +YR_API int yr_rules_load_stream(YR_STREAM* stream, YR_RULES** rules); + +YR_API int yr_rules_destroy(YR_RULES* rules); + +YR_API int yr_rules_define_integer_variable( + YR_RULES* rules, + const char* identifier, + int64_t value); + +YR_API int yr_rules_define_boolean_variable( + YR_RULES* rules, + const char* identifier, + int value); + +YR_API int yr_rules_define_float_variable( + YR_RULES* rules, + const char* identifier, + double value); + +YR_API int yr_rules_define_string_variable( + YR_RULES* rules, + const char* identifier, + const char* value); + +YR_API int yr_rules_get_stats(YR_RULES* rules, YR_RULES_STATS* stats); + +YR_API void yr_rule_disable(YR_RULE* rule); + +YR_API void yr_rule_enable(YR_RULE* rule); + +int yr_rules_from_arena(YR_ARENA* arena, YR_RULES** rules); + +#endif diff --git a/BLUESPAWN-win-client/headers/yara/scan.h b/BLUESPAWN-win-client/headers/yara/scan.h new file mode 100644 index 00000000..e9696612 --- /dev/null +++ b/BLUESPAWN-win-client/headers/yara/scan.h @@ -0,0 +1,52 @@ +/* +Copyright (c) 2014. The YARA Authors. All Rights Reserved. + +Redistribution and use in source and binary forms, with or without modification, +are permitted provided that the following conditions are met: + +1. Redistributions of source code must retain the above copyright notice, this +list of conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright notice, +this list of conditions and the following disclaimer in the documentation and/or +other materials provided with the distribution. + +3. Neither the name of the copyright holder nor the names of its contributors +may be used to endorse or promote products derived from this software without +specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR +ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ + +#ifndef YR_SCAN_H +#define YR_SCAN_H + +#include + +// +// Flags used with yr_scanner_set_flags and yr_rules_scan_xxx functions. +// +#define SCAN_FLAGS_FAST_MODE 1 +#define SCAN_FLAGS_PROCESS_MEMORY 2 +#define SCAN_FLAGS_NO_TRYCATCH 4 +#define SCAN_FLAGS_REPORT_RULES_MATCHING 8 +#define SCAN_FLAGS_REPORT_RULES_NOT_MATCHING 16 + +int yr_scan_verify_match( + YR_SCAN_CONTEXT* context, + YR_AC_MATCH* ac_match, + const uint8_t* data, + size_t data_size, + uint64_t data_base, + size_t offset); + +#endif diff --git a/BLUESPAWN-win-client/headers/yara/scanner.h b/BLUESPAWN-win-client/headers/yara/scanner.h new file mode 100644 index 00000000..070a86b3 --- /dev/null +++ b/BLUESPAWN-win-client/headers/yara/scanner.h @@ -0,0 +1,98 @@ +/* +Copyright (c) 2018. The YARA Authors. All Rights Reserved. + +Redistribution and use in source and binary forms, with or without modification, +are permitted provided that the following conditions are met: + +1. Redistributions of source code must retain the above copyright notice, this +list of conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright notice, +this list of conditions and the following disclaimer in the documentation and/or +other materials provided with the distribution. + +3. Neither the name of the copyright holder nor the names of its contributors +may be used to endorse or promote products derived from this software without +specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR +ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ + +#ifndef YR_SCANNER_H +#define YR_SCANNER_H + +#include +#include +#include + +typedef YR_SCAN_CONTEXT YR_SCANNER; + +YR_API int yr_scanner_create(YR_RULES* rules, YR_SCANNER** scanner); + +YR_API void yr_scanner_destroy(YR_SCANNER* scanner); + +YR_API void yr_scanner_set_callback( + YR_SCANNER* scanner, + YR_CALLBACK_FUNC callback, + void* user_data); + +YR_API void yr_scanner_set_timeout(YR_SCANNER* scanner, int timeout); + +YR_API void yr_scanner_set_flags(YR_SCANNER* scanner, int flags); + +YR_API int yr_scanner_define_integer_variable( + YR_SCANNER* scanner, + const char* identifier, + int64_t value); + +YR_API int yr_scanner_define_boolean_variable( + YR_SCANNER* scanner, + const char* identifier, + int value); + +YR_API int yr_scanner_define_float_variable( + YR_SCANNER* scanner, + const char* identifier, + double value); + +YR_API int yr_scanner_define_string_variable( + YR_SCANNER* scanner, + const char* identifier, + const char* value); + +YR_API int yr_scanner_scan_mem_blocks( + YR_SCANNER* scanner, + YR_MEMORY_BLOCK_ITERATOR* iterator); + +YR_API int yr_scanner_scan_mem( + YR_SCANNER* scanner, + const uint8_t* buffer, + size_t buffer_size); + +YR_API int yr_scanner_scan_file(YR_SCANNER* scanner, const char* filename); + +YR_API int yr_scanner_scan_fd(YR_SCANNER* scanner, YR_FILE_DESCRIPTOR fd); + +YR_API int yr_scanner_scan_proc(YR_SCANNER* scanner, int pid); + +YR_API YR_RULE* yr_scanner_last_error_rule(YR_SCANNER* scanner); + +YR_API YR_STRING* yr_scanner_last_error_string(YR_SCANNER* scanner); + +YR_API YR_RULE_PROFILING_INFO* yr_scanner_get_profiling_info( + YR_SCANNER* scanner); + +YR_API void yr_scanner_reset_profiling_info(YR_SCANNER* scanner); + +YR_API int yr_scanner_print_profiling_info(YR_SCANNER* scanner); + +#endif diff --git a/BLUESPAWN-win-client/headers/yara/simple_str.h b/BLUESPAWN-win-client/headers/yara/simple_str.h new file mode 100644 index 00000000..0c73cb4d --- /dev/null +++ b/BLUESPAWN-win-client/headers/yara/simple_str.h @@ -0,0 +1,21 @@ +#ifndef _SIMPLESTR_H +#define _SIMPLESTR_H + +#include + +/* Simple dynamic string implementation for more readable/maintainable code + Can be further optimized */ +typedef struct _SIMPLE_STR +{ + uint32_t len; + uint32_t cap; + char* str; +} SIMPLE_STR, *PSIMPLE_STR; + +SIMPLE_STR* sstr_new(const char* s); +SIMPLE_STR* sstr_newf(const char* fmt, ...); +void sstr_free(SIMPLE_STR* ss); +bool sstr_appendf(SIMPLE_STR* ss, const char* fmt, ...); +char* sstr_move(SIMPLE_STR* ss); + +#endif \ No newline at end of file diff --git a/BLUESPAWN-win-client/headers/yara/sizedstr.h b/BLUESPAWN-win-client/headers/yara/sizedstr.h new file mode 100644 index 00000000..6aa2e202 --- /dev/null +++ b/BLUESPAWN-win-client/headers/yara/sizedstr.h @@ -0,0 +1,87 @@ +/* +Copyright (c) 2007-2014. The YARA Authors. All Rights Reserved. + +Redistribution and use in source and binary forms, with or without modification, +are permitted provided that the following conditions are met: + +1. Redistributions of source code must retain the above copyright notice, this +list of conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright notice, +this list of conditions and the following disclaimer in the documentation and/or +other materials provided with the distribution. + +3. Neither the name of the copyright holder nor the names of its contributors +may be used to endorse or promote products derived from this software without +specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR +ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ + +#ifndef _SIZEDSTR_H +#define _SIZEDSTR_H + +#include +#include + +// SIZED_STRING_FLAGS_NO_CASE indicates that the has been decorated with +// the "nocase" modifier or with the /i modifier in the case of regular +// expressions. +#define SIZED_STRING_FLAGS_NO_CASE 1 + +// SIZED_STRING_FLAGS_DOT_ALL is used for strings that contain a regular +// expression that had the /s modifier. +#define SIZED_STRING_FLAGS_DOT_ALL 2 + + +#pragma pack(push) +#pragma pack(1) + +// +// This struct is used to support strings containing null chars. The length of +// the string is stored along the string data. However the string data is also +// terminated with a null char. +// +typedef struct _SIZED_STRING +{ + uint32_t length; + uint32_t flags; + + char c_string[1]; + +} SIZED_STRING; + +#pragma pack(pop) + +int ss_compare(SIZED_STRING* s1, SIZED_STRING* s2); + +int ss_icompare(SIZED_STRING* s1, SIZED_STRING* s2); + +bool ss_contains(SIZED_STRING* s1, SIZED_STRING* s2); + +bool ss_icontains(SIZED_STRING* s1, SIZED_STRING* s2); + +bool ss_startswith(SIZED_STRING* s1, SIZED_STRING* s2); + +bool ss_istartswith(SIZED_STRING* s1, SIZED_STRING* s2); + +bool ss_endswith(SIZED_STRING* s1, SIZED_STRING* s2); + +bool ss_iendswith(SIZED_STRING* s1, SIZED_STRING* s2); + +SIZED_STRING* ss_dup(SIZED_STRING* s); + +SIZED_STRING* ss_new(const char* s); + +SIZED_STRING* ss_convert_to_wide(SIZED_STRING* s); + +#endif diff --git a/BLUESPAWN-win-client/headers/yara/stack.h b/BLUESPAWN-win-client/headers/yara/stack.h new file mode 100644 index 00000000..ea6aaa64 --- /dev/null +++ b/BLUESPAWN-win-client/headers/yara/stack.h @@ -0,0 +1,60 @@ +/* +Copyright (c) 2018. The YARA Authors. All Rights Reserved. + +Redistribution and use in source and binary forms, with or without modification, +are permitted provided that the following conditions are met: + +1. Redistributions of source code must retain the above copyright notice, this +list of conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright notice, +this list of conditions and the following disclaimer in the documentation and/or +other materials provided with the distribution. + +3. Neither the name of the copyright holder nor the names of its contributors +may be used to endorse or promote products derived from this software without +specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR +ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ + +#ifndef YR_STACK_H +#define YR_STACK_H + +typedef struct YR_STACK YR_STACK; + +struct YR_STACK +{ + // Pointer to a heap-allocated array containing the void* values put in + // in the stack. This array starts with a fixed size and it's grown as + // required when new items are pushed into the stack. + void* items; + + // Current capacity (i.e: the number of items that fit into the array) + int capacity; + + // Size of each individual item in the stack. + int item_size; + + // Index of the stack's top in the items array. + int top; +}; + +int yr_stack_create(int initial_capacity, int item_size, YR_STACK** stack); + +void yr_stack_destroy(YR_STACK* stack); + +int yr_stack_push(YR_STACK* stack, void* item); + +int yr_stack_pop(YR_STACK* stack, void* item); + +#endif diff --git a/BLUESPAWN-win-client/headers/yara/stopwatch.h b/BLUESPAWN-win-client/headers/yara/stopwatch.h new file mode 100644 index 00000000..d1144722 --- /dev/null +++ b/BLUESPAWN-win-client/headers/yara/stopwatch.h @@ -0,0 +1,81 @@ +/* +Copyright (c) 2017. The YARA Authors. All Rights Reserved. + +Redistribution and use in source and binary forms, with or without modification, +are permitted provided that the following conditions are met: + +1. Redistributions of source code must retain the above copyright notice, this +list of conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright notice, +this list of conditions and the following disclaimer in the documentation and/or +other materials provided with the distribution. + +3. Neither the name of the copyright holder nor the names of its contributors +may be used to endorse or promote products derived from this software without +specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR +ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ + +#ifndef YR_STOPWATCH_H +#define YR_STOPWATCH_H + +#include +#include + +#if defined(_WIN32) + +#include + +typedef struct _YR_STOPWATCH +{ + LARGE_INTEGER frequency; + LARGE_INTEGER start; + +} YR_STOPWATCH; + +#elif defined(__APPLE__) && defined(__MACH__) + +#include + +typedef struct _YR_STOPWATCH +{ + mach_timebase_info_data_t timebase; + uint64_t start; + +} YR_STOPWATCH; + +#else + +#include + +typedef struct _YR_STOPWATCH +{ + union + { + struct timeval tv_start; + struct timespec ts_start; + }; + +} YR_STOPWATCH; + +#endif + +// yr_stopwatch_start starts measuring time. +void yr_stopwatch_start(YR_STOPWATCH* stopwatch); + +// yr_stopwatch_elapsed_ns returns the number of nanoseconds elapsed +// since the last call to yr_stopwatch_start. +uint64_t yr_stopwatch_elapsed_ns(YR_STOPWATCH* stopwatch); + +#endif diff --git a/BLUESPAWN-win-client/headers/yara/stream.h b/BLUESPAWN-win-client/headers/yara/stream.h new file mode 100644 index 00000000..b81e7950 --- /dev/null +++ b/BLUESPAWN-win-client/headers/yara/stream.h @@ -0,0 +1,64 @@ +/* +Copyright (c) 2015. The YARA Authors. All Rights Reserved. + +Redistribution and use in source and binary forms, with or without modification, +are permitted provided that the following conditions are met: + +1. Redistributions of source code must retain the above copyright notice, this +list of conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright notice, +this list of conditions and the following disclaimer in the documentation and/or +other materials provided with the distribution. + +3. Neither the name of the copyright holder nor the names of its contributors +may be used to endorse or promote products derived from this software without +specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR +ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ + +#ifndef YR_STREAM_H +#define YR_STREAM_H + +#include + +typedef size_t (*YR_STREAM_READ_FUNC)( + void* ptr, + size_t size, + size_t count, + void* user_data); + +typedef size_t (*YR_STREAM_WRITE_FUNC)( + const void* ptr, + size_t size, + size_t count, + void* user_data); + +typedef struct _YR_STREAM +{ + void* user_data; + + YR_STREAM_READ_FUNC read; + YR_STREAM_WRITE_FUNC write; + +} YR_STREAM; + +size_t yr_stream_read(void* ptr, size_t size, size_t count, YR_STREAM* stream); + +size_t yr_stream_write( + const void* ptr, + size_t size, + size_t count, + YR_STREAM* stream); + +#endif diff --git a/BLUESPAWN-win-client/headers/yara/strutils.h b/BLUESPAWN-win-client/headers/yara/strutils.h new file mode 100644 index 00000000..c56b9cf2 --- /dev/null +++ b/BLUESPAWN-win-client/headers/yara/strutils.h @@ -0,0 +1,116 @@ +/* +Copyright (c) 2007-2014. The YARA Authors. All Rights Reserved. + +Redistribution and use in source and binary forms, with or without modification, +are permitted provided that the following conditions are met: + +1. Redistributions of source code must retain the above copyright notice, this +list of conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright notice, +this list of conditions and the following disclaimer in the documentation and/or +other materials provided with the distribution. + +3. Neither the name of the copyright holder nor the names of its contributors +may be used to endorse or promote products derived from this software without +specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR +ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ + +#ifndef YR_STRUTILS_H +#define YR_STRUTILS_H + +#include +#include +#include +#include +#include + +#if defined(_WIN32) + +#if !defined(PRIu64) +#define PRIu64 "I64u" +#endif + +#if !defined(PRIu32) +#define PRIu32 "I32u" +#endif + +#if !defined(PRIx64) +#define PRIx64 "I64x" +#endif + +#if !defined(PRId64) +#define PRId64 "I64d" +#endif + +#if !defined(PRIi32) +#define PRIi32 "I32i" +#endif + +#if !defined(PRIi64) +#define PRIi64 "I64i" +#endif + +#if !defined(PRIo64) +#define PRIo64 "I64o" +#endif + +#else +#include +#endif + +// Cygwin already has these functions. +#if defined(_WIN32) && !defined(__CYGWIN__) +#if defined(_MSC_VER) && _MSC_VER < 1900 + +#if !defined(snprintf) +#define snprintf _snprintf +#endif + +#endif +#define strcasecmp _stricmp +#define strncasecmp _strnicmp +#endif + +uint64_t xtoi(const char* hexstr); + +#if !HAVE_STRLCPY && !defined(strlcpy) +size_t strlcpy(char* dst, const char* src, size_t size); +#endif + +#if !HAVE_STRLCAT && !defined(strlcat) +size_t strlcat(char* dst, const char* src, size_t size); +#endif + +#if !HAVE_MEMMEM && !defined(memmem) +void* memmem( + const void* haystack, + size_t haystack_size, + const void* needle, + size_t needle_size); +#endif + +int strnlen_w(const char* w_str); + +int strcmp_w(const char* w_str, const char* str); + +size_t strlcpy_w(char* dst, const char* w_src, size_t n); + +#endif + +int yr_isalnum(const uint8_t* s); + +void yr_vasprintf(char** strp, const char* fmt, va_list ap); + +void yr_asprintf(char** strp, const char* fmt, ...); diff --git a/BLUESPAWN-win-client/headers/yara/threading.h b/BLUESPAWN-win-client/headers/yara/threading.h new file mode 100644 index 00000000..61e4f2c0 --- /dev/null +++ b/BLUESPAWN-win-client/headers/yara/threading.h @@ -0,0 +1,67 @@ +/* +Copyright (c) 2016. The YARA Authors. All Rights Reserved. + +Redistribution and use in source and binary forms, with or without modification, +are permitted provided that the following conditions are met: + +1. Redistributions of source code must retain the above copyright notice, this +list of conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright notice, +this list of conditions and the following disclaimer in the documentation and/or +other materials provided with the distribution. + +3. Neither the name of the copyright holder nor the names of its contributors +may be used to endorse or promote products derived from this software without +specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR +ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ + +#ifndef YR_MUTEX_H +#define YR_MUTEX_H + +#if defined(_WIN32) || defined(__CYGWIN__) + +#include + +typedef DWORD YR_THREAD_ID; +typedef DWORD YR_THREAD_STORAGE_KEY; +typedef HANDLE YR_MUTEX; + +#define YR_TLS __declspec(thread) + +#else + +#include + +typedef pthread_t YR_THREAD_ID; +typedef pthread_key_t YR_THREAD_STORAGE_KEY; +typedef pthread_mutex_t YR_MUTEX; + +#define YR_TLS __thread + +#endif + +YR_THREAD_ID yr_current_thread_id(void); + +int yr_mutex_create(YR_MUTEX*); +int yr_mutex_destroy(YR_MUTEX*); +int yr_mutex_lock(YR_MUTEX*); +int yr_mutex_unlock(YR_MUTEX*); + +int yr_thread_storage_create(YR_THREAD_STORAGE_KEY*); +int yr_thread_storage_destroy(YR_THREAD_STORAGE_KEY*); +int yr_thread_storage_set_value(YR_THREAD_STORAGE_KEY*, void*); +void* yr_thread_storage_get_value(YR_THREAD_STORAGE_KEY*); + +#endif diff --git a/BLUESPAWN-win-client/headers/yara/types.h b/BLUESPAWN-win-client/headers/yara/types.h new file mode 100644 index 00000000..2d3b1340 --- /dev/null +++ b/BLUESPAWN-win-client/headers/yara/types.h @@ -0,0 +1,1032 @@ +/* +Copyright (c) 2013. The YARA Authors. All Rights Reserved. + +Redistribution and use in source and binary forms, with or without modification, +are permitted provided that the following conditions are met: + +1. Redistributions of source code must retain the above copyright notice, this +list of conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright notice, +this list of conditions and the following disclaimer in the documentation and/or +other materials provided with the distribution. + +3. Neither the name of the copyright holder nor the names of its contributors +may be used to endorse or promote products derived from this software without +specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR +ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ + +#ifndef YR_TYPES_H +#define YR_TYPES_H + +#include +#include +#include +#include +#include +#include +#include +#include + +#include "notebook.h" + +#define DECLARE_REFERENCE(type, name) \ + union \ + { \ + type name; \ + YR_ARENA_REF name##_; \ + } YR_ALIGN(8) + +// Flags for YR_RULE +#define RULE_FLAGS_PRIVATE 0x01 +#define RULE_FLAGS_GLOBAL 0x02 +#define RULE_FLAGS_NULL 0x04 +#define RULE_FLAGS_DISABLED 0x08 + +#define RULE_IS_PRIVATE(x) (((x)->flags) & RULE_FLAGS_PRIVATE) + +#define RULE_IS_GLOBAL(x) (((x)->flags) & RULE_FLAGS_GLOBAL) + +#define RULE_IS_NULL(x) (((x)->flags) & RULE_FLAGS_NULL) + +#define RULE_IS_DISABLED(x) (((x)->flags) & RULE_FLAGS_DISABLED) + +// Flags for YR_STRING +#define STRING_FLAGS_REFERENCED 0x01 +#define STRING_FLAGS_HEXADECIMAL 0x02 +#define STRING_FLAGS_NO_CASE 0x04 +#define STRING_FLAGS_ASCII 0x08 +#define STRING_FLAGS_WIDE 0x10 +#define STRING_FLAGS_REGEXP 0x20 +#define STRING_FLAGS_FAST_REGEXP 0x40 +#define STRING_FLAGS_FULL_WORD 0x80 +#define STRING_FLAGS_ANONYMOUS 0x100 +#define STRING_FLAGS_SINGLE_MATCH 0x200 +#define STRING_FLAGS_LITERAL 0x400 +#define STRING_FLAGS_FITS_IN_ATOM 0x800 +#define STRING_FLAGS_LAST_IN_RULE 0x1000 +#define STRING_FLAGS_CHAIN_PART 0x2000 +#define STRING_FLAGS_CHAIN_TAIL 0x4000 +#define STRING_FLAGS_FIXED_OFFSET 0x8000 +#define STRING_FLAGS_GREEDY_REGEXP 0x10000 +#define STRING_FLAGS_DOT_ALL 0x20000 +#define STRING_FLAGS_DISABLED 0x40000 +#define STRING_FLAGS_XOR 0x80000 +#define STRING_FLAGS_PRIVATE 0x100000 +#define STRING_FLAGS_BASE64 0x200000 +#define STRING_FLAGS_BASE64_WIDE 0x400000 + +#define STRING_IS_HEX(x) (((x)->flags) & STRING_FLAGS_HEXADECIMAL) + +#define STRING_IS_NO_CASE(x) (((x)->flags) & STRING_FLAGS_NO_CASE) + +#define STRING_IS_DOT_ALL(x) (((x)->flags) & STRING_FLAGS_DOT_ALL) + +#define STRING_IS_ASCII(x) (((x)->flags) & STRING_FLAGS_ASCII) + +#define STRING_IS_WIDE(x) (((x)->flags) & STRING_FLAGS_WIDE) + +#define STRING_IS_REGEXP(x) (((x)->flags) & STRING_FLAGS_REGEXP) + +#define STRING_IS_GREEDY_REGEXP(x) (((x)->flags) & STRING_FLAGS_GREEDY_REGEXP) + +#define STRING_IS_FULL_WORD(x) (((x)->flags) & STRING_FLAGS_FULL_WORD) + +#define STRING_IS_ANONYMOUS(x) (((x)->flags) & STRING_FLAGS_ANONYMOUS) + +#define STRING_IS_REFERENCED(x) (((x)->flags) & STRING_FLAGS_REFERENCED) + +#define STRING_IS_SINGLE_MATCH(x) (((x)->flags) & STRING_FLAGS_SINGLE_MATCH) + +#define STRING_IS_FIXED_OFFSET(x) (((x)->flags) & STRING_FLAGS_FIXED_OFFSET) + +#define STRING_IS_LITERAL(x) (((x)->flags) & STRING_FLAGS_LITERAL) + +#define STRING_IS_FAST_REGEXP(x) (((x)->flags) & STRING_FLAGS_FAST_REGEXP) + +#define STRING_IS_CHAIN_PART(x) (((x)->flags) & STRING_FLAGS_CHAIN_PART) + +#define STRING_IS_CHAIN_TAIL(x) (((x)->flags) & STRING_FLAGS_CHAIN_TAIL) + +#define STRING_IS_LAST_IN_RULE(x) (((x)->flags) & STRING_FLAGS_LAST_IN_RULE) + +#define STRING_FITS_IN_ATOM(x) (((x)->flags) & STRING_FLAGS_FITS_IN_ATOM) + +#define STRING_IS_DISABLED(x) (((x)->flags) & STRING_FLAGS_DISABLED) + +#define STRING_IS_XOR(x) (((x)->flags) & STRING_FLAGS_XOR) + +#define STRING_IS_BASE64(x) (((x)->flags) & STRING_FLAGS_BASE64) + +#define STRING_IS_BASE64_WIDE(x) (((x)->flags) & STRING_FLAGS_BASE64_WIDE) + +#define STRING_IS_PRIVATE(x) (((x)->flags) & STRING_FLAGS_PRIVATE) + +#define META_TYPE_INTEGER 1 +#define META_TYPE_STRING 2 +#define META_TYPE_BOOLEAN 3 + +#define META_FLAGS_LAST_IN_RULE 1 + +#define META_IS_LAST_IN_RULE(x) (((x)->flags) & META_FLAGS_LAST_IN_RULE) + +#define EXTERNAL_VARIABLE_TYPE_NULL 0 +#define EXTERNAL_VARIABLE_TYPE_FLOAT 1 +#define EXTERNAL_VARIABLE_TYPE_INTEGER 2 +#define EXTERNAL_VARIABLE_TYPE_BOOLEAN 3 +#define EXTERNAL_VARIABLE_TYPE_STRING 4 +#define EXTERNAL_VARIABLE_TYPE_MALLOC_STRING 5 + +#define EXTERNAL_VARIABLE_IS_NULL(x) \ + ((x) != NULL ? (x)->type == EXTERNAL_VARIABLE_TYPE_NULL : true) + +typedef struct RE RE; +typedef struct RE_AST RE_AST; +typedef struct RE_NODE RE_NODE; +typedef struct RE_CLASS RE_CLASS; +typedef struct RE_ERROR RE_ERROR; +typedef struct RE_FIBER RE_FIBER; +typedef struct RE_FIBER_LIST RE_FIBER_LIST; +typedef struct RE_FIBER_POOL RE_FIBER_POOL; +typedef struct RE_FAST_EXEC_POSITION RE_FAST_EXEC_POSITION; +typedef struct RE_FAST_EXEC_POSITION_LIST RE_FAST_EXEC_POSITION_LIST; +typedef struct RE_FAST_EXEC_POSITION_POOL RE_FAST_EXEC_POSITION_POOL; + +typedef struct YR_AC_STATE YR_AC_STATE; +typedef struct YR_AC_AUTOMATON YR_AC_AUTOMATON; +typedef struct YR_AC_TABLES YR_AC_TABLES; +typedef struct YR_AC_MATCH_LIST_ENTRY YR_AC_MATCH_LIST_ENTRY; +typedef struct YR_AC_MATCH YR_AC_MATCH; + +typedef struct YR_NAMESPACE YR_NAMESPACE; +typedef struct YR_META YR_META; +typedef struct YR_MATCHES YR_MATCHES; +typedef struct YR_STRING YR_STRING; +typedef struct YR_RULE YR_RULE; +typedef struct YR_RULES YR_RULES; +typedef struct YR_SUMMARY YR_SUMMARY; +typedef struct YR_RULES_STATS YR_RULES_STATS; +typedef struct YR_PROFILING_INFO YR_PROFILING_INFO; +typedef struct YR_RULE_PROFILING_INFO YR_RULE_PROFILING_INFO; +typedef struct YR_EXTERNAL_VARIABLE YR_EXTERNAL_VARIABLE; +typedef struct YR_MATCH YR_MATCH; +typedef struct YR_SCAN_CONTEXT YR_SCAN_CONTEXT; + +typedef union YR_VALUE YR_VALUE; +typedef struct YR_VALUE_STACK YR_VALUE_STACK; + +typedef struct YR_OBJECT YR_OBJECT; +typedef struct YR_OBJECT_STRUCTURE YR_OBJECT_STRUCTURE; +typedef struct YR_OBJECT_ARRAY YR_OBJECT_ARRAY; +typedef struct YR_OBJECT_DICTIONARY YR_OBJECT_DICTIONARY; +typedef struct YR_OBJECT_FUNCTION YR_OBJECT_FUNCTION; + +typedef struct YR_STRUCTURE_MEMBER YR_STRUCTURE_MEMBER; +typedef struct YR_ARRAY_ITEMS YR_ARRAY_ITEMS; +typedef struct YR_DICTIONARY_ITEMS YR_DICTIONARY_ITEMS; + +typedef struct YR_MODULE YR_MODULE; +typedef struct YR_MODULE_IMPORT YR_MODULE_IMPORT; + +typedef struct YR_MEMORY_BLOCK YR_MEMORY_BLOCK; +typedef struct YR_MEMORY_BLOCK_ITERATOR YR_MEMORY_BLOCK_ITERATOR; + +typedef struct YR_MODIFIER YR_MODIFIER; + +typedef struct YR_ITERATOR YR_ITERATOR; + +typedef uint32_t YR_AC_TRANSITION; + +#pragma pack(push) +#pragma pack(8) + +struct YR_NAMESPACE +{ + // Pointer to namespace's name. + DECLARE_REFERENCE(const char*, name); + + // Index of this namespace in the array of YR_NAMESPACE structures stored + // in YR_NAMESPACES_TABLE. + // + // YR_ALIGN(8) forces the idx field to be treated as a 8-bytes field + // and therefore the struct's size is 16 bytes. This is necessary only for + // 32-bits versions of YARA compiled with Visual Studio. See: #1358. + YR_ALIGN(8) uint32_t idx; +}; + +struct YR_META +{ + DECLARE_REFERENCE(const char*, identifier); + DECLARE_REFERENCE(const char*, string); + + int64_t integer; + int32_t type; + int32_t flags; +}; + +struct YR_STRING +{ + // Flags, see STRING_FLAGS_XXX macros defined above. + uint32_t flags; + + // Index of this string in the array of YR_STRING structures stored in + // YR_STRINGS_TABLE. + uint32_t idx; + + // If the string can only match at a specific offset (for example if the + // condition is "$a at 0" the string $a can only match at offset 0), the + // fixed_offset field contains the offset, it have the YR_UNDEFINED value for + // strings that can match anywhere. + int64_t fixed_offset; + + // Index of the rule containing this string in the array of YR_RULE + // structures stored in YR_RULES_TABLE. + uint32_t rule_idx; + + // String's length. + int32_t length; + + // Pointer to the string itself, the length is indicated by the "length" + // field. + DECLARE_REFERENCE(uint8_t*, string); + + // Strings are splitted in two or more parts when they contain a "gap" that + // is larger than YR_STRING_CHAINING_THRESHOLD. This happens in strings like + // { 01 02 03 04 [X-Y] 05 06 07 08 } if Y >= X + YR_STRING_CHAINING_THRESHOLD + // and also in { 01 02 03 04 [-] 05 06 07 08 }. In both cases the strings are + // split in { 01 02 03 04 } and { 05 06 07 08 }, and the two smaller strings + // are searched for independently. If some string S is splitted in S1 and S2, + // S2 is chained to S1. In the example above { 05 06 07 08 } is chained to + // { 01 02 03 04 }. The same applies when the string is splitted in more than + // two parts, if S is split in S1, S2, and S3. S3 is chained to S2 and S2 is + // chained to S1 (it can represented as: S1 <- S2 <- S3). + DECLARE_REFERENCE(YR_STRING*, chained_to); + + // When this string is chained to some other string, chain_gap_min and + // chain_gap_max contain the minimum and maximum distance between the two + // strings. For example in { 01 02 03 04 [X-Y] 05 06 07 08 }, the string + // { 05 06 07 08 } is chained to { 01 02 03 04 } and chain_gap_min is X + // and chain_gap_max is Y. These fields are ignored for strings that are not + // part of a string chain. + int32_t chain_gap_min; + int32_t chain_gap_max; + + // Identifier of this string. + DECLARE_REFERENCE(const char*, identifier); +}; + +struct YR_RULE +{ + int32_t flags; + + // Number of atoms generated for this rule. + int32_t num_atoms; + + uint32_t required_strings; + + DECLARE_REFERENCE(const char*, identifier); + DECLARE_REFERENCE(const char*, tags); + DECLARE_REFERENCE(YR_META*, metas); + DECLARE_REFERENCE(YR_STRING*, strings); + DECLARE_REFERENCE(YR_NAMESPACE*, ns); +}; + +struct YR_SUMMARY +{ + uint32_t num_rules; + uint32_t num_strings; + uint32_t num_namespaces; +}; + +struct YR_EXTERNAL_VARIABLE +{ + int32_t type; + + YR_ALIGN(8) union + { + int64_t i; + double f; + char* s; + } value; + + DECLARE_REFERENCE(const char*, identifier); +}; + +struct YR_AC_MATCH +{ + DECLARE_REFERENCE(YR_STRING*, string); + DECLARE_REFERENCE(const uint8_t*, forward_code); + DECLARE_REFERENCE(const uint8_t*, backward_code); + DECLARE_REFERENCE(YR_AC_MATCH*, next); + + // When the Aho-Corasick automaton reaches some state that has associated + // matches, the current position in the input buffer is a few bytes past + // the point where the match actually occurs, for example, when looking for + // string "bar" in "foobarbaz", when the automaton reaches the state + // associated to the ending "r" in "bar, which is the one that has a match, + // the current position in the input is 6 (the "b" after the "r"), but the + // match is at position 3. The backtrack field indicates how many bytes the + // scanner has to go back to find the point where the match actually start. + // + // YR_ALIGN(8) forces the backtrack field to be treated as a 8-bytes field + // and therefore the struct's size is 40 bytes. This is necessary only for + // 32-bits versions of YARA compiled with Visual Studio. See: #1358. + YR_ALIGN(8) uint16_t backtrack; +}; + +#pragma pack(pop) + +// +// Structs defined below are never stored in the compiled rules file +// + +struct RE_NODE +{ + int type; + + union + { + int value; + int count; + int start; + }; + + union + { + int mask; + int end; + }; + + int greedy; + + RE_CLASS* re_class; + + RE_NODE* children_head; + RE_NODE* children_tail; + RE_NODE* prev_sibling; + RE_NODE* next_sibling; + + YR_ARENA_REF forward_code_ref; + YR_ARENA_REF backward_code_ref; +}; + +struct RE_CLASS +{ + uint8_t negated; + uint8_t bitmap[32]; +}; + +struct RE_AST +{ + uint32_t flags; + RE_NODE* root_node; +}; + +// Disable warning due to zero length array in Microsoft's compiler +#ifdef _MSC_VER +#pragma warning(push) +#pragma warning(disable : 4200) +#endif + +// The RE structure is embedded in the YARA's VM instruction flow, which +// means that its alignment is not guaranteed. For this reason the it must +// be a "packed" structure, in order to prevent alignment issues in platforms +// with strict alignment constraints. +#pragma pack(push) +#pragma pack(1) + +struct RE +{ + uint32_t flags; + uint8_t code[0]; +}; + +#pragma pack(pop) + +#ifdef _MSC_VER +#pragma warning(pop) +#endif + +struct RE_ERROR +{ + char message[384]; +}; + +struct RE_FIBER +{ + const uint8_t* ip; // instruction pointer + int32_t sp; // stack pointer + int32_t rc; // repeat counter + + RE_FIBER* prev; + RE_FIBER* next; + + uint16_t stack[RE_MAX_STACK]; +}; + +struct RE_FIBER_LIST +{ + RE_FIBER* head; + RE_FIBER* tail; +}; + +struct RE_FIBER_POOL +{ + int fiber_count; + RE_FIBER_LIST fibers; +}; + +struct RE_FAST_EXEC_POSITION +{ + int round; + const uint8_t* input; + RE_FAST_EXEC_POSITION* prev; + RE_FAST_EXEC_POSITION* next; +}; + +struct RE_FAST_EXEC_POSITION_POOL +{ + RE_FAST_EXEC_POSITION* head; +}; + +struct YR_MODIFIER +{ + int32_t flags; + uint8_t xor_min; + uint8_t xor_max; + SIZED_STRING* alphabet; +}; + +struct YR_MATCHES +{ + YR_MATCH* head; + YR_MATCH* tail; + + int32_t count; +}; + +struct YR_MATCH +{ + int64_t base; // Base address for the match + int64_t offset; // Offset relative to base for the match + int32_t match_length; // Match length + int32_t data_length; + + // Pointer to a buffer containing a portion of the matched data. The size of + // the buffer is data_length. data_length is always <= length and is limited + // to YR_CONFIG_MAX_MATCH_DATA bytes. + const uint8_t* data; + + YR_MATCH* prev; + YR_MATCH* next; + + // If the match belongs to a chained string chain_length contains the + // length of the chain. This field is used only in unconfirmed matches. + int32_t chain_length; + + // True if this is match for a private string. + bool is_private; + + // Set to the xor key if this is an xor string. + uint8_t xor_key; +}; + +struct YR_AC_STATE +{ + YR_AC_STATE* failure; + YR_AC_STATE* first_child; + YR_AC_STATE* siblings; + + // Reference to the YR_AC_MATCH structure that heads the list of matches + // for this state. + YR_ARENA_REF matches_ref; + + uint8_t depth; + uint8_t input; + + uint32_t t_table_slot; +}; + +struct YR_AC_MATCH_LIST_ENTRY +{ + uint16_t backtrack; + uint32_t string_idx; + + YR_ARENA_REF ref; + YR_ARENA_REF forward_code_ref; + YR_ARENA_REF backward_code_ref; + + YR_AC_MATCH_LIST_ENTRY* next; +}; + +struct YR_AC_AUTOMATON +{ + // Arena used by this automaton to store the transition and match tables. + YR_ARENA* arena; + + // Both m_table and t_table have the same number of elements, which is + // stored in tables_size. + uint32_t tables_size; + + // The first slot in the transition table (t_table) that may be be unused. + // Used for speeding up the construction of the transition table. + uint32_t t_table_unused_candidate; + + // Bitmask where each bit indicates if the corresponding slot in the + // transition table is already in use. + YR_BITMASK* bitmask; + + // Pointer to the root Aho-Corasick state. + YR_AC_STATE* root; +}; + +struct YR_RULES +{ + YR_ARENA* arena; + + // Array of pointers with an entry for each rule. The rule_idx field in the + // YR_STRING structure is an index within this array. + union + { + YR_RULE* rules_table; + // The previous name for rules_table was rules_list_head, because this + // was previously a linked list. The old name is maintained but marked as + // deprecated, which will raise a warning if used. + // TODO(vmalvarez): Remove this field when a reasonable a few versions + // after 4.1 has been released. + YR_DEPRECATED(YR_RULE* rules_list_head); + }; + + // Array of pointers with an entry for each of the defined strings. The idx + // field in the YR_STRING structure is an index within this array. + union + { + YR_STRING* strings_table; + // The previous name for strings_table was strings_list_head, because this + // was previously a linked list. The old name is maintained but marked as + // deprecated, which will raise a warning if used. + // TODO(vmalvarez): Remove this field when a reasonable a few versions + // after 4.1 has been released. + YR_DEPRECATED(YR_STRING* strings_list_head); + }; + + // Array of pointers with an entry for each external variable. + union + { + YR_EXTERNAL_VARIABLE* ext_vars_table; + // The previous name for ext_vars_table was externals_list_head, because + // this was previously a linked list. The old name is maintained but marked + // as deprecated, which will raise a warning if used. + // TODO(vmalvarez): Remove this field when a reasonable a few versions + // after 4.1 has been released. + YR_DEPRECATED(YR_EXTERNAL_VARIABLE* externals_list_head); + }; + + // Pointer to the Aho-Corasick transition table. + YR_AC_TRANSITION* ac_transition_table; + + // A pointer to the arena where YR_AC_MATCH structures are allocated. + YR_AC_MATCH* ac_match_pool; + + // Table that translates from Aho-Corasick states (which are identified by + // numbers 0, 1, 2.. and so on) to the index in ac_match_pool where the + // YR_AC_MATCH structures for the corresponding state start. + // If the entry corresponding to state N in ac_match_table is zero, it + // means that there's no match associated to the state. If it's non-zero, + // its value is the 1-based index within ac_match_pool where the first + // match resides. + uint32_t* ac_match_table; + + // Pointer to the first instruction that is executed whan evaluating the + // conditions for all rules. The code is executed by yr_execute_code and + // the instructions are defined by the OP_X macros in exec.h. + const uint8_t* code_start; + + // A bitmap with one bit per rule, bit N is set when the condition for rule + // might evaluate to true even without any string matches. + YR_BITMASK* rule_evaluate_condition_flags; + + // Total number of rules. + uint32_t num_rules; + + // Total number of strings. + uint32_t num_strings; + + // Total number of namespaces. + uint32_t num_namespaces; +}; + +struct YR_RULES_STATS +{ + // Total number of rules + uint32_t num_rules; + + // Total number of strings across all rules. + uint32_t num_strings; + + // Total number of Aho-Corasick matches. Each node in the Aho-Corasick + // automaton has a list of YR_AC_MATCH_LIST_ENTRY structures (match list) + // pointing to strings that are potential matches. This field holds the total + // number of those structures across all nodes in the automaton. + uint32_t ac_matches; + + // Length of the match list for the root node in the Aho-Corasick automaton. + uint32_t ac_root_match_list_length; + + // Average number of matches per match list. + float ac_average_match_list_length; + + // Top 10 longest match lists. + uint32_t top_ac_match_list_lengths[100]; + + // Percentiles of match lists' lengths. If the i-th value in the array is N + // then i percent of the match lists have N or less items. + uint32_t ac_match_list_length_pctls[101]; + + // Size of Aho-Corasick transition & match tables. + uint32_t ac_tables_size; +}; + +// +// YR_PROFILING_INFO contains profiling information for a rule. +// +struct YR_PROFILING_INFO +{ + // Number of times that some atom belonging to the rule matched. Each + // matching atom means a potential string match that needs to be verified. + uint32_t atom_matches; + + // Amount of time (in nanoseconds) spent verifying atom matches for + // determining if the corresponding string actually matched or not. This + // time is not measured for all atom matches, only 1 out of 1024 matches + // are actually measured. + uint64_t match_time; + + // Amount of time (in nanoseconds) spent evaluating the rule condition. + uint64_t exec_time; +}; + +//////////////////////////////////////////////////////////////////////////////// +// YR_RULE_PROFILING_INFO is the structure returned by +// yr_scanner_get_profiling_info +// +struct YR_RULE_PROFILING_INFO +{ + YR_RULE* rule; + uint64_t cost; +}; + +typedef const uint8_t* (*YR_MEMORY_BLOCK_FETCH_DATA_FUNC)( + YR_MEMORY_BLOCK* self); + +typedef YR_MEMORY_BLOCK* (*YR_MEMORY_BLOCK_ITERATOR_FUNC)( + YR_MEMORY_BLOCK_ITERATOR* self); + +typedef uint64_t (*YR_MEMORY_BLOCK_ITERATOR_SIZE_FUNC)( + YR_MEMORY_BLOCK_ITERATOR* self); + +struct YR_MEMORY_BLOCK +{ + size_t size; + uint64_t base; + + void* context; + + YR_MEMORY_BLOCK_FETCH_DATA_FUNC fetch_data; +}; + +/////////////////////////////////////////////////////////////////////////////// +// YR_MEMORY_BLOCK_ITERATOR represents an iterator that returns a series of +// memory blocks to be scanned by yr_scanner_scan_mem_blocks. The iterator have +// pointers to three functions: "first", "next" and "file_size". The "first" +// function is invoked for retrieving the first memory block, followed by calls +// to "next" for retrieving the following blocks until "next" returns a NULL +// pointer. The "file_size" function is called for obtaining the size of the +// file. +struct YR_MEMORY_BLOCK_ITERATOR +{ + // A pointer that can be used by specific implementations of an iterator for + // storing the iterator's state. + void* context; + + // Pointers to functions for iterating over the memory blocks. + YR_MEMORY_BLOCK_ITERATOR_FUNC first; + YR_MEMORY_BLOCK_ITERATOR_FUNC next; + + // Pointer to a function that returns the file size as computed by the + // iterator. This is a the size returned by the filesize keyword in YARA + // rules. If this pointer is NULL the file size will be undefined. + YR_MEMORY_BLOCK_ITERATOR_SIZE_FUNC file_size; + + // Error occurred during the last call to "first" or "next" functions. These + // functions must set the value of last_error to ERROR_SUCCESS or to some + // other error code if appropriate. Alternatively, last_error can be set to + // ERROR_SUCCESS before using the iterator and changed by "first" or "next" + // only when they want to report an error. + int last_error; +}; + +typedef int (*YR_CALLBACK_FUNC)( + YR_SCAN_CONTEXT* context, + int message, + void* message_data, + void* user_data); + +struct YR_SCAN_CONTEXT +{ + // File size of the file being scanned. + uint64_t file_size; + + // Entry point of the file being scanned, if the file is PE or ELF. + uint64_t entry_point; + + // Scanning flags. + int flags; + + // Canary value used for preventing hand-crafted objects from being embedded + // in compiled rules and used to exploit YARA. The canary value is initialized + // to a random value and is subsequently set to all objects created by + // yr_object_create. The canary is verified when objects are used by + // yr_execute_code. + int canary; + + // Scan timeout in nanoseconds. + uint64_t timeout; + + // Pointer to user-provided data passed to the callback function. + void* user_data; + + // Pointer to the user-provided callback function that is called when an + // event occurs during the scan (a rule matching, a module being loaded, etc) + YR_CALLBACK_FUNC callback; + + // Pointer to the YR_RULES object associated to this scan context. + YR_RULES* rules; + + // Pointer to the YR_STRING causing the most recent scan error. + YR_STRING* last_error_string; + + // Pointer to the iterator used for scanning + YR_MEMORY_BLOCK_ITERATOR* iterator; + + // Pointer to a table mapping identifiers to YR_OBJECT structures. This table + // contains entries for external variables and modules. + YR_HASH_TABLE* objects_table; + + // Notebook used for storing YR_MATCH structures associated to the matches + // found. + YR_NOTEBOOK* matches_notebook; + + // Stopwatch used for measuring the time elapsed during the scan. + YR_STOPWATCH stopwatch; + + // Fiber pool used by yr_re_exec. + RE_FIBER_POOL re_fiber_pool; + + // Pool used by yr_re_fast_exec. + RE_FAST_EXEC_POSITION_POOL re_fast_exec_position_pool; + + // A bitmap with one bit per rule, bit N is set when the rule with index N + // has matched. + YR_BITMASK* rule_matches_flags; + + // A bitmap with one bit per namespace, bit N is set if the namespace with + // index N has some global rule that is not satisfied. + YR_BITMASK* ns_unsatisfied_flags; + + // A bitmap with one bit per string, bit N is set if the string with index + // N has too many matches. + YR_BITMASK* strings_temp_disabled; + + // Array with pointers to lists of matches. Item N in the array has the + // list of matches for string with index N. + YR_MATCHES* matches; + + // "unconfirmed_matches" is like "matches" but for strings that are part of + // a chain. Let's suppose that the string S is split in two chained strings + // S1 <- S2. When a match is found for S1, we can't be sure that S matches + // until a match for S2 is found (within the range defined by chain_gap_min + // and chain_gap_max), so the matches for S1 are put in "unconfirmed_matches" + // until they can be confirmed or discarded. + YR_MATCHES* unconfirmed_matches; + + // A bitmap with one bit per rule, bit N is unset when the condition for rule + // with index N is guaranteed to evaluate to false. + YR_BITMASK* rule_evaluate_condition_flags; + + // profiling_info is a pointer to an array of YR_PROFILING_INFO structures, + // one per rule. Entry N has the profiling information for rule with index N. + YR_PROFILING_INFO* profiling_info; +}; + +union YR_VALUE +{ + int64_t i; + double d; + void* p; + YR_OBJECT* o; + YR_STRING* s; + YR_ITERATOR* it; + SIZED_STRING* ss; + RE* re; +}; + +struct YR_VALUE_STACK +{ + uint32_t sp; + uint32_t capacity; + YR_VALUE* items; +}; + +#define OBJECT_COMMON_FIELDS \ + int canary; \ + int8_t type; \ + const char* identifier; \ + YR_OBJECT* parent; \ + void* data; + +struct YR_OBJECT +{ + OBJECT_COMMON_FIELDS + YR_VALUE value; +}; + +struct YR_OBJECT_STRUCTURE +{ + OBJECT_COMMON_FIELDS + YR_STRUCTURE_MEMBER* members; +}; + +struct YR_OBJECT_ARRAY +{ + OBJECT_COMMON_FIELDS + YR_OBJECT* prototype_item; + YR_ARRAY_ITEMS* items; +}; + +struct YR_OBJECT_DICTIONARY +{ + OBJECT_COMMON_FIELDS + YR_OBJECT* prototype_item; + YR_DICTIONARY_ITEMS* items; +}; + +typedef int (*YR_MODULE_FUNC)( + YR_VALUE* args, + YR_SCAN_CONTEXT* context, + YR_OBJECT_FUNCTION* function_obj); + +struct YR_OBJECT_FUNCTION +{ + OBJECT_COMMON_FIELDS + YR_OBJECT* return_obj; + + struct + { + const char* arguments_fmt; + YR_MODULE_FUNC code; + } prototypes[YR_MAX_OVERLOADED_FUNCTIONS]; +}; + +#define object_as_structure(obj) ((YR_OBJECT_STRUCTURE*) (obj)) +#define object_as_array(obj) ((YR_OBJECT_ARRAY*) (obj)) +#define object_as_dictionary(obj) ((YR_OBJECT_DICTIONARY*) (obj)) +#define object_as_function(obj) ((YR_OBJECT_FUNCTION*) (obj)) + +struct YR_STRUCTURE_MEMBER +{ + YR_OBJECT* object; + YR_STRUCTURE_MEMBER* next; +}; + +struct YR_ARRAY_ITEMS +{ + // Capacity is the size of the objects array. + int capacity; + + // Length is determined by the last element in the array. If the index of the + // last element is N, then length is N+1 because indexes start at 0. + int length; + + YR_OBJECT* objects[1]; +}; + +struct YR_DICTIONARY_ITEMS +{ + int used; + int free; + + struct + { + SIZED_STRING* key; + YR_OBJECT* obj; + } objects[1]; +}; + +// Iterators are used in loops of the form: +// +// for in : ( ) +// +// The YR_ITERATOR struct abstracts the many different types of objects that +// can be iterated. Each type of iterator must provide a "next" function which +// is called multiple times for retrieving elements from the iterator. This +// function is responsible for pushing the next item in the stack and a boolean +// indicating if the end of the iterator has been reached. The boolean must be +// pushed first, so that the next item is in the top of the stack when the +// function returns. +// +// +------------+ +// | next item | <- top of the stack +// +------------+ +// | false | <- false indicates that there are more items +// +------------+ +// | . . . | +// +// The boolean shouldn't be true if the next item was pushed in the stack, it +// can be true only when all the items have been returned in previous calls, +// in which case the value for the next item should be YR_UNDEFINED. The stack +// should look like this after the last call to "next": +// +// +------------+ +// | undefined | <- next item is undefined. +// +------------+ +// | true | <- true indicates that are no more items. +// +------------+ +// | . . . | +// +// We can't use the YR_UNDEFINED value in the stack as an indicator of the end +// of the iterator, because it's legitimate for an iterator to return +// YR_UNDEFINED items in the middle of the iteration. +// +// The "next" function should return ERROR_SUCCESS if everything went fine or +// an error code in case of error. + +typedef int (*YR_ITERATOR_NEXT_FUNC)(YR_ITERATOR* self, YR_VALUE_STACK* stack); + +struct YR_ARRAY_ITERATOR +{ + YR_OBJECT* array; + int index; +}; + +struct YR_DICT_ITERATOR +{ + YR_OBJECT* dict; + int index; +}; + +struct YR_INT_RANGE_ITERATOR +{ + int64_t next; + int64_t last; +}; + +struct YR_INT_ENUM_ITERATOR +{ + int64_t next; + int64_t count; + int64_t items[1]; +}; + +struct YR_STRING_SET_ITERATOR +{ + int64_t count; + int64_t index; + YR_STRING* strings[1]; +}; + +struct YR_TEXT_STRING_SET_ITERATOR +{ + int64_t count; + int64_t index; + SIZED_STRING* strings[1]; +}; + +struct YR_ITERATOR +{ + // Index of the next function within the iter_next_func_table global array. + uint8_t next_func_idx; + + union + { + struct YR_ARRAY_ITERATOR array_it; + struct YR_DICT_ITERATOR dict_it; + struct YR_INT_RANGE_ITERATOR int_range_it; + struct YR_INT_ENUM_ITERATOR int_enum_it; + struct YR_STRING_SET_ITERATOR string_set_it; + struct YR_TEXT_STRING_SET_ITERATOR text_string_set_it; + }; +}; + +#endif diff --git a/BLUESPAWN-win-client/headers/yara/unaligned.h b/BLUESPAWN-win-client/headers/yara/unaligned.h new file mode 100644 index 00000000..822d9c44 --- /dev/null +++ b/BLUESPAWN-win-client/headers/yara/unaligned.h @@ -0,0 +1,117 @@ +/* +Copyright (c) 2016. The YARA Authors. All Rights Reserved. + +Redistribution and use in source and binary forms, with or without modification, +are permitted provided that the following conditions are met: + +1. Redistributions of source code must retain the above copyright notice, this +list of conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright notice, +this list of conditions and the following disclaimer in the documentation and/or +other materials provided with the distribution. + +3. Neither the name of the copyright holder nor the names of its contributors +may be used to endorse or promote products derived from this software without +specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR +ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ + +#ifndef YR_UNALIGNED_H +#define YR_UNALIGNED_H + +#include + +#pragma pack(push) +#pragma pack(1) + +typedef struct +{ + uint16_t val; +} uint16_una_t; + +typedef struct +{ + uint32_t val; +} uint32_una_t; + +typedef struct +{ + uint64_t val; +} uint64_una_t; + +typedef struct +{ + int16_t val; +} int16_una_t; + +typedef struct +{ + int32_t val; +} int32_una_t; + +typedef struct +{ + int64_t val; +} int64_una_t; + +typedef struct +{ + char *val; +} charp_una_t; + +#pragma pack(pop) + +static inline uint16_t yr_unaligned_u16(const void *ptr) +{ + const uint16_una_t *tmp = (const uint16_una_t *) ptr; + return tmp->val; +} + +static inline uint32_t yr_unaligned_u32(const void *ptr) +{ + const uint32_una_t *tmp = (const uint32_una_t *) ptr; + return tmp->val; +} + +static inline uint64_t yr_unaligned_u64(const void *ptr) +{ + const uint64_una_t *tmp = (const uint64_una_t *) ptr; + return tmp->val; +} + +static inline uint16_t yr_unaligned_i16(const void *ptr) +{ + const int16_una_t *tmp = (const int16_una_t *) ptr; + return tmp->val; +} + +static inline uint32_t yr_unaligned_i32(const void *ptr) +{ + const int32_una_t *tmp = (const int32_una_t *) ptr; + return tmp->val; +} + +static inline uint64_t yr_unaligned_i64(const void *ptr) +{ + const int64_una_t *tmp = (const int64_una_t *) ptr; + return tmp->val; +} + +static inline char *yr_unaligned_char_ptr(const void *ptr) +{ + const charp_una_t *tmp = (const charp_una_t *) ptr; + return tmp->val; +} + +#endif diff --git a/BLUESPAWN-win-client/headers/yara/utils.h b/BLUESPAWN-win-client/headers/yara/utils.h new file mode 100644 index 00000000..9e6945a8 --- /dev/null +++ b/BLUESPAWN-win-client/headers/yara/utils.h @@ -0,0 +1,155 @@ +/* +Copyright (c) 2014. The YARA Authors. All Rights Reserved. + +Redistribution and use in source and binary forms, with or without modification, +are permitted provided that the following conditions are met: + +1. Redistributions of source code must retain the above copyright notice, this +list of conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright notice, +this list of conditions and the following disclaimer in the documentation and/or +other materials provided with the distribution. + +3. Neither the name of the copyright holder nor the names of its contributors +may be used to endorse or promote products derived from this software without +specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR +ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ + +#ifndef YR_UTILS_H +#define YR_UTILS_H + +#include + +#ifndef NULL +#define NULL 0 +#endif + +#if defined(HAVE_STDBOOL_H) || (defined(_MSC_VER) && _MSC_VER >= 1800) +#include +#else +#ifndef __cplusplus +#define bool _Bool +#define true 1 +#define false 0 +#endif /* __cplusplus */ +#endif + +#ifdef __cplusplus +#define EXTERNC extern "C" +#else +#define EXTERNC +#endif + +#if defined(_WIN32) || defined(__CYGWIN__) +#ifdef YR_BUILDING_DLL +#ifdef __GNUC__ +#define YR_API EXTERNC __attribute__((dllexport)) +#define YR_DEPRECATED_API EXTERNC __attribute__((deprecated)) +#define YR_DEPRECATED(statement) statement __attribute__((deprecated)) +#else +#define YR_API EXTERNC __declspec(dllexport) +#define YR_DEPRECATED_API EXTERNC __declspec(deprecated) +#define YR_DEPRECATED(statement) __declspec(deprecated) statement +#endif +#elif defined(YR_IMPORTING_DLL) +#ifdef __GNUC__ +#define YR_API EXTERNC __attribute__((dllimport)) +#define YR_DEPRECATED_API EXTERNC __attribute__((deprecated)) +#define YR_DEPRECATED(statement) statement __attribute__((deprecated)) +#else +#define YR_API EXTERNC __declspec(dllimport) +#define YR_DEPRECATED_API EXTERNC __declspec(deprecated) +#define YR_DEPRECATED(statement) __declspec(deprecated) statement +#endif +#else +#define YR_API EXTERNC +#define YR_DEPRECATED_API EXTERNC +#define YR_DEPRECATED(statement) statement +#endif +#else +#if __GNUC__ >= 4 +#define YR_API EXTERNC __attribute__((visibility("default"))) +#define YR_DEPRECATED_API YR_API __attribute__((deprecated)) +#define YR_DEPRECATED(statement) statement __attribute__((deprecated)) +#else +#define YR_API EXTERNC +#define YR_DEPRECATED_API EXTERNC +#define YR_DEPRECATED(statement) statement +#endif +#endif + +#if defined(__GNUC__) +#define YR_ALIGN(n) __attribute__((aligned(n))) +#elif defined(_MSC_VER) +#define YR_ALIGN(n) __declspec(align(n)) +#else +#define YR_ALIGN(n) +#endif + +#if defined(__GNUC__) +#define YR_PRINTF_LIKE(x, y) __attribute__((format(printf, x, y))) +#else +#define YR_PRINTF_LIKE(x, y) +#endif + +#define yr_min(x, y) (((x) < (y)) ? (x) : (y)) +#define yr_max(x, y) (((x) > (y)) ? (x) : (y)) + +#define yr_swap(x, y, T) \ + do \ + { \ + T temp = x; \ + x = y; \ + y = temp; \ + } while (0) + +#ifdef NDEBUG + +#define assertf(expr, msg, ...) ((void) 0) + +#else + +#include + +#define assertf(expr, msg, ...) \ + if (!(expr)) \ + { \ + fprintf(stderr, "%s:%d: " msg "\n", __FILE__, __LINE__, ##__VA_ARGS__); \ + abort(); \ + } + +#endif + +// Set, unset, and test bits in an array of unsigned characters by integer +// index. The underlying array must be of type char or unsigned char to +// ensure compatibility with the CHAR_BIT constant used in these definitions. + +#define YR_BITARRAY_SET(uchar_array_base, bitnum) \ + (((uchar_array_base)[(bitnum) / CHAR_BIT]) = \ + ((uchar_array_base)[(bitnum) / CHAR_BIT] | \ + (1 << ((bitnum) % CHAR_BIT)))) + +#define YR_BITARRAY_UNSET(uchar_array_base, bitnum) \ + (((uchar_array_base)[(bitnum) / CHAR_BIT]) = \ + ((uchar_array_base)[(bitnum) / CHAR_BIT] & \ + (~(1 << ((bitnum) % CHAR_BIT))))) + +#define YR_BITARRAY_TEST(uchar_array_base, bitnum) \ + (((uchar_array_base)[(bitnum) / CHAR_BIT] & (1 << ((bitnum) % CHAR_BIT))) != \ + 0) + +#define YR_BITARRAY_NCHARS(bitnum) (((bitnum) + (CHAR_BIT - 1)) / CHAR_BIT) + +#endif diff --git a/BLUESPAWN-win-client/resources/BLUESPAWN-client.rc b/BLUESPAWN-win-client/resources/BLUESPAWN-client.rc index 0c66e1ce..1ea7a84d 100644 --- a/BLUESPAWN-win-client/resources/BLUESPAWN-client.rc +++ b/BLUESPAWN-win-client/resources/BLUESPAWN-client.rc @@ -1,116 +1,116 @@ -// Microsoft Visual C++ generated resource script. -// -#include "resource.h" - -#define APSTUDIO_READONLY_SYMBOLS -///////////////////////////////////////////////////////////////////////////// -// -// Generated from the TEXTINCLUDE 2 resource. -// -#include "winres.h" - -///////////////////////////////////////////////////////////////////////////// -#undef APSTUDIO_READONLY_SYMBOLS - -///////////////////////////////////////////////////////////////////////////// -// English (United States) resources - -#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU) -LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US -#pragma code_page(1252) - -#ifdef APSTUDIO_INVOKED -///////////////////////////////////////////////////////////////////////////// -// -// TEXTINCLUDE -// - -1 TEXTINCLUDE -BEGIN - "resource.h\0" -END - -2 TEXTINCLUDE -BEGIN - "#include ""winres.h""\r\n" - "\0" -END - -3 TEXTINCLUDE -BEGIN - "\r\n" - "\0" -END - -#endif // APSTUDIO_INVOKED - -MAINICON ICON "resources\\BLUESPAWN.ico" - -///////////////////////////////////////////////////////////////////////////// -// -// Version -// - -VS_VERSION_INFO VERSIONINFO - FILEVERSION 0,5,0 - PRODUCTVERSION 0,5,0 - FILEFLAGSMASK 0x3fL -#ifdef _DEBUG - FILEFLAGS 0x1L -#else - FILEFLAGS 0x0L -#endif - FILEOS 0x40004L - FILETYPE 0x1L - FILESUBTYPE 0x0L -BEGIN - BLOCK "StringFileInfo" - BEGIN - BLOCK "040904b0" - BEGIN - VALUE "CompanyName", "BLUESPAWN Project" - VALUE "FileDescription", "BLUESPAWN Active Defense & EDR Software" - VALUE "FileVersion", "0.5.0" - VALUE "InternalName", "BLUESPAWN-client.exe" - VALUE "LegalCopyright", "Copyright (C) 2020 BLUESPAWN" - VALUE "OriginalFilename", "BLUESPAWN-client.exe" - VALUE "ProductName", "BLUESPAWN Client" - VALUE "ProductVersion", "0.5.0" - END - END - BLOCK "VarFileInfo" - BEGIN - VALUE "Translation", 0x409, 1200 - END -END - -///////////////////////////////////////////////////////////////////////////// -// -// yararule -// - -YaraSevere yararule "resources\\severe" -YaraSevere2 yararule "resources\\severe2" - -YaraIndicators yararule "resources\\indicators" - -GoodSIP textfile "resources\\SIP" -GoodTrustProviders textfile "resources\\TrustProviders" - -DefaultMitigations textfile "resources\\mitigations.json" - -#endif // English (United States) resources -///////////////////////////////////////////////////////////////////////////// - - - -#ifndef APSTUDIO_INVOKED -///////////////////////////////////////////////////////////////////////////// -// -// Generated from the TEXTINCLUDE 3 resource. -// - - -///////////////////////////////////////////////////////////////////////////// -#endif // not APSTUDIO_INVOKED - +// Microsoft Visual C++ generated resource script. +// +#include "resource.h" + +#define APSTUDIO_READONLY_SYMBOLS +///////////////////////////////////////////////////////////////////////////// +// +// Generated from the TEXTINCLUDE 2 resource. +// +#include "winres.h" + +///////////////////////////////////////////////////////////////////////////// +#undef APSTUDIO_READONLY_SYMBOLS + +///////////////////////////////////////////////////////////////////////////// +// English (United States) resources + +#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU) +LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US +#pragma code_page(1252) + +#ifdef APSTUDIO_INVOKED +///////////////////////////////////////////////////////////////////////////// +// +// TEXTINCLUDE +// + +1 TEXTINCLUDE +BEGIN + "resource.h\0" +END + +2 TEXTINCLUDE +BEGIN + "#include ""winres.h""\r\n" + "\0" +END + +3 TEXTINCLUDE +BEGIN + "\r\n" + "\0" +END + +#endif // APSTUDIO_INVOKED + +MAINICON ICON "resources\\BLUESPAWN.ico" + +///////////////////////////////////////////////////////////////////////////// +// +// Version +// + +VS_VERSION_INFO VERSIONINFO + FILEVERSION 0,5,0 + PRODUCTVERSION 0,5,0 + FILEFLAGSMASK 0x3fL +#ifdef _DEBUG + FILEFLAGS 0x1L +#else + FILEFLAGS 0x0L +#endif + FILEOS 0x40004L + FILETYPE 0x1L + FILESUBTYPE 0x0L +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "040904b0" + BEGIN + VALUE "CompanyName", "BLUESPAWN Project" + VALUE "FileDescription", "BLUESPAWN Active Defense & EDR Software" + VALUE "FileVersion", "0.5.0" + VALUE "InternalName", "BLUESPAWN-client.exe" + VALUE "LegalCopyright", "Copyright (C) 2020 BLUESPAWN" + VALUE "OriginalFilename", "BLUESPAWN-client.exe" + VALUE "ProductName", "BLUESPAWN Client" + VALUE "ProductVersion", "0.5.0" + END + END + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x409, 1200 + END +END + +///////////////////////////////////////////////////////////////////////////// +// +// yararule +// + +YaraSevere yararule "resources\\severe" +YaraSevere2 yararule "resources\\severe2" + +YaraIndicators yararule "resources\\indicators" + +GoodSIP textfile "resources\\SIP" +GoodTrustProviders textfile "resources\\TrustProviders" + +DefaultMitigations textfile "resources\\mitigations.json" + +#endif // English (United States) resources +///////////////////////////////////////////////////////////////////////////// + + + +#ifndef APSTUDIO_INVOKED +///////////////////////////////////////////////////////////////////////////// +// +// Generated from the TEXTINCLUDE 3 resource. +// + + +///////////////////////////////////////////////////////////////////////////// +#endif // not APSTUDIO_INVOKED + diff --git a/BLUESPAWN-win-client/resources/SIP b/BLUESPAWN-win-client/resources/SIP index c7b778af..7293b66e 100644 --- a/BLUESPAWN-win-client/resources/SIP +++ b/BLUESPAWN-win-client/resources/SIP @@ -1,8 +1,8 @@ -CryptSIPDllCreateIndirectData:0AC5DF4B-CE07-4DE2-B76E-23C839A09FD1,AppxSip.dll,AppxSipCreateIndirectData C689AABA-8E78-11D0-8C47-00C04FC295EE,WINTRUST.DLL,CryptSIPCreateIndirectData 9BA61D3F-E73A-11D0-8CD2-00C04FC295EE,WINTRUST.DLL,CryptSIPCreateIndirectData 1A610570-38CE-11D4-A2A3-00104BD35090,wshext.dll,CreateIndirectData 000C10F1-0000-0000-C000-000000000046,MSISIP.DLL,MsiSIPCreateIndirectData 603BCC1F-4B59-4E08-B724-D2C6297EF351,pwrshsip.dll,PsCreateHash 06C9E010-38CE-11D4-A2A3-00104BD35090,wshext.dll,CreateIndirectData CF78C6DE-64A2-4799-B506-89ADFF5D16D6,AppxSip.dll,EappxSipCreateIndirectData D1D04F0C-9ABA-430D-B0E4-D7E96ACCE66C,AppxSip.dll,EappxBundleSipCreateIndirectData 0F5F58B3-AADE-4B9A-A434-95742D92ECEB,AppxSip.dll,AppxBundleSipCreateIndirectData 9F3053C5-439D-4BF7-8A77-04F0450A1D9F,EsdSip.dll,EsdSipCreateHash C689AAB9-8E78-11D0-8C47-00C04FC295EE,WINTRUST.DLL,CryptSIPCreateIndirectData 1629F04E-2799-4DB5-8FE5-ACE10F17EBAB,wshext.dll,CreateIndirectData DE351A42-8E59-11D0-8C47-00C04FC295EE,WINTRUST.DLL,CryptSIPCreateIndirectData 5598CFF1-68DB-4340-B57F-1CACF88C9A51,AppxSip.dll,P7SipCreateIndirectData DE351A43-8E59-11D0-8C47-00C04FC295EE,WINTRUST.DLL,CryptSIPCreateIndirectData C689AAB8-8E78-11D0-8C47-00C04FC295EE,WINTRUST.DLL,CryptSIPCreateIndirectData BA08A66F-113B-4D58-9329-A1B37AF30F0E,XapAuthenticodeSip.dll,XAP_CryptSIPCreateIndirectData CB034CC7-4A2D-8E07-48E7-F82436FFA03E,navsip.dll,NavSIPCreateIndirectData 9FA65764-C36F-4319-9737-658A34585BB7,mso.dll,MsoVBADigSigCreateIndirectData -CryptSIPDllGetSignedDataMsg:0AC5DF4B-CE07-4DE2-B76E-23C839A09FD1,AppxSip.dll,AppxSipGetSignedDataMsg C689AABA-8E78-11D0-8C47-00C04FC295EE,WINTRUST.DLL,CryptSIPGetSignedDataMsg 9BA61D3F-E73A-11D0-8CD2-00C04FC295EE,WINTRUST.DLL,CryptSIPGetSignedDataMsg 1A610570-38CE-11D4-A2A3-00104BD35090,wshext.dll,GetSignedDataMsg 000C10F1-0000-0000-C000-000000000046,MSISIP.DLL,MsiSIPGetSignedDataMsg 603BCC1F-4B59-4E08-B724-D2C6297EF351,pwrshsip.dll,PsGetSignature 06C9E010-38CE-11D4-A2A3-00104BD35090,wshext.dll,GetSignedDataMsg CF78C6DE-64A2-4799-B506-89ADFF5D16D6,AppxSip.dll,EappxSipGetSignedDataMsg D1D04F0C-9ABA-430D-B0E4-D7E96ACCE66C,AppxSip.dll,EappxBundleSipGetSignedDataMsg 0F5F58B3-AADE-4B9A-A434-95742D92ECEB,AppxSip.dll,AppxBundleSipGetSignedDataMsg 9F3053C5-439D-4BF7-8A77-04F0450A1D9F,EsdSip.dll,EsdSipGetSignature C689AAB9-8E78-11D0-8C47-00C04FC295EE,WINTRUST.DLL,CryptSIPGetSignedDataMsg 1629F04E-2799-4DB5-8FE5-ACE10F17EBAB,wshext.dll,GetSignedDataMsg DE351A42-8E59-11D0-8C47-00C04FC295EE,WINTRUST.DLL,CryptSIPGetSignedDataMsg 5598CFF1-68DB-4340-B57F-1CACF88C9A51,AppxSip.dll,P7xSipGetSignedDataMsg DE351A43-8E59-11D0-8C47-00C04FC295EE,WINTRUST.DLL,CryptSIPGetSignedDataMsg C689AAB8-8E78-11D0-8C47-00C04FC295EE,WINTRUST.DLL,CryptSIPGetSignedDataMsg BA08A66F-113B-4D58-9329-A1B37AF30F0E,XapAuthenticodeSip.dll,XAP_CryptSIPGetSignedDataMsg CB034CC7-4A2D-8E07-48E7-F82436FFA03E,navsip.dll,NavSIPGetSignedDataMsg 9FA65764-C36F-4319-9737-658A34585BB7,mso.dll,MsoVBADigSigGetSignedDataMsg -CryptSIPDllIsMyFileType2:0AC5DF4B-CE07-4DE2-B76E-23C839A09FD1,AppxSip.dll,AppxSipIsFileSupportedName 1A610570-38CE-11D4-A2A3-00104BD35090,wshext.dll,IsFileSupportedName 000C10F1-0000-0000-C000-000000000046,MSISIP.DLL,MsiSIPIsMyTypeOfFile 603BCC1F-4B59-4E08-B724-D2C6297EF351,pwrshsip.dll,PsIsMyFileType 06C9E010-38CE-11D4-A2A3-00104BD35090,wshext.dll,IsFileSupportedName CF78C6DE-64A2-4799-B506-89ADFF5D16D6,AppxSip.dll,EappxSipIsFileSupportedName D1D04F0C-9ABA-430D-B0E4-D7E96ACCE66C,AppxSip.dll,EappxBundleSipIsFileSupportedName 0F5F58B3-AADE-4B9A-A434-95742D92ECEB,AppxSip.dll,AppxBundleSipIsFileSupportedName 9F3053C5-439D-4BF7-8A77-04F0450A1D9F,EsdSip.dll,EsdSipIsMyFileType 1629F04E-2799-4DB5-8FE5-ACE10F17EBAB,wshext.dll,IsFileSupportedName 5598CFF1-68DB-4340-B57F-1CACF88C9A51,AppxSip.dll,P7xSipIsFileSupportedName BA08A66F-113B-4D58-9329-A1B37AF30F0E,XapAuthenticodeSip.dll,XAP_IsFileSupportedName CB034CC7-4A2D-8E07-48E7-F82436FFA03E,navsip.dll,NavSIPIsFileSupportedName -CryptSIPDllPutSignedDataMsg:0AC5DF4B-CE07-4DE2-B76E-23C839A09FD1,AppxSip.dll,AppxSipPutSignedDataMsg C689AABA-8E78-11D0-8C47-00C04FC295EE,WINTRUST.DLL,CryptSIPPutSignedDataMsg 9BA61D3F-E73A-11D0-8CD2-00C04FC295EE,WINTRUST.DLL,CryptSIPPutSignedDataMsg 1A610570-38CE-11D4-A2A3-00104BD35090,wshext.dll,PutSignedDataMsg 000C10F1-0000-0000-C000-000000000046,MSISIP.DLL,MsiSIPPutSignedDataMsg 603BCC1F-4B59-4E08-B724-D2C6297EF351,pwrshsip.dll,PsPutSignature 06C9E010-38CE-11D4-A2A3-00104BD35090,wshext.dll,PutSignedDataMsg CF78C6DE-64A2-4799-B506-89ADFF5D16D6,AppxSip.dll,EappxSipPutSignedDataMsg D1D04F0C-9ABA-430D-B0E4-D7E96ACCE66C,AppxSip.dll,EappxBundleSipPutSignedDataMsg 0F5F58B3-AADE-4B9A-A434-95742D92ECEB,AppxSip.dll,AppxBundleSipPutSignedDataMsg 9F3053C5-439D-4BF7-8A77-04F0450A1D9F,EsdSip.dll,EsdSipPutSignature C689AAB9-8E78-11D0-8C47-00C04FC295EE,WINTRUST.DLL,CryptSIPPutSignedDataMsg 1629F04E-2799-4DB5-8FE5-ACE10F17EBAB,wshext.dll,PutSignedDataMsg DE351A42-8E59-11D0-8C47-00C04FC295EE,WINTRUST.DLL,CryptSIPPutSignedDataMsg 5598CFF1-68DB-4340-B57F-1CACF88C9A51,AppxSip.dll,P7xSipPutSignedDataMsg DE351A43-8E59-11D0-8C47-00C04FC295EE,WINTRUST.DLL,CryptSIPPutSignedDataMsg C689AAB8-8E78-11D0-8C47-00C04FC295EE,WINTRUST.DLL,CryptSIPPutSignedDataMsg BA08A66F-113B-4D58-9329-A1B37AF30F0E,XapAuthenticodeSip.dll,XAP_CryptSIPPutSignedDataMsg CB034CC7-4A2D-8E07-48E7-F82436FFA03E,navsip.dll,NavSIPPutSignedDataMsg 9FA65764-C36F-4319-9737-658A34585BB7,mso.dll,MsoVBADigSigPutSignedDataMsg -CryptSIPDllRemoveSignedDataMsg:0AC5DF4B-CE07-4DE2-B76E-23C839A09FD1,AppxSip.dll,AppxSipRemoveSignedDataMsg C689AABA-8E78-11D0-8C47-00C04FC295EE,WINTRUST.DLL,CryptSIPRemoveSignedDataMsg 9BA61D3F-E73A-11D0-8CD2-00C04FC295EE,WINTRUST.DLL,CryptSIPRemoveSignedDataMsg 1A610570-38CE-11D4-A2A3-00104BD35090,wshext.dll,RemoveSignedDataMsg 000C10F1-0000-0000-C000-000000000046,MSISIP.DLL,MsiSIPRemoveSignedDataMsg 603BCC1F-4B59-4E08-B724-D2C6297EF351,pwrshsip.dll,PsDelSignature 06C9E010-38CE-11D4-A2A3-00104BD35090,wshext.dll,RemoveSignedDataMsg CF78C6DE-64A2-4799-B506-89ADFF5D16D6,AppxSip.dll,EappxSipRemoveSignedDataMsg D1D04F0C-9ABA-430D-B0E4-D7E96ACCE66C,AppxSip.dll,EappxBundleSipRemoveSignedDataMsg 0F5F58B3-AADE-4B9A-A434-95742D92ECEB,AppxSip.dll,AppxBundleSipRemoveSignedDataMsg 9F3053C5-439D-4BF7-8A77-04F0450A1D9F,EsdSip.dll,EsdSipDelSignature C689AAB9-8E78-11D0-8C47-00C04FC295EE,WINTRUST.DLL,CryptSIPRemoveSignedDataMsg 1629F04E-2799-4DB5-8FE5-ACE10F17EBAB,wshext.dll,RemoveSignedDataMsg DE351A42-8E59-11D0-8C47-00C04FC295EE,WINTRUST.DLL,CryptSIPRemoveSignedDataMsg 5598CFF1-68DB-4340-B57F-1CACF88C9A51,AppxSip.dll,P7xSipRemoveSignedDataMsg DE351A43-8E59-11D0-8C47-00C04FC295EE,WINTRUST.DLL,CryptSIPRemoveSignedDataMsg C689AAB8-8E78-11D0-8C47-00C04FC295EE,WINTRUST.DLL,CryptSIPRemoveSignedDataMsg BA08A66F-113B-4D58-9329-A1B37AF30F0E,XapAuthenticodeSip.dll,XAP_CryptSIPRemoveSignedDataMsg CB034CC7-4A2D-8E07-48E7-F82436FFA03E,navsip.dll,NavSIPRemoveSignedDataMsg 9FA65764-C36F-4319-9737-658A34585BB7,mso.dll,MsoVBADigSigRemoveSignedDataMsg -CryptSIPDllVerifyIndirectData:0AC5DF4B-CE07-4DE2-B76E-23C839A09FD1,AppxSip.dll,AppxSipVerifyIndirectData C689AABA-8E78-11D0-8C47-00C04FC295EE,WINTRUST.DLL,CryptSIPVerifyIndirectData 9BA61D3F-E73A-11D0-8CD2-00C04FC295EE,WINTRUST.DLL,CryptSIPVerifyIndirectData 1A610570-38CE-11D4-A2A3-00104BD35090,wshext.dll,VerifyIndirectData 000C10F1-0000-0000-C000-000000000046,MSISIP.DLL,MsiSIPVerifyIndirectData 603BCC1F-4B59-4E08-B724-D2C6297EF351,pwrshsip.dll,PsVerifyHash 06C9E010-38CE-11D4-A2A3-00104BD35090,wshext.dll,VerifyIndirectData CF78C6DE-64A2-4799-B506-89ADFF5D16D6,AppxSip.dll,EappxSipVerifyIndirectData D1D04F0C-9ABA-430D-B0E4-D7E96ACCE66C,AppxSip.dll,EappxBundleSipVerifyIndirectData 0F5F58B3-AADE-4B9A-A434-95742D92ECEB,AppxSip.dll,AppxBundleSipVerifyIndirectData 9F3053C5-439D-4BF7-8A77-04F0450A1D9F,EsdSip.dll,EsdSipVerifyHash C689AAB9-8E78-11D0-8C47-00C04FC295EE,WINTRUST.DLL,CryptSIPVerifyIndirectData 1629F04E-2799-4DB5-8FE5-ACE10F17EBAB,wshext.dll,VerifyIndirectData DE351A42-8E59-11D0-8C47-00C04FC295EE,WINTRUST.DLL,CryptSIPVerifyIndirectData 5598CFF1-68DB-4340-B57F-1CACF88C9A51,AppxSip.dll,P7xSipVerifyIndirectData DE351A43-8E59-11D0-8C47-00C04FC295EE,WINTRUST.DLL,CryptSIPVerifyIndirectData C689AAB8-8E78-11D0-8C47-00C04FC295EE,WINTRUST.dll,CryptSIPVerifyIndirectData BA08A66F-113B-4D58-9329-A1B37AF30F0E,XapAuthenticodeSip.dll,XAP_CryptSIPVerifyIndirectData CB034CC7-4A2D-8E07-48E7-F82436FFA03E,navsip.dll,NavSIPVerifyIndirectData 9FA65764-C36F-4319-9737-658A34585BB7,mso.dll,MsoVBADigSigVerifyIndirectData -CryptSIPDllGetCaps:C689AABA-8E78-11D0-8C47-00C04FC295EE,WINTRUST.DLL,CryptSIPGetCaps 9BA61D3F-E73A-11D0-8CD2-00C04FC295EE,WINTRUST.DLL,CryptSIPGetCaps 9F3053C5-439D-4BF7-8A77-04F0450A1D9F,EsdSip.dll,EsdSipGetCaps C689AAB9-8E78-11D0-8C47-00C04FC295EE,WINTRUST.DLL,CryptSIPGetCaps DE351A42-8E59-11D0-8C47-00C04FC295EE,WINTRUST.DLL,CryptSIPGetCaps DE351A43-8E59-11D0-8C47-00C04FC295EE,WINTRUST.DLL,CryptSIPGetCaps C689AAB8-8E78-11D0-8C47-00C04FC295EE,WINTRUST.DLL,CryptSIPGetCaps CB034CC7-4A2D-8E07-48E7-F82436FFA03E,navsip.dll,NavSIPGetCaps +CryptSIPDllCreateIndirectData:0AC5DF4B-CE07-4DE2-B76E-23C839A09FD1,AppxSip.dll,AppxSipCreateIndirectData C689AABA-8E78-11D0-8C47-00C04FC295EE,WINTRUST.DLL,CryptSIPCreateIndirectData 9BA61D3F-E73A-11D0-8CD2-00C04FC295EE,WINTRUST.DLL,CryptSIPCreateIndirectData 1A610570-38CE-11D4-A2A3-00104BD35090,wshext.dll,CreateIndirectData 000C10F1-0000-0000-C000-000000000046,MSISIP.DLL,MsiSIPCreateIndirectData 603BCC1F-4B59-4E08-B724-D2C6297EF351,pwrshsip.dll,PsCreateHash 06C9E010-38CE-11D4-A2A3-00104BD35090,wshext.dll,CreateIndirectData CF78C6DE-64A2-4799-B506-89ADFF5D16D6,AppxSip.dll,EappxSipCreateIndirectData D1D04F0C-9ABA-430D-B0E4-D7E96ACCE66C,AppxSip.dll,EappxBundleSipCreateIndirectData 0F5F58B3-AADE-4B9A-A434-95742D92ECEB,AppxSip.dll,AppxBundleSipCreateIndirectData 9F3053C5-439D-4BF7-8A77-04F0450A1D9F,EsdSip.dll,EsdSipCreateHash C689AAB9-8E78-11D0-8C47-00C04FC295EE,WINTRUST.DLL,CryptSIPCreateIndirectData 1629F04E-2799-4DB5-8FE5-ACE10F17EBAB,wshext.dll,CreateIndirectData DE351A42-8E59-11D0-8C47-00C04FC295EE,WINTRUST.DLL,CryptSIPCreateIndirectData 5598CFF1-68DB-4340-B57F-1CACF88C9A51,AppxSip.dll,P7SipCreateIndirectData DE351A43-8E59-11D0-8C47-00C04FC295EE,WINTRUST.DLL,CryptSIPCreateIndirectData C689AAB8-8E78-11D0-8C47-00C04FC295EE,WINTRUST.DLL,CryptSIPCreateIndirectData BA08A66F-113B-4D58-9329-A1B37AF30F0E,XapAuthenticodeSip.dll,XAP_CryptSIPCreateIndirectData CB034CC7-4A2D-8E07-48E7-F82436FFA03E,navsip.dll,NavSIPCreateIndirectData 9FA65764-C36F-4319-9737-658A34585BB7,mso.dll,MsoVBADigSigCreateIndirectData +CryptSIPDllGetSignedDataMsg:0AC5DF4B-CE07-4DE2-B76E-23C839A09FD1,AppxSip.dll,AppxSipGetSignedDataMsg C689AABA-8E78-11D0-8C47-00C04FC295EE,WINTRUST.DLL,CryptSIPGetSignedDataMsg 9BA61D3F-E73A-11D0-8CD2-00C04FC295EE,WINTRUST.DLL,CryptSIPGetSignedDataMsg 1A610570-38CE-11D4-A2A3-00104BD35090,wshext.dll,GetSignedDataMsg 000C10F1-0000-0000-C000-000000000046,MSISIP.DLL,MsiSIPGetSignedDataMsg 603BCC1F-4B59-4E08-B724-D2C6297EF351,pwrshsip.dll,PsGetSignature 06C9E010-38CE-11D4-A2A3-00104BD35090,wshext.dll,GetSignedDataMsg CF78C6DE-64A2-4799-B506-89ADFF5D16D6,AppxSip.dll,EappxSipGetSignedDataMsg D1D04F0C-9ABA-430D-B0E4-D7E96ACCE66C,AppxSip.dll,EappxBundleSipGetSignedDataMsg 0F5F58B3-AADE-4B9A-A434-95742D92ECEB,AppxSip.dll,AppxBundleSipGetSignedDataMsg 9F3053C5-439D-4BF7-8A77-04F0450A1D9F,EsdSip.dll,EsdSipGetSignature C689AAB9-8E78-11D0-8C47-00C04FC295EE,WINTRUST.DLL,CryptSIPGetSignedDataMsg 1629F04E-2799-4DB5-8FE5-ACE10F17EBAB,wshext.dll,GetSignedDataMsg DE351A42-8E59-11D0-8C47-00C04FC295EE,WINTRUST.DLL,CryptSIPGetSignedDataMsg 5598CFF1-68DB-4340-B57F-1CACF88C9A51,AppxSip.dll,P7xSipGetSignedDataMsg DE351A43-8E59-11D0-8C47-00C04FC295EE,WINTRUST.DLL,CryptSIPGetSignedDataMsg C689AAB8-8E78-11D0-8C47-00C04FC295EE,WINTRUST.DLL,CryptSIPGetSignedDataMsg BA08A66F-113B-4D58-9329-A1B37AF30F0E,XapAuthenticodeSip.dll,XAP_CryptSIPGetSignedDataMsg CB034CC7-4A2D-8E07-48E7-F82436FFA03E,navsip.dll,NavSIPGetSignedDataMsg 9FA65764-C36F-4319-9737-658A34585BB7,mso.dll,MsoVBADigSigGetSignedDataMsg +CryptSIPDllIsMyFileType2:0AC5DF4B-CE07-4DE2-B76E-23C839A09FD1,AppxSip.dll,AppxSipIsFileSupportedName 1A610570-38CE-11D4-A2A3-00104BD35090,wshext.dll,IsFileSupportedName 000C10F1-0000-0000-C000-000000000046,MSISIP.DLL,MsiSIPIsMyTypeOfFile 603BCC1F-4B59-4E08-B724-D2C6297EF351,pwrshsip.dll,PsIsMyFileType 06C9E010-38CE-11D4-A2A3-00104BD35090,wshext.dll,IsFileSupportedName CF78C6DE-64A2-4799-B506-89ADFF5D16D6,AppxSip.dll,EappxSipIsFileSupportedName D1D04F0C-9ABA-430D-B0E4-D7E96ACCE66C,AppxSip.dll,EappxBundleSipIsFileSupportedName 0F5F58B3-AADE-4B9A-A434-95742D92ECEB,AppxSip.dll,AppxBundleSipIsFileSupportedName 9F3053C5-439D-4BF7-8A77-04F0450A1D9F,EsdSip.dll,EsdSipIsMyFileType 1629F04E-2799-4DB5-8FE5-ACE10F17EBAB,wshext.dll,IsFileSupportedName 5598CFF1-68DB-4340-B57F-1CACF88C9A51,AppxSip.dll,P7xSipIsFileSupportedName BA08A66F-113B-4D58-9329-A1B37AF30F0E,XapAuthenticodeSip.dll,XAP_IsFileSupportedName CB034CC7-4A2D-8E07-48E7-F82436FFA03E,navsip.dll,NavSIPIsFileSupportedName +CryptSIPDllPutSignedDataMsg:0AC5DF4B-CE07-4DE2-B76E-23C839A09FD1,AppxSip.dll,AppxSipPutSignedDataMsg C689AABA-8E78-11D0-8C47-00C04FC295EE,WINTRUST.DLL,CryptSIPPutSignedDataMsg 9BA61D3F-E73A-11D0-8CD2-00C04FC295EE,WINTRUST.DLL,CryptSIPPutSignedDataMsg 1A610570-38CE-11D4-A2A3-00104BD35090,wshext.dll,PutSignedDataMsg 000C10F1-0000-0000-C000-000000000046,MSISIP.DLL,MsiSIPPutSignedDataMsg 603BCC1F-4B59-4E08-B724-D2C6297EF351,pwrshsip.dll,PsPutSignature 06C9E010-38CE-11D4-A2A3-00104BD35090,wshext.dll,PutSignedDataMsg CF78C6DE-64A2-4799-B506-89ADFF5D16D6,AppxSip.dll,EappxSipPutSignedDataMsg D1D04F0C-9ABA-430D-B0E4-D7E96ACCE66C,AppxSip.dll,EappxBundleSipPutSignedDataMsg 0F5F58B3-AADE-4B9A-A434-95742D92ECEB,AppxSip.dll,AppxBundleSipPutSignedDataMsg 9F3053C5-439D-4BF7-8A77-04F0450A1D9F,EsdSip.dll,EsdSipPutSignature C689AAB9-8E78-11D0-8C47-00C04FC295EE,WINTRUST.DLL,CryptSIPPutSignedDataMsg 1629F04E-2799-4DB5-8FE5-ACE10F17EBAB,wshext.dll,PutSignedDataMsg DE351A42-8E59-11D0-8C47-00C04FC295EE,WINTRUST.DLL,CryptSIPPutSignedDataMsg 5598CFF1-68DB-4340-B57F-1CACF88C9A51,AppxSip.dll,P7xSipPutSignedDataMsg DE351A43-8E59-11D0-8C47-00C04FC295EE,WINTRUST.DLL,CryptSIPPutSignedDataMsg C689AAB8-8E78-11D0-8C47-00C04FC295EE,WINTRUST.DLL,CryptSIPPutSignedDataMsg BA08A66F-113B-4D58-9329-A1B37AF30F0E,XapAuthenticodeSip.dll,XAP_CryptSIPPutSignedDataMsg CB034CC7-4A2D-8E07-48E7-F82436FFA03E,navsip.dll,NavSIPPutSignedDataMsg 9FA65764-C36F-4319-9737-658A34585BB7,mso.dll,MsoVBADigSigPutSignedDataMsg +CryptSIPDllRemoveSignedDataMsg:0AC5DF4B-CE07-4DE2-B76E-23C839A09FD1,AppxSip.dll,AppxSipRemoveSignedDataMsg C689AABA-8E78-11D0-8C47-00C04FC295EE,WINTRUST.DLL,CryptSIPRemoveSignedDataMsg 9BA61D3F-E73A-11D0-8CD2-00C04FC295EE,WINTRUST.DLL,CryptSIPRemoveSignedDataMsg 1A610570-38CE-11D4-A2A3-00104BD35090,wshext.dll,RemoveSignedDataMsg 000C10F1-0000-0000-C000-000000000046,MSISIP.DLL,MsiSIPRemoveSignedDataMsg 603BCC1F-4B59-4E08-B724-D2C6297EF351,pwrshsip.dll,PsDelSignature 06C9E010-38CE-11D4-A2A3-00104BD35090,wshext.dll,RemoveSignedDataMsg CF78C6DE-64A2-4799-B506-89ADFF5D16D6,AppxSip.dll,EappxSipRemoveSignedDataMsg D1D04F0C-9ABA-430D-B0E4-D7E96ACCE66C,AppxSip.dll,EappxBundleSipRemoveSignedDataMsg 0F5F58B3-AADE-4B9A-A434-95742D92ECEB,AppxSip.dll,AppxBundleSipRemoveSignedDataMsg 9F3053C5-439D-4BF7-8A77-04F0450A1D9F,EsdSip.dll,EsdSipDelSignature C689AAB9-8E78-11D0-8C47-00C04FC295EE,WINTRUST.DLL,CryptSIPRemoveSignedDataMsg 1629F04E-2799-4DB5-8FE5-ACE10F17EBAB,wshext.dll,RemoveSignedDataMsg DE351A42-8E59-11D0-8C47-00C04FC295EE,WINTRUST.DLL,CryptSIPRemoveSignedDataMsg 5598CFF1-68DB-4340-B57F-1CACF88C9A51,AppxSip.dll,P7xSipRemoveSignedDataMsg DE351A43-8E59-11D0-8C47-00C04FC295EE,WINTRUST.DLL,CryptSIPRemoveSignedDataMsg C689AAB8-8E78-11D0-8C47-00C04FC295EE,WINTRUST.DLL,CryptSIPRemoveSignedDataMsg BA08A66F-113B-4D58-9329-A1B37AF30F0E,XapAuthenticodeSip.dll,XAP_CryptSIPRemoveSignedDataMsg CB034CC7-4A2D-8E07-48E7-F82436FFA03E,navsip.dll,NavSIPRemoveSignedDataMsg 9FA65764-C36F-4319-9737-658A34585BB7,mso.dll,MsoVBADigSigRemoveSignedDataMsg +CryptSIPDllVerifyIndirectData:0AC5DF4B-CE07-4DE2-B76E-23C839A09FD1,AppxSip.dll,AppxSipVerifyIndirectData C689AABA-8E78-11D0-8C47-00C04FC295EE,WINTRUST.DLL,CryptSIPVerifyIndirectData 9BA61D3F-E73A-11D0-8CD2-00C04FC295EE,WINTRUST.DLL,CryptSIPVerifyIndirectData 1A610570-38CE-11D4-A2A3-00104BD35090,wshext.dll,VerifyIndirectData 000C10F1-0000-0000-C000-000000000046,MSISIP.DLL,MsiSIPVerifyIndirectData 603BCC1F-4B59-4E08-B724-D2C6297EF351,pwrshsip.dll,PsVerifyHash 06C9E010-38CE-11D4-A2A3-00104BD35090,wshext.dll,VerifyIndirectData CF78C6DE-64A2-4799-B506-89ADFF5D16D6,AppxSip.dll,EappxSipVerifyIndirectData D1D04F0C-9ABA-430D-B0E4-D7E96ACCE66C,AppxSip.dll,EappxBundleSipVerifyIndirectData 0F5F58B3-AADE-4B9A-A434-95742D92ECEB,AppxSip.dll,AppxBundleSipVerifyIndirectData 9F3053C5-439D-4BF7-8A77-04F0450A1D9F,EsdSip.dll,EsdSipVerifyHash C689AAB9-8E78-11D0-8C47-00C04FC295EE,WINTRUST.DLL,CryptSIPVerifyIndirectData 1629F04E-2799-4DB5-8FE5-ACE10F17EBAB,wshext.dll,VerifyIndirectData DE351A42-8E59-11D0-8C47-00C04FC295EE,WINTRUST.DLL,CryptSIPVerifyIndirectData 5598CFF1-68DB-4340-B57F-1CACF88C9A51,AppxSip.dll,P7xSipVerifyIndirectData DE351A43-8E59-11D0-8C47-00C04FC295EE,WINTRUST.DLL,CryptSIPVerifyIndirectData C689AAB8-8E78-11D0-8C47-00C04FC295EE,WINTRUST.dll,CryptSIPVerifyIndirectData BA08A66F-113B-4D58-9329-A1B37AF30F0E,XapAuthenticodeSip.dll,XAP_CryptSIPVerifyIndirectData CB034CC7-4A2D-8E07-48E7-F82436FFA03E,navsip.dll,NavSIPVerifyIndirectData 9FA65764-C36F-4319-9737-658A34585BB7,mso.dll,MsoVBADigSigVerifyIndirectData +CryptSIPDllGetCaps:C689AABA-8E78-11D0-8C47-00C04FC295EE,WINTRUST.DLL,CryptSIPGetCaps 9BA61D3F-E73A-11D0-8CD2-00C04FC295EE,WINTRUST.DLL,CryptSIPGetCaps 9F3053C5-439D-4BF7-8A77-04F0450A1D9F,EsdSip.dll,EsdSipGetCaps C689AAB9-8E78-11D0-8C47-00C04FC295EE,WINTRUST.DLL,CryptSIPGetCaps DE351A42-8E59-11D0-8C47-00C04FC295EE,WINTRUST.DLL,CryptSIPGetCaps DE351A43-8E59-11D0-8C47-00C04FC295EE,WINTRUST.DLL,CryptSIPGetCaps C689AAB8-8E78-11D0-8C47-00C04FC295EE,WINTRUST.DLL,CryptSIPGetCaps CB034CC7-4A2D-8E07-48E7-F82436FFA03E,navsip.dll,NavSIPGetCaps CryptSIPDllGetSealedDigest:C689AABA-8E78-11D0-8C47-00C04FC295EE,WINTRUST.DLL,CryptSIPGetSealedDigest 9BA61D3F-E73A-11D0-8CD2-00C04FC295EE,WINTRUST.DLL,CryptSIPGetSealedDigest C689AAB9-8E78-11D0-8C47-00C04FC295EE,WINTRUST.DLL,CryptSIPGetSealedDigest DE351A42-8E59-11D0-8C47-00C04FC295EE,WINTRUST.DLL,CryptSIPGetSealedDigest DE351A43-8E59-11D0-8C47-00C04FC295EE,WINTRUST.DLL,CryptSIPGetSealedDigest C689AAB8-8E78-11D0-8C47-00C04FC295EE,WINTRUST.DLL,CryptSIPGetSealedDigest \ No newline at end of file diff --git a/BLUESPAWN-win-client/resources/TrustProviders b/BLUESPAWN-win-client/resources/TrustProviders index f8bf64da..49b032a5 100644 --- a/BLUESPAWN-win-client/resources/TrustProviders +++ b/BLUESPAWN-win-client/resources/TrustProviders @@ -1,8 +1,8 @@ -CertCheck:7801EBD0-CF4B-11D0-851F-0060979387EA,Cryptdlg.dll,CertTrustCertPolicy 00AAC56B-CD44-11D0-8CC2-00C04FC295EE,WINTRUST.DLL,SoftpubCheckCert D41E4F1D-A407-11D1-8BC9-00C04FA30A41,WINTRUST.DLL,SoftpubCheckCert D41E4F1F-A407-11D1-8BC9-00C04FA30A41,WINTRUST.DLL,SoftpubCheckCert C6B2E8D0-E005-11CF-A134-00C04FD7BF43,WINTRUST.DLL,SoftpubCheckCert F750E6C3-38EE-11D1-85E5-00C04FC295EE,WINTRUST.DLL,SoftpubCheckCert A7F4C378-21BE-494e-BA0F-BB12C5D208C5,WINTRUST.DLL,SoftpubCheckCert 6078065b-8f22-4b13-bd9b-5b762776f386,WINTRUST.DLL,SoftpubCheckCert 31D1ADC1-D329-11D1-8ED8-0080C76516C6,WINTRUST.DLL,SoftpubCheckCert 573E31F8-DDBA-11D0-8CCB-00C04FC295EE,WINTRUST.DLL,SoftpubCheckCert 573E31F8-AABA-11D0-8CCB-00C04FC295EE,WINTRUST.DLL,SoftpubCheckCert FC451C16-AC75-11D1-B4B8-00C04FB66EA0,WINTRUST.DLL,SoftpubCheckCert 189A3842-3041-11D1-85E1-00C04FC295EE,WINTRUST.DLL,SoftpubCheckCert 64B9D180-8DA2-11CF-8736-00AA00A485EB,WINTRUST.DLL,SoftpubCheckCert 4ECC1CC8-31B7-45CE-B4B9-2DD45C2FF958,mso.dll,MsoSoftpubCheckCert -Certificate:7801EBD0-CF4B-11D0-851F-0060979387EA,WINTRUST.DLL,WintrustCertificateTrust 00AAC56B-CD44-11D0-8CC2-00C04FC295EE,WINTRUST.DLL,WintrustCertificateTrust D41E4F1D-A407-11D1-8BC9-00C04FA30A41,WINTRUST.DLL,WintrustCertificateTrust D41E4F1F-A407-11D1-8BC9-00C04FA30A41,WINTRUST.DLL,WintrustCertificateTrust C6B2E8D0-E005-11CF-A134-00C04FD7BF43,WINTRUST.DLL,WintrustCertificateTrust F750E6C3-38EE-11D1-85E5-00C04FC295EE,WINTRUST.DLL,WintrustCertificateTrust A7F4C378-21BE-494e-BA0F-BB12C5D208C5,WINTRUST.DLL,WintrustCertificateTrust 6078065b-8f22-4b13-bd9b-5b762776f386,WINTRUST.DLL,WintrustCertificateTrust 31D1ADC1-D329-11D1-8ED8-0080C76516C6,WINTRUST.DLL,WintrustCertificateTrust 573E31F8-DDBA-11D0-8CCB-00C04FC295EE,WINTRUST.DLL,WintrustCertificateTrust 573E31F8-AABA-11D0-8CCB-00C04FC295EE,WINTRUST.DLL,HTTPSCertificateTrust FC451C16-AC75-11D1-B4B8-00C04FB66EA0,WINTRUST.DLL,GenericChainCertificateTrust 189A3842-3041-11D1-85E1-00C04FC295EE,WINTRUST.DLL,WintrustCertificateTrust 64B9D180-8DA2-11CF-8736-00AA00A485EB,WINTRUST.DLL,WintrustCertificateTrust 4ECC1CC8-31B7-45CE-B4B9-2DD45C2FF958,mso.dll,MsoWintrustCertificateTrust -Cleanup:7801EBD0-CF4B-11D0-851F-0060979387EA,Cryptdlg.dll,CertTrustCleanup 00AAC56B-CD44-11D0-8CC2-00C04FC295EE,WINTRUST.DLL,SoftpubCleanup C6B2E8D0-E005-11CF-A134-00C04FD7BF43,WINTRUST.DLL,SoftpubCleanup F750E6C3-38EE-11D1-85E5-00C04FC295EE,WINTRUST.DLL,DriverCleanupPolicy 6078065b-8f22-4b13-bd9b-5b762776f386,WINTRUST.DLL,DriverCleanupPolicy 573E31F8-DDBA-11D0-8CCB-00C04FC295EE,WINTRUST.DLL,SoftpubCleanup 573E31F8-AABA-11D0-8CCB-00C04FC295EE,WINTRUST.DLL,SoftpubCleanup FC451C16-AC75-11D1-B4B8-00C04FB66EA0,WINTRUST.DLL,SoftpubCleanup 189A3842-3041-11D1-85E1-00C04FC295EE,WINTRUST.DLL,SoftpubCleanup 64B9D180-8DA2-11CF-8736-00AA00A485EB,WINTRUST.DLL,SoftpubCleanup 4ECC1CC8-31B7-45CE-B4B9-2DD45C2FF958,mso.dll,MsoSoftpubCleanupPolicy -FinalPolicy:7801EBD0-CF4B-11D0-851F-0060979387EA,Cryptdlg.dll,CertTrustFinalPolicy 00AAC56B-CD44-11D0-8CC2-00C04FC295EE,WINTRUST.DLL,SoftpubAuthenticode D41E4F1D-A407-11D1-8BC9-00C04FA30A41,urlmon.dll,CORPolicyProvider D41E4F1F-A407-11D1-8BC9-00C04FA30A41,ieframe.dll,CORLockDownProvider C6B2E8D0-E005-11CF-A134-00C04FD7BF43,WINTRUST.DLL,SoftpubAuthenticode F750E6C3-38EE-11D1-85E5-00C04FC295EE,WINTRUST.DLL,DriverFinalPolicy A7F4C378-21BE-494e-BA0F-BB12C5D208C5,mscorsecimpl.dll,CORPolicyEE 6078065b-8f22-4b13-bd9b-5b762776f386,WINTRUST.DLL,ConfigCiFinalPolicy 31D1ADC1-D329-11D1-8ED8-0080C76516C6,mscorsec.dll,CORPolicyEE 573E31F8-DDBA-11D0-8CCB-00C04FC295EE,WINTRUST.DLL,SoftpubAuthenticode 573E31F8-AABA-11D0-8CCB-00C04FC295EE,WINTRUST.DLL,HTTPSFinalProv FC451C16-AC75-11D1-B4B8-00C04FB66EA0,WINTRUST.DLL,GenericChainFinalProv 189A3842-3041-11D1-85E1-00C04FC295EE,WINTRUST.DLL,SoftpubAuthenticode 64B9D180-8DA2-11CF-8736-00AA00A485EB,WINTRUST.DLL,SoftpubAuthenticode 4ECC1CC8-31B7-45CE-B4B9-2DD45C2FF958,mso.dll,MsoWintrustFinalPolicy -Initialization:7801EBD0-CF4B-11D0-851F-0060979387EA,Cryptdlg.dll,CertTrustInit 00AAC56B-CD44-11D0-8CC2-00C04FC295EE,WINTRUST.DLL,SoftpubInitialize D41E4F1D-A407-11D1-8BC9-00C04FA30A41,WINTRUST.DLL,SoftpubInitialize D41E4F1F-A407-11D1-8BC9-00C04FA30A41,WINTRUST.DLL,SoftpubInitialize C6B2E8D0-E005-11CF-A134-00C04FD7BF43,WINTRUST.DLL,SoftpubInitialize F750E6C3-38EE-11D1-85E5-00C04FC295EE,WINTRUST.DLL,DriverInitializePolicy A7F4C378-21BE-494e-BA0F-BB12C5D208C5,WINTRUST.DLL,SoftpubInitialize 6078065b-8f22-4b13-bd9b-5b762776f386,WINTRUST.DLL,DriverInitializePolicy 31D1ADC1-D329-11D1-8ED8-0080C76516C6,WINTRUST.DLL,SoftpubInitialize 573E31F8-DDBA-11D0-8CCB-00C04FC295EE,WINTRUST.DLL,SoftpubInitialize 573E31F8-AABA-11D0-8CCB-00C04FC295EE,WINTRUST.DLL,SoftpubInitialize FC451C16-AC75-11D1-B4B8-00C04FB66EA0,WINTRUST.DLL,SoftpubInitialize 189A3842-3041-11D1-85E1-00C04FC295EE,WINTRUST.DLL,SoftpubDefCertInit 64B9D180-8DA2-11CF-8736-00AA00A485EB,WINTRUST.DLL,SoftpubInitialize 4ECC1CC8-31B7-45CE-B4B9-2DD45C2FF958,mso.dll,MsoSoftpubInitialize -Message:00AAC56B-CD44-11D0-8CC2-00C04FC295EE,WINTRUST.DLL,SoftpubLoadMessage D41E4F1D-A407-11D1-8BC9-00C04FA30A41,WINTRUST.DLL,SoftpubLoadMessage D41E4F1F-A407-11D1-8BC9-00C04FA30A41,WINTRUST.DLL,SoftpubLoadMessage C6B2E8D0-E005-11CF-A134-00C04FD7BF43,WINTRUST.DLL,SoftpubLoadMessage F750E6C3-38EE-11D1-85E5-00C04FC295EE,WINTRUST.DLL,SoftpubLoadMessage A7F4C378-21BE-494e-BA0F-BB12C5D208C5,WINTRUST.DLL,SoftpubLoadMessage 6078065b-8f22-4b13-bd9b-5b762776f386,WINTRUST.DLL,SoftpubLoadMessage 31D1ADC1-D329-11D1-8ED8-0080C76516C6,WINTRUST.DLL,SoftpubLoadMessage 573E31F8-DDBA-11D0-8CCB-00C04FC295EE,WINTRUST.DLL,SoftpubLoadMessage 573E31F8-AABA-11D0-8CCB-00C04FC295EE,WINTRUST.DLL,SoftpubLoadMessage FC451C16-AC75-11D1-B4B8-00C04FB66EA0,WINTRUST.DLL,SoftpubLoadMessage 189A3842-3041-11D1-85E1-00C04FC295EE,WINTRUST.DLL,SoftpubLoadMessage 64B9D180-8DA2-11CF-8736-00AA00A485EB,WINTRUST.DLL,SoftpubLoadMessage 4ECC1CC8-31B7-45CE-B4B9-2DD45C2FF958,mso.dll,MsoSoftpubLoadMessage -Signature:00AAC56B-CD44-11D0-8CC2-00C04FC295EE,WINTRUST.DLL,SoftpubLoadSignature D41E4F1D-A407-11D1-8BC9-00C04FA30A41,WINTRUST.DLL,SoftpubLoadSignature D41E4F1F-A407-11D1-8BC9-00C04FA30A41,WINTRUST.DLL,SoftpubLoadSignature C6B2E8D0-E005-11CF-A134-00C04FD7BF43,WINTRUST.DLL,SoftpubLoadSignature F750E6C3-38EE-11D1-85E5-00C04FC295EE,WINTRUST.DLL,SoftpubLoadSignature A7F4C378-21BE-494e-BA0F-BB12C5D208C5,WINTRUST.DLL,SoftpubLoadSignature 6078065b-8f22-4b13-bd9b-5b762776f386,WINTRUST.DLL,SoftpubLoadSignature 31D1ADC1-D329-11D1-8ED8-0080C76516C6,WINTRUST.DLL,SoftpubLoadSignature 573E31F8-DDBA-11D0-8CCB-00C04FC295EE,WINTRUST.DLL,SoftpubLoadSignature 573E31F8-AABA-11D0-8CCB-00C04FC295EE,WINTRUST.DLL,SoftpubLoadSignature FC451C16-AC75-11D1-B4B8-00C04FB66EA0,WINTRUST.DLL,SoftpubLoadSignature 189A3842-3041-11D1-85E1-00C04FC295EE,WINTRUST.DLL,SoftpubLoadSignature 64B9D180-8DA2-11CF-8736-00AA00A485EB,WINTRUST.DLL,SoftpubLoadSignature 4ECC1CC8-31B7-45CE-B4B9-2DD45C2FF958,mso.dll,MsoSoftpubLoadSignature +CertCheck:7801EBD0-CF4B-11D0-851F-0060979387EA,Cryptdlg.dll,CertTrustCertPolicy 00AAC56B-CD44-11D0-8CC2-00C04FC295EE,WINTRUST.DLL,SoftpubCheckCert D41E4F1D-A407-11D1-8BC9-00C04FA30A41,WINTRUST.DLL,SoftpubCheckCert D41E4F1F-A407-11D1-8BC9-00C04FA30A41,WINTRUST.DLL,SoftpubCheckCert C6B2E8D0-E005-11CF-A134-00C04FD7BF43,WINTRUST.DLL,SoftpubCheckCert F750E6C3-38EE-11D1-85E5-00C04FC295EE,WINTRUST.DLL,SoftpubCheckCert A7F4C378-21BE-494e-BA0F-BB12C5D208C5,WINTRUST.DLL,SoftpubCheckCert 6078065b-8f22-4b13-bd9b-5b762776f386,WINTRUST.DLL,SoftpubCheckCert 31D1ADC1-D329-11D1-8ED8-0080C76516C6,WINTRUST.DLL,SoftpubCheckCert 573E31F8-DDBA-11D0-8CCB-00C04FC295EE,WINTRUST.DLL,SoftpubCheckCert 573E31F8-AABA-11D0-8CCB-00C04FC295EE,WINTRUST.DLL,SoftpubCheckCert FC451C16-AC75-11D1-B4B8-00C04FB66EA0,WINTRUST.DLL,SoftpubCheckCert 189A3842-3041-11D1-85E1-00C04FC295EE,WINTRUST.DLL,SoftpubCheckCert 64B9D180-8DA2-11CF-8736-00AA00A485EB,WINTRUST.DLL,SoftpubCheckCert 4ECC1CC8-31B7-45CE-B4B9-2DD45C2FF958,mso.dll,MsoSoftpubCheckCert +Certificate:7801EBD0-CF4B-11D0-851F-0060979387EA,WINTRUST.DLL,WintrustCertificateTrust 00AAC56B-CD44-11D0-8CC2-00C04FC295EE,WINTRUST.DLL,WintrustCertificateTrust D41E4F1D-A407-11D1-8BC9-00C04FA30A41,WINTRUST.DLL,WintrustCertificateTrust D41E4F1F-A407-11D1-8BC9-00C04FA30A41,WINTRUST.DLL,WintrustCertificateTrust C6B2E8D0-E005-11CF-A134-00C04FD7BF43,WINTRUST.DLL,WintrustCertificateTrust F750E6C3-38EE-11D1-85E5-00C04FC295EE,WINTRUST.DLL,WintrustCertificateTrust A7F4C378-21BE-494e-BA0F-BB12C5D208C5,WINTRUST.DLL,WintrustCertificateTrust 6078065b-8f22-4b13-bd9b-5b762776f386,WINTRUST.DLL,WintrustCertificateTrust 31D1ADC1-D329-11D1-8ED8-0080C76516C6,WINTRUST.DLL,WintrustCertificateTrust 573E31F8-DDBA-11D0-8CCB-00C04FC295EE,WINTRUST.DLL,WintrustCertificateTrust 573E31F8-AABA-11D0-8CCB-00C04FC295EE,WINTRUST.DLL,HTTPSCertificateTrust FC451C16-AC75-11D1-B4B8-00C04FB66EA0,WINTRUST.DLL,GenericChainCertificateTrust 189A3842-3041-11D1-85E1-00C04FC295EE,WINTRUST.DLL,WintrustCertificateTrust 64B9D180-8DA2-11CF-8736-00AA00A485EB,WINTRUST.DLL,WintrustCertificateTrust 4ECC1CC8-31B7-45CE-B4B9-2DD45C2FF958,mso.dll,MsoWintrustCertificateTrust +Cleanup:7801EBD0-CF4B-11D0-851F-0060979387EA,Cryptdlg.dll,CertTrustCleanup 00AAC56B-CD44-11D0-8CC2-00C04FC295EE,WINTRUST.DLL,SoftpubCleanup C6B2E8D0-E005-11CF-A134-00C04FD7BF43,WINTRUST.DLL,SoftpubCleanup F750E6C3-38EE-11D1-85E5-00C04FC295EE,WINTRUST.DLL,DriverCleanupPolicy 6078065b-8f22-4b13-bd9b-5b762776f386,WINTRUST.DLL,DriverCleanupPolicy 573E31F8-DDBA-11D0-8CCB-00C04FC295EE,WINTRUST.DLL,SoftpubCleanup 573E31F8-AABA-11D0-8CCB-00C04FC295EE,WINTRUST.DLL,SoftpubCleanup FC451C16-AC75-11D1-B4B8-00C04FB66EA0,WINTRUST.DLL,SoftpubCleanup 189A3842-3041-11D1-85E1-00C04FC295EE,WINTRUST.DLL,SoftpubCleanup 64B9D180-8DA2-11CF-8736-00AA00A485EB,WINTRUST.DLL,SoftpubCleanup 4ECC1CC8-31B7-45CE-B4B9-2DD45C2FF958,mso.dll,MsoSoftpubCleanupPolicy +FinalPolicy:7801EBD0-CF4B-11D0-851F-0060979387EA,Cryptdlg.dll,CertTrustFinalPolicy 00AAC56B-CD44-11D0-8CC2-00C04FC295EE,WINTRUST.DLL,SoftpubAuthenticode D41E4F1D-A407-11D1-8BC9-00C04FA30A41,urlmon.dll,CORPolicyProvider D41E4F1F-A407-11D1-8BC9-00C04FA30A41,ieframe.dll,CORLockDownProvider C6B2E8D0-E005-11CF-A134-00C04FD7BF43,WINTRUST.DLL,SoftpubAuthenticode F750E6C3-38EE-11D1-85E5-00C04FC295EE,WINTRUST.DLL,DriverFinalPolicy A7F4C378-21BE-494e-BA0F-BB12C5D208C5,mscorsecimpl.dll,CORPolicyEE 6078065b-8f22-4b13-bd9b-5b762776f386,WINTRUST.DLL,ConfigCiFinalPolicy 31D1ADC1-D329-11D1-8ED8-0080C76516C6,mscorsec.dll,CORPolicyEE 573E31F8-DDBA-11D0-8CCB-00C04FC295EE,WINTRUST.DLL,SoftpubAuthenticode 573E31F8-AABA-11D0-8CCB-00C04FC295EE,WINTRUST.DLL,HTTPSFinalProv FC451C16-AC75-11D1-B4B8-00C04FB66EA0,WINTRUST.DLL,GenericChainFinalProv 189A3842-3041-11D1-85E1-00C04FC295EE,WINTRUST.DLL,SoftpubAuthenticode 64B9D180-8DA2-11CF-8736-00AA00A485EB,WINTRUST.DLL,SoftpubAuthenticode 4ECC1CC8-31B7-45CE-B4B9-2DD45C2FF958,mso.dll,MsoWintrustFinalPolicy +Initialization:7801EBD0-CF4B-11D0-851F-0060979387EA,Cryptdlg.dll,CertTrustInit 00AAC56B-CD44-11D0-8CC2-00C04FC295EE,WINTRUST.DLL,SoftpubInitialize D41E4F1D-A407-11D1-8BC9-00C04FA30A41,WINTRUST.DLL,SoftpubInitialize D41E4F1F-A407-11D1-8BC9-00C04FA30A41,WINTRUST.DLL,SoftpubInitialize C6B2E8D0-E005-11CF-A134-00C04FD7BF43,WINTRUST.DLL,SoftpubInitialize F750E6C3-38EE-11D1-85E5-00C04FC295EE,WINTRUST.DLL,DriverInitializePolicy A7F4C378-21BE-494e-BA0F-BB12C5D208C5,WINTRUST.DLL,SoftpubInitialize 6078065b-8f22-4b13-bd9b-5b762776f386,WINTRUST.DLL,DriverInitializePolicy 31D1ADC1-D329-11D1-8ED8-0080C76516C6,WINTRUST.DLL,SoftpubInitialize 573E31F8-DDBA-11D0-8CCB-00C04FC295EE,WINTRUST.DLL,SoftpubInitialize 573E31F8-AABA-11D0-8CCB-00C04FC295EE,WINTRUST.DLL,SoftpubInitialize FC451C16-AC75-11D1-B4B8-00C04FB66EA0,WINTRUST.DLL,SoftpubInitialize 189A3842-3041-11D1-85E1-00C04FC295EE,WINTRUST.DLL,SoftpubDefCertInit 64B9D180-8DA2-11CF-8736-00AA00A485EB,WINTRUST.DLL,SoftpubInitialize 4ECC1CC8-31B7-45CE-B4B9-2DD45C2FF958,mso.dll,MsoSoftpubInitialize +Message:00AAC56B-CD44-11D0-8CC2-00C04FC295EE,WINTRUST.DLL,SoftpubLoadMessage D41E4F1D-A407-11D1-8BC9-00C04FA30A41,WINTRUST.DLL,SoftpubLoadMessage D41E4F1F-A407-11D1-8BC9-00C04FA30A41,WINTRUST.DLL,SoftpubLoadMessage C6B2E8D0-E005-11CF-A134-00C04FD7BF43,WINTRUST.DLL,SoftpubLoadMessage F750E6C3-38EE-11D1-85E5-00C04FC295EE,WINTRUST.DLL,SoftpubLoadMessage A7F4C378-21BE-494e-BA0F-BB12C5D208C5,WINTRUST.DLL,SoftpubLoadMessage 6078065b-8f22-4b13-bd9b-5b762776f386,WINTRUST.DLL,SoftpubLoadMessage 31D1ADC1-D329-11D1-8ED8-0080C76516C6,WINTRUST.DLL,SoftpubLoadMessage 573E31F8-DDBA-11D0-8CCB-00C04FC295EE,WINTRUST.DLL,SoftpubLoadMessage 573E31F8-AABA-11D0-8CCB-00C04FC295EE,WINTRUST.DLL,SoftpubLoadMessage FC451C16-AC75-11D1-B4B8-00C04FB66EA0,WINTRUST.DLL,SoftpubLoadMessage 189A3842-3041-11D1-85E1-00C04FC295EE,WINTRUST.DLL,SoftpubLoadMessage 64B9D180-8DA2-11CF-8736-00AA00A485EB,WINTRUST.DLL,SoftpubLoadMessage 4ECC1CC8-31B7-45CE-B4B9-2DD45C2FF958,mso.dll,MsoSoftpubLoadMessage +Signature:00AAC56B-CD44-11D0-8CC2-00C04FC295EE,WINTRUST.DLL,SoftpubLoadSignature D41E4F1D-A407-11D1-8BC9-00C04FA30A41,WINTRUST.DLL,SoftpubLoadSignature D41E4F1F-A407-11D1-8BC9-00C04FA30A41,WINTRUST.DLL,SoftpubLoadSignature C6B2E8D0-E005-11CF-A134-00C04FD7BF43,WINTRUST.DLL,SoftpubLoadSignature F750E6C3-38EE-11D1-85E5-00C04FC295EE,WINTRUST.DLL,SoftpubLoadSignature A7F4C378-21BE-494e-BA0F-BB12C5D208C5,WINTRUST.DLL,SoftpubLoadSignature 6078065b-8f22-4b13-bd9b-5b762776f386,WINTRUST.DLL,SoftpubLoadSignature 31D1ADC1-D329-11D1-8ED8-0080C76516C6,WINTRUST.DLL,SoftpubLoadSignature 573E31F8-DDBA-11D0-8CCB-00C04FC295EE,WINTRUST.DLL,SoftpubLoadSignature 573E31F8-AABA-11D0-8CCB-00C04FC295EE,WINTRUST.DLL,SoftpubLoadSignature FC451C16-AC75-11D1-B4B8-00C04FB66EA0,WINTRUST.DLL,SoftpubLoadSignature 189A3842-3041-11D1-85E1-00C04FC295EE,WINTRUST.DLL,SoftpubLoadSignature 64B9D180-8DA2-11CF-8736-00AA00A485EB,WINTRUST.DLL,SoftpubLoadSignature 4ECC1CC8-31B7-45CE-B4B9-2DD45C2FF958,mso.dll,MsoSoftpubLoadSignature DiagnosticPolicy:573E31F8-DDBA-11D0-8CCB-00C04FC295EE,WINTRUST.DLL,SoftpubDumpStructure 4ECC1CC8-31B7-45CE-B4B9-2DD45C2FF958,mso.dll,MsoWintrustTestPolicy \ No newline at end of file diff --git a/BLUESPAWN-win-client/resources/indicators b/BLUESPAWN-win-client/resources/indicators new file mode 100644 index 00000000..48ce3c6a Binary files /dev/null and b/BLUESPAWN-win-client/resources/indicators differ diff --git a/BLUESPAWN-win-client/resources/indicators.yar b/BLUESPAWN-win-client/resources/indicators.yar index 4a2fb9f2..843ea4e2 100644 --- a/BLUESPAWN-win-client/resources/indicators.yar +++ b/BLUESPAWN-win-client/resources/indicators.yar @@ -1,2 +1,2 @@ -include "../external/yara-rules/capabilities/capabilities.yar" -include "../external/yara-rules/antidebug_antivm/antidebug_antivm.yar" +include "../external/yara-rules/capabilities/capabilities.yar" +include "../external/yara-rules/antidebug_antivm/antidebug_antivm.yar" diff --git a/BLUESPAWN-win-client/resources/mitigations.json b/BLUESPAWN-win-client/resources/mitigations.json index 868b1efa..c44bb114 100644 --- a/BLUESPAWN-win-client/resources/mitigations.json +++ b/BLUESPAWN-win-client/resources/mitigations.json @@ -1,526 +1,526 @@ -{ - "mitigations": [ - { - "name": "M1025 - Privileged Process Integrity", - "description": "Protect processes with high privileges that can be used to interact with critical system components through use of protected process light, anti-process injection defenses, or other process integrity enforcement measures", - "software": "Windows", - "policies": [ - { - "policy-type": "registry-value-policy", - "name": "Run LSA As PPL", - "description": "Run the Local Security Authority as a Protected Process Lite, preventing process injection and other attacks on lsass.exe's memory", - "enforcement-level": "moderate", - "min-software-version": "6.3", - "key-path": "HKLM\\System\\CurrentControlSet\\Control\\Lsa", - "value-name": "RunAsPPL", - "data-value": 1, - "data-type": "REG_DWORD", - "registry-value-policy-type": "require-exact" - } - ] - }, - { - "name": "M1028 - Operating System Configuration", - "description": "Make configuration changes related to the operating system or a common feature of the operating system that result in system hardening against techniques.", - "software": "Windows", - "policies": [ - { - "policy-type": "registry-value-policy", - "name": "V-17417", - "description": "A firewall provides a line of defense against attack. To be effective, it must be enabled and properly configured. This setting enables the firewall when connected to a public network", - "enforcement-level": "low", - "key-path": "HKLM\\System\\CurrentControlSet\\Services\\SharedAccess\\Parameters\\FirewallPolicy\\PublicProfile", - "value-name": "EnableFirewall", - "data-value": 1, - "data-type": "REG_DWORD", - "registry-value-policy-type": "require-exact" - }, - { - "policy-type": "registry-value-policy", - "name": "V-17415", - "description": "A firewall provides a line of defense against attack. To be effective, it must be enabled and properly configured. This setting enables the firewall when connected to the domain.", - "enforcement-level": "low", - "key-path": "HKLM\\System\\CurrentControlSet\\Services\\SharedAccess\\Parameters\\FirewallPolicy\\DomainProfile", - "value-name": "EnableFirewall", - "data-value": 1, - "data-type": "REG_DWORD", - "registry-value-policy-type": "require-exact" - }, - { - "policy-type": "registry-value-policy", - "name": "V-17416", - "description": "A firewall provides a line of defense against attack. To be effective, it must be enabled and properly configured. This setting enables the firewall when connected to a private network.", - "enforcement-level": "low", - "key-path": "HKLM\\System\\CurrentControlSet\\Services\\SharedAccess\\Parameters\\FirewallPolicy\\StandardProfile", - "value-name": "EnableFirewall", - "data-value": 1, - "data-type": "REG_DWORD", - "registry-value-policy-type": "require-exact" - }, - { - "policy-type": "registry-value-policy", - "name": "V-17440", - "description": "A firewall provides a line of defense against attack. To be effective, it must be enabled and properly configured. The display of notifications to the user when a program is blocked from receiving an inbound connection on a public network must be enabled to alert the user of potential issues.", - "enforcement-level": "low", - "key-path": "HKLM\\System\\CurrentControlSet\\Services\\SharedAccess\\Parameters\\FirewallPolicy\\PublicProfile", - "value-name": "DisableNotifications", - "data-value": 1, - "data-type": "REG_DWORD", - "registry-value-policy-type": "forbid-exact" - }, - { - "policy-type": "registry-value-policy", - "name": "V-17420", - "description": "A firewall provides a line of defense against attack. To be effective, it must be enabled and properly configured. The display of notifications to the user when a program is blocked from receiving an inbound connection in the domain must be enabled to alert the user of potential issues.", - "enforcement-level": "low", - "key-path": "HKLM\\System\\CurrentControlSet\\Services\\SharedAccess\\Parameters\\FirewallPolicy\\DomainProfile", - "value-name": "DisableNotifications", - "data-value": 1, - "data-type": "REG_DWORD", - "registry-value-policy-type": "forbid-exact" - }, - { - "policy-type": "registry-value-policy", - "name": "V-17430", - "description": "A firewall provides a line of defense against attack. To be effective, it must be enabled and properly configured. The display of notifications to the user when a program is blocked from receiving an inbound connection on a private network must be enabled to alert the user of potential issues.", - "enforcement-level": "low", - "key-path": "HKLM\\System\\CurrentControlSet\\Services\\SharedAccess\\Parameters\\FirewallPolicy\\StandardProfile", - "value-name": "DisableNotifications", - "data-value": 1, - "data-type": "REG_DWORD", - "registry-value-policy-type": "forbid-exact" - }, - { - "policy-type": "registry-value-policy", - "name": "V-17438", - "description": "A firewall provides a line of defense against attack. To be effective, it must be enabled and properly configured. Unsolicited inbound connections may be malicious attempts to gain access to a system. Unsolicited inbound connections, for which there is no rule allowing the connection, will be blocked on a public network", - "enforcement-level": "low", - "key-path": "HKLM\\System\\CurrentControlSet\\Services\\SharedAccess\\Parameters\\FirewallPolicy\\PublicProfile", - "value-name": "DefaultInboundAction", - "data-value": 1, - "data-type": "REG_DWORD", - "registry-value-policy-type": "require-exact" - }, - { - "policy-type": "registry-value-policy", - "name": "V-17418", - "description": "A firewall provides a line of defense against attack. To be effective, it must be enabled and properly configured. Unsolicited inbound connections may be malicious attempts to gain access to a system. Unsolicited inbound connections, for which there is no rule allowing the connection, will be blocked in the domain.", - "enforcement-level": "low", - "key-path": "HKLM\\System\\CurrentControlSet\\Services\\SharedAccess\\Parameters\\FirewallPolicy\\DomainProfile", - "value-name": "DefaultInboundAction", - "data-value": 1, - "data-type": "REG_DWORD", - "registry-value-policy-type": "require-exact" - }, - { - "policy-type": "registry-value-policy", - "name": "V-17428", - "description": "A firewall provides a line of defense against attack. To be effective, it must be enabled and properly configured. Unsolicited inbound connections may be malicious attempts to gain access to a system. Unsolicited inbound connections, for which there is no rule allowing the connection, will be blocked on a private network. ", - "enforcement-level": "low", - "key-path": "HKLM\\System\\CurrentControlSet\\Services\\SharedAccess\\Parameters\\FirewallPolicy\\StandardProfile", - "value-name": "DefaultInboundAction", - "data-value": 1, - "data-type": "REG_DWORD", - "registry-value-policy-type": "require-exact" - }, - { - "policy-type": "registry-value-policy", - "name": "V-1093: Anonymous enumeration of shares must be restricted", - "description": "This is a High finding because allowing anonymous logon users (null session connections) to list all account names and enumerate all shared resources can provide a map of potential points to attack the system.", - "enforcement-level": "low", - "key-path": "HKLM\\System\\CurrentControlSet\\Control\\Lsa", - "value-name": "restrictanonymous", - "data-value": 1, - "data-type": "REG_DWORD", - "registry-value-policy-type": "require-exact" - }, - { - "policy-type": "registry-value-policy", - "name": "V-1153: The LanMan authentication level must be set to send NTLMv2 response only, and to refuse LM and NTLM", - "description": "The Kerberos v5 authentication protocol is the default for authentication of users who are logging on to domain accounts. NTLM which is less secure, is retained in later Windows versions for compatibility with clients and servers that are running earlier versions of Windows or applications that still use it. It is also used to authenticate logons to stand-alone computers that are running later versions.", - "enforcement-level": "moderate", - "key-path": "HKLM\\System\\CurrentControlSet\\Control\\Lsa", - "value-name": "LmCompatibilityLevel", - "data-value": 5, - "data-type": "REG_DWORD", - "registry-value-policy-type": "require-exact" - }, - { - "policy-type": "registry-value-policy", - "name": "V-3338: Unauthorized named pipes are accessible with anonymous credentials", - "description": "This is a High finding because of the potential for gaining unauthorized system access. Pipes are internal system communications processes. They are identified internally by ID numbers that vary between systems. To make access to these processes easier, these pipes are given names that do not vary between systems. This setting controls which of these pipes anonymous users may access.", - "enforcement-level": "low", - "key-path": "HKLM\\System\\CurrentControlSet\\Services\\LanManServer\\Parameters", - "value-name": "NullSessionPipes", - "data-value": [], - "data-type": "REG_MULTI_SZ", - "registry-value-policy-type": "require-exact" - }, - { - "policy-type": "registry-value-policy", - "name": "V-3340: Unauthorized shares can be accessed anonymously", - "description": "This is a High finding finding because of the potential for gaining unauthorized system access. Any shares listed can be accessed by any network user. This could lead to the exposure or corruption of sensitive data.", - "enforcement-level": "low", - "key-path": "HKLM\\System\\CurrentControlSet\\Services\\LanManServer\\Parameters", - "value-name": "NullSessionShares", - "data-value": [], - "data-type": "REG_MULTI_SZ", - "registry-value-policy-type": "require-subset-of" - }, - { - "policy-type": "registry-value-policy", - "name": "V-3344: Local accounts with blank passwords restricted to console logon only", - "description": "This is a Category 1 finding because no accounts with blank passwords should exist on a system. The password policy should prevent this from occurring. However, if a local account with a blank password does exist, enabling this setting will limit the account to local console logon only.", - "enforcement-level": "low", - "key-path": "HKLM\\System\\CurrentControlSet\\Control\\Lsa", - "value-name": "LimitBlankPasswordUse", - "data-value": 1, - "data-type": "REG_DWORD", - "registry-value-policy-type": "require-exact" - }, - { - "policy-type": "registry-value-policy", - "name": "V-3376: The system must be configured to prevent the storage of passwords and credentials.", - "description": " This setting controls the storage of passwords and credentials for network authentication on the local system. Such credentials must not be stored on the local machine, as that may lead to account compromise.", - "enforcement-level": "low", - "key-path": "HKLM\\System\\CurrentControlSet\\Control\\Lsa", - "value-name": "DisableDomainCreds", - "data-value": 1, - "data-type": "REG_DWORD", - "registry-value-policy-type": "require-exact" - }, - { - "policy-type": "registry-value-policy", - "name": "V-3379: The system is configured to store the LAN Manager hash of the password in the SAM", - "description": "This setting controls whether or not a LAN Manager hash of the password is stored in the SAM the next time the password is changed. The LAN Manager hash uses a weak encryption algorithm and there are several tools available that use this hash to retrieve account passwords.", - "enforcement-level": "low", - "key-path": "HKLM\\System\\CurrentControlSet\\Control\\Lsa", - "value-name": "NoLMHash", - "data-value": 1, - "data-type": "REG_DWORD", - "registry-value-policy-type": "require-exact" - }, - { - "policy-type": "registry-value-policy", - "name": "V-3479: The system will be configured to use Safe DLL Search Mode", - "description": "The default search behavior, when an application calls a function in a Dynamic Link Library (DLL), is to search the current directory followed by the directories contained in the systems path environment variable. An unauthorized DLL inserted into an applications working directory could allow malicious code to be run on the system. Creating the following registry key and setting the appropriate value forces the system to search the %Systemroot% for the DLL before searching the current directory or the rest of the path", - "enforcement-level": "low", - "key-path": "HKLM\\SYSTEM\\CurrentControlSet\\Control\\Session Manager", - "value-name": "SafeDllSearchMode", - "data-value": 1, - "data-type": "REG_DWORD", - "registry-value-policy-type": "require-exact" - }, - { - "policy-type": "registry-value-policy", - "name": "V-63597: Apply UAC privileged token filtering for network logons", - "description": "With User Account Control enabled, filtering the privileged token for built-in administrator accounts will prevent the elevated privileges of these accounts from being used over the network.", - "enforcement-level": "low", - "key-path": "HKLM\\SYSTEM\\CurrentControlSet\\Control\\Session Manager", - "value-name": "SafeDllSearchMode", - "data-value": 1, - "data-type": "REG_DWORD", - "registry-value-policy-type": "require-exact" - }, - { - "policy-type": "registry-value-policy", - "name": "V-63687: Caching of logon credentials must be limited", - "description": "The default Windows configuration caches the last logon credentials for users who log on interactively to a system. This feature is provided for system availability reasons, such as the user's machine being disconnected from the network or domain controllers being unavailable. Even though the credential cache is well-protected, if a system is attacked, an unauthorized individual may isolate the password to a domain user account using a password-cracking program and gain access to the domain.", - "enforcement-level": "low", - "key-path": "HKLM\\SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\Winlogon", - "value-name": "CachedLogonsCount", - "data-value": 0, - "data-type": "REG_DWORD", - "registry-value-policy-type": "require-exact" - }, - { - "policy-type": "registry-value-policy", - "name": "V-63817: User Account Control approval mode for the built-in Administrator must be enabled", - "description": "User Account Control (UAC) is a security mechanism for limiting the elevation of privileges, including administrative accounts, unless authorized. This setting configures the built-in Administrator account so that it runs in Admin Approval Mode.", - "enforcement-level": "moderate", - "key-path": "HKLM\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Policies\\System", - "value-name": "FilterAdministratorToken", - "data-value": 1, - "data-type": "REG_DWORD", - "registry-value-policy-type": "require-exact" - }, - { - "policy-type": "registry-value-policy", - "name": "V-63825: User Account Control must be configured to detect application installations and prompt for elevation", - "description": "User Account Control (UAC) is a security mechanism for limiting the elevation of privileges, including administrative accounts, unless authorized. This setting requires Windows to respond to application installation requests by prompting for credentials.", - "enforcement-level": "moderate", - "key-path": "HKLM\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Policies\\System", - "value-name": "EnableInstallerDetection", - "data-value": 1, - "data-type": "REG_DWORD", - "registry-value-policy-type": "require-exact" - }, - { - "policy-type": "registry-value-policy", - "name": "V-63829: User Account Control must run all administrators in Admin Approval Mode, enabling UAC", - "description": "User Account Control (UAC) is a security mechanism for limiting the elevation of privileges, including administrative accounts, unless authorized. This setting enables UAC.", - "enforcement-level": "moderate", - "key-path": "HKLM\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Policies\\System", - "value-name": "EnableLUA", - "data-value": 1, - "data-type": "REG_DWORD", - "registry-value-policy-type": "require-exact" - }, - { - "policy-type": "registry-value-policy", - "name": "V-71769: Remote calls to the Security Account Manager (SAM) must be restricted to Administrators", - "description": "The Windows Security Account Manager (SAM) stores users' passwords. Restricting remote rpc connections to the SAM to Administrators helps protect those credentials.", - "enforcement-level": "low", - "key-path": "HKLM\\SYSTEM\\CurrentControlSet\\Control\\Lsa", - "value-name": "RestrictRemoteSAM", - "data-value": "O:BAG:BAD:(A;;RC;;;BA)", - "data-type": "REG_SZ", - "registry-value-policy-type": "require-exact" - }, - { - "policy-type": "registry-value-policy", - "name": "V-73585 - The Windows Installer Always install with elevated privileges option must be disabled", - "description": "Standard user accounts must not be granted elevated privileges. Enabling Windows Installer to elevate privileges when installing applications can allow malicious persons and applications to gain full control of a system.", - "enforcement-level": "low", - "key-path": "HKLM\\SOFTWARE\\Policies\\Microsoft\\Windows\\Installer", - "value-name": "InstallAlwaysElevated", - "data-value": 0, - "data-type": "REG_DWORD", - "registry-value-policy-type": "require-exact" - } - ] - }, - { - "name": "M1035 - Limit Access to Resource over Network", - "description": "Prevent access to file shares, remote access to systems, unnecessary services. Mechanisms to limit access may include use of network concentrators, RDP gateways, etc", - "software": "Windows", - "policies": [ - { - "policy-type": "registry-value-policy", - "name": "Nessus Plugin ID 58453", - "description": "This is a High severity finding due to the Bluekeep vulnerability that allows for a worm to quickly move through a network when NLA is disabled. RDP is a service that allows remote access to Windows computers", - "enforcement-level": "low", - "min-software-version": "5.1.2600", - "key-path": "HKLM\\SYSTEM\\CurrentControlSet\\Control\\Terminal Server\\WinStations\\RDP-Tcp", - "value-name": "UserAuthentication", - "data-value": 1, - "data-type": "REG_DWORD", - "registry-value-policy-type": "require-exact" - } - ] - }, - { - "name": "M1042 - Disable or Remove Feature or Program ", - "description": "Remove or deny access to unnecessary and potentially vulnerable software to prevent abuse by adversaries.", - "software": "Windows", - "policies": [ - { - "policy-type": "registry-value-policy", - "name": "Disable LLMNR", - "description": "Link-Local Multicast Name Resolution (LLMNR) serve as alternate methods for host identification. Adversaries can spoof an authoritative source for name resolution on a victim network by responding to LLMNR (UDP 5355)/NBT-NS (UDP 137) traffic as if they know the identity of the requested host.", - "enforcement-level": "moderate", - "key-path": "HKLM\\SOFTWARE\\Policies\\Microsoft\\Windows NT\\DNSClient", - "value-name": "EnableMulticast", - "data-value": 0, - "data-type": "REG_DWORD", - "registry-value-policy-type": "require-exact" - }, - { - "policy-type": "registry-value-policy", - "name": "Disable NBT-NS", - "description": "NetBIOS Name Service (NBT-NS) serve as alternate methods for host identification. Adversaries can spoof an authoritative source for name resolution on a victim network by responding to LLMNR (UDP 5355)/NBT-NS (UDP 137) traffic as if they know the identity of the requested host.", - "enforcement-level": "moderate", - "key-path": "HKLM\\SYSTEM\\CurrentControlSet\\Services\\NetBT\\Parameters\\Interfaces\\*", - "value-name": "NetbiosOptions", - "data-value": 2, - "data-type": "REG_DWORD", - "registry-value-policy-type": "require-exact" - }, - { - "policy-type": "registry-value-policy", - "name": "Disable WSH", - "description": "Windows Script Host enables the execution of wscript and cscript which allow VB, JS, and other scripts to be run. This feature is not typically needed, and Sean Metcalf recommends disabling it https://adsecurity.org/?p=3299.", - "enforcement-level": "moderate", - "key-path": "HKLM\\Software\\Microsoft\\Windows Script Host\\Settings", - "value-name": "Enabled", - "data-value": 0, - "data-type": "REG_DWORD", - "registry-value-policy-type": "require-exact" - }, - { - "policy-type": "registry-value-policy", - "name": "V-73519: The Server Message Block (SMB) v1 protocol must be disabled on the SMB server", - "description": "SMBv1 is a legacy protocol that uses the MD5 algorithm as part of SMB. MD5 is known to be vulnerable to a number of attacks such as collision and preimage attacks as well as not being FIPS compliant. Disabling SMBv1 support may prevent access to file or print sharing resources with systems or devices that only support SMBv1. File shares and print services hosted on Windows Server 2003 are an example, however Windows Server 2003 is no longer a supported operating system. Some older network attached devices may only support SMBv1", - "enforcement-level": "low", - "key-path": "HKLM\\SYSTEM\\CurrentControlSet\\Services\\LanmanServer\\Parameters", - "value-name": "SMB1", - "data-value": 0, - "data-type": "REG_DWORD", - "registry-value-policy-type": "require-exact" - }, - { - "policy-type": "combined-policy", - "name": "V-72753: WDigest Authentication must be disabled", - "description": "When the WDigest Authentication protocol is enabled, plain text passwords are stored in the Local Security Authority Subsystem Service (LSASS) exposing them to theft. This setting will prevent WDigest from storing credentials in memory.", - "enforcement-level": "low", - "mode": "or", - "subpolicies": [ - { - "policy-type": "registry-value-policy", - "name": "Set UseLogonCredential to 0", - "enforcement-level": "low", - "min-software-version": "6.3", - "key-path": "HKLM\\SYSTEM\\CurrentControlSet\\Control\\SecurityProviders\\WDigest", - "value-name": "UseLogonCredential", - "data-value": 0, - "data-type": "REG_DWORD", - "registry-value-policy-type": "require-exact" - }, - { - "policy-type": "registry-value-policy", - "name": "Remove WDigest", - "enforcement-level": "low", - "key-path": "HKLM\\SYSTEM\\CurrentControlSet\\Control\\Lsa", - "value-name": "Security Packages", - "data-value": [ "wdigest" ], - "data-type": "REG_MULTI_SZ", - "registry-value-policy-type": "forbid-subset-of" - } - ] - } - ] - }, - { - "name": "M1047 - Audit", - "description": "Configure the system to perform audits or scans of systems, permissions, insecure software, insecure configurations, etc. to identify potential weaknesses", - "software": "Windows", - "policies": [ - { - "policy-type": "combined-policy", - "name": "Enable Sysmon Service", - "description": "If the sysmon service is installed, ensure it is enabled.", - "enforcement-level": "moderate", - "mode": "or", - "subpolicies": [ - { - "policy-type": "registry-value-policy", - "name": "Sysmon Service Enabled", - "enforcement-level": "moderate", - "key-path": "HKLM\\SYSTEM\\CurrentControlSet\\Services\\Sysmon", - "value-name": "start", - "data-value": 2, - "data-type": "REG_DWORD", - "registry-value-policy-type": "require-exact" - }, - { - "policy-type": "registry-value-policy", - "name": "Sysmon64 Service Enabled", - "enforcement-level": "moderate", - "key-path": "HKLM\\SYSTEM\\CurrentControlSet\\Services\\Sysmon64", - "value-name": "start", - "data-value": 2, - "data-type": "REG_DWORD", - "registry-value-policy-type": "require-exact" - }, - { - "policy-type": "registry-subkey-policy", - "name": "Sysmon not installed", - "enforcement-level": "low", - "key-path": "HKLM\\SYSTEM\\CurrentControlSet\\Services", - "subkey-policy-type": "blacklist", - "subkey-names": [ "Sysmon", "Sysmon64" ] - } - ] - }, - { - "policy-type": "registry-value-policy", - "name": "EventLog Service Enabled", - "description": "Enables the Windows Event Log Service", - "enforcement-level": "moderate", - "key-path": "HKLM\\SYSTEM\\CurrentControlSet\\Services\\EventLog", - "value-name": "start", - "data-value": 2, - "data-type": "REG_DWORD", - "registry-value-policy-type": "require-exact" - }, - { - "policy-type": "registry-value-policy", - "name": "V-73511: Command line data must be included in process creation events", - "description": "Maintaining an audit trail of system activity logs can help identify configuration errors, troubleshoot service disruptions, and analyze compromises that have occurred, as well as detect attacks. Collecting this data is essential for analyzing the security of information assets and detecting signs of suspicious and unexpected behavior.", - "enforcement-level": "moderate", - "key-path": "HKLM\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Policies\\System\\Audit", - "value-name": "ProcessCreationIncludeCmdLine_Enabled", - "data-value": 1, - "data-type": "REG_DWORD", - "registry-value-policy-type": "require-exact" - }, - { - "policy-type": "event-log", - "name": "Enable Event Logs", - "description": "Enable important event log channels", - "enforcement-level": "low", - "channels": [ - "Microsoft-Windows-CertificateServicesClient-Lifecycle-System/Operational", - "Microsoft-Windows-Bits-Client/Operational", - "Microsoft-Windows-AppLocker/EXE and DLL", - "Microsoft-Windows-AppLocker/MSI and Script", - "Security", - "System", - "Microsoft-Windows-Powershell/Operational", - "Microsoft-Windows-TaskScheduler/Operational", - "Microsoft-Windows-Windows Defender/Operational", - "Microsoft-Windows-Windows Defender/Operational", - "Microsoft-Windows-Windows Firewall With Advanced Security/Firewall" - ] - } - ] - }, - { - "name": "M1054 - Software Configuration", - "description": "Implement configuration changes to software (other than the operating system) to mitigate security risks associated to how the software operates", - "software": "Windows", - "policies": [ - { - "policy-type": "registry-value-policy", - "name": "Antispyware Notifications", - "enforcement-level": "low", - "key-path": "HKLM\\Software\\Microsoft\\Security Center", - "value-name": "AntiSpyWareDisableNotify", - "data-value": 1, - "data-type": "REG_DWORD", - "registry-value-policy-type": "forbid-exact" - }, - { - "policy-type": "registry-value-policy", - "name": "Antivirus Notifications", - "enforcement-level": "low", - "key-path": "HKLM\\Software\\Microsoft\\Security Center", - "value-name": "AntiVirusDisableNotify", - "data-value": 1, - "data-type": "REG_DWORD", - "registry-value-policy-type": "forbid-exact" - }, - { - "policy-type": "registry-value-policy", - "name": "UAC Notifications", - "enforcement-level": "low", - "key-path": "HKLM\\Software\\Microsoft\\Security Center", - "value-name": "UacDisableNotify", - "data-value": 1, - "data-type": "REG_DWORD", - "registry-value-policy-type": "forbid-exact" - }, - { - "policy-type": "registry-value-policy", - "name": "Firewall Notifications", - "enforcement-level": "low", - "key-path": "HKLM\\Software\\Microsoft\\Security Center", - "value-name": "FirewallDisableNotify", - "data-value": 1, - "data-type": "REG_DWORD", - "registry-value-policy-type": "forbid-exact" - } - ] - } - ] +{ + "mitigations": [ + { + "name": "M1025 - Privileged Process Integrity", + "description": "Protect processes with high privileges that can be used to interact with critical system components through use of protected process light, anti-process injection defenses, or other process integrity enforcement measures", + "software": "Windows", + "policies": [ + { + "policy-type": "registry-value-policy", + "name": "Run LSA As PPL", + "description": "Run the Local Security Authority as a Protected Process Lite, preventing process injection and other attacks on lsass.exe's memory", + "enforcement-level": "moderate", + "min-software-version": "6.3", + "key-path": "HKLM\\System\\CurrentControlSet\\Control\\Lsa", + "value-name": "RunAsPPL", + "data-value": 1, + "data-type": "REG_DWORD", + "registry-value-policy-type": "require-exact" + } + ] + }, + { + "name": "M1028 - Operating System Configuration", + "description": "Make configuration changes related to the operating system or a common feature of the operating system that result in system hardening against techniques.", + "software": "Windows", + "policies": [ + { + "policy-type": "registry-value-policy", + "name": "V-17417", + "description": "A firewall provides a line of defense against attack. To be effective, it must be enabled and properly configured. This setting enables the firewall when connected to a public network", + "enforcement-level": "low", + "key-path": "HKLM\\System\\CurrentControlSet\\Services\\SharedAccess\\Parameters\\FirewallPolicy\\PublicProfile", + "value-name": "EnableFirewall", + "data-value": 1, + "data-type": "REG_DWORD", + "registry-value-policy-type": "require-exact" + }, + { + "policy-type": "registry-value-policy", + "name": "V-17415", + "description": "A firewall provides a line of defense against attack. To be effective, it must be enabled and properly configured. This setting enables the firewall when connected to the domain.", + "enforcement-level": "low", + "key-path": "HKLM\\System\\CurrentControlSet\\Services\\SharedAccess\\Parameters\\FirewallPolicy\\DomainProfile", + "value-name": "EnableFirewall", + "data-value": 1, + "data-type": "REG_DWORD", + "registry-value-policy-type": "require-exact" + }, + { + "policy-type": "registry-value-policy", + "name": "V-17416", + "description": "A firewall provides a line of defense against attack. To be effective, it must be enabled and properly configured. This setting enables the firewall when connected to a private network.", + "enforcement-level": "low", + "key-path": "HKLM\\System\\CurrentControlSet\\Services\\SharedAccess\\Parameters\\FirewallPolicy\\StandardProfile", + "value-name": "EnableFirewall", + "data-value": 1, + "data-type": "REG_DWORD", + "registry-value-policy-type": "require-exact" + }, + { + "policy-type": "registry-value-policy", + "name": "V-17440", + "description": "A firewall provides a line of defense against attack. To be effective, it must be enabled and properly configured. The display of notifications to the user when a program is blocked from receiving an inbound connection on a public network must be enabled to alert the user of potential issues.", + "enforcement-level": "low", + "key-path": "HKLM\\System\\CurrentControlSet\\Services\\SharedAccess\\Parameters\\FirewallPolicy\\PublicProfile", + "value-name": "DisableNotifications", + "data-value": 1, + "data-type": "REG_DWORD", + "registry-value-policy-type": "forbid-exact" + }, + { + "policy-type": "registry-value-policy", + "name": "V-17420", + "description": "A firewall provides a line of defense against attack. To be effective, it must be enabled and properly configured. The display of notifications to the user when a program is blocked from receiving an inbound connection in the domain must be enabled to alert the user of potential issues.", + "enforcement-level": "low", + "key-path": "HKLM\\System\\CurrentControlSet\\Services\\SharedAccess\\Parameters\\FirewallPolicy\\DomainProfile", + "value-name": "DisableNotifications", + "data-value": 1, + "data-type": "REG_DWORD", + "registry-value-policy-type": "forbid-exact" + }, + { + "policy-type": "registry-value-policy", + "name": "V-17430", + "description": "A firewall provides a line of defense against attack. To be effective, it must be enabled and properly configured. The display of notifications to the user when a program is blocked from receiving an inbound connection on a private network must be enabled to alert the user of potential issues.", + "enforcement-level": "low", + "key-path": "HKLM\\System\\CurrentControlSet\\Services\\SharedAccess\\Parameters\\FirewallPolicy\\StandardProfile", + "value-name": "DisableNotifications", + "data-value": 1, + "data-type": "REG_DWORD", + "registry-value-policy-type": "forbid-exact" + }, + { + "policy-type": "registry-value-policy", + "name": "V-17438", + "description": "A firewall provides a line of defense against attack. To be effective, it must be enabled and properly configured. Unsolicited inbound connections may be malicious attempts to gain access to a system. Unsolicited inbound connections, for which there is no rule allowing the connection, will be blocked on a public network", + "enforcement-level": "low", + "key-path": "HKLM\\System\\CurrentControlSet\\Services\\SharedAccess\\Parameters\\FirewallPolicy\\PublicProfile", + "value-name": "DefaultInboundAction", + "data-value": 1, + "data-type": "REG_DWORD", + "registry-value-policy-type": "require-exact" + }, + { + "policy-type": "registry-value-policy", + "name": "V-17418", + "description": "A firewall provides a line of defense against attack. To be effective, it must be enabled and properly configured. Unsolicited inbound connections may be malicious attempts to gain access to a system. Unsolicited inbound connections, for which there is no rule allowing the connection, will be blocked in the domain.", + "enforcement-level": "low", + "key-path": "HKLM\\System\\CurrentControlSet\\Services\\SharedAccess\\Parameters\\FirewallPolicy\\DomainProfile", + "value-name": "DefaultInboundAction", + "data-value": 1, + "data-type": "REG_DWORD", + "registry-value-policy-type": "require-exact" + }, + { + "policy-type": "registry-value-policy", + "name": "V-17428", + "description": "A firewall provides a line of defense against attack. To be effective, it must be enabled and properly configured. Unsolicited inbound connections may be malicious attempts to gain access to a system. Unsolicited inbound connections, for which there is no rule allowing the connection, will be blocked on a private network. ", + "enforcement-level": "low", + "key-path": "HKLM\\System\\CurrentControlSet\\Services\\SharedAccess\\Parameters\\FirewallPolicy\\StandardProfile", + "value-name": "DefaultInboundAction", + "data-value": 1, + "data-type": "REG_DWORD", + "registry-value-policy-type": "require-exact" + }, + { + "policy-type": "registry-value-policy", + "name": "V-1093: Anonymous enumeration of shares must be restricted", + "description": "This is a High finding because allowing anonymous logon users (null session connections) to list all account names and enumerate all shared resources can provide a map of potential points to attack the system.", + "enforcement-level": "low", + "key-path": "HKLM\\System\\CurrentControlSet\\Control\\Lsa", + "value-name": "restrictanonymous", + "data-value": 1, + "data-type": "REG_DWORD", + "registry-value-policy-type": "require-exact" + }, + { + "policy-type": "registry-value-policy", + "name": "V-1153: The LanMan authentication level must be set to send NTLMv2 response only, and to refuse LM and NTLM", + "description": "The Kerberos v5 authentication protocol is the default for authentication of users who are logging on to domain accounts. NTLM which is less secure, is retained in later Windows versions for compatibility with clients and servers that are running earlier versions of Windows or applications that still use it. It is also used to authenticate logons to stand-alone computers that are running later versions.", + "enforcement-level": "moderate", + "key-path": "HKLM\\System\\CurrentControlSet\\Control\\Lsa", + "value-name": "LmCompatibilityLevel", + "data-value": 5, + "data-type": "REG_DWORD", + "registry-value-policy-type": "require-exact" + }, + { + "policy-type": "registry-value-policy", + "name": "V-3338: Unauthorized named pipes are accessible with anonymous credentials", + "description": "This is a High finding because of the potential for gaining unauthorized system access. Pipes are internal system communications processes. They are identified internally by ID numbers that vary between systems. To make access to these processes easier, these pipes are given names that do not vary between systems. This setting controls which of these pipes anonymous users may access.", + "enforcement-level": "low", + "key-path": "HKLM\\System\\CurrentControlSet\\Services\\LanManServer\\Parameters", + "value-name": "NullSessionPipes", + "data-value": [], + "data-type": "REG_MULTI_SZ", + "registry-value-policy-type": "require-exact" + }, + { + "policy-type": "registry-value-policy", + "name": "V-3340: Unauthorized shares can be accessed anonymously", + "description": "This is a High finding finding because of the potential for gaining unauthorized system access. Any shares listed can be accessed by any network user. This could lead to the exposure or corruption of sensitive data.", + "enforcement-level": "low", + "key-path": "HKLM\\System\\CurrentControlSet\\Services\\LanManServer\\Parameters", + "value-name": "NullSessionShares", + "data-value": [], + "data-type": "REG_MULTI_SZ", + "registry-value-policy-type": "require-subset-of" + }, + { + "policy-type": "registry-value-policy", + "name": "V-3344: Local accounts with blank passwords restricted to console logon only", + "description": "This is a Category 1 finding because no accounts with blank passwords should exist on a system. The password policy should prevent this from occurring. However, if a local account with a blank password does exist, enabling this setting will limit the account to local console logon only.", + "enforcement-level": "low", + "key-path": "HKLM\\System\\CurrentControlSet\\Control\\Lsa", + "value-name": "LimitBlankPasswordUse", + "data-value": 1, + "data-type": "REG_DWORD", + "registry-value-policy-type": "require-exact" + }, + { + "policy-type": "registry-value-policy", + "name": "V-3376: The system must be configured to prevent the storage of passwords and credentials.", + "description": " This setting controls the storage of passwords and credentials for network authentication on the local system. Such credentials must not be stored on the local machine, as that may lead to account compromise.", + "enforcement-level": "low", + "key-path": "HKLM\\System\\CurrentControlSet\\Control\\Lsa", + "value-name": "DisableDomainCreds", + "data-value": 1, + "data-type": "REG_DWORD", + "registry-value-policy-type": "require-exact" + }, + { + "policy-type": "registry-value-policy", + "name": "V-3379: The system is configured to store the LAN Manager hash of the password in the SAM", + "description": "This setting controls whether or not a LAN Manager hash of the password is stored in the SAM the next time the password is changed. The LAN Manager hash uses a weak encryption algorithm and there are several tools available that use this hash to retrieve account passwords.", + "enforcement-level": "low", + "key-path": "HKLM\\System\\CurrentControlSet\\Control\\Lsa", + "value-name": "NoLMHash", + "data-value": 1, + "data-type": "REG_DWORD", + "registry-value-policy-type": "require-exact" + }, + { + "policy-type": "registry-value-policy", + "name": "V-3479: The system will be configured to use Safe DLL Search Mode", + "description": "The default search behavior, when an application calls a function in a Dynamic Link Library (DLL), is to search the current directory followed by the directories contained in the systems path environment variable. An unauthorized DLL inserted into an applications working directory could allow malicious code to be run on the system. Creating the following registry key and setting the appropriate value forces the system to search the %Systemroot% for the DLL before searching the current directory or the rest of the path", + "enforcement-level": "low", + "key-path": "HKLM\\SYSTEM\\CurrentControlSet\\Control\\Session Manager", + "value-name": "SafeDllSearchMode", + "data-value": 1, + "data-type": "REG_DWORD", + "registry-value-policy-type": "require-exact" + }, + { + "policy-type": "registry-value-policy", + "name": "V-63597: Apply UAC privileged token filtering for network logons", + "description": "With User Account Control enabled, filtering the privileged token for built-in administrator accounts will prevent the elevated privileges of these accounts from being used over the network.", + "enforcement-level": "low", + "key-path": "HKLM\\SYSTEM\\CurrentControlSet\\Control\\Session Manager", + "value-name": "SafeDllSearchMode", + "data-value": 1, + "data-type": "REG_DWORD", + "registry-value-policy-type": "require-exact" + }, + { + "policy-type": "registry-value-policy", + "name": "V-63687: Caching of logon credentials must be limited", + "description": "The default Windows configuration caches the last logon credentials for users who log on interactively to a system. This feature is provided for system availability reasons, such as the user's machine being disconnected from the network or domain controllers being unavailable. Even though the credential cache is well-protected, if a system is attacked, an unauthorized individual may isolate the password to a domain user account using a password-cracking program and gain access to the domain.", + "enforcement-level": "low", + "key-path": "HKLM\\SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\Winlogon", + "value-name": "CachedLogonsCount", + "data-value": 0, + "data-type": "REG_DWORD", + "registry-value-policy-type": "require-exact" + }, + { + "policy-type": "registry-value-policy", + "name": "V-63817: User Account Control approval mode for the built-in Administrator must be enabled", + "description": "User Account Control (UAC) is a security mechanism for limiting the elevation of privileges, including administrative accounts, unless authorized. This setting configures the built-in Administrator account so that it runs in Admin Approval Mode.", + "enforcement-level": "moderate", + "key-path": "HKLM\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Policies\\System", + "value-name": "FilterAdministratorToken", + "data-value": 1, + "data-type": "REG_DWORD", + "registry-value-policy-type": "require-exact" + }, + { + "policy-type": "registry-value-policy", + "name": "V-63825: User Account Control must be configured to detect application installations and prompt for elevation", + "description": "User Account Control (UAC) is a security mechanism for limiting the elevation of privileges, including administrative accounts, unless authorized. This setting requires Windows to respond to application installation requests by prompting for credentials.", + "enforcement-level": "moderate", + "key-path": "HKLM\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Policies\\System", + "value-name": "EnableInstallerDetection", + "data-value": 1, + "data-type": "REG_DWORD", + "registry-value-policy-type": "require-exact" + }, + { + "policy-type": "registry-value-policy", + "name": "V-63829: User Account Control must run all administrators in Admin Approval Mode, enabling UAC", + "description": "User Account Control (UAC) is a security mechanism for limiting the elevation of privileges, including administrative accounts, unless authorized. This setting enables UAC.", + "enforcement-level": "moderate", + "key-path": "HKLM\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Policies\\System", + "value-name": "EnableLUA", + "data-value": 1, + "data-type": "REG_DWORD", + "registry-value-policy-type": "require-exact" + }, + { + "policy-type": "registry-value-policy", + "name": "V-71769: Remote calls to the Security Account Manager (SAM) must be restricted to Administrators", + "description": "The Windows Security Account Manager (SAM) stores users' passwords. Restricting remote rpc connections to the SAM to Administrators helps protect those credentials.", + "enforcement-level": "low", + "key-path": "HKLM\\SYSTEM\\CurrentControlSet\\Control\\Lsa", + "value-name": "RestrictRemoteSAM", + "data-value": "O:BAG:BAD:(A;;RC;;;BA)", + "data-type": "REG_SZ", + "registry-value-policy-type": "require-exact" + }, + { + "policy-type": "registry-value-policy", + "name": "V-73585 - The Windows Installer Always install with elevated privileges option must be disabled", + "description": "Standard user accounts must not be granted elevated privileges. Enabling Windows Installer to elevate privileges when installing applications can allow malicious persons and applications to gain full control of a system.", + "enforcement-level": "low", + "key-path": "HKLM\\SOFTWARE\\Policies\\Microsoft\\Windows\\Installer", + "value-name": "InstallAlwaysElevated", + "data-value": 0, + "data-type": "REG_DWORD", + "registry-value-policy-type": "require-exact" + } + ] + }, + { + "name": "M1035 - Limit Access to Resource over Network", + "description": "Prevent access to file shares, remote access to systems, unnecessary services. Mechanisms to limit access may include use of network concentrators, RDP gateways, etc", + "software": "Windows", + "policies": [ + { + "policy-type": "registry-value-policy", + "name": "Nessus Plugin ID 58453", + "description": "This is a High severity finding due to the Bluekeep vulnerability that allows for a worm to quickly move through a network when NLA is disabled. RDP is a service that allows remote access to Windows computers", + "enforcement-level": "low", + "min-software-version": "5.1.2600", + "key-path": "HKLM\\SYSTEM\\CurrentControlSet\\Control\\Terminal Server\\WinStations\\RDP-Tcp", + "value-name": "UserAuthentication", + "data-value": 1, + "data-type": "REG_DWORD", + "registry-value-policy-type": "require-exact" + } + ] + }, + { + "name": "M1042 - Disable or Remove Feature or Program ", + "description": "Remove or deny access to unnecessary and potentially vulnerable software to prevent abuse by adversaries.", + "software": "Windows", + "policies": [ + { + "policy-type": "registry-value-policy", + "name": "Disable LLMNR", + "description": "Link-Local Multicast Name Resolution (LLMNR) serve as alternate methods for host identification. Adversaries can spoof an authoritative source for name resolution on a victim network by responding to LLMNR (UDP 5355)/NBT-NS (UDP 137) traffic as if they know the identity of the requested host.", + "enforcement-level": "moderate", + "key-path": "HKLM\\SOFTWARE\\Policies\\Microsoft\\Windows NT\\DNSClient", + "value-name": "EnableMulticast", + "data-value": 0, + "data-type": "REG_DWORD", + "registry-value-policy-type": "require-exact" + }, + { + "policy-type": "registry-value-policy", + "name": "Disable NBT-NS", + "description": "NetBIOS Name Service (NBT-NS) serve as alternate methods for host identification. Adversaries can spoof an authoritative source for name resolution on a victim network by responding to LLMNR (UDP 5355)/NBT-NS (UDP 137) traffic as if they know the identity of the requested host.", + "enforcement-level": "moderate", + "key-path": "HKLM\\SYSTEM\\CurrentControlSet\\Services\\NetBT\\Parameters\\Interfaces\\*", + "value-name": "NetbiosOptions", + "data-value": 2, + "data-type": "REG_DWORD", + "registry-value-policy-type": "require-exact" + }, + { + "policy-type": "registry-value-policy", + "name": "Disable WSH", + "description": "Windows Script Host enables the execution of wscript and cscript which allow VB, JS, and other scripts to be run. This feature is not typically needed, and Sean Metcalf recommends disabling it https://adsecurity.org/?p=3299.", + "enforcement-level": "moderate", + "key-path": "HKLM\\Software\\Microsoft\\Windows Script Host\\Settings", + "value-name": "Enabled", + "data-value": 0, + "data-type": "REG_DWORD", + "registry-value-policy-type": "require-exact" + }, + { + "policy-type": "registry-value-policy", + "name": "V-73519: The Server Message Block (SMB) v1 protocol must be disabled on the SMB server", + "description": "SMBv1 is a legacy protocol that uses the MD5 algorithm as part of SMB. MD5 is known to be vulnerable to a number of attacks such as collision and preimage attacks as well as not being FIPS compliant. Disabling SMBv1 support may prevent access to file or print sharing resources with systems or devices that only support SMBv1. File shares and print services hosted on Windows Server 2003 are an example, however Windows Server 2003 is no longer a supported operating system. Some older network attached devices may only support SMBv1", + "enforcement-level": "low", + "key-path": "HKLM\\SYSTEM\\CurrentControlSet\\Services\\LanmanServer\\Parameters", + "value-name": "SMB1", + "data-value": 0, + "data-type": "REG_DWORD", + "registry-value-policy-type": "require-exact" + }, + { + "policy-type": "combined-policy", + "name": "V-72753: WDigest Authentication must be disabled", + "description": "When the WDigest Authentication protocol is enabled, plain text passwords are stored in the Local Security Authority Subsystem Service (LSASS) exposing them to theft. This setting will prevent WDigest from storing credentials in memory.", + "enforcement-level": "low", + "mode": "or", + "subpolicies": [ + { + "policy-type": "registry-value-policy", + "name": "Set UseLogonCredential to 0", + "enforcement-level": "low", + "min-software-version": "6.3", + "key-path": "HKLM\\SYSTEM\\CurrentControlSet\\Control\\SecurityProviders\\WDigest", + "value-name": "UseLogonCredential", + "data-value": 0, + "data-type": "REG_DWORD", + "registry-value-policy-type": "require-exact" + }, + { + "policy-type": "registry-value-policy", + "name": "Remove WDigest", + "enforcement-level": "low", + "key-path": "HKLM\\SYSTEM\\CurrentControlSet\\Control\\Lsa", + "value-name": "Security Packages", + "data-value": [ "wdigest" ], + "data-type": "REG_MULTI_SZ", + "registry-value-policy-type": "forbid-subset-of" + } + ] + } + ] + }, + { + "name": "M1047 - Audit", + "description": "Configure the system to perform audits or scans of systems, permissions, insecure software, insecure configurations, etc. to identify potential weaknesses", + "software": "Windows", + "policies": [ + { + "policy-type": "combined-policy", + "name": "Enable Sysmon Service", + "description": "If the sysmon service is installed, ensure it is enabled.", + "enforcement-level": "moderate", + "mode": "or", + "subpolicies": [ + { + "policy-type": "registry-value-policy", + "name": "Sysmon Service Enabled", + "enforcement-level": "moderate", + "key-path": "HKLM\\SYSTEM\\CurrentControlSet\\Services\\Sysmon", + "value-name": "start", + "data-value": 2, + "data-type": "REG_DWORD", + "registry-value-policy-type": "require-exact" + }, + { + "policy-type": "registry-value-policy", + "name": "Sysmon64 Service Enabled", + "enforcement-level": "moderate", + "key-path": "HKLM\\SYSTEM\\CurrentControlSet\\Services\\Sysmon64", + "value-name": "start", + "data-value": 2, + "data-type": "REG_DWORD", + "registry-value-policy-type": "require-exact" + }, + { + "policy-type": "registry-subkey-policy", + "name": "Sysmon not installed", + "enforcement-level": "low", + "key-path": "HKLM\\SYSTEM\\CurrentControlSet\\Services", + "subkey-policy-type": "blacklist", + "subkey-names": [ "Sysmon", "Sysmon64" ] + } + ] + }, + { + "policy-type": "registry-value-policy", + "name": "EventLog Service Enabled", + "description": "Enables the Windows Event Log Service", + "enforcement-level": "moderate", + "key-path": "HKLM\\SYSTEM\\CurrentControlSet\\Services\\EventLog", + "value-name": "start", + "data-value": 2, + "data-type": "REG_DWORD", + "registry-value-policy-type": "require-exact" + }, + { + "policy-type": "registry-value-policy", + "name": "V-73511: Command line data must be included in process creation events", + "description": "Maintaining an audit trail of system activity logs can help identify configuration errors, troubleshoot service disruptions, and analyze compromises that have occurred, as well as detect attacks. Collecting this data is essential for analyzing the security of information assets and detecting signs of suspicious and unexpected behavior.", + "enforcement-level": "moderate", + "key-path": "HKLM\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Policies\\System\\Audit", + "value-name": "ProcessCreationIncludeCmdLine_Enabled", + "data-value": 1, + "data-type": "REG_DWORD", + "registry-value-policy-type": "require-exact" + }, + { + "policy-type": "event-log", + "name": "Enable Event Logs", + "description": "Enable important event log channels", + "enforcement-level": "low", + "channels": [ + "Microsoft-Windows-CertificateServicesClient-Lifecycle-System/Operational", + "Microsoft-Windows-Bits-Client/Operational", + "Microsoft-Windows-AppLocker/EXE and DLL", + "Microsoft-Windows-AppLocker/MSI and Script", + "Security", + "System", + "Microsoft-Windows-Powershell/Operational", + "Microsoft-Windows-TaskScheduler/Operational", + "Microsoft-Windows-Windows Defender/Operational", + "Microsoft-Windows-Windows Defender/Operational", + "Microsoft-Windows-Windows Firewall With Advanced Security/Firewall" + ] + } + ] + }, + { + "name": "M1054 - Software Configuration", + "description": "Implement configuration changes to software (other than the operating system) to mitigate security risks associated to how the software operates", + "software": "Windows", + "policies": [ + { + "policy-type": "registry-value-policy", + "name": "Antispyware Notifications", + "enforcement-level": "low", + "key-path": "HKLM\\Software\\Microsoft\\Security Center", + "value-name": "AntiSpyWareDisableNotify", + "data-value": 1, + "data-type": "REG_DWORD", + "registry-value-policy-type": "forbid-exact" + }, + { + "policy-type": "registry-value-policy", + "name": "Antivirus Notifications", + "enforcement-level": "low", + "key-path": "HKLM\\Software\\Microsoft\\Security Center", + "value-name": "AntiVirusDisableNotify", + "data-value": 1, + "data-type": "REG_DWORD", + "registry-value-policy-type": "forbid-exact" + }, + { + "policy-type": "registry-value-policy", + "name": "UAC Notifications", + "enforcement-level": "low", + "key-path": "HKLM\\Software\\Microsoft\\Security Center", + "value-name": "UacDisableNotify", + "data-value": 1, + "data-type": "REG_DWORD", + "registry-value-policy-type": "forbid-exact" + }, + { + "policy-type": "registry-value-policy", + "name": "Firewall Notifications", + "enforcement-level": "low", + "key-path": "HKLM\\Software\\Microsoft\\Security Center", + "value-name": "FirewallDisableNotify", + "data-value": 1, + "data-type": "REG_DWORD", + "registry-value-policy-type": "forbid-exact" + } + ] + } + ] } \ No newline at end of file diff --git a/BLUESPAWN-win-client/resources/resource.h b/BLUESPAWN-win-client/resources/resource.h index 6a61e1ce..118d1488 100644 --- a/BLUESPAWN-win-client/resources/resource.h +++ b/BLUESPAWN-win-client/resources/resource.h @@ -1,22 +1,22 @@ -//{{NO_DEPENDENCIES}} -// Microsoft Visual C++ generated include file. -// Used by BLUESPAWN-client.rc -// -#define YaraSevere 6 -#define YaraSevere2 7 -#define YaraIndicators 8 -#define GoodSIP 9 -#define GoodTrustProviders 10 -#define DefaultMitigations 11 -#define IDR_YARARULE2 101 - -// Next default values for new objects -// -#ifdef APSTUDIO_INVOKED -#ifndef APSTUDIO_READONLY_SYMBOLS -#define _APS_NEXT_RESOURCE_VALUE 103 -#define _APS_NEXT_COMMAND_VALUE 40001 -#define _APS_NEXT_CONTROL_VALUE 1001 -#define _APS_NEXT_SYMED_VALUE 101 -#endif -#endif +//{{NO_DEPENDENCIES}} +// Microsoft Visual C++ generated include file. +// Used by BLUESPAWN-client.rc +// +#define YaraSevere 6 +#define YaraSevere2 7 +#define YaraIndicators 8 +#define GoodSIP 9 +#define GoodTrustProviders 10 +#define DefaultMitigations 11 +#define IDR_YARARULE2 101 + +// Next default values for new objects +// +#ifdef APSTUDIO_INVOKED +#ifndef APSTUDIO_READONLY_SYMBOLS +#define _APS_NEXT_RESOURCE_VALUE 103 +#define _APS_NEXT_COMMAND_VALUE 40001 +#define _APS_NEXT_CONTROL_VALUE 1001 +#define _APS_NEXT_SYMED_VALUE 101 +#endif +#endif diff --git a/BLUESPAWN-win-client/resources/severe b/BLUESPAWN-win-client/resources/severe new file mode 100644 index 00000000..7f337d64 Binary files /dev/null and b/BLUESPAWN-win-client/resources/severe differ diff --git a/BLUESPAWN-win-client/resources/severe.yar b/BLUESPAWN-win-client/resources/severe.yar index f142eb4b..52631aa2 100644 --- a/BLUESPAWN-win-client/resources/severe.yar +++ b/BLUESPAWN-win-client/resources/severe.yar @@ -1,42 +1,97 @@ -include "bluespawn-original/kernel32_kernelbase_ror13.yar" - -/* https://github.com/nsacyber/Mitigating-Web-Shells */ -include "third-party-integration/extended.webshell_detection.yara" - -/* https://github.com/gentilkiwi/mimikatz */ -include "third-party-integration/kiwi_passwords.yar" - -/* https://github.com/mikesxrs/Open-Source-YARA-rules/blob/7fe5d74f508d4781737f300557c2ead9b6f2c0c9/adamburt/win_metasploit_related.yara */ -include "third-party-integration/win_metasploit_related.yara" - -/* https://github.com/stvemillertime/ConventionEngine/blob/master/ConventionEngine.yar */ -include "third-party-integration/ConventionEngine.yar" - - -/* Yara-Rules Project */ -include "../external/yara-rules/cve_rules/CVE-2015-1701.yar" -include "../external/yara-rules/cve_rules/CVE-2015-2426.yar" -include "../external/yara-rules/exploit_kits/EK_Angler.yar" -include "../external/yara-rules/exploit_kits/EK_Blackhole.yar" -include "../external/yara-rules/exploit_kits/EK_BleedingLife.yar" -include "../external/yara-rules/exploit_kits/EK_Crimepack.yar" -include "../external/yara-rules/exploit_kits/EK_Eleonore.yar" -include "../external/yara-rules/exploit_kits/EK_Fragus.yar" -include "../external/yara-rules/exploit_kits/EK_Phoenix.yar" -include "../external/yara-rules/exploit_kits/EK_Sakura.yar" -include "../external/yara-rules/exploit_kits/EK_ZeroAcces.yar" -include "../external/yara-rules/exploit_kits/EK_Zerox88.yar" -include "../external/yara-rules/exploit_kits/EK_Zeus.yar" -include "../external/yara-rules/malware/APT_APT3102.yar" -include "../external/yara-rules/malware/APT_Cobalt.yar" -include "../external/yara-rules/malware/APT_Equation.yar" -include "../external/yara-rules/malware/APT_FVEY_ShadowBrokers_Jan17_Screen_Strings.yar" -include "../external/yara-rules/malware/GEN_PowerShell.yar" -include "../external/yara-rules/malware/RANSOM_DoublePulsar_Petya.yar" -include "../external/yara-rules/malware/RAT_Meterpreter_Reverse_Tcp.yar" -include "../external/yara-rules/malware/TOOLKIT_Chinese_Hacktools.yar" -include "../external/yara-rules/malware/TOOLKIT_Gen_powerkatz.yar" -include "../external/yara-rules/malware/TOOLKIT_PassTheHash.yar" -include "../external/yara-rules/malware/TOOLKIT_Powerstager.yar" -include "../external/yara-rules/malware/TOOLKIT_exe2hex_payload.yar" -include "../external/yara-rules/packers/packer.yar" +include "bluespawn-original/kernel32_kernelbase_ror13.yar" + +/* https://github.com/nsacyber/Mitigating-Web-Shells */ +include "third-party-integration/extended.webshell_detection.yara" + +/* https://github.com/gentilkiwi/mimikatz */ +include "third-party-integration/kiwi_passwords.yar" + +/* https://github.com/mikesxrs/Open-Source-YARA-rules/blob/7fe5d74f508d4781737f300557c2ead9b6f2c0c9/adamburt/win_metasploit_related.yara */ +include "third-party-integration/win_metasploit_related.yara" + +/* https://github.com/stvemillertime/ConventionEngine/blob/master/ConventionEngine.yar */ +include "third-party-integration/ConventionEngine.yar" + + +/* Yara-Rules Project */ +include "../external/yara-rules/cve_rules/CVE-2015-1701.yar" +include "../external/yara-rules/cve_rules/CVE-2015-2426.yar" +include "../external/yara-rules/exploit_kits/EK_Angler.yar" +include "../external/yara-rules/exploit_kits/EK_Blackhole.yar" +include "../external/yara-rules/exploit_kits/EK_BleedingLife.yar" +include "../external/yara-rules/exploit_kits/EK_Crimepack.yar" +include "../external/yara-rules/exploit_kits/EK_Eleonore.yar" +include "../external/yara-rules/exploit_kits/EK_Fragus.yar" +include "../external/yara-rules/exploit_kits/EK_Phoenix.yar" +include "../external/yara-rules/exploit_kits/EK_Sakura.yar" +include "../external/yara-rules/exploit_kits/EK_ZeroAcces.yar" +include "../external/yara-rules/exploit_kits/EK_Zerox88.yar" +include "../external/yara-rules/exploit_kits/EK_Zeus.yar" +include "../external/yara-rules/malware/APT_APT3102.yar" +include "../external/yara-rules/malware/APT_Cobalt.yar" +include "../external/yara-rules/malware/APT_Equation.yar" +include "../external/yara-rules/malware/APT_FVEY_ShadowBrokers_Jan17_Screen_Strings.yar" +include "../external/yara-rules/malware/GEN_PowerShell.yar" +include "../external/yara-rules/malware/RANSOM_DoublePulsar_Petya.yar" +include "../external/yara-rules/malware/RAT_Meterpreter_Reverse_Tcp.yar" +include "../external/yara-rules/malware/TOOLKIT_Chinese_Hacktools.yar" +include "../external/yara-rules/malware/TOOLKIT_Gen_powerkatz.yar" +include "../external/yara-rules/malware/TOOLKIT_PassTheHash.yar" +include "../external/yara-rules/malware/TOOLKIT_Powerstager.yar" +include "../external/yara-rules/malware/TOOLKIT_exe2hex_payload.yar" +include "../external/yara-rules/packers/packer.yar" +include "../external/yara-rules/Qakbot_Payload.yar" +include "../external/yara-rules/RussianAPT.yar" +include "../external/yara-rules/win.qakbot_auto.yar" +include "../external/yara-rules/Win32.Trojan.Emotet.yar" +include "../external/yara-rules/Windows_Shellcode_Generic.yar" +include "../external/yara-rules/Windows_Trojan_AgentTesla.yar" +include "../external/yara-rules/Windows_Trojan_Bumblebee.yar" +include "../external/yara-rules/Windows_Trojan_Dridex.yar" +include "../external/yara-rules/Windows_Trojan_Glupteba.yar" +include "../external/yara-rules/Windows_Trojan_IcedID.yar" +include "../external/yara-rules/Windows_Trojan_Lokibot.yar" +include "../external/yara-rules/Windows_Trojan_Qbot.yar" +include "../external/yara-rules/Windows_Trojan_Smokeloader.yar" +include "../external/yara-rules/Windows_Trojan_Tofsee.yar" +include "../external/yara-rules/Windows_Trojan_Trickbot.yar" +include "../external/yara-rules/Windows_Trojan_Zeus.yar" +include "../external/yara-rules/Windows_Trojan_Zloader.yar" +include "../external/yara-rules/EternalRomance.yar" +include "../external/yara-rules/expl_adselfservice_cve_2021_40539.yar" +include "../external/yara-rules/expl_cve_2021_1647.yar" +include "../external/yara-rules/expl_cve_2021_26084_confluence_log.yar" +include "../external/yara-rules/expl_cve_2021_40444.yar" +include "../external/yara-rules/expl_cve_2022_41040_proxynoshell.yar" +include "../external/yara-rules/expl_cve_2022_46169_cacti.yar" +include "../external/yara-rules/expl_keepass_cve_2023_24055.yar" +include "../external/yara-rules/expl_log4j_cve_2021_44228.yar" +include "../external/yara-rules/HeavensGate.yar" +include "../external/yara-rules/hktl_bruteratel_c4_badger.yar" +include "../external/yara-rules/hktl_bruteratel_c4.yar" +include "../external/yara-rules/hktl_natbypass.yar" +include "../external/yara-rules/crime_maze_ransomware.yar" +include "../external/yara-rules/crime_mikey_trojan.yar" +include "../external/yara-rules/crime_mirai.yar" +include "../external/yara-rules/crime_evilcorp_dridex_banker.yar" +include "../external/yara-rules/crime_fareit.yar" +include "../external/yara-rules/crime_fireball.yar" +include "../external/yara-rules/crime_floxif_flystudio.yar" +include "../external/yara-rules/crime_gamaredon.yar" +include "../external/yara-rules/crime_goldeneye.yar" +include "../external/yara-rules/crime_gozi_crypter.yar" +include "../external/yara-rules/crime_guloader.yar" +include "../external/yara-rules/crime_h2miner_kinsing.yar" +include "../external/yara-rules/crime_hermes_ransom.yar" +include "../external/yara-rules/crime_icedid.yar" +include "../external/yara-rules/apt_sofacy.yar" +include "../external/yara-rules/apt_solarwinds_sunburst.yar" +include "../external/yara-rules/apt_solarwinds_susp_sunburst.yar" +include "../external/yara-rules/apt_grizzlybear_uscert.yar" +include "../external/yara-rules/mal_netsha.yar" +include "../external/yara-rules/rule.yar" +include "../external/yara-rules/DridexLoader.yar" +include "../external/yara-rules/DridexLoader_C2Parse.yar" +include "../external/yara-rules/Windows_Rootkit_R77.yar" +include "../external/yara-rules/win.pitou_auto.yar" +include "../external/yara-rules/CustomBackdoor.yar" diff --git a/BLUESPAWN-win-client/resources/severe.z.77203309 b/BLUESPAWN-win-client/resources/severe.z.77203309 new file mode 100644 index 00000000..de38c30a Binary files /dev/null and b/BLUESPAWN-win-client/resources/severe.z.77203309 differ diff --git a/BLUESPAWN-win-client/resources/severe2 b/BLUESPAWN-win-client/resources/severe2 new file mode 100644 index 00000000..4478a3c3 Binary files /dev/null and b/BLUESPAWN-win-client/resources/severe2 differ diff --git a/BLUESPAWN-win-client/resources/severe2.yar b/BLUESPAWN-win-client/resources/severe2.yar index c9fa87f6..17f3adb8 100644 --- a/BLUESPAWN-win-client/resources/severe2.yar +++ b/BLUESPAWN-win-client/resources/severe2.yar @@ -7,7 +7,7 @@ Please remove the below lines and recompile the project to use in a commercial s */ - +/* include "../external/signature-base/yara/apt_cobaltstrike.yar" include "../external/signature-base/yara/apt_cobaltstrike_evasive.yar" include "../external/signature-base/yara/crime_emotet.yar" @@ -68,7 +68,7 @@ include "../external/signature-base/yara/generic_exe2hex_payload.yar" include "../external/signature-base/yara/thor-webshells.yar" include "../external/signature-base/vendor/yara/airbnb_binaryalert.yar" - +*/ /* Excluded due to syntax errors: diff --git a/BLUESPAWN-win-client/resources/third-party-integration/ConventionEngine.yar b/BLUESPAWN-win-client/resources/third-party-integration/ConventionEngine.yar index a631a0de..2ec046f5 100644 --- a/BLUESPAWN-win-client/resources/third-party-integration/ConventionEngine.yar +++ b/BLUESPAWN-win-client/resources/third-party-integration/ConventionEngine.yar @@ -1,1240 +1,1240 @@ -// Rule appendix for the Definitive Dossier of Devilish Debug Details -// Blog link: https://www.fireeye.com/blog/threat-research/2019/08/definitive-dossier-of-devilish-debug-details-part-one-pdb-paths-malware.html -// For more info, bother @stvemillertime or the #AdvancedPractices team on Twitter -// Updated on 2019-08-30, initial performance improvements by Florian Roth (@cyb3rops) -import "pe" -// used only in ConventionEngine_Anomaly_OutsideOfDebug -rule ConventionEngine_Keyword_Obfuscat -{ - meta: - author = "@stvemillertime" - description = "Searching for PE files with PDB path keywords, terms or anomalies." - sample_md5 = "6724cef5a9a670d68e8ec00b6614997c" - ref_blog = "https://www.fireeye.com/blog/threat-research/2019/08/definitive-dossier-of-devilish-debug-details-part-one-pdb-paths-malware.html" - strings: - $pcre = /RSDS[\x00-\xFF]{20}[a-zA-Z]:\\[\x00-\xFF]{0,200}obfuscat[\x00-\xFF]{0,200}\.pdb\x00/ nocase ascii - condition: - (uint16(0) == 0x5A4D) and uint32(uint32(0x3C)) == 0x00004550 and $pcre -} -rule ConventionEngine_Keyword_Hook -{ - meta: - author = "@stvemillertime" - description = "Searching for PE files with PDB path keywords, terms or anomalies." - sample_md5 = "92156ddfa4c1ec330ffd24ccef127a7a" - ref_blog = "https://www.fireeye.com/blog/threat-research/2019/08/definitive-dossier-of-devilish-debug-details-part-one-pdb-paths-malware.html" - strings: - $pcre = /RSDS[\x00-\xFF]{20}[a-zA-Z]:\\[\x00-\xFF]{0,200}hook[\x00-\xFF]{0,200}\.pdb\x00/ nocase ascii - condition: - (uint16(0) == 0x5A4D) and uint32(uint32(0x3C)) == 0x00004550 and $pcre -} -rule ConventionEngine_Keyword_Evil -{ - meta: - author = "@stvemillertime" - description = "Searching for PE files with PDB path keywords, terms or anomalies." - sample_md5 = "9359b24a96df49972eda1750a35802de" - ref_blog = "https://www.fireeye.com/blog/threat-research/2019/08/definitive-dossier-of-devilish-debug-details-part-one-pdb-paths-malware.html" - strings: - $pcre = /RSDS[\x00-\xFF]{20}[a-zA-Z]:\\[\x00-\xFF]{0,200}evil[\x00-\xFF]{0,200}\.pdb\x00/ nocase ascii - condition: - (uint16(0) == 0x5A4D) and uint32(uint32(0x3C)) == 0x00004550 and $pcre -} -rule ConventionEngine_Keyword_Inject -{ - meta: - author = "@stvemillertime" - description = "Searching for PE files with PDB path keywords, terms or anomalies." - sample_md5 = "081686496db01e44871f4e4a09e35fed" - ref_blog = "https://www.fireeye.com/blog/threat-research/2019/08/definitive-dossier-of-devilish-debug-details-part-one-pdb-paths-malware.html" - strings: - $pcre = /RSDS[\x00-\xFF]{20}[a-zA-Z]:\\[\x00-\xFF]{0,200}inject[\x00-\xFF]{0,200}\.pdb\x00/ nocase ascii - condition: - (uint16(0) == 0x5A4D) and uint32(uint32(0x3C)) == 0x00004550 and $pcre -} -rule ConventionEngine_Keyword_Trojan -{ - meta: - author = "@stvemillertime" - description = "Searching for PE files with PDB path keywords, terms or anomalies." - sample_md5 = "060b2135d69fb33e8fc1c4d2bf7e2899" - ref_blog = "https://www.fireeye.com/blog/threat-research/2019/08/definitive-dossier-of-devilish-debug-details-part-one-pdb-paths-malware.html" - strings: - $pcre = /RSDS[\x00-\xFF]{20}[a-zA-Z]:\\[\x00-\xFF]{0,200}trojan[\x00-\xFF]{0,200}\.pdb\x00/ nocase ascii - condition: - (uint16(0) == 0x5A4D) and uint32(uint32(0x3C)) == 0x00004550 and $pcre -} -rule ConventionEngine_Keyword_Hide -{ - meta: - author = "@stvemillertime" - description = "Searching for PE files with PDB path keywords, terms or anomalies." - sample_md5 = "dd8af240a7a4a81b5f80250b44a778c4" - ref_blog = "https://www.fireeye.com/blog/threat-research/2019/08/definitive-dossier-of-devilish-debug-details-part-one-pdb-paths-malware.html" - strings: - $pcre = /RSDS[\x00-\xFF]{20}[a-zA-Z]:\\[\x00-\xFF]{0,200}hide[\x00-\xFF]{0,200}\.pdb\x00/ nocase ascii - condition: - (uint16(0) == 0x5A4D) and uint32(uint32(0x3C)) == 0x00004550 and $pcre -} -rule ConventionEngine_Keyword_Anti -{ - meta: - author = "@stvemillertime" - description = "Searching for PE files with PDB path keywords, terms or anomalies." - sample_md5 = "d350ae5dc15bcc18fde382b84f4bb3d0" - ref_blog = "https://www.fireeye.com/blog/threat-research/2019/08/definitive-dossier-of-devilish-debug-details-part-one-pdb-paths-malware.html" - strings: - $pcre = /RSDS[\x00-\xFF]{20}[a-zA-Z]:\\[\x00-\xFF]{0,200}anti[\x00-\xFF]{0,200}\.pdb\x00/ nocase ascii - condition: - (uint16(0) == 0x5A4D) and uint32(uint32(0x3C)) == 0x00004550 and $pcre -} -rule ConventionEngine_Keyword_Payload -{ - meta: - author = "@stvemillertime" - description = "Searching for PE files with PDB path keywords, terms or anomalies." - sample_md5 = "10c534cacf65b604c1c2a30341bd2394" - ref_blog = "https://www.fireeye.com/blog/threat-research/2019/08/definitive-dossier-of-devilish-debug-details-part-one-pdb-paths-malware.html" - strings: - $pcre = /RSDS[\x00-\xFF]{20}[a-zA-Z]:\\[\x00-\xFF]{0,200}payload[\x00-\xFF]{0,200}\.pdb\x00/ nocase ascii - condition: - (uint16(0) == 0x5A4D) and uint32(uint32(0x3C)) == 0x00004550 and $pcre -} -rule ConventionEngine_Keyword_Keylog -{ - meta: - author = "@stvemillertime" - description = "Searching for PE files with PDB path keywords, terms or anomalies." - sample_md5 = "1d7fd704fe4e41feff9e3a005ed868d6" - ref_blog = "https://www.fireeye.com/blog/threat-research/2019/08/definitive-dossier-of-devilish-debug-details-part-one-pdb-paths-malware.html" - strings: - $pcre = /RSDS[\x00-\xFF]{20}[a-zA-Z]:\\[\x00-\xFF]{0,200}keylog[\x00-\xFF]{0,200}\.pdb\x00/ nocase ascii - condition: - (uint16(0) == 0x5A4D) and uint32(uint32(0x3C)) == 0x00004550 and $pcre -} -rule ConventionEngine_Keyword_Bypass -{ - meta: - author = "@stvemillertime" - description = "Searching for PE files with PDB path keywords, terms or anomalies." - sample_md5 = "00b8356235e510be95e367a25418b5cc" - ref_blog = "https://www.fireeye.com/blog/threat-research/2019/08/definitive-dossier-of-devilish-debug-details-part-one-pdb-paths-malware.html" - strings: - $pcre = /RSDS[\x00-\xFF]{20}[a-zA-Z]:\\[\x00-\xFF]{0,200}bypass[\x00-\xFF]{0,200}\.pdb\x00/ nocase ascii - condition: - (uint16(0) == 0x5A4D) and uint32(uint32(0x3C)) == 0x00004550 and $pcre -} -rule ConventionEngine_Keyword_Beacon -{ - meta: - author = "@stvemillertime" - description = "Searching for PE files with PDB path keywords, terms or anomalies." - sample_md5 = "798afd5f648774c3133ea5e087efc2c1" - ref_blog = "https://www.fireeye.com/blog/threat-research/2019/08/definitive-dossier-of-devilish-debug-details-part-one-pdb-paths-malware.html" - strings: - $pcre = /RSDS[\x00-\xFF]{20}[a-zA-Z]:\\[\x00-\xFF]{0,200}beacon[\x00-\xFF]{0,200}\.pdb\x00/ nocase ascii - condition: - (uint16(0) == 0x5A4D) and uint32(uint32(0x3C)) == 0x00004550 and $pcre -} -rule ConventionEngine_Keyword_UAC -{ - meta: - author = "@stvemillertime" - description = "Searching for PE files with PDB path keywords, terms or anomalies." - sample_md5 = "2e62974fbce2fc1bbde763b986ad7b77" - ref_blog = "https://www.fireeye.com/blog/threat-research/2019/08/definitive-dossier-of-devilish-debug-details-part-one-pdb-paths-malware.html" - strings: - $pcre = /RSDS[\x00-\xFF]{20}[a-zA-Z]:\\[\x00-\xFF]{0,200}uac[\x00-\xFF]{0,200}\.pdb\x00/ nocase ascii - condition: - (uint16(0) == 0x5A4D) and uint32(uint32(0x3C)) == 0x00004550 and $pcre -} -rule ConventionEngine_Keyword_Svchost -{ - meta: - author = "@stvemillertime" - description = "Searching for PE files with PDB path keywords, terms or anomalies." - sample_md5 = "c1206ba56f7f0c2698adcb3280f345be" - ref_blog = "https://www.fireeye.com/blog/threat-research/2019/08/definitive-dossier-of-devilish-debug-details-part-one-pdb-paths-malware.html" - strings: - $pcre = /RSDS[\x00-\xFF]{20}[a-zA-Z]:\\[\x00-\xFF]{0,200}svchost[\x00-\xFF]{0,200}\.pdb\x00/ nocase ascii - condition: - (uint16(0) == 0x5A4D) and uint32(uint32(0x3C)) == 0x00004550 and $pcre -} -rule ConventionEngine_Keyword_Svhost -{ - meta: - author = "@stvemillertime" - description = "Searching for PE files with PDB path keywords, terms or anomalies." - sample_md5 = "8edf49fd8421edc7f58997bb16961cf4" - ref_blog = "https://www.fireeye.com/blog/threat-research/2019/08/definitive-dossier-of-devilish-debug-details-part-one-pdb-paths-malware.html" - strings: - $pcre = /RSDS[\x00-\xFF]{20}[a-zA-Z]:\\[\x00-\xFF]{0,200}svhost[\x00-\xFF]{0,200}\.pdb\x00/ nocase ascii - condition: - (uint16(0) == 0x5A4D) and uint32(uint32(0x3C)) == 0x00004550 and $pcre -} -rule ConventionEngine_Keyword_Dropper -{ - meta: - author = "@stvemillertime" - description = "Searching for PE files with PDB path keywords, terms or anomalies." - sample_md5 = "4847f692942358aff51b72ffcb3e40ac" - ref_blog = "https://www.fireeye.com/blog/threat-research/2019/08/definitive-dossier-of-devilish-debug-details-part-one-pdb-paths-malware.html" - strings: - $pcre = /RSDS[\x00-\xFF]{20}[a-zA-Z]:\\[\x00-\xFF]{0,200}dropper[\x00-\xFF]{0,200}\.pdb\x00/ nocase ascii - condition: - (uint16(0) == 0x5A4D) and uint32(uint32(0x3C)) == 0x00004550 and $pcre -} -rule ConventionEngine_Keyword_Attack -{ - meta: - author = "@stvemillertime" - description = "Searching for PE files with PDB path keywords, terms or anomalies." - sample_md5 = "d6b1989d9c271b8575326e4fca159ae8" - ref_blog = "https://www.fireeye.com/blog/threat-research/2019/08/definitive-dossier-of-devilish-debug-details-part-one-pdb-paths-malware.html" - strings: - $pcre = /RSDS[\x00-\xFF]{20}[a-zA-Z]:\\[\x00-\xFF]{0,200}attack[\x00-\xFF]{0,200}\.pdb\x00/ nocase ascii - condition: - (uint16(0) == 0x5A4D) and uint32(uint32(0x3C)) == 0x00004550 and $pcre -} -rule ConventionEngine_Keyword_Encrypt -{ - meta: - author = "@stvemillertime" - description = "Searching for PE files with PDB path keywords, terms or anomalies." - sample_md5 = "65746ec8d8488066a129821c27fcbfb3" - ref_blog = "https://www.fireeye.com/blog/threat-research/2019/08/definitive-dossier-of-devilish-debug-details-part-one-pdb-paths-malware.html" - strings: - $pcre = /RSDS[\x00-\xFF]{20}[a-zA-Z]:\\[\x00-\xFF]{0,200}encrypt[\x00-\xFF]{0,200}\.pdb\x00/ nocase ascii - condition: - (uint16(0) == 0x5A4D) and uint32(uint32(0x3C)) == 0x00004550 and $pcre -} -rule ConventionEngine_Keyword_Exploit -{ - meta: - author = "@stvemillertime" - description = "Searching for PE files with PDB path keywords, terms or anomalies." - sample_md5 = "4215d029dd26c29ce3e0cab530979b19" - ref_blog = "https://www.fireeye.com/blog/threat-research/2019/08/definitive-dossier-of-devilish-debug-details-part-one-pdb-paths-malware.html" - strings: - $pcre = /RSDS[\x00-\xFF]{20}[a-zA-Z]:\\[\x00-\xFF]{0,200}exploit[\x00-\xFF]{0,200}\.pdb\x00/ nocase ascii - condition: - (uint16(0) == 0x5A4D) and uint32(uint32(0x3C)) == 0x00004550 and $pcre -} -rule ConventionEngine_Keyword_Ransom -{ - meta: - author = "@stvemillertime" - description = "Searching for PE files with PDB path keywords, terms or anomalies." - sample_md5 = "363bfef1781c107a08f46267f7676579" - ref_blog = "https://www.fireeye.com/blog/threat-research/2019/08/definitive-dossier-of-devilish-debug-details-part-one-pdb-paths-malware.html" - strings: - $pcre = /RSDS[\x00-\xFF]{20}[a-zA-Z]:\\[\x00-\xFF]{0,200}ransom[\x00-\xFF]{0,200}\.pdb\x00/ nocase ascii - condition: - (uint16(0) == 0x5A4D) and uint32(uint32(0x3C)) == 0x00004550 and $pcre -} -rule ConventionEngine_Keyword_Spy -{ - meta: - author = "@stvemillertime" - description = "Searching for PE files with PDB path keywords, terms or anomalies." - sample_md5 = "15db41840f77723aa7e43460d9d3a5cc" - ref_blog = "https://www.fireeye.com/blog/threat-research/2019/08/definitive-dossier-of-devilish-debug-details-part-one-pdb-paths-malware.html" - strings: - $pcre = /RSDS[\x00-\xFF]{20}[a-zA-Z]:\\[\x00-\xFF]{0,200}spy[\x00-\xFF]{0,200}\.pdb\x00/ nocase ascii - condition: - (uint16(0) == 0x5A4D) and uint32(uint32(0x3C)) == 0x00004550 and $pcre -} -rule ConventionEngine_Keyword_Horse -{ - meta: - author = "@stvemillertime" - description = "Searching for PE files with PDB path keywords, terms or anomalies." - sample_md5 = "1aa4a05fa321676b9934cd3aa54a5f95" - ref_blog = "https://www.fireeye.com/blog/threat-research/2019/08/definitive-dossier-of-devilish-debug-details-part-one-pdb-paths-malware.html" - strings: - $pcre = /RSDS[\x00-\xFF]{20}[a-zA-Z]:\\[\x00-\xFF]{0,200}horse[\x00-\xFF]{0,200}\.pdb\x00/ nocase ascii - condition: - (uint16(0) == 0x5A4D) and uint32(uint32(0x3C)) == 0x00004550 and $pcre -} -rule ConventionEngine_Keyword_CVE -{ - meta: - author = "@stvemillertime" - description = "Searching for PE files with PDB path keywords, terms or anomalies." - sample_md5 = "89dd326a64fdd77b467d2db1cc15e8ef" - ref_blog = "https://www.fireeye.com/blog/threat-research/2019/08/definitive-dossier-of-devilish-debug-details-part-one-pdb-paths-malware.html" - strings: - $pcre = /RSDS[\x00-\xFF]{20}[a-zA-Z]:\\[\x00-\xFF]{0,200}cve[\x00-\xFF]{0,200}\.pdb\x00/ nocase ascii - condition: - (uint16(0) == 0x5A4D) and uint32(uint32(0x3C)) == 0x00004550 and $pcre -} -rule ConventionEngine_Keyword_shellcode -{ - meta: - author = "@stvemillertime" - description = "Searching for PE files with PDB path keywords, terms or anomalies." - sample_md5 = "2cd7bc18377abb2464f55453e5bfab20" - ref_blog = "https://www.fireeye.com/blog/threat-research/2019/08/definitive-dossier-of-devilish-debug-details-part-one-pdb-paths-malware.html" - strings: - $pcre = /RSDS[\x00-\xFF]{20}[a-zA-Z]:\\[\x00-\xFF]{0,200}shellcode[\x00-\xFF]{0,200}\.pdb\x00/ nocase ascii - condition: - (uint16(0) == 0x5A4D) and uint32(uint32(0x3C)) == 0x00004550 and $pcre -} -rule ConventionEngine_Keyword_Fake -{ - meta: - author = "@stvemillertime" - description = "Searching for PE files with PDB path keywords, terms or anomalies." - sample_md5 = "124c475d67aa8391f5220efcc64ca5b3" - ref_blog = "https://www.fireeye.com/blog/threat-research/2019/08/definitive-dossier-of-devilish-debug-details-part-one-pdb-paths-malware.html" - strings: - $pcre = /RSDS[\x00-\xFF]{20}[a-zA-Z]:\\[\x00-\xFF]{0,200}fake[\x00-\xFF]{0,200}\.pdb\x00/ nocase ascii - condition: - (uint16(0) == 0x5A4D) and uint32(uint32(0x3C)) == 0x00004550 and $pcre -} -rule ConventionEngine_Keyword_Backdoor -{ - meta: - author = "@stvemillertime" - description = "Searching for PE files with PDB path keywords, terms or anomalies." - sample_md5 = "0017c2bfa513960f9ea4fee46382959b" - ref_blog = "https://www.fireeye.com/blog/threat-research/2019/08/definitive-dossier-of-devilish-debug-details-part-one-pdb-paths-malware.html" - strings: - $pcre = /RSDS[\x00-\xFF]{20}[a-zA-Z]:\\[\x00-\xFF]{0,200}backdoor[\x00-\xFF]{0,200}\.pdb\x00/ nocase ascii - condition: - (uint16(0) == 0x5A4D) and uint32(uint32(0x3C)) == 0x00004550 and $pcre -} -rule ConventionEngine_Keyword_BDoor -{ - meta: - author = "@stvemillertime" - description = "Searching for PE files with PDB path keywords, terms or anomalies." - sample_md5 = "ba08b593250c3ca5c13f56e2ca97d85e" - ref_blog = "https://www.fireeye.com/blog/threat-research/2019/08/definitive-dossier-of-devilish-debug-details-part-one-pdb-paths-malware.html" - strings: - $pcre = /RSDS[\x00-\xFF]{20}[a-zA-Z]:\\[\x00-\xFF]{0,200}(bkdoor|bckdoor|backdr)[\x00-\xFF]{0,200}\.pdb\x00/ nocase ascii - condition: - (uint16(0) == 0x5A4D) and uint32(uint32(0x3C)) == 0x00004550 and $pcre -} -rule ConventionEngine_Keyword_Zombie -{ - meta: - author = "@stvemillertime" - description = "Searching for PE files with PDB path keywords, terms or anomalies." - sample_md5 = "05ce6c5b7e14c34d4e6189dc19675c98" - ref_blog = "https://www.fireeye.com/blog/threat-research/2019/08/definitive-dossier-of-devilish-debug-details-part-one-pdb-paths-malware.html" - strings: - $pcre = /RSDS[\x00-\xFF]{20}[a-zA-Z]:\\[\x00-\xFF]{0,200}zombie[\x00-\xFF]{0,200}\.pdb\x00/ nocase ascii - condition: - (uint16(0) == 0x5A4D) and uint32(uint32(0x3C)) == 0x00004550 and $pcre -} -rule ConventionEngine_Keyword_Rootkit -{ - meta: - author = "@stvemillertime" - description = "Searching for PE files with PDB path keywords, terms or anomalies." - sample_md5 = "8d4c375e452c688b413882365437435b" - ref_blog = "https://www.fireeye.com/blog/threat-research/2019/08/definitive-dossier-of-devilish-debug-details-part-one-pdb-paths-malware.html" - strings: - $pcre = /RSDS[\x00-\xFF]{20}[a-zA-Z]:\\[\x00-\xFF]{0,200}rootkit[\x00-\xFF]{0,200}\.pdb\x00/ nocase ascii - condition: - (uint16(0) == 0x5A4D) and uint32(uint32(0x3C)) == 0x00004550 and $pcre -} -rule ConventionEngine_Keyword_Fuck -{ - meta: - author = "@stvemillertime" - description = "Searching for PE files with PDB path keywords, terms or anomalies." - sample_md5 = "bce1069dd099f15170c5fd05bae921b5" - ref_blog = "https://www.fireeye.com/blog/threat-research/2019/08/definitive-dossier-of-devilish-debug-details-part-one-pdb-paths-malware.html" - strings: - $pcre = /RSDS[\x00-\xFF]{20}[a-zA-Z]:\\[\x00-\xFF]{0,200}fuck[\x00-\xFF]{0,200}\.pdb\x00/ nocase ascii - condition: - (uint16(0) == 0x5A4D) and uint32(uint32(0x3C)) == 0x00004550 and $pcre -} -rule ConventionEngine_Keyword_LoadDLL -{ - meta: - author = "@stvemillertime" - description = "Searching for PE files with PDB path keywords, terms or anomalies." - sample_md5 = "e03f94cf5e3b1df208967a87df13ccb5" - ref_blog = "https://www.fireeye.com/blog/threat-research/2019/08/definitive-dossier-of-devilish-debug-details-part-one-pdb-paths-malware.html" - strings: - $pcre = /RSDS[\x00-\xFF]{20}[a-zA-Z]:\\[\x00-\xFF]{0,200}loaddll[\x00-\xFF]{0,200}\.pdb\x00/ nocase ascii - condition: - (uint16(0) == 0x5A4D) and uint32(uint32(0x3C)) == 0x00004550 and $pcre -} -rule ConventionEngine_Keyword_Reflect -{ - meta: - author = "@stvemillertime" - description = "Searching for PE files with PDB path keywords, terms or anomalies." - sample_md5 = "d4990a8d2ff6f2433acdad04521f85c6" - ref_blog = "https://www.fireeye.com/blog/threat-research/2019/08/definitive-dossier-of-devilish-debug-details-part-one-pdb-paths-malware.html" - strings: - $pcre = /RSDS[\x00-\xFF]{20}[a-zA-Z]:\\[\x00-\xFF]{0,200}reflect[\x00-\xFF]{0,200}\.pdb\x00/ nocase ascii - condition: - (uint16(0) == 0x5A4D) and uint32(uint32(0x3C)) == 0x00004550 and $pcre -} -rule ConventionEngine_Keyword_Sleep -{ - meta: - author = "@stvemillertime" - description = "Searching for PE files with PDB path keywords, terms or anomalies." - sample_md5 = "0ce134d66531d2070b2c7db1ffb0dc6f" - ref_blog = "https://www.fireeye.com/blog/threat-research/2019/08/definitive-dossier-of-devilish-debug-details-part-one-pdb-paths-malware.html" - strings: - $pcre = /RSDS[\x00-\xFF]{20}[a-zA-Z]:\\[\x00-\xFF]{0,200}sleep[\x00-\xFF]{0,200}\.pdb\x00/ nocase ascii - condition: - (uint16(0) == 0x5A4D) and uint32(uint32(0x3C)) == 0x00004550 and $pcre -} -rule ConventionEngine_Keyword_Sploit -{ - meta: - author = "@stvemillertime" - description = "Searching for PE files with PDB path keywords, terms or anomalies." - sample_md5 = "0637c45bdefaa93d26124c1f3899443a" - ref_blog = "https://www.fireeye.com/blog/threat-research/2019/08/definitive-dossier-of-devilish-debug-details-part-one-pdb-paths-malware.html" - strings: - $pcre = /RSDS[\x00-\xFF]{20}[a-zA-Z]:\\[\x00-\xFF]{0,200}sploit[\x00-\xFF]{0,200}\.pdb\x00/ nocase ascii - condition: - (uint16(0) == 0x5A4D) and uint32(uint32(0x3C)) == 0x00004550 and $pcre -} -rule ConventionEngine_Keyword_Reverse -{ - meta: - author = "@stvemillertime" - description = "Searching for PE files with PDB path keywords, terms or anomalies." - sample_md5 = "fccb98a9a510cdcf7c730eba548729de" - ref_blog = "https://www.fireeye.com/blog/threat-research/2019/08/definitive-dossier-of-devilish-debug-details-part-one-pdb-paths-malware.html" - strings: - $pcre = /RSDS[\x00-\xFF]{20}[a-zA-Z]:\\[\x00-\xFF]{0,200}reverse[\x00-\xFF]{0,200}\.pdb\x00/ nocase ascii - condition: - (uint16(0) == 0x5A4D) and uint32(uint32(0x3C)) == 0x00004550 and $pcre -} -rule ConventionEngine_Keyword_Socket -{ - meta: - author = "@stvemillertime" - description = "Searching for PE files with PDB path keywords, terms or anomalies." - sample_md5 = "9c836dcd5251c4c9272b408b486e65db" - ref_blog = "https://www.fireeye.com/blog/threat-research/2019/08/definitive-dossier-of-devilish-debug-details-part-one-pdb-paths-malware.html" - strings: - $pcre = /RSDS[\x00-\xFF]{20}[a-zA-Z]:\\[\x00-\xFF]{0,200}socket[\x00-\xFF]{0,200}\.pdb\x00/ nocase ascii - condition: - (uint16(0) == 0x5A4D) and uint32(uint32(0x3C)) == 0x00004550 and $pcre -} -rule ConventionEngine_Keyword_PowerShell -{ - meta: - author = "@stvemillertime" - description = "Searching for PE files with PDB path keywords, terms or anomalies." - sample_md5 = "33700535591774417e3282f7b40ae8ad" - ref_blog = "https://www.fireeye.com/blog/threat-research/2019/08/definitive-dossier-of-devilish-debug-details-part-one-pdb-paths-malware.html" - strings: - $pcre = /RSDS[\x00-\xFF]{20}[a-zA-Z]:\\[\x00-\xFF]{0,200}PowerShell[\x00-\xFF]{0,200}\.pdb\x00/ nocase ascii - condition: - (uint16(0) == 0x5A4D) and uint32(uint32(0x3C)) == 0x00004550 and $pcre -} -rule ConventionEngine_Keyword_Infect -{ - meta: - author = "@stvemillertime" - description = "Searching for PE files with PDB path keywords, terms or anomalies." - sample_md5 = "fdfea54231be21760b722d5cef32da2a" - ref_blog = "https://www.fireeye.com/blog/threat-research/2019/08/definitive-dossier-of-devilish-debug-details-part-one-pdb-paths-malware.html" - strings: - $pcre = /RSDS[\x00-\xFF]{20}[a-zA-Z]:\\[\x00-\xFF]{0,200}infect[\x00-\xFF]{0,200}\.pdb\x00/ nocase ascii - condition: - (uint16(0) == 0x5A4D) and uint32(uint32(0x3C)) == 0x00004550 and $pcre -} -rule ConventionEngine_Keyword_Worm -{ - meta: - author = "@stvemillertime" - description = "Searching for PE files with PDB path keywords, terms or anomalies." - sample_md5 = "fdfea54231be21760b722d5cef32da2a" - ref_blog = "https://www.fireeye.com/blog/threat-research/2019/08/definitive-dossier-of-devilish-debug-details-part-one-pdb-paths-malware.html" - strings: - $pcre = /RSDS[\x00-\xFF]{20}[a-zA-Z]:\\[\x00-\xFF]{0,200}worm[\x00-\xFF]{0,200}\.pdb\x00/ nocase ascii - condition: - (uint16(0) == 0x5A4D) and uint32(uint32(0x3C)) == 0x00004550 and $pcre -} -rule ConventionEngine_Keyword_Katz -{ - meta: - author = "@stvemillertime" - description = "Searching for PE files with PDB path keywords, terms or anomalies." - sample_md5 = "0512c5a8807e4fdeb662e61d81cd1645" - ref_blog = "https://www.fireeye.com/blog/threat-research/2019/08/definitive-dossier-of-devilish-debug-details-part-one-pdb-paths-malware.html" - strings: - $pcre = /RSDS[\x00-\xFF]{20}[a-zA-Z]:\\[\x00-\xFF]{0,200}katz[\x00-\xFF]{0,200}\.pdb\x00/ nocase ascii - condition: - (uint16(0) == 0x5A4D) and uint32(uint32(0x3C)) == 0x00004550 and $pcre -} -rule ConventionEngine_Keyword_Mimi -{ - meta: - author = "@stvemillertime" - description = "Searching for PE files with PDB path keywords, terms or anomalies." - sample_md5 = "a2bcbcc1465be96fbb957b14f29d1ea4" - ref_blog = "https://www.fireeye.com/blog/threat-research/2019/08/definitive-dossier-of-devilish-debug-details-part-one-pdb-paths-malware.html" - strings: - $pcre = /RSDS[\x00-\xFF]{20}[a-zA-Z]:\\[\x00-\xFF]{0,200}mimi[\x00-\xFF]{0,200}\.pdb\x00/ nocase ascii - condition: - (uint16(0) == 0x5A4D) and uint32(uint32(0x3C)) == 0x00004550 and $pcre -} -rule ConventionEngine_Keyword_Droper -{ - meta: - author = "@stvemillertime" - description = "Searching for PE files with PDB path keywords, terms or anomalies." - sample_md5 = "5410ab108cd251a2db724db762d6606c" - ref_blog = "https://www.fireeye.com/blog/threat-research/2019/08/definitive-dossier-of-devilish-debug-details-part-one-pdb-paths-malware.html" - strings: - $pcre = /RSDS[\x00-\xFF]{20}[a-zA-Z]:\\[\x00-\xFF]{0,200}droper[\x00-\xFF]{0,200}\.pdb\x00/ nocase ascii - condition: - (uint16(0) == 0x5A4D) and uint32(uint32(0x3C)) == 0x00004550 and $pcre -} -rule ConventionEngine_Keyword_0day -{ - meta: - author = "@a_tweeter_user" - description = "Searching for PE files with PDB path keywords, terms or anomalies." - sample_md5 = "e8df15f480b7044cf44faff4273dba8f" - ref_blog = "https://www.fireeye.com/blog/threat-research/2019/08/definitive-dossier-of-devilish-debug-details-part-one-pdb-paths-malware.html" - strings: - $pcre = /RSDS[\x00-\xFF]{20}[a-zA-Z]:\\[\x00-\xFF]{0,200}0day[\x00-\xFF]{0,200}\.pdb\x00/ nocase ascii - condition: - (uint16(0) == 0x5A4D) and uint32(uint32(0x3C)) == 0x00004550 and $pcre -} -rule ConventionEngine_Keyword_Penetration -{ - meta: - author = "@stvemillertime" - description = "Searching for PE files with PDB path keywords, terms or anomalies." - sample_md5 = "5f7796346d22ec5bd8c7b5a2e6caca3c" - ref_blog = "https://www.fireeye.com/blog/threat-research/2019/08/definitive-dossier-of-devilish-debug-details-part-one-pdb-paths-malware.html" - strings: - $pcre = /RSDS[\x00-\xFF]{20}[a-zA-Z]:\\[\x00-\xFF]{0,200}penetration[\x00-\xFF]{0,200}\.pdb\x00/ nocase ascii - condition: - (uint16(0) == 0x5A4D) and uint32(uint32(0x3C)) == 0x00004550 and $pcre -} -rule ConventionEngine_Keyword_Wiper -{ - meta: - author = "@stvemillertime" - description = "Searching for PE files with PDB path keywords, terms or anomalies." - sample_md5 = "3b740cca401715985f3a0c28f851b60e" - ref_blog = "https://www.fireeye.com/blog/threat-research/2019/08/definitive-dossier-of-devilish-debug-details-part-one-pdb-paths-malware.html" - strings: - $pcre = /RSDS[\x00-\xFF]{20}[a-zA-Z]:\\[\x00-\xFF]{0,200}wiper[\x00-\xFF]{0,200}\.pdb\x00/ nocase ascii - condition: - (uint16(0) == 0x5A4D) and uint32(uint32(0x3C)) == 0x00004550 and $pcre -} -rule ConventionEngine_Keyword_Bootkit -{ - meta: - author = "@stvemillertime" - description = "Searching for PE files with PDB path keywords, terms or anomalies." - sample_md5 = "b427a55b62d7f00c532d695c9b04b4d2" - ref_blog = "https://www.fireeye.com/blog/threat-research/2019/08/definitive-dossier-of-devilish-debug-details-part-one-pdb-paths-malware.html" - strings: - $pcre = /RSDS[\x00-\xFF]{20}[a-zA-Z]:\\[\x00-\xFF]{0,200}bootkit[\x00-\xFF]{0,200}\.pdb\x00/ nocase ascii - condition: - (uint16(0) == 0x5A4D) and uint32(uint32(0x3C)) == 0x00004550 and $pcre -} -rule ConventionEngine_Keyword_Bot -{ - meta: - author = "@stvemillertime" - description = "Searching for PE files with PDB path keywords, terms or anomalies." - sample_md5 = "df1e54a3832aff3e714fa2c122aa7ea9" - ref_blog = "https://www.fireeye.com/blog/threat-research/2019/08/definitive-dossier-of-devilish-debug-details-part-one-pdb-paths-malware.html" - strings: - $pcre = /RSDS[\x00-\xFF]{20}[a-zA-Z]:\\[\x00-\xFF]{0,200}(bot_|_bot| bot|bot |bot\\|-bot|bot-|\\bot)[\x00-\xFF]{0,200}\.pdb\x00/ nocase ascii - condition: - (uint16(0) == 0x5A4D) and uint32(uint32(0x3C)) == 0x00004550 and $pcre -} -rule ConventionEngine_Keyword_Csrss -{ - meta: - author = "@stvemillertime" - description = "Searching for PE files with PDB path keywords, terms or anomalies." - sample_md5 = "72e743f7752367b461c42561021eb30d" - ref_blog = "https://www.fireeye.com/blog/threat-research/2019/08/definitive-dossier-of-devilish-debug-details-part-one-pdb-paths-malware.html" - strings: - $pcre = /RSDS[\x00-\xFF]{20}[a-zA-Z]:\\[\x00-\xFF]{0,200}csrss[\x00-\xFF]{0,200}\.pdb\x00/ nocase ascii - condition: - (uint16(0) == 0x5A4D) and uint32(uint32(0x3C)) == 0x00004550 and $pcre -} -rule ConventionEngine_Keyword_Flood -{ - meta: - author = "@stvemillertime" - description = "Searching for PE files with PDB path keywords, terms or anomalies." - sample_md5 = "17a8d440545859444491f2feca7c129f" - ref_blog = "https://www.fireeye.com/blog/threat-research/2019/08/definitive-dossier-of-devilish-debug-details-part-one-pdb-paths-malware.html" - strings: - $pcre = /RSDS[\x00-\xFF]{20}[a-zA-Z]:\\[\x00-\xFF]{0,200}flood[\x00-\xFF]{0,200}\.pdb\x00/ nocase ascii - condition: - (uint16(0) == 0x5A4D) and uint32(uint32(0x3C)) == 0x00004550 and $pcre -} -rule ConventionEngine_Keyword_Overflow -{ - meta: - author = "@stvemillertime" - description = "Searching for PE files with PDB path keywords, terms or anomalies." - ref_blog = "https://www.fireeye.com/blog/threat-research/2019/08/definitive-dossier-of-devilish-debug-details-part-one-pdb-paths-malware.html" - strings: - $pcre = /RSDS[\x00-\xFF]{20}[a-zA-Z]:\\[\x00-\xFF]{0,200}overflow[\x00-\xFF]{0,200}\.pdb\x00/ nocase ascii - condition: - (uint16(0) == 0x5A4D) and uint32(uint32(0x3C)) == 0x00004550 and $pcre -} -rule ConventionEngine_Keyword_Kali -{ - meta: - author = "@stvemillertime" - description = "Searching for PE files with PDB path keywords, terms or anomalies." - sample_md5 = "2cc23a6d971a8dc2093b73f72c2380b4" - ref_blog = "https://www.fireeye.com/blog/threat-research/2019/08/definitive-dossier-of-devilish-debug-details-part-one-pdb-paths-malware.html" - strings: - $pcre = /RSDS[\x00-\xFF]{20}[a-zA-Z]:\\[\x00-\xFF]{0,200}kali[\x00-\xFF]{0,200}\.pdb\x00/ nocase ascii - condition: - (uint16(0) == 0x5A4D) and uint32(uint32(0x3C)) == 0x00004550 and $pcre -} -rule ConventionEngine_Keyword_Malware -{ - meta: - author = "@stvemillertime" - description = "Searching for PE files with PDB path keywords, terms or anomalies." - sample_md5 = "198ee041e8f3eb12a19bc321f86ccb88" - ref_blog = "https://www.fireeye.com/blog/threat-research/2019/08/definitive-dossier-of-devilish-debug-details-part-one-pdb-paths-malware.html" - strings: - $pcre = /RSDS[\x00-\xFF]{20}[a-zA-Z]:\\[\x00-\xFF]{0,200}malware[\x00-\xFF]{0,200}\.pdb\x00/ nocase ascii - condition: - (uint16(0) == 0x5A4D) and uint32(uint32(0x3C)) == 0x00004550 and $pcre -} -rule ConventionEngine_Keyword_Miner -{ - meta: - author = "@stvemillertime" - description = "Searching for PE files with PDB path keywords, terms or anomalies." - sample_md5 = "0409644ae4d1afb21c53339e244b5cc8" - ref_blog = "https://www.fireeye.com/blog/threat-research/2019/08/definitive-dossier-of-devilish-debug-details-part-one-pdb-paths-malware.html" - strings: - $pcre = /RSDS[\x00-\xFF]{20}[a-zA-Z]:\\[\x00-\xFF]{0,200}miner[\x00-\xFF]{0,200}\.pdb\x00/ nocase ascii - condition: - (uint16(0) == 0x5A4D) and uint32(uint32(0x3C)) == 0x00004550 and $pcre -} -rule ConventionEngine_Keyword_Xmrig -{ - meta: - author = "@stvemillertime" - description = "Searching for PE files with PDB path keywords, terms or anomalies." - sample_md5 = "433f936511c2302342f175ad020e34f1" - ref_blog = "https://www.fireeye.com/blog/threat-research/2019/08/definitive-dossier-of-devilish-debug-details-part-one-pdb-paths-malware.html" - strings: - $pcre = /RSDS[\x00-\xFF]{20}[a-zA-Z]:\\[\x00-\xFF]{0,200}xmrig[\x00-\xFF]{0,200}\.pdb\x00/ nocase ascii - condition: - (uint16(0) == 0x5A4D) and uint32(uint32(0x3C)) == 0x00004550 and $pcre -} -rule ConventionEngine_Keyword_LOL -{ - meta: - author = "@stvemillertime" - description = "Searching for PE files with PDB path keywords, terms or anomalies." - sample_md5 = "05486e8707ae94befde0bafd9bee5429" - ref_blog = "https://www.fireeye.com/blog/threat-research/2019/08/definitive-dossier-of-devilish-debug-details-part-one-pdb-paths-malware.html" - strings: - $pcre = /RSDS[\x00-\xFF]{20}[a-zA-Z]:\\[\x00-\xFF]{0,200}lol[\x00-\xFF]{0,200}\.pdb\x00/ nocase ascii - condition: - (uint16(0) == 0x5A4D) and uint32(uint32(0x3C)) == 0x00004550 and $pcre -} -rule ConventionEngine_Keyword_FUD -{ - meta: - author = "@stvemillertime" - description = "Searching for PE files with PDB path keywords, terms or anomalies." - sample_md5 = "07c281acbe2eeb479a73580560cec0b8" - ref_blog = "https://www.fireeye.com/blog/threat-research/2019/08/definitive-dossier-of-devilish-debug-details-part-one-pdb-paths-malware.html" - strings: - $pcre = /RSDS[\x00-\xFF]{20}[a-zA-Z]:\\[\x00-\xFF]{0,200}fud[\x00-\xFF]{0,200}\.pdb\x00/ nocase ascii - condition: - (uint16(0) == 0x5A4D) and uint32(uint32(0x3C)) == 0x00004550 and $pcre -} -rule ConventionEngine_Keyword_Install -{ - meta: - author = "@stvemillertime" - description = "Searching for PE files with PDB path keywords, terms or anomalies." - sample_md5 = "74494aff87db1ef5843cbf8c4d40cab1" - ref_blog = "https://www.fireeye.com/blog/threat-research/2019/08/definitive-dossier-of-devilish-debug-details-part-one-pdb-paths-malware.html" - strings: - $pcre = /RSDS[\x00-\xFF]{20}[a-zA-Z]:\\[\x00-\xFF]{0,200}install[\x00-\xFF]{0,200}\.pdb\x00/ nocase ascii - condition: - (uint16(0) == 0x5A4D) and uint32(uint32(0x3C)) == 0x00004550 and $pcre -} -rule ConventionEngine_Keyword_Steal -{ - meta: - author = "@stvemillertime" - description = "Searching for PE files with PDB path keywords, terms or anomalies." - sample_md5 = "f3f47f3986e9c55d36c49beefa627b54" - ref_blog = "https://www.fireeye.com/blog/threat-research/2019/08/definitive-dossier-of-devilish-debug-details-part-one-pdb-paths-malware.html" - strings: - $pcre = /RSDS[\x00-\xFF]{20}[a-zA-Z]:\\[\x00-\xFF]{0,200}steal[\x00-\xFF]{0,200}\.pdb\x00/ nocase ascii - condition: - (uint16(0) == 0x5A4D) and uint32(uint32(0x3C)) == 0x00004550 and $pcre -} -rule ConventionEngine_Keyword_Launch -{ - meta: - author = "@stvemillertime" - description = "Searching for PE files with PDB path keywords, terms or anomalies." - ref_blog = "https://www.fireeye.com/blog/threat-research/2019/08/definitive-dossier-of-devilish-debug-details-part-one-pdb-paths-malware.html" - strings: - $pcre = /RSDS[\x00-\xFF]{20}[a-zA-Z]:\\[\x00-\xFF]{0,200}launch[\x00-\xFF]{0,200}\.pdb\x00/ nocase ascii - condition: - (uint16(0) == 0x5A4D) and uint32(uint32(0x3C)) == 0x00004550 and $pcre -} -rule ConventionEngine_Keyword_Downloader -{ - meta: - author = "@stvemillertime" - description = "Searching for PE files with PDB path keywords, terms or anomalies." - sample_md5 = "8c843aa6ded2f2cb4a78a8b4534ac063" - ref_blog = "https://www.fireeye.com/blog/threat-research/2019/08/definitive-dossier-of-devilish-debug-details-part-one-pdb-paths-malware.html" - strings: - $pcre = /RSDS[\x00-\xFF]{20}[a-zA-Z]:\\[\x00-\xFF]{0,200}downloader[\x00-\xFF]{0,200}\.pdb\x00/ nocase ascii - condition: - (uint16(0) == 0x5A4D) and uint32(uint32(0x3C)) == 0x00004550 and $pcre -} -rule ConventionEngine_Keyword_Hack -{ - meta: - author = "@stvemillertime" - description = "Searching for PE files with PDB path keywords, terms or anomalies." - sample_md5 = "afe58fee2460947291e93bad9fb095ce" - ref_blog = "https://www.fireeye.com/blog/threat-research/2019/08/definitive-dossier-of-devilish-debug-details-part-one-pdb-paths-malware.html" - strings: - $pcre = /RSDS[\x00-\xFF]{20}[a-zA-Z]:\\[\x00-\xFF]{0,200}hack[\x00-\xFF]{0,200}\.pdb\x00/ nocase ascii - condition: - (uint16(0) == 0x5A4D) and uint32(uint32(0x3C)) == 0x00004550 and $pcre -} -rule ConventionEngine_Keyword_Kill -{ - meta: - author = "@stvemillertime" - description = "Searching for PE files with PDB path keywords, terms or anomalies." - sample_md5 = "6d250a11f68b1fd4ed0505fb2965b6f7" - ref_blog = "https://www.fireeye.com/blog/threat-research/2019/08/definitive-dossier-of-devilish-debug-details-part-one-pdb-paths-malware.html" - strings: - $pcre = /RSDS[\x00-\xFF]{20}[a-zA-Z]:\\[\x00-\xFF]{0,200}kill[\x00-\xFF]{0,200}\.pdb\x00/ nocase ascii - condition: - (uint16(0) == 0x5A4D) and uint32(uint32(0x3C)) == 0x00004550 and $pcre -} -rule ConventionEngine_Keyword_Implant -{ - meta: - author = "@stvemillertime" - description = "Searching for PE files with PDB path keywords, terms or anomalies." - sample_md5 = "40451f20371329b992fb1b85c754d062" - ref_blog = "https://www.fireeye.com/blog/threat-research/2019/08/definitive-dossier-of-devilish-debug-details-part-one-pdb-paths-malware.html" - strings: - $pcre = /RSDS[\x00-\xFF]{20}[a-zA-Z]:\\[\x00-\xFF]{0,200}implant[\x00-\xFF]{0,200}\.pdb\x00/ nocase ascii - condition: - (uint16(0) == 0x5A4D) and uint32(uint32(0x3C)) == 0x00004550 and $pcre and filesize < 3MB -} -rule ConventionEngine_Keyword_RAT -{ - meta: - author = "@stvemillertime" - description = "Searching for PE files with PDB path keywords, terms or anomalies." - sample_md5 = "18244062e6169b79f68d9b413cfd2c04" - ref_blog = "https://www.fireeye.com/blog/threat-research/2019/08/definitive-dossier-of-devilish-debug-details-part-one-pdb-paths-malware.html" - strings: - $pcre = /RSDS[\x00-\xFF]{20}[a-zA-Z]:\\[\x00-\xFF]{0,200}(\\rat|rat\\|\srat|\-rat|rat\.|rat\s)[\x00-\xFF]{0,200}\.pdb\x00/ nocase ascii - $this = /RSDS[\x00-\xFF]{20}[a-zA-Z]:\\[\x00-\xFF]{0,200}administrator[\x00-\xFF]{0,200}\.pdb\x00/ nocase ascii - condition: - (uint16(0) == 0x5A4D) and uint32(uint32(0x3C)) == 0x00004550 and $pcre and not $this -} -rule ConventionEngine_Keyword_Shell -{ - meta: - author = "@stvemillertime" - description = "Searching for PE files with PDB path keywords, terms or anomalies." - sample_md5 = "32a16eff23f6c35e22b0b7d041728f62" - ref_blog = "https://www.fireeye.com/blog/threat-research/2019/08/definitive-dossier-of-devilish-debug-details-part-one-pdb-paths-malware.html" - strings: - $pcre = /RSDS[\x00-\xFF]{20}[a-zA-Z]:\\[\x00-\xFF]{0,200}shell[\x00-\xFF]{0,200}\.pdb\x00/ nocase ascii - $this = /RSDS[\x00-\xFF]{20}[a-zA-Z]:\\[\x00-\xFF]{0,200}(shellcode|powershell)[\x00-\xFF]{0,200}\.pdb\x00/ nocase ascii - condition: - (uint16(0) == 0x5A4D) and uint32(uint32(0x3C)) == 0x00004550 and $pcre and not $this -} -rule ConventionEngine_Keyword_Admin -{ - meta: - author = "@stvemillertime" - description = "Searching for PE files with PDB path keywords, terms or anomalies." - sample_md5 = "67fff57bb44d3458b17f0c7a7a45f405" - ref_blog = "https://www.fireeye.com/blog/threat-research/2019/08/definitive-dossier-of-devilish-debug-details-part-one-pdb-paths-malware.html" - strings: - $pcre = /RSDS[\x00-\xFF]{20}[a-zA-Z]:\\[\x00-\xFF]{0,200}Admin[\x00-\xFF]{0,200}\.pdb\x00/ nocase ascii - $this = /RSDS[\x00-\xFF]{20}[a-zA-Z]:\\[\x00-\xFF]{0,200}administrator[\x00-\xFF]{0,200}\.pdb\x00/ nocase ascii - condition: - (uint16(0) == 0x5A4D) and uint32(uint32(0x3C)) == 0x00004550 and $pcre and not $this -} -rule ConventionEngine_Keyword_Proxy -{ - meta: - author = "@stvemillertime" - description = "Searching for PE files with PDB path keywords, terms or anomalies." - sample_md5 = "7486404888b3223ef171a310426b2387" - ref_blog = "https://www.fireeye.com/blog/threat-research/2019/08/definitive-dossier-of-devilish-debug-details-part-one-pdb-paths-malware.html" - strings: - $pcre = /RSDS[\x00-\xFF]{20}[a-zA-Z]:\\[\x00-\xFF]{0,200}proxy[\x00-\xFF]{0,200}\.pdb\x00/ nocase ascii - condition: - (uint16(0) == 0x5A4D) and uint32(uint32(0x3C)) == 0x00004550 and $pcre -} -rule ConventionEngine_Keyword_Virus -{ - meta: - author = "@stvemillertime" - description = "Searching for PE files with PDB path keywords, terms or anomalies." - sample_md5 = "5a537470e936dbb9611f95fb7f136a6e" - ref_blog = "https://www.fireeye.com/blog/threat-research/2019/08/definitive-dossier-of-devilish-debug-details-part-one-pdb-paths-malware.html" - strings: - $pcre = /RSDS[\x00-\xFF]{20}[a-zA-Z]:\\[\x00-\xFF]{0,200}virus[\x00-\xFF]{0,200}\.pdb\x00/ nocase ascii - condition: - (uint16(0) == 0x5A4D) and uint32(uint32(0x3C)) == 0x00004550 and $pcre -} -rule ConventionEngine_Keyword_Bind -{ - meta: - author = "@stvemillertime" - description = "Searching for PE files with PDB path keywords, terms or anomalies." - sample_md5 = "0a2d51b0e58e41407f1a08744f1443b0" - ref_blog = "https://www.fireeye.com/blog/threat-research/2019/08/definitive-dossier-of-devilish-debug-details-part-one-pdb-paths-malware.html" - strings: - $pcre = /RSDS[\x00-\xFF]{20}[a-zA-Z]:\\[\x00-\xFF]{0,200}bind[\x00-\xFF]{0,200}\.pdb\x00/ nocase ascii - condition: - (uint16(0) == 0x5A4D) and uint32(uint32(0x3C)) == 0x00004550 and $pcre -} -rule ConventionEngine_Keyword_1337 -{ - meta: - author = "@itsreallynick" - description = "Searching for PE files with PDB path keywords, terms or anomalies. -YOUR BOY CARR" - sample_md5 = "e9ecca14f19fe192fc48e714a649cadd" - ref_blog = "https://www.fireeye.com/blog/threat-research/2019/08/definitive-dossier-of-devilish-debug-details-part-one-pdb-paths-malware.html" - strings: - $pcre = /RSDS[\x00-\xFF]{20}[a-zA-Z]?:?\\[\\\s|*\s]?.{0,250}\\[l1]33[7t][\\\s|*\s]?.{0,250}\.pdb\x00/ nocase - condition: - (uint16(0) == 0x5A4D) and uint32(uint32(0x3C)) == 0x00004550 and $pcre -} -rule ConventionEngine_Keyword_Thinstall -{ - meta: - author = "@stvemillertime" - description = "Searching for PE files with PDB path keywords, terms or anomalies." - sample_md5 = "2ef545036c95aab395f3f2a3a0d38a9f" - ref_blog = "https://www.fireeye.com/blog/threat-research/2019/08/definitive-dossier-of-devilish-debug-details-part-one-pdb-paths-malware.html" - strings: - $pcre = /RSDS[\x00-\xFF]{20}[a-zA-Z]:\\[\x00-\xFF]{0,200}thinstall[\x00-\xFF]{0,200}\.pdb\x00/ nocase ascii - condition: - (uint16(0) == 0x5A4D) and uint32(uint32(0x3C)) == 0x00004550 and $pcre -} -rule ConventionEngine_Keyword_Driver -{ - meta: - author = "@stvemillertime" - description = "Searching for PE files with PDB path keywords, terms or anomalies." - sample_md5 = "24a6ec8ebf9c0867ed1c097f4a653b8d" - ref_blog = "https://www.fireeye.com/blog/threat-research/2019/08/definitive-dossier-of-devilish-debug-details-part-one-pdb-paths-malware.html" - strings: - $pcre = /RSDS[\x00-\xFF]{20}[a-zA-Z]:\\[\x00-\xFF]{0,200}driver[\x00-\xFF]{0,200}\.pdb\x00/ nocase ascii - condition: - (uint16(0) == 0x5A4D) and uint32(uint32(0x3C)) == 0x00004550 and $pcre and filesize < 3MB -} -rule ConventionEngine_Keyword_Client -{ - meta: - author = "@stvemillertime" - description = "Searching for PE files with PDB path keywords, terms or anomalies." - sample_md5 = "24a6ec8ebf9c0867ed1c097f4a653b8d" - ref_blog = "https://www.fireeye.com/blog/threat-research/2019/08/definitive-dossier-of-devilish-debug-details-part-one-pdb-paths-malware.html" - strings: - $pcre = /RSDS[\x00-\xFF]{20}[a-zA-Z]:\\[\x00-\xFF]{0,200}client[\x00-\xFF]{0,200}\.pdb\x00/ nocase ascii - condition: - (uint16(0) == 0x5A4D) and uint32(uint32(0x3C)) == 0x00004550 and $pcre and filesize < 3MB -} -rule ConventionEngine_Keyword_Server -{ - meta: - author = "@stvemillertime" - description = "Searching for PE files with PDB path keywords, terms or anomalies." - sample_md5 = "24a6ec8ebf9c0867ed1c097f4a653b8d" - ref_blog = "https://www.fireeye.com/blog/threat-research/2019/08/definitive-dossier-of-devilish-debug-details-part-one-pdb-paths-malware.html" - strings: - $pcre = /RSDS[\x00-\xFF]{20}[a-zA-Z]:\\[\x00-\xFF]{0,200}server[\x00-\xFF]{0,200}\.pdb\x00/ nocase ascii - condition: - (uint16(0) == 0x5A4D) and uint32(uint32(0x3C)) == 0x00004550 and $pcre and filesize < 3MB -} -rule ConventionEngine_Term_GoogleDrive -{ - meta: - author = "@stvemillertime" - description = "Searching for PE files with PDB path keywords, terms or anomalies." - ref_blog = "https://www.fireeye.com/blog/threat-research/2019/08/definitive-dossier-of-devilish-debug-details-part-one-pdb-paths-malware.html" - strings: - $pcre = /RSDS[\x00-\xFF]{20}[a-zA-Z]:\\[\x00-\xFF]{0,200}(Google Drive|Google \xd0\xb4\xd0\xb8\xd1\x81\xd0\xba|Google \xe4\xba\x91\xe7\xab\xaf\xe7\xa1\xac\xe7\x9b\x98)[\x00-\xFF]{0,200}\.pdb\x00/ nocase ascii - condition: - (uint16(0) == 0x5A4D) and uint32(uint32(0x3C)) == 0x00004550 and $pcre -} -rule ConventionEngine_Term_Windows -{ - meta: - author = "@stvemillertime" - description = "Searching for PE files with PDB path keywords, terms or anomalies." - sample_md5 = "25b965b0f56a7dc8a0e2aa7e72778497" - ref_blog = "https://www.fireeye.com/blog/threat-research/2019/08/definitive-dossier-of-devilish-debug-details-part-one-pdb-paths-malware.html" - strings: - $pcre = /RSDS[\x00-\xFF]{20}[a-zA-Z]:\\Windows\\[\x00-\xFF]{0,200}\.pdb\x00/ - condition: - (uint16(0) == 0x5A4D) and uint32(uint32(0x3C)) == 0x00004550 and $pcre -} -rule ConventionEngine_Term_Documents -{ - meta: - author = "@stvemillertime" - description = "Searching for PE files with PDB path keywords, terms or anomalies." - sample_md5 = "e766b979aecfc603b561b19e3880a7bc" - ref_blog = "https://www.fireeye.com/blog/threat-research/2019/08/definitive-dossier-of-devilish-debug-details-part-one-pdb-paths-malware.html" - strings: - $pcre = /RSDS[\x00-\xFF]{20}[a-zA-Z]:\\[\x00-\xFF]{0,200}\\Documents[\x00-\xFF]{0,200}\.pdb\x00/ - $this = /RSDS[\x00-\xFF]{20}[a-zA-Z]:\\[\x00-\xFF]{0,200}\\Documents and Settings[\x00-\xFF]{0,200}\.pdb\x00/ - condition: - (uint16(0) == 0x5A4D) and uint32(uint32(0x3C)) == 0x00004550 and $pcre and not $this -} -rule ConventionEngine_Term_DocumentsAndSettings -{ - meta: - author = "@stvemillertime" - description = "Searching for PE files with PDB path keywords, terms or anomalies." - sample_md5 = "e766b979aecfc603b561b19e3880a7bc" - ref_blog = "https://www.fireeye.com/blog/threat-research/2019/08/definitive-dossier-of-devilish-debug-details-part-one-pdb-paths-malware.html" - strings: - $pcre = /RSDS[\x00-\xFF]{20}[a-zA-Z]:\\[\x00-\xFF]{0,200}\\Documents and Settings[\x00-\xFF]{0,200}\.pdb\x00/ - $this = /RSDS[\x00-\xFF]{20}[a-zA-Z]:\\[\x00-\xFF]{0,200}\\Documents\\[\x00-\xFF]{0,200}\.pdb\x00/ - condition: - (uint16(0) == 0x5A4D) and uint32(uint32(0x3C)) == 0x00004550 and $pcre and not $this -} -rule ConventionEngine_Term_Dropbox -{ - meta: - author = "@stvemillertime" - description = "Searching for PE files with PDB path keywords, terms or anomalies." - sample_md5 = "5d6bfa1a1add10dbd6745ddf915812ed" - ref_blog = "https://www.fireeye.com/blog/threat-research/2019/08/definitive-dossier-of-devilish-debug-details-part-one-pdb-paths-malware.html" - strings: - $pcre = /RSDS[\x00-\xFF]{20}[a-zA-Z]:\\[\x00-\xFF]{0,200}dropbox[\x00-\xFF]{0,200}\.pdb\x00/ nocase ascii - condition: - (uint16(0) == 0x5A4D) and uint32(uint32(0x3C)) == 0x00004550 and $pcre -} -rule ConventionEngine_Term_OneDrive -{ - meta: - author = "@stvemillertime" - description = "Searching for PE files with PDB path keywords, terms or anomalies." - ref_blog = "https://www.fireeye.com/blog/threat-research/2019/08/definitive-dossier-of-devilish-debug-details-part-one-pdb-paths-malware.html" - strings: - $pcre = /RSDS[\x00-\xFF]{20}[a-zA-Z]:\\[\x00-\xFF]{0,200}OneDrive[\x00-\xFF]{0,200}\.pdb\x00/ nocase ascii - condition: - (uint16(0) == 0x5A4D) and uint32(uint32(0x3C)) == 0x00004550 and $pcre -} -rule ConventionEngine_Term_ConsoleApplication -{ - meta: - author = "@stvemillertime" - description = "Searching for PE files with PDB path keywords, terms or anomalies." - sample_md5 = "4840ee7971322e1a6da801643432b25f" - ref_blog = "https://www.fireeye.com/blog/threat-research/2019/08/definitive-dossier-of-devilish-debug-details-part-one-pdb-paths-malware.html" - strings: - $pcre = /RSDS[\x00-\xFF]{20}[a-zA-Z]:\\[\x00-\xFF]{0,200}overflow[\x00-\xFF]{0,200}\.pdb\x00/ nocase ascii - condition: - (uint16(0) == 0x5A4D) and uint32(uint32(0x3C)) == 0x00004550 and $pcre -} -rule ConventionEngine_Term_WindowsApplication -{ - meta: - author = "@stvemillertime" - description = "Searching for PE files with PDB path keywords, terms or anomalies." - sample_md5 = "f097c1b0c8fe178de14717a4fc8f2a91" - ref_blog = "https://www.fireeye.com/blog/threat-research/2019/08/definitive-dossier-of-devilish-debug-details-part-one-pdb-paths-malware.html" - strings: - $pcre = /RSDS[\x00-\xFF]{20}[a-zA-Z]:\\[\x00-\xFF]{0,200}WindowsApplication[\x00-\xFF]{0,200}\.pdb\x00/ nocase ascii - condition: - (uint16(0) == 0x5A4D) and uint32(uint32(0x3C)) == 0x00004550 and $pcre -} -rule ConventionEngine_Term_WindowsFormsApplication -{ - meta: - author = "@stvemillertime" - description = "Searching for PE files with PDB path keywords, terms or anomalies." - sample_md5 = "b51c35d5606c173961b2aa4e6867b40a" - ref_blog = "https://www.fireeye.com/blog/threat-research/2019/08/definitive-dossier-of-devilish-debug-details-part-one-pdb-paths-malware.html" - strings: - $pcre = /RSDS[\x00-\xFF]{20}[a-zA-Z]:\\[\x00-\xFF]{0,200}WindowsFormsApplication[\x00-\xFF]{0,200}\.pdb\x00/ nocase ascii - condition: - (uint16(0) == 0x5A4D) and uint32(uint32(0x3C)) == 0x00004550 and $pcre -} -rule ConventionEngine_Term_NewFolder -{ - meta: - author = "@stvemillertime" - description = "Searching for PE files with PDB path keywords, terms or anomalies." - sample_md5 = "fe23fa6df4d8fb500859f0f76e92552d" - ref_blog = "https://www.fireeye.com/blog/threat-research/2019/08/definitive-dossier-of-devilish-debug-details-part-one-pdb-paths-malware.html" - strings: - $pcre = /RSDS[\x00-\xFF]{20}[a-zA-Z]:\\[\x00-\xFF]{0,200}New Folder[\x00-\xFF]{0,200}\.pdb\x00/ nocase ascii - condition: - (uint16(0) == 0x5A4D) and uint32(uint32(0x3C)) == 0x00004550 and $pcre -} -rule ConventionEngine_Term_Copy -{ - meta: - author = "@stvemillertime" - description = "Searching for PE files with PDB path keywords, terms or anomalies." - sample_md5 = "6156214b767254d5282bc7feef950dca" - ref_blog = "https://www.fireeye.com/blog/threat-research/2019/08/definitive-dossier-of-devilish-debug-details-part-one-pdb-paths-malware.html" - strings: - $pcre = /RSDS[\x00-\xFF]{20}[a-zA-Z]:\\[\x00-\xFF]{0,200}- Copy[\x00-\xFF]{0,200}\.pdb\x00/ nocase ascii - condition: - (uint16(0) == 0x5A4D) and uint32(uint32(0x3C)) == 0x00004550 and $pcre -} -rule ConventionEngine_Term_Desktop -{ - meta: - author = "@stvemillertime" - description = "Searching for PE files with PDB path keywords, terms or anomalies." - sample_md5 = "71cdba3859ca8bd03c1e996a790c04f9" - ref_blog = "https://www.fireeye.com/blog/threat-research/2019/08/definitive-dossier-of-devilish-debug-details-part-one-pdb-paths-malware.html" - strings: - $pcre = /RSDS[\x00-\xFF]{20}[a-zA-Z]:\\[\x00-\xFF]{0,200}Desktop[\x00-\xFF]{0,200}\.pdb\x00/ nocase ascii - condition: - (uint16(0) == 0x5A4D) and uint32(uint32(0x3C)) == 0x00004550 and $pcre -} -rule ConventionEngine_Term_Users -{ - meta: - author = "@stvemillertime" - description = "Searching for PE files with PDB path keywords, terms or anomalies." - sample_md5 = "09e4e6fa85b802c46bc121fcaecc5666" - ref_blog = "https://www.fireeye.com/blog/threat-research/2019/08/definitive-dossier-of-devilish-debug-details-part-one-pdb-paths-malware.html" - strings: - $pcre = /RSDS[\x00-\xFF]{20}[a-zA-Z]:\\[\x00-\xFF]{0,200}Users[\x00-\xFF]{0,200}\.pdb\x00/ nocase ascii - condition: - (uint16(0) == 0x5A4D) and uint32(uint32(0x3C)) == 0x00004550 and $pcre -} -rule ConventionEngine_Term_Users_X -{ - meta: - author = "@stvemillertime" - description = "Searching for PE files with PDB path keywords, terms or anomalies." - sample_md5 = "09e4e6fa85b802c46bc121fcaecc5666" - ref_blog = "https://www.fireeye.com/blog/threat-research/2019/08/definitive-dossier-of-devilish-debug-details-part-one-pdb-paths-malware.html" - strings: - $pcre = /RSDS[\x00-\xFF]{20}\/Users\/[\x00-\xFF]{0,500}\.pdb\x00/ nocase ascii - condition: - (uint16(0) == 0x5A4D) and uint32(uint32(0x3C)) == 0x00004550 and $pcre -} -rule ConventionEngine_Term_VisualStudio -{ - meta: - author = "@stvemillertime" - description = "Searching for PE files with PDB path keywords, terms or anomalies." - ref_blog = "https://www.fireeye.com/blog/threat-research/2019/08/definitive-dossier-of-devilish-debug-details-part-one-pdb-paths-malware.html" - strings: - $pcre = /RSDS[\x00-\xFF]{20}[a-zA-Z]:\\[\x00-\xFF]{0,200}Visual Studio[\x00-\xFF]{0,200}\.pdb\x00/ nocase ascii - condition: - (uint16(0) == 0x5A4D) and uint32(uint32(0x3C)) == 0x00004550 and $pcre -} -rule ConventionEngine_Term_VmwareHost -{ - meta: - author = "@itsreallynick" - description = "Searching for PE files with PDB path keywords, terms, or anomalies. -YOUR BOY CARR" - sample_md5 = "2742750991eb6687440ef53a7a93df94" - ref_blog = "https://www.fireeye.com/blog/threat-research/2019/08/definitive-dossier-of-devilish-debug-details-part-one-pdb-paths-malware.html" - strings: - $pcre = /RSDS[\x00-\xFF]{20}\\\\vmware-host\\[\x00-\xFF]{0,200}\.pdb\x00/ nocase ascii - condition: - (uint16(0) == 0x5A4D) and uint32(uint32(0x3C)) == 0x00004550 and $pcre -} -rule ConventionEngine_Anomaly_Slash -{ - meta: - author = "@stvemillertime" - description = "Searching for PE files with PDB path keywords, terms or anomalies." - sample_md5 = "09e4e6fa85b802c46bc121fcaecc5666" - ref_blog = "https://www.fireeye.com/blog/threat-research/2019/08/definitive-dossier-of-devilish-debug-details-part-one-pdb-paths-malware.html" - strings: - $pcre = /RSDS[\x00-\xFF]{20}\/[\x00-\xFF]{0,500}\.pdb\x00/ nocase ascii - condition: - (uint16(0) == 0x5A4D) and uint32(uint32(0x3C)) == 0x00004550 and $pcre -} -rule ConventionEngine_Anomaly_NonAscii -{ - meta: - author = "@stvemillertime" - description = "Searching for PE files with PDB path keywords, terms or anomalies." - sample_md5 = "07b62497e41898c22e5d5351607aac8e" - ref_blog = "https://www.fireeye.com/blog/threat-research/2019/08/definitive-dossier-of-devilish-debug-details-part-one-pdb-paths-malware.html" - strings: - $pcre = /RSDS[\x00-\xFF]{20}[a-zA-Z]:\\[\x00-\xFF]{0,200}[^\x00-\x7F]{1,}[\x00-\xFF]{0,200}\.pdb\x00/ nocase ascii - condition: - (uint16(0) == 0x5A4D) and uint32(uint32(0x3C)) == 0x00004550 and $pcre and filesize < 1MB -} -rule ConventionEngine_Anomaly_DriveShare -{ - meta: - author = "@stvemillertime" - description = "Searching for PE files with PDB path keywords, terms or anomalies." - sample_md5 = "e7414d82d69b902b5bc1efd0f3e201d7" - ref_blog = "https://www.fireeye.com/blog/threat-research/2019/08/definitive-dossier-of-devilish-debug-details-part-one-pdb-paths-malware.html" - strings: - $pcre = /RSDS[\x00-\xFF]{20}\\.{0,50}\\[a-zA-Z]\$\\[\x00-\xFF]{0,200}\.pdb\x00/ nocase - condition: - (uint16(0) == 0x5A4D) and uint32(uint32(0x3C)) == 0x00004550 and $pcre -} -rule ConventionEngine_Anomaly_MultiPDB_Double -{ - meta: - author = "@stvemillertime" - description = "Searching for PE files with PDB path keywords, terms or anomalies." - sample_md5 = "013f3bde3f1022b6cf3f2e541d19353c" - ref_blog = "https://www.fireeye.com/blog/threat-research/2019/08/definitive-dossier-of-devilish-debug-details-part-one-pdb-paths-malware.html" - strings: - $pcre = /RSDS[\x00-\xFF]{20}[a-zA-Z]:\\[\x00-\xFF]{0,200}\.pdb\x00/ - condition: - (uint16(0) == 0x5A4D) and uint32(uint32(0x3C)) == 0x00004550 and #pcre == 2 -} -rule ConventionEngine_Anomaly_MultiPDB_Triple -{ - meta: - author = "@stvemillertime" - description = "Searching for PE files with PDB path keywords, terms or anomalies." - sample_md5 = "013f3bde3f1022b6cf3f2e541d19353c" - ref_blog = "https://www.fireeye.com/blog/threat-research/2019/08/definitive-dossier-of-devilish-debug-details-part-one-pdb-paths-malware.html" - strings: - $pcre = /RSDS[\x00-\xFF]{20}[a-zA-Z]:\\[\x00-\xFF]{0,200}\.pdb\x00/ - condition: - (uint16(0) == 0x5A4D) and uint32(uint32(0x3C)) == 0x00004550 and #pcre == 3 -} -rule ConventionEngine_Anomaly_MultiPDB_Quadruple -{ - meta: - author = "@stvemillertime" - description = "Searching for PE files with PDB path keywords, terms or anomalies." - sample_md5 = "063915c2ac8dcba0c283407ff91e48e1" - ref_blog = "https://www.fireeye.com/blog/threat-research/2019/08/definitive-dossier-of-devilish-debug-details-part-one-pdb-paths-malware.html" - strings: - $pcre = /RSDS[\x00-\xFF]{20}[a-zA-Z]:\\[\x00-\xFF]{0,200}\.pdb\x00/ - condition: - (uint16(0) == 0x5A4D) and uint32(uint32(0x3C)) == 0x00004550 and #pcre == 4 -} -rule ConventionEngine_Anomaly_MultiPDB_Quintuple_Plus -{ - meta: - author = "@stvemillertime" - description = "Searching for PE files with PDB path keywords, terms or anomalies." - sample_md5 = "08faf27c5738b34186613b4c98905690" - ref_blog = "https://www.fireeye.com/blog/threat-research/2019/08/definitive-dossier-of-devilish-debug-details-part-one-pdb-paths-malware.html" - strings: - $pcre = /RSDS[\x00-\xFF]{20}[a-zA-Z]:\\[\x00-\xFF]{0,200}\.pdb\x00/ - condition: - (uint16(0) == 0x5A4D) and uint32(uint32(0x3C)) == 0x00004550 and #pcre >= 5 -} -rule ConventionEngine_Anomaly_Short_SingleChar -{ - meta: - author = "@stvemillertime" - description = "Searching for PE files with PDB path keywords, terms or anomalies." - sample_md5 = "26f7394147f00ef7c3146ddcafb8f161" - ref_blog = "https://www.fireeye.com/blog/threat-research/2019/08/definitive-dossier-of-devilish-debug-details-part-one-pdb-paths-malware.html" - strings: - $pcre = /RSDS[\x00-\xFF]{20}[\x00-\xFF]{1}\.pdb\x00/ - condition: - (uint16(0) == 0x5A4D) and uint32(uint32(0x3C)) == 0x00004550 and $pcre -} -rule ConventionEngine_Anomaly_Short_DoubleChar -{ - meta: - author = "@stvemillertime" - description = "Searching for PE files with PDB path keywords, terms or anomalies." - ref_blog = "https://www.fireeye.com/blog/threat-research/2019/08/definitive-dossier-of-devilish-debug-details-part-one-pdb-paths-malware.html" - strings: - $pcre = /RSDS[\x00-\xFF]{20}[\x00-\xFF]{2}\.pdb\x00/ - condition: - (uint16(0) == 0x5A4D) and uint32(uint32(0x3C)) == 0x00004550 and $pcre -} -rule ConventionEngine_Anomaly_Short_TripleChar -{ - meta: - author = "@stvemillertime" - description = "Searching for PE files with PDB path keywords, terms or anomalies." - ref_blog = "https://www.fireeye.com/blog/threat-research/2019/08/definitive-dossier-of-devilish-debug-details-part-one-pdb-paths-malware.html" - strings: - $pcre = /RSDS[\x00-\xFF]{20}[\x00-\xFF]{3}\.pdb\x00/ - condition: - (uint16(0) == 0x5A4D) and uint32(uint32(0x3C)) == 0x00004550 and $pcre -} -rule ConventionEngine_Anomaly_NulledOut -{ - meta: - author = "@stvemillertime" - description = "Searching for PE files with PDB path keywords, terms or anomalies." - sample_md5 = "94218fba95e3f03796dd005a2851b5af" - ref_blog = "https://www.fireeye.com/blog/threat-research/2019/08/definitive-dossier-of-devilish-debug-details-part-one-pdb-paths-malware.html" - strings: - $pcre = /RSDS[\x01-\xFF]{16}[\x01-\xFF]{1}\x00\x00\x00[\x00]{10,500}/ - condition: - (uint16(0) == 0x5A4D) and uint32(uint32(0x3C)) == 0x00004550 and $pcre -} -rule ConventionEngine_Anomaly_NulledOut_DoublePlus -{ - meta: - author = "@stvemillertime" - description = "Searching for PE files with PDB path keywords, terms or anomalies." - sample_md5 = "bf0fea133818387cca7eaef5a52c0aed" - ref_blog = "https://www.fireeye.com/blog/threat-research/2019/08/definitive-dossier-of-devilish-debug-details-part-one-pdb-paths-malware.html" - strings: - $pcre = /RSDS[\x01-\xFF]{16}[\x01-\xFF]{1}\x00\x00\x00[\x00]{10,500}/ - condition: - (uint16(0) == 0x5A4D) and uint32(uint32(0x3C)) == 0x00004550 and #pcre >= 2 -} -rule ConventionEngine_Anomaly_OutsideOfDebug -{ - meta: - author = "@stvemillertime" - description = "Searching for PE files with PDB path keywords, terms or anomalies." - sample_md5 = "bf0fea133818387cca7eaef5a52c0aed" - ref_blog = "https://www.fireeye.com/blog/threat-research/2019/08/definitive-dossier-of-devilish-debug-details-part-one-pdb-paths-malware.html" - strings: - $pcre = /RSDS[\x00-\xFF]{20}[a-zA-Z]:\\[\x00-\xFF]{0,500}\.pdb\x00/ - condition: - (uint16(0) == 0x5A4D) and uint32(uint32(0x3C)) == 0x00004550 and $pcre and pe.data_directories[pe.IMAGE_DIRECTORY_ENTRY_DEBUG].virtual_address == 0 -} -rule ConventionEngine_Term_Users_User -{ - meta: - author = "@stvemillertime" - description = "Searching for PE files with PDB path keywords, terms or anomalies." - sample_md5 = "b7c3039203278bc289fd3756571bd468" - ref_blog = "https://www.fireeye.com/blog/threat-research/2019/08/definitive-dossier-of-devilish-debug-details-part-one-pdb-paths-malware.html" - strings: - $pcre = /RSDS[\x00-\xFF]{20}[a-zA-Z]:\\[\x00-\xFF]{0,200}Users\\user[\x00-\xFF]{0,200}\.pdb\x00/ nocase ascii - condition: - (uint16(0) == 0x5A4D) and uint32(uint32(0x3C)) == 0x00004550 and $pcre -} +// Rule appendix for the Definitive Dossier of Devilish Debug Details +// Blog link: https://www.fireeye.com/blog/threat-research/2019/08/definitive-dossier-of-devilish-debug-details-part-one-pdb-paths-malware.html +// For more info, bother @stvemillertime or the #AdvancedPractices team on Twitter +// Updated on 2019-08-30, initial performance improvements by Florian Roth (@cyb3rops) +import "pe" +// used only in ConventionEngine_Anomaly_OutsideOfDebug +rule ConventionEngine_Keyword_Obfuscat +{ + meta: + author = "@stvemillertime" + description = "Searching for PE files with PDB path keywords, terms or anomalies." + sample_md5 = "6724cef5a9a670d68e8ec00b6614997c" + ref_blog = "https://www.fireeye.com/blog/threat-research/2019/08/definitive-dossier-of-devilish-debug-details-part-one-pdb-paths-malware.html" + strings: + $pcre = /RSDS[\x00-\xFF]{20}[a-zA-Z]:\\[\x00-\xFF]{0,200}obfuscat[\x00-\xFF]{0,200}\.pdb\x00/ nocase ascii + condition: + (uint16(0) == 0x5A4D) and uint32(uint32(0x3C)) == 0x00004550 and $pcre +} +rule ConventionEngine_Keyword_Hook +{ + meta: + author = "@stvemillertime" + description = "Searching for PE files with PDB path keywords, terms or anomalies." + sample_md5 = "92156ddfa4c1ec330ffd24ccef127a7a" + ref_blog = "https://www.fireeye.com/blog/threat-research/2019/08/definitive-dossier-of-devilish-debug-details-part-one-pdb-paths-malware.html" + strings: + $pcre = /RSDS[\x00-\xFF]{20}[a-zA-Z]:\\[\x00-\xFF]{0,200}hook[\x00-\xFF]{0,200}\.pdb\x00/ nocase ascii + condition: + (uint16(0) == 0x5A4D) and uint32(uint32(0x3C)) == 0x00004550 and $pcre +} +rule ConventionEngine_Keyword_Evil +{ + meta: + author = "@stvemillertime" + description = "Searching for PE files with PDB path keywords, terms or anomalies." + sample_md5 = "9359b24a96df49972eda1750a35802de" + ref_blog = "https://www.fireeye.com/blog/threat-research/2019/08/definitive-dossier-of-devilish-debug-details-part-one-pdb-paths-malware.html" + strings: + $pcre = /RSDS[\x00-\xFF]{20}[a-zA-Z]:\\[\x00-\xFF]{0,200}evil[\x00-\xFF]{0,200}\.pdb\x00/ nocase ascii + condition: + (uint16(0) == 0x5A4D) and uint32(uint32(0x3C)) == 0x00004550 and $pcre +} +rule ConventionEngine_Keyword_Inject +{ + meta: + author = "@stvemillertime" + description = "Searching for PE files with PDB path keywords, terms or anomalies." + sample_md5 = "081686496db01e44871f4e4a09e35fed" + ref_blog = "https://www.fireeye.com/blog/threat-research/2019/08/definitive-dossier-of-devilish-debug-details-part-one-pdb-paths-malware.html" + strings: + $pcre = /RSDS[\x00-\xFF]{20}[a-zA-Z]:\\[\x00-\xFF]{0,200}inject[\x00-\xFF]{0,200}\.pdb\x00/ nocase ascii + condition: + (uint16(0) == 0x5A4D) and uint32(uint32(0x3C)) == 0x00004550 and $pcre +} +rule ConventionEngine_Keyword_Trojan +{ + meta: + author = "@stvemillertime" + description = "Searching for PE files with PDB path keywords, terms or anomalies." + sample_md5 = "060b2135d69fb33e8fc1c4d2bf7e2899" + ref_blog = "https://www.fireeye.com/blog/threat-research/2019/08/definitive-dossier-of-devilish-debug-details-part-one-pdb-paths-malware.html" + strings: + $pcre = /RSDS[\x00-\xFF]{20}[a-zA-Z]:\\[\x00-\xFF]{0,200}trojan[\x00-\xFF]{0,200}\.pdb\x00/ nocase ascii + condition: + (uint16(0) == 0x5A4D) and uint32(uint32(0x3C)) == 0x00004550 and $pcre +} +rule ConventionEngine_Keyword_Hide +{ + meta: + author = "@stvemillertime" + description = "Searching for PE files with PDB path keywords, terms or anomalies." + sample_md5 = "dd8af240a7a4a81b5f80250b44a778c4" + ref_blog = "https://www.fireeye.com/blog/threat-research/2019/08/definitive-dossier-of-devilish-debug-details-part-one-pdb-paths-malware.html" + strings: + $pcre = /RSDS[\x00-\xFF]{20}[a-zA-Z]:\\[\x00-\xFF]{0,200}hide[\x00-\xFF]{0,200}\.pdb\x00/ nocase ascii + condition: + (uint16(0) == 0x5A4D) and uint32(uint32(0x3C)) == 0x00004550 and $pcre +} +rule ConventionEngine_Keyword_Anti +{ + meta: + author = "@stvemillertime" + description = "Searching for PE files with PDB path keywords, terms or anomalies." + sample_md5 = "d350ae5dc15bcc18fde382b84f4bb3d0" + ref_blog = "https://www.fireeye.com/blog/threat-research/2019/08/definitive-dossier-of-devilish-debug-details-part-one-pdb-paths-malware.html" + strings: + $pcre = /RSDS[\x00-\xFF]{20}[a-zA-Z]:\\[\x00-\xFF]{0,200}anti[\x00-\xFF]{0,200}\.pdb\x00/ nocase ascii + condition: + (uint16(0) == 0x5A4D) and uint32(uint32(0x3C)) == 0x00004550 and $pcre +} +rule ConventionEngine_Keyword_Payload +{ + meta: + author = "@stvemillertime" + description = "Searching for PE files with PDB path keywords, terms or anomalies." + sample_md5 = "10c534cacf65b604c1c2a30341bd2394" + ref_blog = "https://www.fireeye.com/blog/threat-research/2019/08/definitive-dossier-of-devilish-debug-details-part-one-pdb-paths-malware.html" + strings: + $pcre = /RSDS[\x00-\xFF]{20}[a-zA-Z]:\\[\x00-\xFF]{0,200}payload[\x00-\xFF]{0,200}\.pdb\x00/ nocase ascii + condition: + (uint16(0) == 0x5A4D) and uint32(uint32(0x3C)) == 0x00004550 and $pcre +} +rule ConventionEngine_Keyword_Keylog +{ + meta: + author = "@stvemillertime" + description = "Searching for PE files with PDB path keywords, terms or anomalies." + sample_md5 = "1d7fd704fe4e41feff9e3a005ed868d6" + ref_blog = "https://www.fireeye.com/blog/threat-research/2019/08/definitive-dossier-of-devilish-debug-details-part-one-pdb-paths-malware.html" + strings: + $pcre = /RSDS[\x00-\xFF]{20}[a-zA-Z]:\\[\x00-\xFF]{0,200}keylog[\x00-\xFF]{0,200}\.pdb\x00/ nocase ascii + condition: + (uint16(0) == 0x5A4D) and uint32(uint32(0x3C)) == 0x00004550 and $pcre +} +rule ConventionEngine_Keyword_Bypass +{ + meta: + author = "@stvemillertime" + description = "Searching for PE files with PDB path keywords, terms or anomalies." + sample_md5 = "00b8356235e510be95e367a25418b5cc" + ref_blog = "https://www.fireeye.com/blog/threat-research/2019/08/definitive-dossier-of-devilish-debug-details-part-one-pdb-paths-malware.html" + strings: + $pcre = /RSDS[\x00-\xFF]{20}[a-zA-Z]:\\[\x00-\xFF]{0,200}bypass[\x00-\xFF]{0,200}\.pdb\x00/ nocase ascii + condition: + (uint16(0) == 0x5A4D) and uint32(uint32(0x3C)) == 0x00004550 and $pcre +} +rule ConventionEngine_Keyword_Beacon +{ + meta: + author = "@stvemillertime" + description = "Searching for PE files with PDB path keywords, terms or anomalies." + sample_md5 = "798afd5f648774c3133ea5e087efc2c1" + ref_blog = "https://www.fireeye.com/blog/threat-research/2019/08/definitive-dossier-of-devilish-debug-details-part-one-pdb-paths-malware.html" + strings: + $pcre = /RSDS[\x00-\xFF]{20}[a-zA-Z]:\\[\x00-\xFF]{0,200}beacon[\x00-\xFF]{0,200}\.pdb\x00/ nocase ascii + condition: + (uint16(0) == 0x5A4D) and uint32(uint32(0x3C)) == 0x00004550 and $pcre +} +rule ConventionEngine_Keyword_UAC +{ + meta: + author = "@stvemillertime" + description = "Searching for PE files with PDB path keywords, terms or anomalies." + sample_md5 = "2e62974fbce2fc1bbde763b986ad7b77" + ref_blog = "https://www.fireeye.com/blog/threat-research/2019/08/definitive-dossier-of-devilish-debug-details-part-one-pdb-paths-malware.html" + strings: + $pcre = /RSDS[\x00-\xFF]{20}[a-zA-Z]:\\[\x00-\xFF]{0,200}uac[\x00-\xFF]{0,200}\.pdb\x00/ nocase ascii + condition: + (uint16(0) == 0x5A4D) and uint32(uint32(0x3C)) == 0x00004550 and $pcre +} +rule ConventionEngine_Keyword_Svchost +{ + meta: + author = "@stvemillertime" + description = "Searching for PE files with PDB path keywords, terms or anomalies." + sample_md5 = "c1206ba56f7f0c2698adcb3280f345be" + ref_blog = "https://www.fireeye.com/blog/threat-research/2019/08/definitive-dossier-of-devilish-debug-details-part-one-pdb-paths-malware.html" + strings: + $pcre = /RSDS[\x00-\xFF]{20}[a-zA-Z]:\\[\x00-\xFF]{0,200}svchost[\x00-\xFF]{0,200}\.pdb\x00/ nocase ascii + condition: + (uint16(0) == 0x5A4D) and uint32(uint32(0x3C)) == 0x00004550 and $pcre +} +rule ConventionEngine_Keyword_Svhost +{ + meta: + author = "@stvemillertime" + description = "Searching for PE files with PDB path keywords, terms or anomalies." + sample_md5 = "8edf49fd8421edc7f58997bb16961cf4" + ref_blog = "https://www.fireeye.com/blog/threat-research/2019/08/definitive-dossier-of-devilish-debug-details-part-one-pdb-paths-malware.html" + strings: + $pcre = /RSDS[\x00-\xFF]{20}[a-zA-Z]:\\[\x00-\xFF]{0,200}svhost[\x00-\xFF]{0,200}\.pdb\x00/ nocase ascii + condition: + (uint16(0) == 0x5A4D) and uint32(uint32(0x3C)) == 0x00004550 and $pcre +} +rule ConventionEngine_Keyword_Dropper +{ + meta: + author = "@stvemillertime" + description = "Searching for PE files with PDB path keywords, terms or anomalies." + sample_md5 = "4847f692942358aff51b72ffcb3e40ac" + ref_blog = "https://www.fireeye.com/blog/threat-research/2019/08/definitive-dossier-of-devilish-debug-details-part-one-pdb-paths-malware.html" + strings: + $pcre = /RSDS[\x00-\xFF]{20}[a-zA-Z]:\\[\x00-\xFF]{0,200}dropper[\x00-\xFF]{0,200}\.pdb\x00/ nocase ascii + condition: + (uint16(0) == 0x5A4D) and uint32(uint32(0x3C)) == 0x00004550 and $pcre +} +rule ConventionEngine_Keyword_Attack +{ + meta: + author = "@stvemillertime" + description = "Searching for PE files with PDB path keywords, terms or anomalies." + sample_md5 = "d6b1989d9c271b8575326e4fca159ae8" + ref_blog = "https://www.fireeye.com/blog/threat-research/2019/08/definitive-dossier-of-devilish-debug-details-part-one-pdb-paths-malware.html" + strings: + $pcre = /RSDS[\x00-\xFF]{20}[a-zA-Z]:\\[\x00-\xFF]{0,200}attack[\x00-\xFF]{0,200}\.pdb\x00/ nocase ascii + condition: + (uint16(0) == 0x5A4D) and uint32(uint32(0x3C)) == 0x00004550 and $pcre +} +rule ConventionEngine_Keyword_Encrypt +{ + meta: + author = "@stvemillertime" + description = "Searching for PE files with PDB path keywords, terms or anomalies." + sample_md5 = "65746ec8d8488066a129821c27fcbfb3" + ref_blog = "https://www.fireeye.com/blog/threat-research/2019/08/definitive-dossier-of-devilish-debug-details-part-one-pdb-paths-malware.html" + strings: + $pcre = /RSDS[\x00-\xFF]{20}[a-zA-Z]:\\[\x00-\xFF]{0,200}encrypt[\x00-\xFF]{0,200}\.pdb\x00/ nocase ascii + condition: + (uint16(0) == 0x5A4D) and uint32(uint32(0x3C)) == 0x00004550 and $pcre +} +rule ConventionEngine_Keyword_Exploit +{ + meta: + author = "@stvemillertime" + description = "Searching for PE files with PDB path keywords, terms or anomalies." + sample_md5 = "4215d029dd26c29ce3e0cab530979b19" + ref_blog = "https://www.fireeye.com/blog/threat-research/2019/08/definitive-dossier-of-devilish-debug-details-part-one-pdb-paths-malware.html" + strings: + $pcre = /RSDS[\x00-\xFF]{20}[a-zA-Z]:\\[\x00-\xFF]{0,200}exploit[\x00-\xFF]{0,200}\.pdb\x00/ nocase ascii + condition: + (uint16(0) == 0x5A4D) and uint32(uint32(0x3C)) == 0x00004550 and $pcre +} +rule ConventionEngine_Keyword_Ransom +{ + meta: + author = "@stvemillertime" + description = "Searching for PE files with PDB path keywords, terms or anomalies." + sample_md5 = "363bfef1781c107a08f46267f7676579" + ref_blog = "https://www.fireeye.com/blog/threat-research/2019/08/definitive-dossier-of-devilish-debug-details-part-one-pdb-paths-malware.html" + strings: + $pcre = /RSDS[\x00-\xFF]{20}[a-zA-Z]:\\[\x00-\xFF]{0,200}ransom[\x00-\xFF]{0,200}\.pdb\x00/ nocase ascii + condition: + (uint16(0) == 0x5A4D) and uint32(uint32(0x3C)) == 0x00004550 and $pcre +} +rule ConventionEngine_Keyword_Spy +{ + meta: + author = "@stvemillertime" + description = "Searching for PE files with PDB path keywords, terms or anomalies." + sample_md5 = "15db41840f77723aa7e43460d9d3a5cc" + ref_blog = "https://www.fireeye.com/blog/threat-research/2019/08/definitive-dossier-of-devilish-debug-details-part-one-pdb-paths-malware.html" + strings: + $pcre = /RSDS[\x00-\xFF]{20}[a-zA-Z]:\\[\x00-\xFF]{0,200}spy[\x00-\xFF]{0,200}\.pdb\x00/ nocase ascii + condition: + (uint16(0) == 0x5A4D) and uint32(uint32(0x3C)) == 0x00004550 and $pcre +} +rule ConventionEngine_Keyword_Horse +{ + meta: + author = "@stvemillertime" + description = "Searching for PE files with PDB path keywords, terms or anomalies." + sample_md5 = "1aa4a05fa321676b9934cd3aa54a5f95" + ref_blog = "https://www.fireeye.com/blog/threat-research/2019/08/definitive-dossier-of-devilish-debug-details-part-one-pdb-paths-malware.html" + strings: + $pcre = /RSDS[\x00-\xFF]{20}[a-zA-Z]:\\[\x00-\xFF]{0,200}horse[\x00-\xFF]{0,200}\.pdb\x00/ nocase ascii + condition: + (uint16(0) == 0x5A4D) and uint32(uint32(0x3C)) == 0x00004550 and $pcre +} +rule ConventionEngine_Keyword_CVE +{ + meta: + author = "@stvemillertime" + description = "Searching for PE files with PDB path keywords, terms or anomalies." + sample_md5 = "89dd326a64fdd77b467d2db1cc15e8ef" + ref_blog = "https://www.fireeye.com/blog/threat-research/2019/08/definitive-dossier-of-devilish-debug-details-part-one-pdb-paths-malware.html" + strings: + $pcre = /RSDS[\x00-\xFF]{20}[a-zA-Z]:\\[\x00-\xFF]{0,200}cve[\x00-\xFF]{0,200}\.pdb\x00/ nocase ascii + condition: + (uint16(0) == 0x5A4D) and uint32(uint32(0x3C)) == 0x00004550 and $pcre +} +rule ConventionEngine_Keyword_shellcode +{ + meta: + author = "@stvemillertime" + description = "Searching for PE files with PDB path keywords, terms or anomalies." + sample_md5 = "2cd7bc18377abb2464f55453e5bfab20" + ref_blog = "https://www.fireeye.com/blog/threat-research/2019/08/definitive-dossier-of-devilish-debug-details-part-one-pdb-paths-malware.html" + strings: + $pcre = /RSDS[\x00-\xFF]{20}[a-zA-Z]:\\[\x00-\xFF]{0,200}shellcode[\x00-\xFF]{0,200}\.pdb\x00/ nocase ascii + condition: + (uint16(0) == 0x5A4D) and uint32(uint32(0x3C)) == 0x00004550 and $pcre +} +rule ConventionEngine_Keyword_Fake +{ + meta: + author = "@stvemillertime" + description = "Searching for PE files with PDB path keywords, terms or anomalies." + sample_md5 = "124c475d67aa8391f5220efcc64ca5b3" + ref_blog = "https://www.fireeye.com/blog/threat-research/2019/08/definitive-dossier-of-devilish-debug-details-part-one-pdb-paths-malware.html" + strings: + $pcre = /RSDS[\x00-\xFF]{20}[a-zA-Z]:\\[\x00-\xFF]{0,200}fake[\x00-\xFF]{0,200}\.pdb\x00/ nocase ascii + condition: + (uint16(0) == 0x5A4D) and uint32(uint32(0x3C)) == 0x00004550 and $pcre +} +rule ConventionEngine_Keyword_Backdoor +{ + meta: + author = "@stvemillertime" + description = "Searching for PE files with PDB path keywords, terms or anomalies." + sample_md5 = "0017c2bfa513960f9ea4fee46382959b" + ref_blog = "https://www.fireeye.com/blog/threat-research/2019/08/definitive-dossier-of-devilish-debug-details-part-one-pdb-paths-malware.html" + strings: + $pcre = /RSDS[\x00-\xFF]{20}[a-zA-Z]:\\[\x00-\xFF]{0,200}backdoor[\x00-\xFF]{0,200}\.pdb\x00/ nocase ascii + condition: + (uint16(0) == 0x5A4D) and uint32(uint32(0x3C)) == 0x00004550 and $pcre +} +rule ConventionEngine_Keyword_BDoor +{ + meta: + author = "@stvemillertime" + description = "Searching for PE files with PDB path keywords, terms or anomalies." + sample_md5 = "ba08b593250c3ca5c13f56e2ca97d85e" + ref_blog = "https://www.fireeye.com/blog/threat-research/2019/08/definitive-dossier-of-devilish-debug-details-part-one-pdb-paths-malware.html" + strings: + $pcre = /RSDS[\x00-\xFF]{20}[a-zA-Z]:\\[\x00-\xFF]{0,200}(bkdoor|bckdoor|backdr)[\x00-\xFF]{0,200}\.pdb\x00/ nocase ascii + condition: + (uint16(0) == 0x5A4D) and uint32(uint32(0x3C)) == 0x00004550 and $pcre +} +rule ConventionEngine_Keyword_Zombie +{ + meta: + author = "@stvemillertime" + description = "Searching for PE files with PDB path keywords, terms or anomalies." + sample_md5 = "05ce6c5b7e14c34d4e6189dc19675c98" + ref_blog = "https://www.fireeye.com/blog/threat-research/2019/08/definitive-dossier-of-devilish-debug-details-part-one-pdb-paths-malware.html" + strings: + $pcre = /RSDS[\x00-\xFF]{20}[a-zA-Z]:\\[\x00-\xFF]{0,200}zombie[\x00-\xFF]{0,200}\.pdb\x00/ nocase ascii + condition: + (uint16(0) == 0x5A4D) and uint32(uint32(0x3C)) == 0x00004550 and $pcre +} +rule ConventionEngine_Keyword_Rootkit +{ + meta: + author = "@stvemillertime" + description = "Searching for PE files with PDB path keywords, terms or anomalies." + sample_md5 = "8d4c375e452c688b413882365437435b" + ref_blog = "https://www.fireeye.com/blog/threat-research/2019/08/definitive-dossier-of-devilish-debug-details-part-one-pdb-paths-malware.html" + strings: + $pcre = /RSDS[\x00-\xFF]{20}[a-zA-Z]:\\[\x00-\xFF]{0,200}rootkit[\x00-\xFF]{0,200}\.pdb\x00/ nocase ascii + condition: + (uint16(0) == 0x5A4D) and uint32(uint32(0x3C)) == 0x00004550 and $pcre +} +rule ConventionEngine_Keyword_Fuck +{ + meta: + author = "@stvemillertime" + description = "Searching for PE files with PDB path keywords, terms or anomalies." + sample_md5 = "bce1069dd099f15170c5fd05bae921b5" + ref_blog = "https://www.fireeye.com/blog/threat-research/2019/08/definitive-dossier-of-devilish-debug-details-part-one-pdb-paths-malware.html" + strings: + $pcre = /RSDS[\x00-\xFF]{20}[a-zA-Z]:\\[\x00-\xFF]{0,200}fuck[\x00-\xFF]{0,200}\.pdb\x00/ nocase ascii + condition: + (uint16(0) == 0x5A4D) and uint32(uint32(0x3C)) == 0x00004550 and $pcre +} +rule ConventionEngine_Keyword_LoadDLL +{ + meta: + author = "@stvemillertime" + description = "Searching for PE files with PDB path keywords, terms or anomalies." + sample_md5 = "e03f94cf5e3b1df208967a87df13ccb5" + ref_blog = "https://www.fireeye.com/blog/threat-research/2019/08/definitive-dossier-of-devilish-debug-details-part-one-pdb-paths-malware.html" + strings: + $pcre = /RSDS[\x00-\xFF]{20}[a-zA-Z]:\\[\x00-\xFF]{0,200}loaddll[\x00-\xFF]{0,200}\.pdb\x00/ nocase ascii + condition: + (uint16(0) == 0x5A4D) and uint32(uint32(0x3C)) == 0x00004550 and $pcre +} +rule ConventionEngine_Keyword_Reflect +{ + meta: + author = "@stvemillertime" + description = "Searching for PE files with PDB path keywords, terms or anomalies." + sample_md5 = "d4990a8d2ff6f2433acdad04521f85c6" + ref_blog = "https://www.fireeye.com/blog/threat-research/2019/08/definitive-dossier-of-devilish-debug-details-part-one-pdb-paths-malware.html" + strings: + $pcre = /RSDS[\x00-\xFF]{20}[a-zA-Z]:\\[\x00-\xFF]{0,200}reflect[\x00-\xFF]{0,200}\.pdb\x00/ nocase ascii + condition: + (uint16(0) == 0x5A4D) and uint32(uint32(0x3C)) == 0x00004550 and $pcre +} +rule ConventionEngine_Keyword_Sleep +{ + meta: + author = "@stvemillertime" + description = "Searching for PE files with PDB path keywords, terms or anomalies." + sample_md5 = "0ce134d66531d2070b2c7db1ffb0dc6f" + ref_blog = "https://www.fireeye.com/blog/threat-research/2019/08/definitive-dossier-of-devilish-debug-details-part-one-pdb-paths-malware.html" + strings: + $pcre = /RSDS[\x00-\xFF]{20}[a-zA-Z]:\\[\x00-\xFF]{0,200}sleep[\x00-\xFF]{0,200}\.pdb\x00/ nocase ascii + condition: + (uint16(0) == 0x5A4D) and uint32(uint32(0x3C)) == 0x00004550 and $pcre +} +rule ConventionEngine_Keyword_Sploit +{ + meta: + author = "@stvemillertime" + description = "Searching for PE files with PDB path keywords, terms or anomalies." + sample_md5 = "0637c45bdefaa93d26124c1f3899443a" + ref_blog = "https://www.fireeye.com/blog/threat-research/2019/08/definitive-dossier-of-devilish-debug-details-part-one-pdb-paths-malware.html" + strings: + $pcre = /RSDS[\x00-\xFF]{20}[a-zA-Z]:\\[\x00-\xFF]{0,200}sploit[\x00-\xFF]{0,200}\.pdb\x00/ nocase ascii + condition: + (uint16(0) == 0x5A4D) and uint32(uint32(0x3C)) == 0x00004550 and $pcre +} +rule ConventionEngine_Keyword_Reverse +{ + meta: + author = "@stvemillertime" + description = "Searching for PE files with PDB path keywords, terms or anomalies." + sample_md5 = "fccb98a9a510cdcf7c730eba548729de" + ref_blog = "https://www.fireeye.com/blog/threat-research/2019/08/definitive-dossier-of-devilish-debug-details-part-one-pdb-paths-malware.html" + strings: + $pcre = /RSDS[\x00-\xFF]{20}[a-zA-Z]:\\[\x00-\xFF]{0,200}reverse[\x00-\xFF]{0,200}\.pdb\x00/ nocase ascii + condition: + (uint16(0) == 0x5A4D) and uint32(uint32(0x3C)) == 0x00004550 and $pcre +} +rule ConventionEngine_Keyword_Socket +{ + meta: + author = "@stvemillertime" + description = "Searching for PE files with PDB path keywords, terms or anomalies." + sample_md5 = "9c836dcd5251c4c9272b408b486e65db" + ref_blog = "https://www.fireeye.com/blog/threat-research/2019/08/definitive-dossier-of-devilish-debug-details-part-one-pdb-paths-malware.html" + strings: + $pcre = /RSDS[\x00-\xFF]{20}[a-zA-Z]:\\[\x00-\xFF]{0,200}socket[\x00-\xFF]{0,200}\.pdb\x00/ nocase ascii + condition: + (uint16(0) == 0x5A4D) and uint32(uint32(0x3C)) == 0x00004550 and $pcre +} +rule ConventionEngine_Keyword_PowerShell +{ + meta: + author = "@stvemillertime" + description = "Searching for PE files with PDB path keywords, terms or anomalies." + sample_md5 = "33700535591774417e3282f7b40ae8ad" + ref_blog = "https://www.fireeye.com/blog/threat-research/2019/08/definitive-dossier-of-devilish-debug-details-part-one-pdb-paths-malware.html" + strings: + $pcre = /RSDS[\x00-\xFF]{20}[a-zA-Z]:\\[\x00-\xFF]{0,200}PowerShell[\x00-\xFF]{0,200}\.pdb\x00/ nocase ascii + condition: + (uint16(0) == 0x5A4D) and uint32(uint32(0x3C)) == 0x00004550 and $pcre +} +rule ConventionEngine_Keyword_Infect +{ + meta: + author = "@stvemillertime" + description = "Searching for PE files with PDB path keywords, terms or anomalies." + sample_md5 = "fdfea54231be21760b722d5cef32da2a" + ref_blog = "https://www.fireeye.com/blog/threat-research/2019/08/definitive-dossier-of-devilish-debug-details-part-one-pdb-paths-malware.html" + strings: + $pcre = /RSDS[\x00-\xFF]{20}[a-zA-Z]:\\[\x00-\xFF]{0,200}infect[\x00-\xFF]{0,200}\.pdb\x00/ nocase ascii + condition: + (uint16(0) == 0x5A4D) and uint32(uint32(0x3C)) == 0x00004550 and $pcre +} +rule ConventionEngine_Keyword_Worm +{ + meta: + author = "@stvemillertime" + description = "Searching for PE files with PDB path keywords, terms or anomalies." + sample_md5 = "fdfea54231be21760b722d5cef32da2a" + ref_blog = "https://www.fireeye.com/blog/threat-research/2019/08/definitive-dossier-of-devilish-debug-details-part-one-pdb-paths-malware.html" + strings: + $pcre = /RSDS[\x00-\xFF]{20}[a-zA-Z]:\\[\x00-\xFF]{0,200}worm[\x00-\xFF]{0,200}\.pdb\x00/ nocase ascii + condition: + (uint16(0) == 0x5A4D) and uint32(uint32(0x3C)) == 0x00004550 and $pcre +} +rule ConventionEngine_Keyword_Katz +{ + meta: + author = "@stvemillertime" + description = "Searching for PE files with PDB path keywords, terms or anomalies." + sample_md5 = "0512c5a8807e4fdeb662e61d81cd1645" + ref_blog = "https://www.fireeye.com/blog/threat-research/2019/08/definitive-dossier-of-devilish-debug-details-part-one-pdb-paths-malware.html" + strings: + $pcre = /RSDS[\x00-\xFF]{20}[a-zA-Z]:\\[\x00-\xFF]{0,200}katz[\x00-\xFF]{0,200}\.pdb\x00/ nocase ascii + condition: + (uint16(0) == 0x5A4D) and uint32(uint32(0x3C)) == 0x00004550 and $pcre +} +rule ConventionEngine_Keyword_Mimi +{ + meta: + author = "@stvemillertime" + description = "Searching for PE files with PDB path keywords, terms or anomalies." + sample_md5 = "a2bcbcc1465be96fbb957b14f29d1ea4" + ref_blog = "https://www.fireeye.com/blog/threat-research/2019/08/definitive-dossier-of-devilish-debug-details-part-one-pdb-paths-malware.html" + strings: + $pcre = /RSDS[\x00-\xFF]{20}[a-zA-Z]:\\[\x00-\xFF]{0,200}mimi[\x00-\xFF]{0,200}\.pdb\x00/ nocase ascii + condition: + (uint16(0) == 0x5A4D) and uint32(uint32(0x3C)) == 0x00004550 and $pcre +} +rule ConventionEngine_Keyword_Droper +{ + meta: + author = "@stvemillertime" + description = "Searching for PE files with PDB path keywords, terms or anomalies." + sample_md5 = "5410ab108cd251a2db724db762d6606c" + ref_blog = "https://www.fireeye.com/blog/threat-research/2019/08/definitive-dossier-of-devilish-debug-details-part-one-pdb-paths-malware.html" + strings: + $pcre = /RSDS[\x00-\xFF]{20}[a-zA-Z]:\\[\x00-\xFF]{0,200}droper[\x00-\xFF]{0,200}\.pdb\x00/ nocase ascii + condition: + (uint16(0) == 0x5A4D) and uint32(uint32(0x3C)) == 0x00004550 and $pcre +} +rule ConventionEngine_Keyword_0day +{ + meta: + author = "@a_tweeter_user" + description = "Searching for PE files with PDB path keywords, terms or anomalies." + sample_md5 = "e8df15f480b7044cf44faff4273dba8f" + ref_blog = "https://www.fireeye.com/blog/threat-research/2019/08/definitive-dossier-of-devilish-debug-details-part-one-pdb-paths-malware.html" + strings: + $pcre = /RSDS[\x00-\xFF]{20}[a-zA-Z]:\\[\x00-\xFF]{0,200}0day[\x00-\xFF]{0,200}\.pdb\x00/ nocase ascii + condition: + (uint16(0) == 0x5A4D) and uint32(uint32(0x3C)) == 0x00004550 and $pcre +} +rule ConventionEngine_Keyword_Penetration +{ + meta: + author = "@stvemillertime" + description = "Searching for PE files with PDB path keywords, terms or anomalies." + sample_md5 = "5f7796346d22ec5bd8c7b5a2e6caca3c" + ref_blog = "https://www.fireeye.com/blog/threat-research/2019/08/definitive-dossier-of-devilish-debug-details-part-one-pdb-paths-malware.html" + strings: + $pcre = /RSDS[\x00-\xFF]{20}[a-zA-Z]:\\[\x00-\xFF]{0,200}penetration[\x00-\xFF]{0,200}\.pdb\x00/ nocase ascii + condition: + (uint16(0) == 0x5A4D) and uint32(uint32(0x3C)) == 0x00004550 and $pcre +} +rule ConventionEngine_Keyword_Wiper +{ + meta: + author = "@stvemillertime" + description = "Searching for PE files with PDB path keywords, terms or anomalies." + sample_md5 = "3b740cca401715985f3a0c28f851b60e" + ref_blog = "https://www.fireeye.com/blog/threat-research/2019/08/definitive-dossier-of-devilish-debug-details-part-one-pdb-paths-malware.html" + strings: + $pcre = /RSDS[\x00-\xFF]{20}[a-zA-Z]:\\[\x00-\xFF]{0,200}wiper[\x00-\xFF]{0,200}\.pdb\x00/ nocase ascii + condition: + (uint16(0) == 0x5A4D) and uint32(uint32(0x3C)) == 0x00004550 and $pcre +} +rule ConventionEngine_Keyword_Bootkit +{ + meta: + author = "@stvemillertime" + description = "Searching for PE files with PDB path keywords, terms or anomalies." + sample_md5 = "b427a55b62d7f00c532d695c9b04b4d2" + ref_blog = "https://www.fireeye.com/blog/threat-research/2019/08/definitive-dossier-of-devilish-debug-details-part-one-pdb-paths-malware.html" + strings: + $pcre = /RSDS[\x00-\xFF]{20}[a-zA-Z]:\\[\x00-\xFF]{0,200}bootkit[\x00-\xFF]{0,200}\.pdb\x00/ nocase ascii + condition: + (uint16(0) == 0x5A4D) and uint32(uint32(0x3C)) == 0x00004550 and $pcre +} +rule ConventionEngine_Keyword_Bot +{ + meta: + author = "@stvemillertime" + description = "Searching for PE files with PDB path keywords, terms or anomalies." + sample_md5 = "df1e54a3832aff3e714fa2c122aa7ea9" + ref_blog = "https://www.fireeye.com/blog/threat-research/2019/08/definitive-dossier-of-devilish-debug-details-part-one-pdb-paths-malware.html" + strings: + $pcre = /RSDS[\x00-\xFF]{20}[a-zA-Z]:\\[\x00-\xFF]{0,200}(bot_|_bot| bot|bot |bot\\|-bot|bot-|\\bot)[\x00-\xFF]{0,200}\.pdb\x00/ nocase ascii + condition: + (uint16(0) == 0x5A4D) and uint32(uint32(0x3C)) == 0x00004550 and $pcre +} +rule ConventionEngine_Keyword_Csrss +{ + meta: + author = "@stvemillertime" + description = "Searching for PE files with PDB path keywords, terms or anomalies." + sample_md5 = "72e743f7752367b461c42561021eb30d" + ref_blog = "https://www.fireeye.com/blog/threat-research/2019/08/definitive-dossier-of-devilish-debug-details-part-one-pdb-paths-malware.html" + strings: + $pcre = /RSDS[\x00-\xFF]{20}[a-zA-Z]:\\[\x00-\xFF]{0,200}csrss[\x00-\xFF]{0,200}\.pdb\x00/ nocase ascii + condition: + (uint16(0) == 0x5A4D) and uint32(uint32(0x3C)) == 0x00004550 and $pcre +} +rule ConventionEngine_Keyword_Flood +{ + meta: + author = "@stvemillertime" + description = "Searching for PE files with PDB path keywords, terms or anomalies." + sample_md5 = "17a8d440545859444491f2feca7c129f" + ref_blog = "https://www.fireeye.com/blog/threat-research/2019/08/definitive-dossier-of-devilish-debug-details-part-one-pdb-paths-malware.html" + strings: + $pcre = /RSDS[\x00-\xFF]{20}[a-zA-Z]:\\[\x00-\xFF]{0,200}flood[\x00-\xFF]{0,200}\.pdb\x00/ nocase ascii + condition: + (uint16(0) == 0x5A4D) and uint32(uint32(0x3C)) == 0x00004550 and $pcre +} +rule ConventionEngine_Keyword_Overflow +{ + meta: + author = "@stvemillertime" + description = "Searching for PE files with PDB path keywords, terms or anomalies." + ref_blog = "https://www.fireeye.com/blog/threat-research/2019/08/definitive-dossier-of-devilish-debug-details-part-one-pdb-paths-malware.html" + strings: + $pcre = /RSDS[\x00-\xFF]{20}[a-zA-Z]:\\[\x00-\xFF]{0,200}overflow[\x00-\xFF]{0,200}\.pdb\x00/ nocase ascii + condition: + (uint16(0) == 0x5A4D) and uint32(uint32(0x3C)) == 0x00004550 and $pcre +} +rule ConventionEngine_Keyword_Kali +{ + meta: + author = "@stvemillertime" + description = "Searching for PE files with PDB path keywords, terms or anomalies." + sample_md5 = "2cc23a6d971a8dc2093b73f72c2380b4" + ref_blog = "https://www.fireeye.com/blog/threat-research/2019/08/definitive-dossier-of-devilish-debug-details-part-one-pdb-paths-malware.html" + strings: + $pcre = /RSDS[\x00-\xFF]{20}[a-zA-Z]:\\[\x00-\xFF]{0,200}kali[\x00-\xFF]{0,200}\.pdb\x00/ nocase ascii + condition: + (uint16(0) == 0x5A4D) and uint32(uint32(0x3C)) == 0x00004550 and $pcre +} +rule ConventionEngine_Keyword_Malware +{ + meta: + author = "@stvemillertime" + description = "Searching for PE files with PDB path keywords, terms or anomalies." + sample_md5 = "198ee041e8f3eb12a19bc321f86ccb88" + ref_blog = "https://www.fireeye.com/blog/threat-research/2019/08/definitive-dossier-of-devilish-debug-details-part-one-pdb-paths-malware.html" + strings: + $pcre = /RSDS[\x00-\xFF]{20}[a-zA-Z]:\\[\x00-\xFF]{0,200}malware[\x00-\xFF]{0,200}\.pdb\x00/ nocase ascii + condition: + (uint16(0) == 0x5A4D) and uint32(uint32(0x3C)) == 0x00004550 and $pcre +} +rule ConventionEngine_Keyword_Miner +{ + meta: + author = "@stvemillertime" + description = "Searching for PE files with PDB path keywords, terms or anomalies." + sample_md5 = "0409644ae4d1afb21c53339e244b5cc8" + ref_blog = "https://www.fireeye.com/blog/threat-research/2019/08/definitive-dossier-of-devilish-debug-details-part-one-pdb-paths-malware.html" + strings: + $pcre = /RSDS[\x00-\xFF]{20}[a-zA-Z]:\\[\x00-\xFF]{0,200}miner[\x00-\xFF]{0,200}\.pdb\x00/ nocase ascii + condition: + (uint16(0) == 0x5A4D) and uint32(uint32(0x3C)) == 0x00004550 and $pcre +} +rule ConventionEngine_Keyword_Xmrig +{ + meta: + author = "@stvemillertime" + description = "Searching for PE files with PDB path keywords, terms or anomalies." + sample_md5 = "433f936511c2302342f175ad020e34f1" + ref_blog = "https://www.fireeye.com/blog/threat-research/2019/08/definitive-dossier-of-devilish-debug-details-part-one-pdb-paths-malware.html" + strings: + $pcre = /RSDS[\x00-\xFF]{20}[a-zA-Z]:\\[\x00-\xFF]{0,200}xmrig[\x00-\xFF]{0,200}\.pdb\x00/ nocase ascii + condition: + (uint16(0) == 0x5A4D) and uint32(uint32(0x3C)) == 0x00004550 and $pcre +} +rule ConventionEngine_Keyword_LOL +{ + meta: + author = "@stvemillertime" + description = "Searching for PE files with PDB path keywords, terms or anomalies." + sample_md5 = "05486e8707ae94befde0bafd9bee5429" + ref_blog = "https://www.fireeye.com/blog/threat-research/2019/08/definitive-dossier-of-devilish-debug-details-part-one-pdb-paths-malware.html" + strings: + $pcre = /RSDS[\x00-\xFF]{20}[a-zA-Z]:\\[\x00-\xFF]{0,200}lol[\x00-\xFF]{0,200}\.pdb\x00/ nocase ascii + condition: + (uint16(0) == 0x5A4D) and uint32(uint32(0x3C)) == 0x00004550 and $pcre +} +rule ConventionEngine_Keyword_FUD +{ + meta: + author = "@stvemillertime" + description = "Searching for PE files with PDB path keywords, terms or anomalies." + sample_md5 = "07c281acbe2eeb479a73580560cec0b8" + ref_blog = "https://www.fireeye.com/blog/threat-research/2019/08/definitive-dossier-of-devilish-debug-details-part-one-pdb-paths-malware.html" + strings: + $pcre = /RSDS[\x00-\xFF]{20}[a-zA-Z]:\\[\x00-\xFF]{0,200}fud[\x00-\xFF]{0,200}\.pdb\x00/ nocase ascii + condition: + (uint16(0) == 0x5A4D) and uint32(uint32(0x3C)) == 0x00004550 and $pcre +} +rule ConventionEngine_Keyword_Install +{ + meta: + author = "@stvemillertime" + description = "Searching for PE files with PDB path keywords, terms or anomalies." + sample_md5 = "74494aff87db1ef5843cbf8c4d40cab1" + ref_blog = "https://www.fireeye.com/blog/threat-research/2019/08/definitive-dossier-of-devilish-debug-details-part-one-pdb-paths-malware.html" + strings: + $pcre = /RSDS[\x00-\xFF]{20}[a-zA-Z]:\\[\x00-\xFF]{0,200}install[\x00-\xFF]{0,200}\.pdb\x00/ nocase ascii + condition: + (uint16(0) == 0x5A4D) and uint32(uint32(0x3C)) == 0x00004550 and $pcre +} +rule ConventionEngine_Keyword_Steal +{ + meta: + author = "@stvemillertime" + description = "Searching for PE files with PDB path keywords, terms or anomalies." + sample_md5 = "f3f47f3986e9c55d36c49beefa627b54" + ref_blog = "https://www.fireeye.com/blog/threat-research/2019/08/definitive-dossier-of-devilish-debug-details-part-one-pdb-paths-malware.html" + strings: + $pcre = /RSDS[\x00-\xFF]{20}[a-zA-Z]:\\[\x00-\xFF]{0,200}steal[\x00-\xFF]{0,200}\.pdb\x00/ nocase ascii + condition: + (uint16(0) == 0x5A4D) and uint32(uint32(0x3C)) == 0x00004550 and $pcre +} +rule ConventionEngine_Keyword_Launch +{ + meta: + author = "@stvemillertime" + description = "Searching for PE files with PDB path keywords, terms or anomalies." + ref_blog = "https://www.fireeye.com/blog/threat-research/2019/08/definitive-dossier-of-devilish-debug-details-part-one-pdb-paths-malware.html" + strings: + $pcre = /RSDS[\x00-\xFF]{20}[a-zA-Z]:\\[\x00-\xFF]{0,200}launch[\x00-\xFF]{0,200}\.pdb\x00/ nocase ascii + condition: + (uint16(0) == 0x5A4D) and uint32(uint32(0x3C)) == 0x00004550 and $pcre +} +rule ConventionEngine_Keyword_Downloader +{ + meta: + author = "@stvemillertime" + description = "Searching for PE files with PDB path keywords, terms or anomalies." + sample_md5 = "8c843aa6ded2f2cb4a78a8b4534ac063" + ref_blog = "https://www.fireeye.com/blog/threat-research/2019/08/definitive-dossier-of-devilish-debug-details-part-one-pdb-paths-malware.html" + strings: + $pcre = /RSDS[\x00-\xFF]{20}[a-zA-Z]:\\[\x00-\xFF]{0,200}downloader[\x00-\xFF]{0,200}\.pdb\x00/ nocase ascii + condition: + (uint16(0) == 0x5A4D) and uint32(uint32(0x3C)) == 0x00004550 and $pcre +} +rule ConventionEngine_Keyword_Hack +{ + meta: + author = "@stvemillertime" + description = "Searching for PE files with PDB path keywords, terms or anomalies." + sample_md5 = "afe58fee2460947291e93bad9fb095ce" + ref_blog = "https://www.fireeye.com/blog/threat-research/2019/08/definitive-dossier-of-devilish-debug-details-part-one-pdb-paths-malware.html" + strings: + $pcre = /RSDS[\x00-\xFF]{20}[a-zA-Z]:\\[\x00-\xFF]{0,200}hack[\x00-\xFF]{0,200}\.pdb\x00/ nocase ascii + condition: + (uint16(0) == 0x5A4D) and uint32(uint32(0x3C)) == 0x00004550 and $pcre +} +rule ConventionEngine_Keyword_Kill +{ + meta: + author = "@stvemillertime" + description = "Searching for PE files with PDB path keywords, terms or anomalies." + sample_md5 = "6d250a11f68b1fd4ed0505fb2965b6f7" + ref_blog = "https://www.fireeye.com/blog/threat-research/2019/08/definitive-dossier-of-devilish-debug-details-part-one-pdb-paths-malware.html" + strings: + $pcre = /RSDS[\x00-\xFF]{20}[a-zA-Z]:\\[\x00-\xFF]{0,200}kill[\x00-\xFF]{0,200}\.pdb\x00/ nocase ascii + condition: + (uint16(0) == 0x5A4D) and uint32(uint32(0x3C)) == 0x00004550 and $pcre +} +rule ConventionEngine_Keyword_Implant +{ + meta: + author = "@stvemillertime" + description = "Searching for PE files with PDB path keywords, terms or anomalies." + sample_md5 = "40451f20371329b992fb1b85c754d062" + ref_blog = "https://www.fireeye.com/blog/threat-research/2019/08/definitive-dossier-of-devilish-debug-details-part-one-pdb-paths-malware.html" + strings: + $pcre = /RSDS[\x00-\xFF]{20}[a-zA-Z]:\\[\x00-\xFF]{0,200}implant[\x00-\xFF]{0,200}\.pdb\x00/ nocase ascii + condition: + (uint16(0) == 0x5A4D) and uint32(uint32(0x3C)) == 0x00004550 and $pcre and filesize < 3MB +} +rule ConventionEngine_Keyword_RAT +{ + meta: + author = "@stvemillertime" + description = "Searching for PE files with PDB path keywords, terms or anomalies." + sample_md5 = "18244062e6169b79f68d9b413cfd2c04" + ref_blog = "https://www.fireeye.com/blog/threat-research/2019/08/definitive-dossier-of-devilish-debug-details-part-one-pdb-paths-malware.html" + strings: + $pcre = /RSDS[\x00-\xFF]{20}[a-zA-Z]:\\[\x00-\xFF]{0,200}(\\rat|rat\\|\srat|\-rat|rat\.|rat\s)[\x00-\xFF]{0,200}\.pdb\x00/ nocase ascii + $this = /RSDS[\x00-\xFF]{20}[a-zA-Z]:\\[\x00-\xFF]{0,200}administrator[\x00-\xFF]{0,200}\.pdb\x00/ nocase ascii + condition: + (uint16(0) == 0x5A4D) and uint32(uint32(0x3C)) == 0x00004550 and $pcre and not $this +} +rule ConventionEngine_Keyword_Shell +{ + meta: + author = "@stvemillertime" + description = "Searching for PE files with PDB path keywords, terms or anomalies." + sample_md5 = "32a16eff23f6c35e22b0b7d041728f62" + ref_blog = "https://www.fireeye.com/blog/threat-research/2019/08/definitive-dossier-of-devilish-debug-details-part-one-pdb-paths-malware.html" + strings: + $pcre = /RSDS[\x00-\xFF]{20}[a-zA-Z]:\\[\x00-\xFF]{0,200}shell[\x00-\xFF]{0,200}\.pdb\x00/ nocase ascii + $this = /RSDS[\x00-\xFF]{20}[a-zA-Z]:\\[\x00-\xFF]{0,200}(shellcode|powershell)[\x00-\xFF]{0,200}\.pdb\x00/ nocase ascii + condition: + (uint16(0) == 0x5A4D) and uint32(uint32(0x3C)) == 0x00004550 and $pcre and not $this +} +rule ConventionEngine_Keyword_Admin +{ + meta: + author = "@stvemillertime" + description = "Searching for PE files with PDB path keywords, terms or anomalies." + sample_md5 = "67fff57bb44d3458b17f0c7a7a45f405" + ref_blog = "https://www.fireeye.com/blog/threat-research/2019/08/definitive-dossier-of-devilish-debug-details-part-one-pdb-paths-malware.html" + strings: + $pcre = /RSDS[\x00-\xFF]{20}[a-zA-Z]:\\[\x00-\xFF]{0,200}Admin[\x00-\xFF]{0,200}\.pdb\x00/ nocase ascii + $this = /RSDS[\x00-\xFF]{20}[a-zA-Z]:\\[\x00-\xFF]{0,200}administrator[\x00-\xFF]{0,200}\.pdb\x00/ nocase ascii + condition: + (uint16(0) == 0x5A4D) and uint32(uint32(0x3C)) == 0x00004550 and $pcre and not $this +} +rule ConventionEngine_Keyword_Proxy +{ + meta: + author = "@stvemillertime" + description = "Searching for PE files with PDB path keywords, terms or anomalies." + sample_md5 = "7486404888b3223ef171a310426b2387" + ref_blog = "https://www.fireeye.com/blog/threat-research/2019/08/definitive-dossier-of-devilish-debug-details-part-one-pdb-paths-malware.html" + strings: + $pcre = /RSDS[\x00-\xFF]{20}[a-zA-Z]:\\[\x00-\xFF]{0,200}proxy[\x00-\xFF]{0,200}\.pdb\x00/ nocase ascii + condition: + (uint16(0) == 0x5A4D) and uint32(uint32(0x3C)) == 0x00004550 and $pcre +} +rule ConventionEngine_Keyword_Virus +{ + meta: + author = "@stvemillertime" + description = "Searching for PE files with PDB path keywords, terms or anomalies." + sample_md5 = "5a537470e936dbb9611f95fb7f136a6e" + ref_blog = "https://www.fireeye.com/blog/threat-research/2019/08/definitive-dossier-of-devilish-debug-details-part-one-pdb-paths-malware.html" + strings: + $pcre = /RSDS[\x00-\xFF]{20}[a-zA-Z]:\\[\x00-\xFF]{0,200}virus[\x00-\xFF]{0,200}\.pdb\x00/ nocase ascii + condition: + (uint16(0) == 0x5A4D) and uint32(uint32(0x3C)) == 0x00004550 and $pcre +} +rule ConventionEngine_Keyword_Bind +{ + meta: + author = "@stvemillertime" + description = "Searching for PE files with PDB path keywords, terms or anomalies." + sample_md5 = "0a2d51b0e58e41407f1a08744f1443b0" + ref_blog = "https://www.fireeye.com/blog/threat-research/2019/08/definitive-dossier-of-devilish-debug-details-part-one-pdb-paths-malware.html" + strings: + $pcre = /RSDS[\x00-\xFF]{20}[a-zA-Z]:\\[\x00-\xFF]{0,200}bind[\x00-\xFF]{0,200}\.pdb\x00/ nocase ascii + condition: + (uint16(0) == 0x5A4D) and uint32(uint32(0x3C)) == 0x00004550 and $pcre +} +rule ConventionEngine_Keyword_1337 +{ + meta: + author = "@itsreallynick" + description = "Searching for PE files with PDB path keywords, terms or anomalies. -YOUR BOY CARR" + sample_md5 = "e9ecca14f19fe192fc48e714a649cadd" + ref_blog = "https://www.fireeye.com/blog/threat-research/2019/08/definitive-dossier-of-devilish-debug-details-part-one-pdb-paths-malware.html" + strings: + $pcre = /RSDS[\x00-\xFF]{20}[a-zA-Z]?:?\\[\\\s|*\s]?.{0,250}\\[l1]33[7t][\\\s|*\s]?.{0,250}\.pdb\x00/ nocase + condition: + (uint16(0) == 0x5A4D) and uint32(uint32(0x3C)) == 0x00004550 and $pcre +} +rule ConventionEngine_Keyword_Thinstall +{ + meta: + author = "@stvemillertime" + description = "Searching for PE files with PDB path keywords, terms or anomalies." + sample_md5 = "2ef545036c95aab395f3f2a3a0d38a9f" + ref_blog = "https://www.fireeye.com/blog/threat-research/2019/08/definitive-dossier-of-devilish-debug-details-part-one-pdb-paths-malware.html" + strings: + $pcre = /RSDS[\x00-\xFF]{20}[a-zA-Z]:\\[\x00-\xFF]{0,200}thinstall[\x00-\xFF]{0,200}\.pdb\x00/ nocase ascii + condition: + (uint16(0) == 0x5A4D) and uint32(uint32(0x3C)) == 0x00004550 and $pcre +} +rule ConventionEngine_Keyword_Driver +{ + meta: + author = "@stvemillertime" + description = "Searching for PE files with PDB path keywords, terms or anomalies." + sample_md5 = "24a6ec8ebf9c0867ed1c097f4a653b8d" + ref_blog = "https://www.fireeye.com/blog/threat-research/2019/08/definitive-dossier-of-devilish-debug-details-part-one-pdb-paths-malware.html" + strings: + $pcre = /RSDS[\x00-\xFF]{20}[a-zA-Z]:\\[\x00-\xFF]{0,200}driver[\x00-\xFF]{0,200}\.pdb\x00/ nocase ascii + condition: + (uint16(0) == 0x5A4D) and uint32(uint32(0x3C)) == 0x00004550 and $pcre and filesize < 3MB +} +rule ConventionEngine_Keyword_Client +{ + meta: + author = "@stvemillertime" + description = "Searching for PE files with PDB path keywords, terms or anomalies." + sample_md5 = "24a6ec8ebf9c0867ed1c097f4a653b8d" + ref_blog = "https://www.fireeye.com/blog/threat-research/2019/08/definitive-dossier-of-devilish-debug-details-part-one-pdb-paths-malware.html" + strings: + $pcre = /RSDS[\x00-\xFF]{20}[a-zA-Z]:\\[\x00-\xFF]{0,200}client[\x00-\xFF]{0,200}\.pdb\x00/ nocase ascii + condition: + (uint16(0) == 0x5A4D) and uint32(uint32(0x3C)) == 0x00004550 and $pcre and filesize < 3MB +} +rule ConventionEngine_Keyword_Server +{ + meta: + author = "@stvemillertime" + description = "Searching for PE files with PDB path keywords, terms or anomalies." + sample_md5 = "24a6ec8ebf9c0867ed1c097f4a653b8d" + ref_blog = "https://www.fireeye.com/blog/threat-research/2019/08/definitive-dossier-of-devilish-debug-details-part-one-pdb-paths-malware.html" + strings: + $pcre = /RSDS[\x00-\xFF]{20}[a-zA-Z]:\\[\x00-\xFF]{0,200}server[\x00-\xFF]{0,200}\.pdb\x00/ nocase ascii + condition: + (uint16(0) == 0x5A4D) and uint32(uint32(0x3C)) == 0x00004550 and $pcre and filesize < 3MB +} +rule ConventionEngine_Term_GoogleDrive +{ + meta: + author = "@stvemillertime" + description = "Searching for PE files with PDB path keywords, terms or anomalies." + ref_blog = "https://www.fireeye.com/blog/threat-research/2019/08/definitive-dossier-of-devilish-debug-details-part-one-pdb-paths-malware.html" + strings: + $pcre = /RSDS[\x00-\xFF]{20}[a-zA-Z]:\\[\x00-\xFF]{0,200}(Google Drive|Google \xd0\xb4\xd0\xb8\xd1\x81\xd0\xba|Google \xe4\xba\x91\xe7\xab\xaf\xe7\xa1\xac\xe7\x9b\x98)[\x00-\xFF]{0,200}\.pdb\x00/ nocase ascii + condition: + (uint16(0) == 0x5A4D) and uint32(uint32(0x3C)) == 0x00004550 and $pcre +} +rule ConventionEngine_Term_Windows +{ + meta: + author = "@stvemillertime" + description = "Searching for PE files with PDB path keywords, terms or anomalies." + sample_md5 = "25b965b0f56a7dc8a0e2aa7e72778497" + ref_blog = "https://www.fireeye.com/blog/threat-research/2019/08/definitive-dossier-of-devilish-debug-details-part-one-pdb-paths-malware.html" + strings: + $pcre = /RSDS[\x00-\xFF]{20}[a-zA-Z]:\\Windows\\[\x00-\xFF]{0,200}\.pdb\x00/ + condition: + (uint16(0) == 0x5A4D) and uint32(uint32(0x3C)) == 0x00004550 and $pcre +} +rule ConventionEngine_Term_Documents +{ + meta: + author = "@stvemillertime" + description = "Searching for PE files with PDB path keywords, terms or anomalies." + sample_md5 = "e766b979aecfc603b561b19e3880a7bc" + ref_blog = "https://www.fireeye.com/blog/threat-research/2019/08/definitive-dossier-of-devilish-debug-details-part-one-pdb-paths-malware.html" + strings: + $pcre = /RSDS[\x00-\xFF]{20}[a-zA-Z]:\\[\x00-\xFF]{0,200}\\Documents[\x00-\xFF]{0,200}\.pdb\x00/ + $this = /RSDS[\x00-\xFF]{20}[a-zA-Z]:\\[\x00-\xFF]{0,200}\\Documents and Settings[\x00-\xFF]{0,200}\.pdb\x00/ + condition: + (uint16(0) == 0x5A4D) and uint32(uint32(0x3C)) == 0x00004550 and $pcre and not $this +} +rule ConventionEngine_Term_DocumentsAndSettings +{ + meta: + author = "@stvemillertime" + description = "Searching for PE files with PDB path keywords, terms or anomalies." + sample_md5 = "e766b979aecfc603b561b19e3880a7bc" + ref_blog = "https://www.fireeye.com/blog/threat-research/2019/08/definitive-dossier-of-devilish-debug-details-part-one-pdb-paths-malware.html" + strings: + $pcre = /RSDS[\x00-\xFF]{20}[a-zA-Z]:\\[\x00-\xFF]{0,200}\\Documents and Settings[\x00-\xFF]{0,200}\.pdb\x00/ + $this = /RSDS[\x00-\xFF]{20}[a-zA-Z]:\\[\x00-\xFF]{0,200}\\Documents\\[\x00-\xFF]{0,200}\.pdb\x00/ + condition: + (uint16(0) == 0x5A4D) and uint32(uint32(0x3C)) == 0x00004550 and $pcre and not $this +} +rule ConventionEngine_Term_Dropbox +{ + meta: + author = "@stvemillertime" + description = "Searching for PE files with PDB path keywords, terms or anomalies." + sample_md5 = "5d6bfa1a1add10dbd6745ddf915812ed" + ref_blog = "https://www.fireeye.com/blog/threat-research/2019/08/definitive-dossier-of-devilish-debug-details-part-one-pdb-paths-malware.html" + strings: + $pcre = /RSDS[\x00-\xFF]{20}[a-zA-Z]:\\[\x00-\xFF]{0,200}dropbox[\x00-\xFF]{0,200}\.pdb\x00/ nocase ascii + condition: + (uint16(0) == 0x5A4D) and uint32(uint32(0x3C)) == 0x00004550 and $pcre +} +rule ConventionEngine_Term_OneDrive +{ + meta: + author = "@stvemillertime" + description = "Searching for PE files with PDB path keywords, terms or anomalies." + ref_blog = "https://www.fireeye.com/blog/threat-research/2019/08/definitive-dossier-of-devilish-debug-details-part-one-pdb-paths-malware.html" + strings: + $pcre = /RSDS[\x00-\xFF]{20}[a-zA-Z]:\\[\x00-\xFF]{0,200}OneDrive[\x00-\xFF]{0,200}\.pdb\x00/ nocase ascii + condition: + (uint16(0) == 0x5A4D) and uint32(uint32(0x3C)) == 0x00004550 and $pcre +} +rule ConventionEngine_Term_ConsoleApplication +{ + meta: + author = "@stvemillertime" + description = "Searching for PE files with PDB path keywords, terms or anomalies." + sample_md5 = "4840ee7971322e1a6da801643432b25f" + ref_blog = "https://www.fireeye.com/blog/threat-research/2019/08/definitive-dossier-of-devilish-debug-details-part-one-pdb-paths-malware.html" + strings: + $pcre = /RSDS[\x00-\xFF]{20}[a-zA-Z]:\\[\x00-\xFF]{0,200}overflow[\x00-\xFF]{0,200}\.pdb\x00/ nocase ascii + condition: + (uint16(0) == 0x5A4D) and uint32(uint32(0x3C)) == 0x00004550 and $pcre +} +rule ConventionEngine_Term_WindowsApplication +{ + meta: + author = "@stvemillertime" + description = "Searching for PE files with PDB path keywords, terms or anomalies." + sample_md5 = "f097c1b0c8fe178de14717a4fc8f2a91" + ref_blog = "https://www.fireeye.com/blog/threat-research/2019/08/definitive-dossier-of-devilish-debug-details-part-one-pdb-paths-malware.html" + strings: + $pcre = /RSDS[\x00-\xFF]{20}[a-zA-Z]:\\[\x00-\xFF]{0,200}WindowsApplication[\x00-\xFF]{0,200}\.pdb\x00/ nocase ascii + condition: + (uint16(0) == 0x5A4D) and uint32(uint32(0x3C)) == 0x00004550 and $pcre +} +rule ConventionEngine_Term_WindowsFormsApplication +{ + meta: + author = "@stvemillertime" + description = "Searching for PE files with PDB path keywords, terms or anomalies." + sample_md5 = "b51c35d5606c173961b2aa4e6867b40a" + ref_blog = "https://www.fireeye.com/blog/threat-research/2019/08/definitive-dossier-of-devilish-debug-details-part-one-pdb-paths-malware.html" + strings: + $pcre = /RSDS[\x00-\xFF]{20}[a-zA-Z]:\\[\x00-\xFF]{0,200}WindowsFormsApplication[\x00-\xFF]{0,200}\.pdb\x00/ nocase ascii + condition: + (uint16(0) == 0x5A4D) and uint32(uint32(0x3C)) == 0x00004550 and $pcre +} +rule ConventionEngine_Term_NewFolder +{ + meta: + author = "@stvemillertime" + description = "Searching for PE files with PDB path keywords, terms or anomalies." + sample_md5 = "fe23fa6df4d8fb500859f0f76e92552d" + ref_blog = "https://www.fireeye.com/blog/threat-research/2019/08/definitive-dossier-of-devilish-debug-details-part-one-pdb-paths-malware.html" + strings: + $pcre = /RSDS[\x00-\xFF]{20}[a-zA-Z]:\\[\x00-\xFF]{0,200}New Folder[\x00-\xFF]{0,200}\.pdb\x00/ nocase ascii + condition: + (uint16(0) == 0x5A4D) and uint32(uint32(0x3C)) == 0x00004550 and $pcre +} +rule ConventionEngine_Term_Copy +{ + meta: + author = "@stvemillertime" + description = "Searching for PE files with PDB path keywords, terms or anomalies." + sample_md5 = "6156214b767254d5282bc7feef950dca" + ref_blog = "https://www.fireeye.com/blog/threat-research/2019/08/definitive-dossier-of-devilish-debug-details-part-one-pdb-paths-malware.html" + strings: + $pcre = /RSDS[\x00-\xFF]{20}[a-zA-Z]:\\[\x00-\xFF]{0,200}- Copy[\x00-\xFF]{0,200}\.pdb\x00/ nocase ascii + condition: + (uint16(0) == 0x5A4D) and uint32(uint32(0x3C)) == 0x00004550 and $pcre +} +rule ConventionEngine_Term_Desktop +{ + meta: + author = "@stvemillertime" + description = "Searching for PE files with PDB path keywords, terms or anomalies." + sample_md5 = "71cdba3859ca8bd03c1e996a790c04f9" + ref_blog = "https://www.fireeye.com/blog/threat-research/2019/08/definitive-dossier-of-devilish-debug-details-part-one-pdb-paths-malware.html" + strings: + $pcre = /RSDS[\x00-\xFF]{20}[a-zA-Z]:\\[\x00-\xFF]{0,200}Desktop[\x00-\xFF]{0,200}\.pdb\x00/ nocase ascii + condition: + (uint16(0) == 0x5A4D) and uint32(uint32(0x3C)) == 0x00004550 and $pcre +} +rule ConventionEngine_Term_Users +{ + meta: + author = "@stvemillertime" + description = "Searching for PE files with PDB path keywords, terms or anomalies." + sample_md5 = "09e4e6fa85b802c46bc121fcaecc5666" + ref_blog = "https://www.fireeye.com/blog/threat-research/2019/08/definitive-dossier-of-devilish-debug-details-part-one-pdb-paths-malware.html" + strings: + $pcre = /RSDS[\x00-\xFF]{20}[a-zA-Z]:\\[\x00-\xFF]{0,200}Users[\x00-\xFF]{0,200}\.pdb\x00/ nocase ascii + condition: + (uint16(0) == 0x5A4D) and uint32(uint32(0x3C)) == 0x00004550 and $pcre +} +rule ConventionEngine_Term_Users_X +{ + meta: + author = "@stvemillertime" + description = "Searching for PE files with PDB path keywords, terms or anomalies." + sample_md5 = "09e4e6fa85b802c46bc121fcaecc5666" + ref_blog = "https://www.fireeye.com/blog/threat-research/2019/08/definitive-dossier-of-devilish-debug-details-part-one-pdb-paths-malware.html" + strings: + $pcre = /RSDS[\x00-\xFF]{20}\/Users\/[\x00-\xFF]{0,500}\.pdb\x00/ nocase ascii + condition: + (uint16(0) == 0x5A4D) and uint32(uint32(0x3C)) == 0x00004550 and $pcre +} +rule ConventionEngine_Term_VisualStudio +{ + meta: + author = "@stvemillertime" + description = "Searching for PE files with PDB path keywords, terms or anomalies." + ref_blog = "https://www.fireeye.com/blog/threat-research/2019/08/definitive-dossier-of-devilish-debug-details-part-one-pdb-paths-malware.html" + strings: + $pcre = /RSDS[\x00-\xFF]{20}[a-zA-Z]:\\[\x00-\xFF]{0,200}Visual Studio[\x00-\xFF]{0,200}\.pdb\x00/ nocase ascii + condition: + (uint16(0) == 0x5A4D) and uint32(uint32(0x3C)) == 0x00004550 and $pcre +} +rule ConventionEngine_Term_VmwareHost +{ + meta: + author = "@itsreallynick" + description = "Searching for PE files with PDB path keywords, terms, or anomalies. -YOUR BOY CARR" + sample_md5 = "2742750991eb6687440ef53a7a93df94" + ref_blog = "https://www.fireeye.com/blog/threat-research/2019/08/definitive-dossier-of-devilish-debug-details-part-one-pdb-paths-malware.html" + strings: + $pcre = /RSDS[\x00-\xFF]{20}\\\\vmware-host\\[\x00-\xFF]{0,200}\.pdb\x00/ nocase ascii + condition: + (uint16(0) == 0x5A4D) and uint32(uint32(0x3C)) == 0x00004550 and $pcre +} +rule ConventionEngine_Anomaly_Slash +{ + meta: + author = "@stvemillertime" + description = "Searching for PE files with PDB path keywords, terms or anomalies." + sample_md5 = "09e4e6fa85b802c46bc121fcaecc5666" + ref_blog = "https://www.fireeye.com/blog/threat-research/2019/08/definitive-dossier-of-devilish-debug-details-part-one-pdb-paths-malware.html" + strings: + $pcre = /RSDS[\x00-\xFF]{20}\/[\x00-\xFF]{0,500}\.pdb\x00/ nocase ascii + condition: + (uint16(0) == 0x5A4D) and uint32(uint32(0x3C)) == 0x00004550 and $pcre +} +rule ConventionEngine_Anomaly_NonAscii +{ + meta: + author = "@stvemillertime" + description = "Searching for PE files with PDB path keywords, terms or anomalies." + sample_md5 = "07b62497e41898c22e5d5351607aac8e" + ref_blog = "https://www.fireeye.com/blog/threat-research/2019/08/definitive-dossier-of-devilish-debug-details-part-one-pdb-paths-malware.html" + strings: + $pcre = /RSDS[\x00-\xFF]{20}[a-zA-Z]:\\[\x00-\xFF]{0,200}[^\x00-\x7F]{1,}[\x00-\xFF]{0,200}\.pdb\x00/ nocase ascii + condition: + (uint16(0) == 0x5A4D) and uint32(uint32(0x3C)) == 0x00004550 and $pcre and filesize < 1MB +} +rule ConventionEngine_Anomaly_DriveShare +{ + meta: + author = "@stvemillertime" + description = "Searching for PE files with PDB path keywords, terms or anomalies." + sample_md5 = "e7414d82d69b902b5bc1efd0f3e201d7" + ref_blog = "https://www.fireeye.com/blog/threat-research/2019/08/definitive-dossier-of-devilish-debug-details-part-one-pdb-paths-malware.html" + strings: + $pcre = /RSDS[\x00-\xFF]{20}\\.{0,50}\\[a-zA-Z]\$\\[\x00-\xFF]{0,200}\.pdb\x00/ nocase + condition: + (uint16(0) == 0x5A4D) and uint32(uint32(0x3C)) == 0x00004550 and $pcre +} +rule ConventionEngine_Anomaly_MultiPDB_Double +{ + meta: + author = "@stvemillertime" + description = "Searching for PE files with PDB path keywords, terms or anomalies." + sample_md5 = "013f3bde3f1022b6cf3f2e541d19353c" + ref_blog = "https://www.fireeye.com/blog/threat-research/2019/08/definitive-dossier-of-devilish-debug-details-part-one-pdb-paths-malware.html" + strings: + $pcre = /RSDS[\x00-\xFF]{20}[a-zA-Z]:\\[\x00-\xFF]{0,200}\.pdb\x00/ + condition: + (uint16(0) == 0x5A4D) and uint32(uint32(0x3C)) == 0x00004550 and #pcre == 2 +} +rule ConventionEngine_Anomaly_MultiPDB_Triple +{ + meta: + author = "@stvemillertime" + description = "Searching for PE files with PDB path keywords, terms or anomalies." + sample_md5 = "013f3bde3f1022b6cf3f2e541d19353c" + ref_blog = "https://www.fireeye.com/blog/threat-research/2019/08/definitive-dossier-of-devilish-debug-details-part-one-pdb-paths-malware.html" + strings: + $pcre = /RSDS[\x00-\xFF]{20}[a-zA-Z]:\\[\x00-\xFF]{0,200}\.pdb\x00/ + condition: + (uint16(0) == 0x5A4D) and uint32(uint32(0x3C)) == 0x00004550 and #pcre == 3 +} +rule ConventionEngine_Anomaly_MultiPDB_Quadruple +{ + meta: + author = "@stvemillertime" + description = "Searching for PE files with PDB path keywords, terms or anomalies." + sample_md5 = "063915c2ac8dcba0c283407ff91e48e1" + ref_blog = "https://www.fireeye.com/blog/threat-research/2019/08/definitive-dossier-of-devilish-debug-details-part-one-pdb-paths-malware.html" + strings: + $pcre = /RSDS[\x00-\xFF]{20}[a-zA-Z]:\\[\x00-\xFF]{0,200}\.pdb\x00/ + condition: + (uint16(0) == 0x5A4D) and uint32(uint32(0x3C)) == 0x00004550 and #pcre == 4 +} +rule ConventionEngine_Anomaly_MultiPDB_Quintuple_Plus +{ + meta: + author = "@stvemillertime" + description = "Searching for PE files with PDB path keywords, terms or anomalies." + sample_md5 = "08faf27c5738b34186613b4c98905690" + ref_blog = "https://www.fireeye.com/blog/threat-research/2019/08/definitive-dossier-of-devilish-debug-details-part-one-pdb-paths-malware.html" + strings: + $pcre = /RSDS[\x00-\xFF]{20}[a-zA-Z]:\\[\x00-\xFF]{0,200}\.pdb\x00/ + condition: + (uint16(0) == 0x5A4D) and uint32(uint32(0x3C)) == 0x00004550 and #pcre >= 5 +} +rule ConventionEngine_Anomaly_Short_SingleChar +{ + meta: + author = "@stvemillertime" + description = "Searching for PE files with PDB path keywords, terms or anomalies." + sample_md5 = "26f7394147f00ef7c3146ddcafb8f161" + ref_blog = "https://www.fireeye.com/blog/threat-research/2019/08/definitive-dossier-of-devilish-debug-details-part-one-pdb-paths-malware.html" + strings: + $pcre = /RSDS[\x00-\xFF]{20}[\x00-\xFF]{1}\.pdb\x00/ + condition: + (uint16(0) == 0x5A4D) and uint32(uint32(0x3C)) == 0x00004550 and $pcre +} +rule ConventionEngine_Anomaly_Short_DoubleChar +{ + meta: + author = "@stvemillertime" + description = "Searching for PE files with PDB path keywords, terms or anomalies." + ref_blog = "https://www.fireeye.com/blog/threat-research/2019/08/definitive-dossier-of-devilish-debug-details-part-one-pdb-paths-malware.html" + strings: + $pcre = /RSDS[\x00-\xFF]{20}[\x00-\xFF]{2}\.pdb\x00/ + condition: + (uint16(0) == 0x5A4D) and uint32(uint32(0x3C)) == 0x00004550 and $pcre +} +rule ConventionEngine_Anomaly_Short_TripleChar +{ + meta: + author = "@stvemillertime" + description = "Searching for PE files with PDB path keywords, terms or anomalies." + ref_blog = "https://www.fireeye.com/blog/threat-research/2019/08/definitive-dossier-of-devilish-debug-details-part-one-pdb-paths-malware.html" + strings: + $pcre = /RSDS[\x00-\xFF]{20}[\x00-\xFF]{3}\.pdb\x00/ + condition: + (uint16(0) == 0x5A4D) and uint32(uint32(0x3C)) == 0x00004550 and $pcre +} +rule ConventionEngine_Anomaly_NulledOut +{ + meta: + author = "@stvemillertime" + description = "Searching for PE files with PDB path keywords, terms or anomalies." + sample_md5 = "94218fba95e3f03796dd005a2851b5af" + ref_blog = "https://www.fireeye.com/blog/threat-research/2019/08/definitive-dossier-of-devilish-debug-details-part-one-pdb-paths-malware.html" + strings: + $pcre = /RSDS[\x01-\xFF]{16}[\x01-\xFF]{1}\x00\x00\x00[\x00]{10,500}/ + condition: + (uint16(0) == 0x5A4D) and uint32(uint32(0x3C)) == 0x00004550 and $pcre +} +rule ConventionEngine_Anomaly_NulledOut_DoublePlus +{ + meta: + author = "@stvemillertime" + description = "Searching for PE files with PDB path keywords, terms or anomalies." + sample_md5 = "bf0fea133818387cca7eaef5a52c0aed" + ref_blog = "https://www.fireeye.com/blog/threat-research/2019/08/definitive-dossier-of-devilish-debug-details-part-one-pdb-paths-malware.html" + strings: + $pcre = /RSDS[\x01-\xFF]{16}[\x01-\xFF]{1}\x00\x00\x00[\x00]{10,500}/ + condition: + (uint16(0) == 0x5A4D) and uint32(uint32(0x3C)) == 0x00004550 and #pcre >= 2 +} +rule ConventionEngine_Anomaly_OutsideOfDebug +{ + meta: + author = "@stvemillertime" + description = "Searching for PE files with PDB path keywords, terms or anomalies." + sample_md5 = "bf0fea133818387cca7eaef5a52c0aed" + ref_blog = "https://www.fireeye.com/blog/threat-research/2019/08/definitive-dossier-of-devilish-debug-details-part-one-pdb-paths-malware.html" + strings: + $pcre = /RSDS[\x00-\xFF]{20}[a-zA-Z]:\\[\x00-\xFF]{0,500}\.pdb\x00/ + condition: + (uint16(0) == 0x5A4D) and uint32(uint32(0x3C)) == 0x00004550 and $pcre and pe.data_directories[pe.IMAGE_DIRECTORY_ENTRY_DEBUG].virtual_address == 0 +} +rule ConventionEngine_Term_Users_User +{ + meta: + author = "@stvemillertime" + description = "Searching for PE files with PDB path keywords, terms or anomalies." + sample_md5 = "b7c3039203278bc289fd3756571bd468" + ref_blog = "https://www.fireeye.com/blog/threat-research/2019/08/definitive-dossier-of-devilish-debug-details-part-one-pdb-paths-malware.html" + strings: + $pcre = /RSDS[\x00-\xFF]{20}[a-zA-Z]:\\[\x00-\xFF]{0,200}Users\\user[\x00-\xFF]{0,200}\.pdb\x00/ nocase ascii + condition: + (uint16(0) == 0x5A4D) and uint32(uint32(0x3C)) == 0x00004550 and $pcre +} diff --git a/BLUESPAWN-win-client/resources/third-party-integration/core.webshell_detection.yara b/BLUESPAWN-win-client/resources/third-party-integration/core.webshell_detection.yara index adbad99b..454d286f 100644 --- a/BLUESPAWN-win-client/resources/third-party-integration/core.webshell_detection.yara +++ b/BLUESPAWN-win-client/resources/third-party-integration/core.webshell_detection.yara @@ -1,182 +1,182 @@ -/* - WARNING: Host-based security systems may DETECT this file as malicious! - Because the text used in these signatures is also used in some malware definitions, this file may be detected as malicious. If this happens, it is recommended that the limited.yara.bin file be used instead. Because limited.yara.bin is a compiled yara ruleset, it is unlikely to trigger host-based security systems -*/ - -private rule b374k -{ - meta: - author = "Blair Gillam (@blairgillam)" - - strings: - $string = "b374k" - $password_var = "$s_pass" - $default_password = "0de664ecd2be02cdd54234a0d1229b43" - - condition: - any of them -} - -private rule pas_tool -{ - meta: - author = "US CERT" - - strings: - $php = " 20KB and filesize < 22KB) and - #cookie == 2 and - #isset == 3 and - all of them -} - -private rule pbot -{ - meta: - author = "Jacob Baines (Tenable)" - - strings: - $ = "class pBot" ascii - $ = "function start(" ascii - $ = "PING" ascii - $ = "PONG" ascii - - condition: - all of them -} - -private rule passwordProtection -{ - meta: - source = "https://github.com/nbs-system/php-malware-finder" - - strings: - $md5 = /md5\s*\(\s*\$_(GET|REQUEST|POST|COOKIE|SERVER)[^)]+\)\s*===?\s*['"][0-9a-f]{32}['"]/ nocase - $sha1 = /sha1\s*\(\s*\$_(GET|REQUEST|POST|COOKIE|SERVER)[^)]+\)\s*===?\s*['"][0-9a-f]{40}['"]/ nocase - condition: - (any of them) -} - -private rule generic_jsp -{ - meta: - source = "https://www.tenable.com/blog/hunting-for-web-shells" - - strings: - $ = /Runtime.getRuntime\(\).exec\(request.getParameter\(\"[a-zA-Z0-9]+\"\)\);/ ascii - - condition: - all of them -} - -private rule eval -{ - meta: - source = "https://www.tenable.com/blog/hunting-for-web-shells" - - strings: - $ = /eval[\( \t]+((base64_decode[\( \t]+)|(str_rot13[\( \t]+)|(gzinflate[\( \t]+)|(gzuncompress[\( \t]+)|(strrev[\( \t]+)|(gzdecode[\( \t]+))+/ - - condition: - all of them -} - -private rule fopo -{ - meta: - source = "https://github.com/tenable/yara-rules/blob/master/webshells/" - - strings: - $ = /\$[a-zA-Z0-9]+=\"\\(142|x62)\\(141|x61)\\(163|x73)\\(145|x65)\\(66|x36)\\(64|x34)\\(137|x5f)\\(144|x64)\\(145|x65)\\(143|x63)\\(157|x6f)\\(144|x64)\\(145|x65)\";@eval\(/ - - condition: - all of them -} - -private rule hardcoded_urldecode -{ - meta: - source = "https://github.com/tenable/yara-rules/blob/master/webshells/" - - strings: - $ = /urldecode[\t ]*\([\t ]*'(%[0-9a-fA-F][0-9a-fA-F])+'[\t ]*\)/ - - condition: - all of them -} - -private rule chr_obfuscation -{ - meta: - source = "https://github.com/tenable/yara-rules/blob/master/webshells/" - - strings: - $ = /\$[^=]+=[\t ]*(chr\([0-9]+\)\.?){2,}/ - - condition: - all of them -} - -private rule phpInImage -{ - meta: - source = "Vlad https://github.com/vlad-s" - - strings: - $php_tag = " 20KB and filesize < 22KB) and + #cookie == 2 and + #isset == 3 and + all of them +} + +private rule pbot +{ + meta: + author = "Jacob Baines (Tenable)" + + strings: + $ = "class pBot" ascii + $ = "function start(" ascii + $ = "PING" ascii + $ = "PONG" ascii + + condition: + all of them +} + +private rule passwordProtection +{ + meta: + source = "https://github.com/nbs-system/php-malware-finder" + + strings: + $md5 = /md5\s*\(\s*\$_(GET|REQUEST|POST|COOKIE|SERVER)[^)]+\)\s*===?\s*['"][0-9a-f]{32}['"]/ nocase + $sha1 = /sha1\s*\(\s*\$_(GET|REQUEST|POST|COOKIE|SERVER)[^)]+\)\s*===?\s*['"][0-9a-f]{40}['"]/ nocase + condition: + (any of them) +} + +private rule generic_jsp +{ + meta: + source = "https://www.tenable.com/blog/hunting-for-web-shells" + + strings: + $ = /Runtime.getRuntime\(\).exec\(request.getParameter\(\"[a-zA-Z0-9]+\"\)\);/ ascii + + condition: + all of them +} + +private rule eval +{ + meta: + source = "https://www.tenable.com/blog/hunting-for-web-shells" + + strings: + $ = /eval[\( \t]+((base64_decode[\( \t]+)|(str_rot13[\( \t]+)|(gzinflate[\( \t]+)|(gzuncompress[\( \t]+)|(strrev[\( \t]+)|(gzdecode[\( \t]+))+/ + + condition: + all of them +} + +private rule fopo +{ + meta: + source = "https://github.com/tenable/yara-rules/blob/master/webshells/" + + strings: + $ = /\$[a-zA-Z0-9]+=\"\\(142|x62)\\(141|x61)\\(163|x73)\\(145|x65)\\(66|x36)\\(64|x34)\\(137|x5f)\\(144|x64)\\(145|x65)\\(143|x63)\\(157|x6f)\\(144|x64)\\(145|x65)\";@eval\(/ + + condition: + all of them +} + +private rule hardcoded_urldecode +{ + meta: + source = "https://github.com/tenable/yara-rules/blob/master/webshells/" + + strings: + $ = /urldecode[\t ]*\([\t ]*'(%[0-9a-fA-F][0-9a-fA-F])+'[\t ]*\)/ + + condition: + all of them +} + +private rule chr_obfuscation +{ + meta: + source = "https://github.com/tenable/yara-rules/blob/master/webshells/" + + strings: + $ = /\$[^=]+=[\t ]*(chr\([0-9]+\)\.?){2,}/ + + condition: + all of them +} + +private rule phpInImage +{ + meta: + source = "Vlad https://github.com/vlad-s" + + strings: + $php_tag = " 20KB and filesize < 22KB) and - #cookie == 2 and - #isset == 3 and - all of them -} - -private rule pbot -{ - meta: - author = "Jacob Baines (Tenable)" - - strings: - $ = "class pBot" ascii - $ = "function start(" ascii - $ = "PING" ascii - $ = "PONG" ascii - - condition: - all of them -} - -private rule passwordProtection -{ - meta: - source = "https://github.com/nbs-system/php-malware-finder" - - strings: - $md5 = /md5\s*\(\s*\$_(GET|REQUEST|POST|COOKIE|SERVER)[^)]+\)\s*===?\s*['"][0-9a-f]{32}['"]/ nocase - $sha1 = /sha1\s*\(\s*\$_(GET|REQUEST|POST|COOKIE|SERVER)[^)]+\)\s*===?\s*['"][0-9a-f]{40}['"]/ nocase - condition: - (any of them) -} - -private rule ObfuscatedPhp -{ - meta: - source = "https://github.com/nbs-system/php-malware-finder" - - strings: - $eval = /(<\?php|[;{}])[ \t]*@?(eval|preg_replace|system|assert|passthru|(pcntl_)?exec|shell_exec|call_user_func(_array)?)\s*\(/ nocase // ;eval( <- this is dodgy - $eval_comment = /(eval|preg_replace|system|assert|passthru|(pcntl_)?exec|shell_exec|call_user_func(_array)?)\/\*[^\*]*\*\/\(/ nocase // eval/*lol*/( <- this is dodgy - $b374k = "'ev'.'al'" - $align = /(\$\w+=[^;]*)*;\$\w+=@?\$\w+\(/ //b374k - $weevely3 = /\$\w=\$[a-zA-Z]\('',\$\w\);\$\w\(\);/ // weevely3 launcher - $c99_launcher = /;\$\w+\(\$\w+(,\s?\$\w+)+\);/ // http://bartblaze.blogspot.fr/2015/03/c99shell-not-dead.html - $nano = /\$[a-z0-9-_]+\[[^]]+\]\(/ //https://github.com/UltimateHackers/nano - $ninja = /base64_decode[^;]+getallheaders/ //https://github.com/UltimateHackers/nano - $variable_variable = /\${\$[0-9a-zA-z]+}/ - $too_many_chr = /(chr\([\d]+\)\.){8}/ // concatenation of more than eight `chr()` - $concat = /(\$[^\n\r]+\.){5}/ // concatenation of more than 5 words - $concat_with_spaces = /(\$[^\n\r]+\. ){5}/ // concatenation of more than 5 words, with spaces - $var_as_func = /\$_(GET|POST|COOKIE|REQUEST|SERVER)\s*\[[^\]]+\]\s*\(/ - $comment = /\/\*([^*]|\*[^\/])*\*\/\s*\(/ // eval /* comment */ (php_code) -condition: - (any of them) -} - -private rule DodgyPhp -{ - meta: - source = "https://github.com/nbs-system/php-malware-finder" - - strings: - $basedir_bypass = /curl_init\s*\(\s*["']file:\/\// nocase - $basedir_bypass2 = "file:file:///" // https://www.intelligentexploit.com/view-details.html?id=8719 - $disable_magic_quotes = /set_magic_quotes_runtime\s*\(\s*0/ nocase - - $execution = /\b(eval|assert|passthru|exec|include|system|pcntl_exec|shell_exec|base64_decode|`|array_map|ob_start|call_user_func(_array)?)\s*\(\s*(base64_decode|php:\/\/input|str_rot13|gz(inflate|uncompress)|getenv|pack|\\?\$_(GET|REQUEST|POST|COOKIE|SERVER))/ nocase // function that takes a callback as 1st parameter - $execution2 = /\b(array_filter|array_reduce|array_walk(_recursive)?|array_walk|assert_options|uasort|uksort|usort|preg_replace_callback|iterator_apply)\s*\(\s*[^,]+,\s*(base64_decode|php:\/\/input|str_rot13|gz(inflate|uncompress)|getenv|pack|\\?\$_(GET|REQUEST|POST|COOKIE|SERVER))/ nocase // functions that takes a callback as 2nd parameter - $execution3 = /\b(array_(diff|intersect)_u(key|assoc)|array_udiff)\s*\(\s*([^,]+\s*,?)+\s*(base64_decode|php:\/\/input|str_rot13|gz(inflate|uncompress)|getenv|pack|\\?\$_(GET|REQUEST|POST|COOKIE|SERVER))\s*\[[^]]+\]\s*\)+\s*;/ nocase // functions that takes a callback as 2nd parameter - - $htaccess = "SetHandler application/x-httpd-php" - $iis_com = /IIS:\/\/localhost\/w3svc/ - $include = /include\s*\(\s*[^\.]+\.(png|jpg|gif|bmp)/ // Clever includes - $ini_get = /ini_(get|set|restore)\s*\(\s*['"](safe_mode|open_basedir|disable_(function|classe)s|safe_mode_exec_dir|safe_mode_include_dir|register_globals|allow_url_include)/ nocase - $register_function = /register_[a-z]+_function\s*\(\s*['"]\s*(eval|assert|passthru|exec|include|system|shell_exec|`)/ // https://github.com/nbs-system/php-malware-finder/issues/41 - $safemode_bypass = /\x00\/\.\.\/|LD_PRELOAD/ - $shellshock = /\(\)\s*{\s*[a-z:]\s*;\s*}\s*;/ - $udp_dos = /fsockopen\s*\(\s*['"]udp:\/\// nocase - $various = "