Skip to content

AddressChain<TConnector> ​

An address chain class supporting most standard address chain operations for any ConnectorLib.IAddressableConnector.

Kind: Abstract class

Namespace: ConnectorLib.Memory

Public Member Functions

bool

TryAddSByte(sbyte value)

bool

TryAddByte(byte value)

Tries to add a value to the current value at the address.

void

AddSByte(sbyte value)

void

AddByte(byte value)

Adds a value to the current value at the address.

bool

TryAddShort(short value)

bool

TryAddUShort(ushort value)

void

AddShort(short value)

void

AddUShort(ushort value)

bool

TryAddInt(int value)

bool

TryAddUInt(uint value)

void

AddInt(int value)

void

AddUInt(uint value)

bool

TryAddLong(long value)

bool

TryAddULong(ulong value)

void

AddLong(long value)

void

AddULong(ulong value)

bool

TryAddFloat(float value)

void

AddFloat(float value)

bool

TryAddDouble(double value)

void

AddDouble(double value)

bool

TryAddSByte(sbyte value, OverflowChecking overflowChecking)

bool

TryAddByte(byte value, OverflowChecking overflowChecking)

Tries to add a value to the current value at the address.

void

AddSByte(sbyte value, OverflowChecking overflowChecking)

void

AddByte(byte value, OverflowChecking overflowChecking)

Adds a value to the current value at the address.

bool

TryAddShort(short value, OverflowChecking overflowChecking)

bool

TryAddUShort(ushort value, OverflowChecking overflowChecking)

void

AddShort(short value, OverflowChecking overflowChecking)

void

AddUShort(ushort value, OverflowChecking overflowChecking)

bool

TryAddInt(int value, OverflowChecking overflowChecking)

bool

TryAddUInt(uint value, OverflowChecking overflowChecking)

void

AddInt(int value, OverflowChecking overflowChecking)

void

AddUInt(uint value, OverflowChecking overflowChecking)

bool

TryAddLong(long value, OverflowChecking overflowChecking)

bool

TryAddULong(ulong value, OverflowChecking overflowChecking)

void

AddLong(long value, OverflowChecking overflowChecking)

void

AddULong(ulong value, OverflowChecking overflowChecking)

bool

TryAddFloat(float value, OverflowChecking overflowChecking)

void

AddFloat(float value, OverflowChecking overflowChecking)

bool

TryAddDouble(double value, OverflowChecking overflowChecking)

void

AddDouble(double value, OverflowChecking overflowChecking)

bool

TryAddSByte(sbyte value, sbyte modulus)

bool

TryAddByte(byte value, byte modulus)

Tries to add a value to the current value at the address.

void

AddSByte(sbyte value, sbyte modulus)

void

AddByte(byte value, byte modulus)

Adds a value to the current value at the address.

bool

TryAddShort(short value, short modulus)

bool

TryAddUShort(ushort value, ushort modulus)

void

AddShort(short value, short modulus)

void

AddUShort(ushort value, ushort modulus)

bool

TryAddInt(int value, int modulus)

bool

TryAddUInt(uint value, uint modulus)

void

AddInt(int value, int modulus)

void

AddUInt(uint value, uint modulus)

bool

TryAddLong(long value, long modulus)

bool

TryAddULong(ulong value, ulong modulus)

void

AddLong(long value, long modulus)

void

AddULong(ulong value, ulong modulus)

bool

TryAddFloat(float value, float modulus)

void

AddFloat(float value, float modulus)

bool

TryAddDouble(double value, double modulus)

void

AddDouble(double value, double modulus)

bool

TryCompareSByte(sbyte value, bool out result)

Tries to compare the value at the address with the given value.

bool

TryCompareByte(byte value, bool out result)

bool

CompareSByte(sbyte value)

Tries to compare the value at the address with the given value.

bool

CompareByte(byte value)

bool

TryCompareShort(short value, bool out result)

bool

TryCompareUShort(ushort value, bool out result)

bool

CompareShort(short value)

bool

CompareUShort(ushort value)

bool

TryCompareInt(int value, bool out result)

bool

TryCompareUInt(uint value, bool out result)

bool

CompareInt(int value)

bool

CompareUInt(uint value)

bool

TryCompareLong(long value, bool out result)

bool

TryCompareULong(ulong value, bool out result)

bool

CompareLong(long value)

bool

CompareULong(ulong value)

bool

TryCompareFloat(float value, bool out result)

bool

TryCompareFloat(float value, float epsilon, bool out result)

bool

CompareFloat(float value)

bool

CompareFloat(float value, float epsilon)

bool

TryCompareDouble(double value, bool out result)

bool

TryCompareDouble(double value, double epsilon, bool out result)

bool

CompareDouble(double value)

bool

CompareDouble(double value, double epsilon)

abstract virtual override

string

ToString()

Returns a string that represents the current object.

void

Resolve()

Gets the address of the chain.

abstract virtual

bool

Calculate(ulong out address)

Gets the address of the chain.

virtual

bool

Calculate(long out address)

Gets the address of the chain.

OffsetAddressChain

Offset(long offset)

Creates a new address chain for an offset from the current chain.

OffsetAddressChain

Offset(ulong offset)

Creates a new address chain for an offset from the current chain.

OffsetAddressChain

Move(long offset)

OffsetAddressChain

Move(ulong offset)

PointerAddressChain

Follow(byte size, Endianness endianness, PointerType type)

Creates a new address chain for a pointer at the current address.

PointerAddressChain

Follow(PointerFormat pointerFormat)

Creates a new address chain for a pointer at the current address.

PointerAddressChain

Follow()

Creates a new address chain for a pointer at the current address.

RelPointerAddressChain

RelFollow(int parentOffset)

Creates a new address chain for a relative pointer at the current address.

RelPointerAddressChain

RelFollow(int parentOffset, PointerFormat pointerType)

Creates a new address chain for a relative pointer at the current address.

CachedAddressChain

Cache()

Creates a new address chain for a cached address at the current address.

TypedAddressChain

AsType<TValue>()

Creates a new address chain with type information at the current address.

TypedAddressChain

AsType<TValue>(Endianness endianness)

Creates a new address chain with type information at the current address.

TypedAddressChain

AsType<TRemote, TLocal>(Func reader, Func writer)

Creates a new address chain with type information at the current address.

TypedAddressChain

AsType<TRemote, TLocal>(Endianness endianness, Func reader, Func writer)

Creates a new address chain with type information at the current address.

TypedAddressChain

AsType<TRemote, TLocal>(TypeConverter converter)

Creates a new address chain with type information at the current address.

TypedAddressChain

AsType<TRemote, TLocal>(Endianness endianness, TypeConverter converter)

Creates a new address chain with type information at the current address.

bool

TryGetBytes(int length, byte[] out bytes)

Tries to read a byte array of the specified length from the address.

bool

TryGetBytes(Span bytes)

Tries to read a byte array of the specified length from the address.

byte[]

GetBytes(int length)

Reads a byte array of the specified length from the address.

void

GetBytes(Span bytes)

Reads a byte array of the specified length from the address.

bool

TryGetSByte(sbyte out value)

bool

TryGetByte(byte out value)

Tries to read a value from the address.

bool

TryGetSByte(sbyte? out value)

bool

TryGetByte(byte? out value)

Tries to read a value from the address.

sbyte

GetSByte()

byte

GetByte()

Reads a value from the address.

bool

TryGetShort(short out value)

bool

TryGetUShort(ushort out value)

bool

TryGetShort(short? out value)

bool

TryGetUShort(ushort? out value)

short

GetShort()

ushort

GetUShort()

bool

TryGetInt(int out value)

bool

TryGetUInt(uint out value)

bool

TryGetInt(int? out value)

bool

TryGetUInt(uint? out value)

int

GetInt()

uint

GetUInt()

bool

TryGetLong(long out value)

bool

TryGetULong(ulong out value)

bool

TryGetLong(long? out value)

bool

TryGetULong(ulong? out value)

long

GetLong()

ulong

GetULong()

bool

TryGetFloat(float out value)

bool

TryGetFloat(float? out value)

float

GetFloat()

bool

TryGetDouble(double out value)

bool

TryGetDouble(double? out value)

double

GetDouble()

bool

TryMultiplySByte(sbyte value)

bool

TryMultiplyByte(byte value)

Tries to multiply a value with the current value at the address.

void

MultiplySByte(sbyte value)

void

MultiplyByte(byte value)

Adds a value to the current value at the address.

bool

TryMultiplyShort(short value)

bool

TryMultiplyUShort(ushort value)

void

MultiplyShort(short value)

void

MultiplyUShort(ushort value)

bool

TryMultiplyInt(int value)

bool

TryMultiplyUInt(uint value)

void

MultiplyInt(int value)

void

MultiplyUInt(uint value)

bool

TryMultiplyLong(long value)

bool

TryMultiplyULong(ulong value)

void

MultiplyLong(long value)

void

MultiplyULong(ulong value)

bool

TryMultiplyFloat(float value)

void

MultiplyFloat(float value)

bool

TryMultiplyDouble(double value)

void

MultiplyDouble(double value)

bool

TryMultiplySByte(sbyte value, OverflowChecking overflowChecking)

bool

TryMultiplyByte(byte value, OverflowChecking overflowChecking)

Tries to multiply a value with the current value at the address.

void

MultiplySByte(sbyte value, OverflowChecking overflowChecking)

void

MultiplyByte(byte value, OverflowChecking overflowChecking)

Adds a value to the current value at the address.

bool

TryMultiplyShort(short value, OverflowChecking overflowChecking)

bool

TryMultiplyUShort(ushort value, OverflowChecking overflowChecking)

void

MultiplyShort(short value, OverflowChecking overflowChecking)

void

MultiplyUShort(ushort value, OverflowChecking overflowChecking)

bool

TryMultiplyInt(int value, OverflowChecking overflowChecking)

bool

TryMultiplyUInt(uint value, OverflowChecking overflowChecking)

void

MultiplyInt(int value, OverflowChecking overflowChecking)

void

MultiplyUInt(uint value, OverflowChecking overflowChecking)

bool

TryMultiplyLong(long value, OverflowChecking overflowChecking)

bool

TryMultiplyULong(ulong value, OverflowChecking overflowChecking)

void

MultiplyLong(long value, OverflowChecking overflowChecking)

void

MultiplyULong(ulong value, OverflowChecking overflowChecking)

bool

TryMultiplyFloat(float value, OverflowChecking overflowChecking)

void

MultiplyFloat(float value, OverflowChecking overflowChecking)

bool

TryMultiplyDouble(double value, OverflowChecking overflowChecking)

void

MultiplyDouble(double value, OverflowChecking overflowChecking)

bool

TryMultiplySByte(sbyte value, sbyte modulus)

bool

TryMultiplyByte(byte value, byte modulus)

Tries to multiply a value with the current value at the address.

void

MultiplySByte(sbyte value, sbyte modulus)

void

MultiplyByte(byte value, byte modulus)

Adds a value to the current value at the address.

bool

TryMultiplyShort(short value, short modulus)

bool

TryMultiplyUShort(ushort value, ushort modulus)

void

MultiplyShort(short value, short modulus)

void

MultiplyUShort(ushort value, ushort modulus)

bool

TryMultiplyInt(int value, int modulus)

bool

TryMultiplyUInt(uint value, uint modulus)

void

MultiplyInt(int value, int modulus)

void

MultiplyUInt(uint value, uint modulus)

bool

TryMultiplyLong(long value, long modulus)

bool

TryMultiplyULong(ulong value, ulong modulus)

void

MultiplyLong(long value, long modulus)

void

MultiplyULong(ulong value, ulong modulus)

bool

TryMultiplyFloat(float value, float modulus)

void

MultiplyFloat(float value, float modulus)

bool

TryMultiplyDouble(double value, double modulus)

void

MultiplyDouble(double value, double modulus)

bool

TrySetBytes(byte[] bytes)

Tries to sequence of bytes to the address.

bool

TrySetBytes(ReadOnlySpan bytes)

Tries to sequence of bytes to the address.

void

SetBytes(byte[] bytes)

Writes a sequence of bytes to the address.

void

SetBytes(ReadOnlySpan bytes)

Writes a sequence of bytes to the address.

bool

TrySetSByte(sbyte value)

bool

TrySetByte(byte value)

Tries to write a value to the address.

void

SetSByte(sbyte value)

void

SetByte(byte value)

Writes a value to the address.

bool

TrySetShort(short value)

bool

TrySetUShort(ushort value)

void

SetShort(short value)

void

SetUShort(ushort value)

bool

TrySetInt(int value)

bool

TrySetUInt(uint value)

void

SetInt(int value)

void

SetUInt(uint value)

bool

TrySetLong(long value)

bool

TrySetULong(ulong value)

void

SetLong(long value)

void

SetULong(ulong value)

bool

TrySetFloat(float value)

void

SetFloat(float value)

bool

TrySetDouble(double value)

void

SetDouble(double value)

Public Static Functions

AOBAddressChain

AOB<TConnector>(TConnector connector, int resultNum, byte[] bytePattern)

Creates a new AOB address chain for the specified AOB scan.

AOBAddressChain

AOB<TConnector>(TConnector connector, int resultNum, byte[] bytePattern, string mask)

Creates a new AOB address chain for the specified AOB scan.

AOBAddressChain

AOB<TConnector>(TConnector connector, int resultNum, byte[] bytePattern, string mask, int offsetFromPattern)

Creates a new AOB address chain for the specified AOB scan.

AOBAddressChain

AOB<TConnector>(TConnector connector, int resultNum, byte[] bytePattern, string mask, int offsetFromPattern, ScanHint hint)

Creates a new AOB address chain for the specified AOB scan.

AOBAddressChain

AOB<TConnector>(TConnector connector, int resultNum, byte[] bytePattern, string mask, int offsetFromPattern, ScanHint hint, long? startAddress, long? endAddress = null)

Creates a new AOB address chain for the specified AOB scan.

AOBAddressChain

AOB<TConnector>(TConnector connector, int resultNum, byte[] bytePattern, string mask, int offsetFromPattern, ScanHint hint, AddressChain startAddress, AddressChain endAddress = null)

Creates a new AOB address chain for the specified AOB scan.

AOBAddressChain

AOB<TConnector>(TConnector connector, int resultNum, byte[] bytePattern, string mask, ScanHint hint)

Creates a new AOB address chain for the specified AOB scan.

AOBAddressChain

AOB<TConnector>(TConnector connector, int resultNum, byte[] bytePattern, string mask, ScanHint hint, long? startAddress, long? endAddress = null)

Creates a new AOB address chain for the specified AOB scan.

AOBAddressChain

AOB<TConnector>(TConnector connector, int resultNum, byte[] bytePattern, string mask, ScanHint hint, AddressChain startAddress, AddressChain endAddress = null)

Creates a new AOB address chain for the specified AOB scan.

AOBAddressChain

AOB<TConnector>(TConnector connector, int resultNum, byte[] bytePattern, string mask, long? startAddress, long? endAddress = null)

Creates a new AOB address chain for the specified AOB scan.

AOBAddressChain

AOB<TConnector>(TConnector connector, int resultNum, byte[] bytePattern, string mask, AddressChain startAddress, AddressChain endAddress = null)

Creates a new AOB address chain for the specified AOB scan.

AOBAddressChain

AOB<TConnector>(TConnector connector, int resultNum, byte[] bytePattern, long? startAddress, long? endAddress = null)

Creates a new AOB address chain for the specified AOB scan.

AOBAddressChain

AOB<TConnector>(TConnector connector, int resultNum, byte[] bytePattern, AddressChain startAddress, AddressChain endAddress = null)

Creates a new AOB address chain for the specified AOB scan.

ZeroAddressChain

Begin(TConnector connector)

Creates a new address chain at address 0x0 using the supplied connector.

OffsetAddressChain[]

Scan<TConnector>(TConnector connector, ReadOnlySpan scanFor, bool oneOnly = true, ulong? startAddress = null, ulong? endAddress = null)

Scans the memory for the given byte pattern and returns an array of address chains.

OffsetAddressChain[]

Scan<TConnector>(TConnector connector, ReadOnlySpan scanFor, string mask, bool oneOnly = true, ulong? startAddress = null, ulong? endAddress = null)

Scans the memory for the given byte pattern and returns an array of address chains.

bool

TryParse(TConnector connector, string address, AddressChain out result)

Parses the given address chain string and returns an address chain.

AddressChain

Parse(TConnector connector, string address)

Parses the given address chain string and returns an address chain.

bool

TryParse(TConnector connector, string address, PointerFormat pointerType, AddressChain out result)

Parses the given address chain string and returns an address chain.

AddressChain

Parse(TConnector connector, string address, PointerFormat pointerType)

Parses the given address chain string and returns an address chain.

AbsoluteAddressChain

ModuleBase<TConnector>(TConnector connector, string moduleName)

Gets an address chain pointing to the start of the specified module.

AbsoluteAddressChain

Absolute(TConnector connector, long offset)

Gets an address chain for an absolute memory address.

AbsoluteAddressChain

Absolute(TConnector connector, ulong offset)

Gets an address chain for an absolute memory address.

Properties

OverflowChecking

OverflowChecking

[get, set]

The overflow checking mode for arithmetic operations on address chains.

ulong

Address

[get, ]

The address of the chain. This is the final address after all offsets and pointer dereferences have been applied.