Revision Difference
AccessList#548161
<cat>Code.Misc</cat>
<title>Code Accesslist</title>
s&box uses an accesslist to restrict which types and members you can access from your code. This is necessary to prevent access to dangerous functions such as `Process.Start`, `DllImport` or reflection. You can only access types and members that are allowed in the accesslist below.
s&box uses an accesslist to restrict which types and members you can access from your code. This is necessary to prevent access to dangerous functions such as `Process.Start`, `DllImport`, or reflection. You can only access types and members that are allowed in the accesslist below.
# How it works
After your addon gets compiled the generated assembly will be scanned for all used types. Any call to a type or member that is not allowed explicitly will result in the addon not getting loaded.
# Reporting a bug
Since escaping or bypassing the sandbox would result in serious security issues (such as getting infected with malware just by joining servers), please report them properly as described [here](https://github.com/Facepunch/sbox-issues/security/policy). ***Do not report them publicly***.
# Accesslist
⤶
<warning>This list is almost guaranteed to be out of date</warning>⤶
⤶
Last updated: 18/09/2021⤶
⤶
```⤶
@_async.txt⤶
@_exceptions.txt⤶
@_diagnostics.txt⤶
@_types.txt⤶
@_reflection.txt⤶
⤶
Sandbox.Engine/*⤶
Sandbox.Game/*⤶
Sandbox.System/*⤶
⤶
System.Private.CoreLib/System.IDisposable*⤶
⤶
System.Private.CoreLib/System.Collections.*⤶
System.Collections/System.Collections.*⤶
System.Collections.Immutable/System.Collections.Immutable.*⤶
⤶
System.Private.CoreLib/System.Math*⤶
System.Private.CoreLib/System.Numerics*⤶
System.Private.CoreLib/System.Globalization*⤶
⤶
System.Linq/*⤶
⤶
System.Private.CoreLib/System.IEquatable*⤶
System.Private.CoreLib/System.Comparison*⤶
System.Private.CoreLib/System.IO.BinaryWriter*⤶
System.Private.CoreLib/System.IO.BinaryReader*⤶
System.Private.CoreLib/System.Activator.CreateInstance<T>()⤶
System.Private.CoreLib/System.Guid*⤶
System.Private.CoreLib/System.IO.MemoryStream*⤶
System.Private.CoreLib/System.IO.Stream⤶
System.Private.CoreLib/System.IO.Stream.*⤶
System.Private.CoreLib/System.Threading.CancellationToken*⤶
System.Private.CoreLib/System.Threading.CancellationTokenSource*⤶
System.Private.CoreLib/System.Enum*⤶
System.Private.CoreLib/System.Environment.get_CurrentManagedThreadId()⤶
System.Private.CoreLib/System.DateTime*⤶
System.Private.CoreLib/System.DayOfWeek*⤶
System.Private.CoreLib/System.HashCode*⤶
System.Private.CoreLib/System.StringSplitOptions*⤶
System.Private.CoreLib/System.ValueTuple*⤶
System.Private.CoreLib/System.Tuple*⤶
System.Private.CoreLib/System.Random*⤶
System.Private.CoreLib/System.MemoryExtensions*⤶
System.Private.CoreLib/System.IFormatProvider⤶
System.Private.CoreLib/System.Version*⤶
⤶
System.Private.CoreLib/System.Threading.Interlocked*⤶
System.Private.CoreLib/System.Threading.Monitor.Enter(*⤶
System.Private.CoreLib/System.Threading.Monitor.Exit(*⤶
⤶
System.Private.CoreLib/System.Delegate⤶
System.Private.CoreLib/System.Delegate.Combine(*⤶
System.Private.CoreLib/System.Delegate.Remove(*⤶
⤶
System.Private.CoreLib/System.GC.SuppressFinalize(*⤶
⤶
System.Private.CoreLib/System.RuntimeFieldHandle⤶
System.Private.CoreLib/System.Runtime.CompilerServices.RuntimeHelpers.InitializeArray( System.Array, System.RuntimeFieldHandle )⤶
⤶
System.Private.CoreLib/System.IO.Path.*⤶
System.Private.CoreLib/System.IO.FileMode⤶
System.Private.CoreLib/System.IO.SeekOrigin⤶
⤶
System.Text.RegularExpressions/System.Text.RegularExpressions.*⤶
⤶
⤶
System.Private.CoreLib/System.Text.Encoding*⤶
⤶
⤶
System.Private.CoreLib/System.Buffers.ArrayPool*⤶
⤶
System.Private.CoreLib/System.Convert.ToInt32*⤶
⤶
System.Private.CoreLib/System.TimeSpan*⤶
System.Private.CoreLib/System.Text.StringBuilder*⤶
⤶
System.Private.CoreLib/System.RuntimeTypeHandle⤶
⤶
⤶
System.Private.CoreLib/System.StringComparison⤶
⤶
⤶
System.Private.CoreLib/System.Attribute*⤶
System.Private.CoreLib/System.AttributeUsageAttribute*⤶
System.Private.CoreLib/System.FlagsAttribute*⤶
System.Private.CoreLib/System.Runtime.CompilerServices.TupleElementNamesAttribute*⤶
System.Private.CoreLib/System.Runtime.CompilerServices.IsReadOnlyAttribute⤶
System.Private.CoreLib/System.Runtime.CompilerServices.IsExternalInit⤶
System.Private.CoreLib/System.Runtime.CompilerServices.ExtensionAttribute⤶
System.Private.CoreLib/System.Runtime.CompilerServices.IteratorStateMachineAttribute⤶
System.Private.CoreLib/System.Runtime.CompilerServices.AsyncStateMachineAttribute⤶
System.Private.CoreLib/System.Runtime.CompilerServices.CompilerGeneratedAttribute⤶
System.Private.CoreLib/System.Runtime.CompilerServices.PreserveBaseOverridesAttribute⤶
System.Private.CoreLib/System.Runtime.InteropServices.InAttribute⤶
System.Private.CoreLib/System.ComponentModel.EditorBrowsableAttribute*⤶
System.Text.Json/System.Text.Json.Serialization.JsonPropertyNameAttribute*⤶
System.Private.CoreLib/System.ObsoleteAttribute*⤶
⤶
System.Private.CoreLib/System.Span*⤶
System.Private.CoreLib/System.ReadOnlySpan*⤶
⤶
System.Private.CoreLib/System.Reflection.DefaultMemberAttribute*⤶
⤶
System.Private.CoreLib/System.Index*⤶
System.Private.CoreLib/System.Range*⤶
System.Private.CoreLib/System.Runtime.CompilerServices.RuntimeHelpers.GetSubArray*⤶
⤶
System.Text.Json/System.Text.Json.*⤶
⤶
System.Private.CoreLib/System.BitConverter*⤶
System.Private.CoreLib/System.Convert*⤶
⤶
System.IO.Compression/System.IO.Compression.DeflateStream*⤶
System.IO.Compression/System.IO.Compression.GZipStream*⤶
System.IO.Compression/System.IO.Compression.CompressionMode⤶
System.IO.Compression/System.IO.Compression.CompressionLevel⤶
⤶
System.Private.CoreLib/System.Net.WebUtility*⤶
System.Private.Uri/System.Uri*⤶
⤶
System.Threading.Channels/System.Threading.Channels.*⤶
System.ComponentModel.Primitives/System.ComponentModel.*⤶
⤶
⤶
```⤶
The access list can be viewed by opening the "Sandbox.Access.dll" file found in the "bin/managed" directory. ⤶
<upload src="4d227/8dacc3fc0e0c524.png" size="32383" name="image.png" />⤶
⤶
The free and popular tool, [DotPeek](https://www.jetbrains.com/decompiler/) will allow you to explore these C# DLL files. Inside the decompiled DLL file you will find information regarding the access list in the `AccessRules` and `Rules` files under the `Sandbox` namespace.⤶
<upload src="4d227/8dacc4005209d02.png" size="23296" name="image.png" />