S&box Wiki

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" />