Class VirtualEnvironmentDetector
Detects whether the game is running inside a virtual machine (VirtualBox, VMware, Parallels, Hyper-V, ...).
Implements
Inherited Members
Namespace: GUPS.AntiCheat.Detector.Desktop
Assembly: cs.temp.dll.dll
Syntax
public class VirtualEnvironmentDetector : ADetector
Remarks
Combines a cross-platform sweep over 08:00:27 for VirtualBox) with an OS specific check via
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
Name
Gets the human-readable name of the detector.
Declaration
public override String Name { get; }
Property Value
| Type | Description |
|---|---|
| String |
Overrides
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
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
Methods
ManualScan()
Performs all enabled checks once and notifies observers if any evidence is found.
Declaration
public bool ManualScan()
Returns
| Type | Description |
|---|---|
| System.Boolean |
|
OnCompleted()
Called when an observed subject signals completion.
Declaration
public override void OnCompleted()
Overrides
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
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
Start()
Caches the platform probe, runs the first scan and starts the periodic recheck loop.
Declaration
protected virtual void Start()