Skip to content

ts95/Process-Memory

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Process memory library

A library that simplifies the process of reading and writing to the memory of another process in a .NET langauge.

Remember to compile with /unsafe

Example of a program which simply reads an array of 16 bytes from address 0x1D8153A4 in the 'program' process and then it prints out those bytes to the console. When passing the name of a process you can write it with or without '.exe' at the end of the string.

unsafe class Program
{
	static void Main(string[] args)
	{
		var pm = new ProcessMemory("program.exe", AccessLevel.Read);

		// The address the library will read from
		long address = 0x1D8153A4;

		// Check if the process is running currently
		if (pm.ProcessExists)
		{
			// Read an array of bytes from the address
			byte[] bytes = pm.ReadArray<byte>(address, 16);

			// Print out each byte to the console
			foreach (byte b in bytes)
				Console.WriteLine("0x{0:X2}", b);
		}
		Console.Read();
	}
}

Example of a program that reads an int from memory, then adds 10 to it and writes it back to the same address.

unsafe class Program
{
	static void Main(string[] args)
	{
		// Implicitly using AccessLevel.All
		var pm = new ProcessMemory("program.exe");

		long address = 0x1D8153A4;

		if (pm.ProcessExists)
		{
			int number;

			number = pm.Read<int>(address);
			number += 10;
			
			pm.Write<int>(address, number);
		}
	}
}

About

Process memory reading/writing library.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages