Skip to content

IPCConnector ​

Interface for a connector that can alter a local process.

Kind: Interface

Namespace: ConnectorLib

Inheritance: IAddressableConnector → IDisposable → IGameConnector → IScannableConnector

Public Member Functions

abstract virtual

bool

TryGetRegion(IntPtr address, MEMORY_BASIC_INFORMATION out region)

Attempts to retrieve the regions of memory that are allocated to the connected process.

abstract virtual

IEnumerable

GetRegions(IntPtr address)

Retrieves the regions of memory that are allocated to the connected process.

abstract virtual

IEnumerable

GetRegions()

Retrieves the regions of memory that are allocated to the connected process.

abstract virtual

bool

ReadMemory(long address, byte[] buffer)

Reads a block of memory from the connected process.

abstract virtual

bool

WriteMemory(long address, byte[] buffer)

Writes a block of memory to the connected process.

abstract virtual

byte[]

InjectASM(long trampoline, byte[] byteCode, int stolenBytesLength)

Injects a block of assembly code into the connected process.

abstract virtual

long

InjectASMSimple(ulong trampoline, byte[] byteCode, uint stolenBytesLength = 0)

Injects a block of assembly code into the connected process.

abstract virtual

long

InjectASMSimple(long trampoline, byte[] byteCode, int stolenBytesLength = 0)

Injects a block of assembly code into the connected process.

abstract virtual

long

InjectASMSimple(ulong trampoline, ulong codeCaveAddress, byte[] byteCode, uint stolenBytesLength = 0)

Injects a block of assembly code into the connected process.

abstract virtual

long

InjectASMSimple(long trampoline, long codeCaveAddress, byte[] byteCode, int stolenBytesLength = 0)

Injects a block of assembly code into the connected process.

abstract virtual

long

InjectASMNear(ulong trampoline, byte[] byteCode, uint stolenBytesLength = 0)

abstract virtual

long

InjectASMNear(long trampoline, byte[] byteCode, int stolenBytesLength = 0)

abstract virtual

long

InjectASMNear(ulong trampoline, ulong codeCaveAddress, byte[] byteCode, uint stolenBytesLength = 0)

abstract virtual

long

InjectASMNear(long trampoline, long codeCaveAddress, byte[] byteCode, int stolenBytesLength = 0)

abstract virtual

long[]

ScanForBytes(ReadOnlySpan scanFor, ReadOnlySpan mask, bool oneOnly = true, ScanHint hint = None, long? startAddress = null, long? endAddress = null)

abstract virtual

IAsyncEnumerable

ScanForBytesAsync(byte[] scanFor, string mask, int threadCount = 16, ScanHint hint = None, long? startAddress = null, long? endAddress = null)

abstract virtual

IntPtr

AllocateCodeCave(long length)

Allocates a code cave in the connected process's memory space.

abstract virtual

IntPtr

AllocateCodeCave(long length, IntPtr out regionBaseAddress)

Allocates a code cave in the connected process's memory space.

abstract virtual

IntPtr

AllocateCodeCaveNear(long length, IntPtr nearAddress)

abstract virtual

IntPtr

AllocateCodeCaveNear(long length, IntPtr nearAddress, IntPtr out regionBaseAddress)

abstract virtual

bool

MemoryTest()

Performs a memory test by writing a test value to a newly allocated memory region in the target process and reading it back to verify correctness.

abstract virtual

TResult

Call<TResult>(string funcName, object[] parameters = null, bool varParams = false)

Calls a function on a new thread in the connected process' context.

abstract virtual

object

Call(string funcName, object[] parameters = null, bool varParams = false, Type resultType = null)

Calls a function on a new thread in the connected process' context.

abstract virtual

TResult

Call<TResult>(string moduleName, string funcName, object[] parameters = null, bool varParams = false)

Calls a function on a new thread in the connected process' context.

abstract virtual

object

Call(string moduleName, string funcName, object[] parameters = null, bool varParams = false, Type resultType = null)

Calls a function on a new thread in the connected process' context.

abstract virtual

TResult

Call<TResult>(Func moduleDiscriminator, string funcName, object[] parameters = null, bool varParams = false)

Calls a function on a new thread in the connected process' context.

abstract virtual

object

Call(Func moduleDiscriminator, string funcName, object[] parameters = null, bool varParams = false, Type resultType = null)

Calls a function on a new thread in the connected process' context.

abstract virtual

TResult

Call<TResult>(IntPtr funcPtr, object[] parameters = null, bool varParams = false)

Calls a function on a new thread in the connected process' context.

abstract virtual

object

Call(IntPtr funcPtr, object[] parameters = null, bool varParams = false, Type resultType = null)

Calls a function on a new thread in the connected process' context.

abstract virtual

bool

TryCall<TResult>(string funcName, object[] parameters, bool varParams, TResult out result)

Tries to call a function on a new thread in the connected process' context.

abstract virtual

bool

TryCall(string funcName, object[] parameters, bool varParams, Type resultType, object out result)

Tries to call a function on a new thread in the connected process' context.

abstract virtual

bool

TryCall<TResult>(Func moduleDiscriminator, string funcName, object[] parameters, bool varParams, TResult out result)

Tries to call a function on a new thread in the connected process' context.

abstract virtual

bool

TryCall(Func moduleDiscriminator, string funcName, object[] parameters, bool varParams, Type resultType, object out result)

Tries to call a function on a new thread in the connected process' context.

abstract virtual

bool

TryCall<TResult>(string moduleName, string funcName, object[] parameters, bool varParams, TResult out result)

Tries to call a function on a new thread in the connected process' context.

abstract virtual

bool

TryCall(string moduleName, string funcName, object[] parameters, bool varParams, Type resultType, object out result)

Tries to call a function on a new thread in the connected process' context.

abstract virtual

bool

TryCall(IntPtr funcPtr, object[] parameters, bool varParams, Type resultType, object out result)

Tries to call a function on a new thread in the connected process' context.

abstract virtual

bool

TryCall<TResult>(IntPtr funcPtr, object[] parameters, bool varParams, TResult out result)

Tries to call a function on a new thread in the connected process' context.

Properties

IEnumerable

ProcessModules

[get, ]

Retrieves the loaded modules in the connected process.

bool

Is32Bit

[get, ]

true if the connected process is 32-bit; otherwise, false.

bool

Is64Bit

[get, ]

true if the connected process is 64-bit; otherwise, false.