From aedef12177ea33b8e9f59d34a1124fb8240ce189 Mon Sep 17 00:00:00 2001 From: Jabak <163307958+Jabaks@users.noreply.github.com> Date: Mon, 28 Oct 2024 20:54:34 +0300 Subject: [PATCH] Merge pull request #756 (#152) * nya v1.2 Co-authored-by: haiwwkes <49613070+rhailrake@users.noreply.github.com> --- Content.Client/_Miracle/Nya/NyaCheckSystem.cs | 10 +++++++++- Content.Server/_Miracle/Nya/NyaCheckSystem.cs | 3 +++ Content.Shared/_Miracle/Nya/NyaSerializable.cs | 1 + 3 files changed, 13 insertions(+), 1 deletion(-) diff --git a/Content.Client/_Miracle/Nya/NyaCheckSystem.cs b/Content.Client/_Miracle/Nya/NyaCheckSystem.cs index ad6d348a53..8b8f1ecc91 100644 --- a/Content.Client/_Miracle/Nya/NyaCheckSystem.cs +++ b/Content.Client/_Miracle/Nya/NyaCheckSystem.cs @@ -47,6 +47,7 @@ public sealed class NyaCheckClientSystem : EntitySystem HasPatchMetadata = FoundPatchMetadataTypes(), ReflectionOffender = FoundExtraTypesIReflection(out var reflectionOffender) ? reflectionOffender : null, HasMoonyware = FoundMoonywareModuleReflection(), + HasHarmony = CheckForHarmony(), IoCOffender = TypesNotFromContentIoC(out var iocOffender) ? iocOffender : null, ExtraModuleOffender = CheckExtraModule(out var moduleOffender) ? moduleOffender : null, CvarOffender = CheckCommonCheatCvars(out var cvarOffender) ? cvarOffender : null, @@ -62,6 +63,12 @@ public sealed class NyaCheckClientSystem : EntitySystem return found is not null; } + private bool CheckForHarmony() + { + var harmonyType = Type.GetType("HarmonyLib.Harmony, 0Harmony"); + return harmonyType != null; + } + private bool FoundExtraTypesIReflection([NotNullWhen(true)] out string? offender) { offender = null; @@ -171,7 +178,8 @@ public sealed class NyaCheckClientSystem : EntitySystem "esp", "noslip", "exploit", - "fun" + "fun", + "scan", ]; offend = null; diff --git a/Content.Server/_Miracle/Nya/NyaCheckSystem.cs b/Content.Server/_Miracle/Nya/NyaCheckSystem.cs index bffd796283..b573934362 100644 --- a/Content.Server/_Miracle/Nya/NyaCheckSystem.cs +++ b/Content.Server/_Miracle/Nya/NyaCheckSystem.cs @@ -56,6 +56,9 @@ public sealed class CheatCheckSystem : EntitySystem if (ev.HasMoonyware) detections.Add(("Чит-клиент", "Обнаружен Moonyware", 95)); + if (ev.HasHarmony) + detections.Add(("Чит-клиент", "Имеется 0Harmony. Скорее всего читер. Следите с помощью nyagrab", 100)); + if (ev.IoCOffender != null) detections.Add(("IoC манипуляция", $"Неразрешенный тип: {ev.IoCOffender}", 70)); diff --git a/Content.Shared/_Miracle/Nya/NyaSerializable.cs b/Content.Shared/_Miracle/Nya/NyaSerializable.cs index d77e11d4bb..20816e5f09 100644 --- a/Content.Shared/_Miracle/Nya/NyaSerializable.cs +++ b/Content.Shared/_Miracle/Nya/NyaSerializable.cs @@ -21,6 +21,7 @@ public sealed class CheatCheckResponseEvent : EntityEventArgs public bool HasPatchMetadata; public string? ReflectionOffender; public bool HasMoonyware; + public bool HasHarmony; public string? IoCOffender; public string? ExtraModuleOffender; public string? CvarOffender;