• Hello
Search Results for

    Show / Hide Table of Contents

    Class VirtualEnvironmentDetector

    Detects whether the game is running inside a virtual machine (VirtualBox, VMware, Parallels, Hyper-V, ...).

    Inheritance
    System.Object
    ADetector
    VirtualEnvironmentDetector
    Implements
    IDetector
    Inherited Members
    ADetector.IsActive
    ADetector.Subscribe(IObserver<IDetectorStatus>)
    ADetector.Notify(IDetectorStatus)
    ADetector.Dispose()
    ADetector.Awake()
    Namespace: GUPS.AntiCheat.Detector.Desktop
    Assembly: cs.temp.dll.dll
    Syntax
    public class VirtualEnvironmentDetector : ADetector
    Remarks

    Combines a cross-platform sweep over for vendor MAC OUIs (e.g. 08:00:27 for VirtualBox) with an OS specific check via and (the latter currently always returns false in managed code).

    The default threat rating is intentionally low and the false-positive rate intentionally high because many legitimate users run inside Hyper-V, WSL2 or cloud streamed Windows. Games that explicitly want to ban VMs should raise the threat rating and reduce the false-positive rate via the inspector.

    Fields

    CheckOnlyOnGameStart

    Run the VM check only once on game start. The result of a VM check rarely changes during a session, so the default is true.

    Declaration
    public bool CheckOnlyOnGameStart
    Field Value
    Type Description
    System.Boolean

    OnCheatingDetectionEvent

    Unity event raised on every detection. Useful to wire up reactions through the inspector without writing an .

    Declaration
    public CheatingDetectionEvent<DesktopCheatingDetectionStatus> OnCheatingDetectionEvent
    Field Value
    Type Description
    CheatingDetectionEvent<DesktopCheatingDetectionStatus>

    RecheckIntervalForPossibleCheating

    Interval in seconds between VM checks.

    Declaration
    public float RecheckIntervalForPossibleCheating
    Field Value
    Type Description
    System.Single

    Properties

    IsSupported

    Gets a value indicating whether the detector is supported on the current platform.

    Declaration
    public override bool IsSupported { get; }
    Property Value
    Type Description
    System.Boolean
    Overrides
    ADetector.IsSupported

    Name

    Gets the human-readable name of the detector.

    Declaration
    public override String Name { get; }
    Property Value
    Type Description
    String
    Overrides
    ADetector.Name

    PossibilityOfFalsePositive

    Gets the false-positive likelihood reported with each detection.

    Declaration
    public float PossibilityOfFalsePositive { get; }
    Property Value
    Type Description
    System.Single

    PossibleCheatingDetected

    Gets a value indicating whether the detector has observed possible cheating activity.

    Declaration
    public override bool PossibleCheatingDetected { get; protected set; }
    Property Value
    Type Description
    System.Boolean
    Overrides
    ADetector.PossibleCheatingDetected

    ThreatRating

    Gets the threat rating reported with every detection. Higher values denote greater perceived threats.

    Declaration
    public override uint ThreatRating { get; protected set; }
    Property Value
    Type Description
    System.UInt32
    Overrides
    ADetector.ThreatRating

    Methods

    ManualScan()

    Performs all enabled checks once and notifies observers if any evidence is found.

    Declaration
    public bool ManualScan()
    Returns
    Type Description
    System.Boolean

    true if any evidence of a virtual machine was found; otherwise false.

    OnCompleted()

    Called when an observed subject signals completion.

    Declaration
    public override void OnCompleted()
    Overrides
    ADetector.OnCompleted()

    OnError(Exception)

    Called when an observed subject reports an error.

    Declaration
    public override void OnError(Exception _Error)
    Parameters
    Type Name Description
    Exception _Error

    The error reported by the observed subject.

    Overrides
    ADetector.OnError(Exception)

    OnNext(IWatchedSubject)

    Called when an observed subject publishes a new status.

    Declaration
    public override void OnNext(IWatchedSubject _Subject)
    Parameters
    Type Name Description
    IWatchedSubject _Subject

    The status published by the observed subject.

    Overrides
    ADetector.OnNext(IWatchedSubject)

    Start()

    Caches the platform probe, runs the first scan and starts the periodic recheck loop.

    Declaration
    protected virtual void Start()

    Implements

    IDetector

    See Also

    AntiCheatMonitor
    In This Article
    Back to top GuardingPearSoftware documentation