uniref.define.types

class uniref.define.types._BasicType(injector: object, value: Any, elem_size: int, auto_release: bool = True)

Base class of Bool, Char, UChar, Int16, UInt16, Int32, UInt32, Int64, UInt64, Float, Double and Pointer.

Examples:

>>> from uniref import WinUniRef
>>> ref = WinUniRef("game.exe") 
>>> int32 = ref.injector.new_int32(1) 
>>> type(int32) 
<class 'uniref.define.types.Int32'>
>>> hex(int32.address)
'0xd00000'
>>> int32.value
1
>>> int32.value = 12345
>>> int32.value
12345
>>> int32.release()
property address: int

variable address

property auto_release: bool

auto release

release() None

Release the memory.

set_auto_release(value: bool) None

Set whether to release automatically.

set_value(value: Any) None

Set variable value.

property value: int

variable value

class uniref.define.types._ArrayType(injector: object, elem_size: int, address: int = 0, element_count: int = 0, elements: Optional[List[Any]] = None, auto_release: bool = True)

Base class of BoolArray, CharArray, UCharArray, Int16Array, UInt16Array, Int32Array, UInt32Array, Int64Array, UInt64Array, FloatArray, DoubleArray and PointerArray.

Examples:

>>> from uniref import WinUniRef
>>> ref = WinUniRef("game.exe") 
>>> array = ref.injector.new_double_array([1.5, 5.1, 9.2])
>>> type(array) 
<class 'uniref.define.types.DoubleArray'>
>>> hex(array.address)
'0xe00000'
>>> array.elem_count
3
>>> array.elements
[1.5, 5.1, 9.2]
>>> array[0]
1.5
>>> array[0] = 2.5
>>> array.elements
[2.5, 5.1, 9.2]
>>> array.elements = [0.1, 0.2, 0.3]
>>> array.elements
[0.1, 0.2, 0.3]
>>> array.release()
property address: int

array address

property auto_release: bool

auto release

property elem_count: int

number of array elements

property elements: List[Any]

array elements

release() None

Release the memory.

set_auto_release(value: bool) None

Set whether to release automatically.

set_elements(value: List[Any]) None

Update array elements.

class uniref.define.types.Bool(injector: object, value: bool, auto_release: bool = True)

Bases: _BasicType

class uniref.define.types.BoolArray(injector: object, address: int = 0, element_count: int = 0, elements: Optional[List[bool]] = None, auto_release: bool = True)

Bases: _ArrayType

class uniref.define.types.CString(injector: object, value: str, auto_release: bool = True)

Bases: object

This class’s instance is returned by calling Injector.new_c_string

property address: int

string address

property auto_release: bool

auto release

release() None

Release the memory.

set_auto_release(value: bool) None

Set whether to release automatically.

property value: str

string value

class uniref.define.types.Char(injector: object, value: int, auto_release: bool = True)

Bases: _BasicType

class uniref.define.types.CharArray(injector: object, address: int = 0, element_count: int = 0, elements: Optional[List[int]] = None, auto_release: bool = True)

Bases: _ArrayType

class uniref.define.types.Double(injector: object, value: float, auto_release: bool = True)

Bases: _BasicType

class uniref.define.types.DoubleArray(injector: object, address: int = 0, element_count: int = 0, elements: Optional[List[float]] = None, auto_release: bool = True)

Bases: _ArrayType

class uniref.define.types.Float(injector: object, value: float, auto_release: bool = True)

Bases: _BasicType

class uniref.define.types.FloatArray(injector: object, address: int = 0, element_count: int = 0, elements: Optional[List[float]] = None, auto_release: bool = True)

Bases: _ArrayType

class uniref.define.types.Int16(injector: object, value: int, auto_release: bool = True)

Bases: _BasicType

class uniref.define.types.Int16Array(injector: object, address: int = 0, element_count: int = 0, elements: Optional[List[int]] = None, auto_release: bool = True)

Bases: _ArrayType

class uniref.define.types.Int32(injector: object, value: int, auto_release: bool = True)

Bases: _BasicType

class uniref.define.types.Int32Array(injector: object, address: int = 0, element_count: int = 0, elements: Optional[List[int]] = None, auto_release: bool = True)

Bases: _ArrayType

class uniref.define.types.Int64(injector: object, value: int, auto_release: bool = True)

Bases: _BasicType

class uniref.define.types.Int64Array(injector: object, address: int = 0, element_count: int = 0, elements: Optional[List[int]] = None, auto_release: bool = True)

Bases: _ArrayType

class uniref.define.types.Pointer(injector: object, value: int, auto_release: bool = True)

Bases: _BasicType

class uniref.define.types.PointerArray(injector: object, address: int = 0, element_count: int = 0, elements: Optional[List[int]] = None, auto_release: bool = True)

Bases: _ArrayType

class uniref.define.types.UChar(injector: object, value: int, auto_release: bool = True)

Bases: _BasicType

class uniref.define.types.UCharArray(injector: object, address: int = 0, element_count: int = 0, elements: Optional[List[int]] = None, auto_release: bool = True)

Bases: _ArrayType

class uniref.define.types.UInt16(injector: object, value: int, auto_release: bool = True)

Bases: _BasicType

class uniref.define.types.UInt16Array(injector: object, address: int = 0, element_count: int = 0, elements: Optional[List[int]] = None, auto_release: bool = True)

Bases: _ArrayType

class uniref.define.types.UInt32(injector: object, value: int, auto_release: bool = True)

Bases: _BasicType

class uniref.define.types.UInt32Array(injector: object, address: int = 0, element_count: int = 0, elements: Optional[List[int]] = None, auto_release: bool = True)

Bases: _ArrayType

class uniref.define.types.UInt64(injector: object, value: int, auto_release: bool = True)

Bases: _BasicType

class uniref.define.types.UInt64Array(injector: object, address: int = 0, element_count: int = 0, elements: Optional[List[int]] = None, auto_release: bool = True)

Bases: _ArrayType