Hello everyone,
I'm very new at memory editting and I know you guys get lots of people like me.
My intentions are different though. I noticed a lack of (updated) tutorials for really newbies with memory editting (like me) and I decided to document everything I learned and create a very sleek tutorial for all the newbies.
My plan is to write everything down during my process of learning this stuff. I will also make some demo applications with it and I'll try to make it as clear as possible for other people to understand.
To the point, my problem:
I did read a lot around here, but most of the tutorials are using BlackMagic and I noticed GreyMagic was released, so I decided to use that one.
First of all what I wanted to do is read the players name. And after reading a few posts I learned that in order to retrieve the name I needed to get the base address of the current process and add this with the playerNameOffset.
I did this, but I'm not getting a playername back, so I'm wondering what I'm doing wrong. Could anyone explain me what I'm missing out on?
My code:
Code:
private static IntPtr PlayerNameOffset = (IntPtr)0xDC92D8;
private static void Main(string[] args)
{
Process[] process = Process.GetProcessesByName("Wow");
if (!process.Any())
{
Console.WriteLine("You must run WoW first!");
Console.ReadLine();
return;
}
var reader = new ExternalProcessReader(process.First());
IntPtr baseAddress = Process.GetCurrentProcess().MainModule.BaseAddress;
string playerName = reader.ReadString(baseAddress + (int)PlayerNameOffset, System.Text.Encoding.ASCII, 256);
Console.WriteLine(playerName);
Console.ReadKey();
}