using System;
using System.Runtime.InteropServices;
using ProcessNET.Memory;
namespace ProcessNET.Modules
{
///
/// Class representing a function in the remote process.
///
public class RemoteFunction : MemoryPointer, IProcessFunction
{
public RemoteFunction(IProcess processPlus, IntPtr address, string functionName) : base(processPlus, address)
{
// Save the parameter
Name = functionName;
}
///
/// The name of the function.
///
public string Name { get; }
public T GetDelegate()
{
return Marshal.GetDelegateForFunctionPointer(BaseAddress);
}
///
/// Returns a string that represents the current object.
///
public override string ToString()
{
return $"BaseAddress = 0x{BaseAddress.ToInt64():X} Name = {Name}";
}
}
}