RAMvader  1.3
A C# library which provides access to other processes' memory space.
RAMvader Namespace Reference

Namespaces

Classes

class  AbsoluteMemoryAddress
 A specialization for the MemoryAddress class, used to represent absolute/static/constant addresses. More...
 
class  InjectedCodeCaveMemoryAddress
 A specialization for the MemoryAddress class, used to represent addresses of code caves that get injected by the Injector<TMemoryAlterationSetID, TCodeCave, TVariable> into a target process' memory space. More...
 
class  InjectedVariableMemoryAddress
 A specialization for the MemoryAddress class, used to represent addresses of variables that get injected by the Injector<TMemoryAlterationSetID, TCodeCave, TVariable> into a target process' memory space. More...
 
class  InstanceAlreadyAttachedException
 Exception thrown when the user tries to attach a RAMvaderTarget instance to a process, but the instance is already attached to another process. Before attaching to a process, the RAMvaderTarget instance must be detached from any other process. More...
 
class  InstanceNotAttachedException
 Exception thrown when a method that requires the RAMvaderTarget instance to be attached is called, while the RAMvaderTarget is in a "not attached" state (i.e., the RAMvaderTarget hasn't been attached to any target process yet). More...
 
class  MemoryAddress
 
class  ModuleNotFoundException
 Exception thrown when the RAMvader library fails to find a module in the target process' modules list. More...
 
class  ModuleOffsetMemoryAddress
 A specialization for the MemoryAddress class, used to represent addresses that are calculated as offsets from a given module of the process to which the RAMvaderTarget is attached. More...
 
class  NotifyPropertyChangedAdapter
 An adapter class to make the implementation of the INotifyPropertyChanged interface easier for any class willing to provide that implementation. More...
 
class  PointerDataLostException
 An exception which is thrown when trying to perform an I/O operation with pointers between two processes with different pointer sizes. More...
 
class  RAMvaderException
 The base class for all exceptions from the RAMvader library. More...
 
class  RAMvaderTarget
 RAMvader library's core class. Instances of this class are able to "attach" to processes and execute reading and writing operations in their memory spaces. More...
 
class  RequiredIOException
 Exception that is thrown when an I/O operation that was required to succeed returns a fail state. More...
 
class  RequiredReadException
 Exception that is thrown when an input/read operation that was required to succeed returns a fail state. More...
 
class  RequiredWriteException
 Exception that is thrown when an output/write operation that was required to succeed returns a fail state. More...
 
class  UnexpectedDataTypeSizeException
 Exception thrown when the compiler reports an unexpected size for a basic type handled by the RAMvader library. This exception exists for safety purposes only, and should never be thrown on standard development environments. More...
 
class  UnmatchedCodeCaveIdentifierException
 Exception thrown when the identifier given for a code cave does not match the expected enumeration type of identifiers for code caves of an CodeInjection.Injector<TMemoryAlterationSetID, TCodeCave, TVariable>. More...
 
class  UnsupportedDataTypeException
 An exception which is thrown when the user tries to perform a read or write operation using a data type that is not supported by the library. More...
 
class  UnsupportedPointerSizeException
 An exception which is thrown when the user tries to attach a 32-bits process to a 64-bits target process. More...
 
class  WinAPI
 This class is an interface that provides access to the Windows API.
 

Enumerations

enum  EEndianness { EEndianness.evEndiannessDefault, EEndianness.evEndiannessLittle, EEndianness.evEndiannessBig }
 Defines the possible endianness options which RAMvader can operate on. More...
 
enum  EPointerSize { EPointerSize.evPointerSizeDefault, EPointerSize.evPointerSize32, EPointerSize.evPointerSize64 }
 Defines the supported pointer sizes for the target process. More...
 
enum  EDifferentPointerSizeError { EDifferentPointerSizeError.evThrowException, EDifferentPointerSizeError.evSafeTruncation, EDifferentPointerSizeError.evUnsafeTruncation }
 Defines how errors with different pointer sizes are handled by the library. More...
 
enum  EJumpInstructionType {
  EJumpInstructionType.evJMP, EJumpInstructionType.evJA, EJumpInstructionType.evJAE, EJumpInstructionType.evJB,
  EJumpInstructionType.evJBE, EJumpInstructionType.evJG, EJumpInstructionType.evJGE, EJumpInstructionType.evJL,
  EJumpInstructionType.evJLE, EJumpInstructionType.evJE, EJumpInstructionType.evJNE
}
 Defines the types of JUMP instructions that can be generated by the CodeInjection.Injector<TMemoryAlterationSetID, TCodeCave, TVariable> class. More...
 

Enumeration Type Documentation

◆ EDifferentPointerSizeError

Defines how errors with different pointer sizes are handled by the library.

Enumerator
evThrowException 

Throws an exception if the target process and the process which runs RAMvader have different pointer sizes. This is the default behaviour, for safety reasons.

evSafeTruncation 

If the target process and the process which uses RAMvader have different pointer sizes, operations with pointers truncate the pointers to 32-bits when necessary. If any data is lost during the truncation process, a PointerDataLostException is thrown.

evUnsafeTruncation 

If the target process and the process which uses RAMvader have different pointer sizes, operations with pointers truncate the pointers to 32-bits when necessary. If any data is lost during the truncation process, nothing happens. Thus, this is the less recommended option and should be used with caution.

◆ EEndianness

enum RAMvader.EEndianness
strong

Defines the possible endianness options which RAMvader can operate on.

Enumerator
evEndiannessDefault 

A value indicating that RAMvader should operate in the same endianness as the process that RAMvader is running on.

evEndiannessLittle 

A value indicating that RAMvader should operate in Little-Endian byte order.

evEndiannessBig 

A value indicating that RAMvader should operate in Big-Endian byte order.

◆ EJumpInstructionType

Defines the types of JUMP instructions that can be generated by the CodeInjection.Injector<TMemoryAlterationSetID, TCodeCave, TVariable> class.

Enumerator
evJMP 

Identifies the jump instruction: JMP ("unconditional jump).

evJA 

Identifies the jump instruction: JA ("jump if above" - for unsigned values).

evJAE 

Identifies the jump instruction: JAE ("jump if above or equal" - for unsigned values).

evJB 

Identifies the jump instruction: JB ("jump if below" - for unsigned values).

evJBE 

Identifies the jump instruction: JBE ("jump if below or equal" - for unsigned values).

evJG 

Identifies the jump instruction: JG ("jump if greater than" - for signed values).

evJGE 

Identifies the jump instruction: JGE ("jump if greater than or equal to" - for signed values).

evJL 

Identifies the jump instruction: JL ("jump if less than" - for signed values).

evJLE 

Identifies the jump instruction: JLE ("jump if less than or equal to" - for signed values).

evJE 

Identifies the jump instruction: JE ("jump if equal").

evJNE 

Identifies the jump instruction: JNE ("jump if not equal").

◆ EPointerSize

enum RAMvader.EPointerSize
strong

Defines the supported pointer sizes for the target process.

Enumerator
evPointerSizeDefault 

The default pointer size configuration, where the target process' pointer size is assumed to be the same as the pointer size of the process which runs RAMvader. The pointer size can be retrieved through IntPtr.Size.

evPointerSize32 

Explicitly identifies a 32-bit pointer.

evPointerSize64 

Explicitly identifies a 64-bit pointer.