Making a game cheat trainer from scratch in C#



Using Memory.dll to make a PC game cheat trainer from scratch in C# using Visual Studio Community Edition 2017.

Vanilla World of Warcraft v1.12.1 was my example game.

Check out my other projects at

GitHub for Memory.dll located at

#csharp #programming #cheatengine

* Patreon:
* Twitter:
* Facebook:
* Discord:
* Instagram:
* GitHub:
* WordPress:
* Website:

Nguồn: https://yourvirtualwizard.com/

Xem thêm bài viết khác: https://yourvirtualwizard.com/game/

32 thoughts on “Making a game cheat trainer from scratch in C#”

  1. AoB scan function structure has changed! It's better, faster, stronger! Check it out here: https://github.com/erfg12/memory.dll/wiki/AoB-Scanning

    Reply
  2. Hi man, I am looking for a tutorial to create trainers for ORIGINAL XBOX games. The trainers I am looking to create still doesnt exist. They are to change the original native aspect ratio from games, of course for those nice few games that only worked at 4:3 aspect ratio at xbox. Like Project Zero, Mortal Kombat Shaolin Monks, Project Zero 2 or Dino Crisis 3. The Hex codes already existed at most cases, so I need to learn a way to tuen them into trainers, in order to play like that with my games using an original console. Can you help me? BTW I am a total noob at this. I just haved the idea.

    Reply
  3. m.WriteMemory("0x2578B3B68D0", "byte", "0x04");

    Sorry, what am I doing wrong? I want to change this addresses Value to 4 ._.
    System.OverflowException: 'Value was either too large or too small for a UInt32.'

    Reply
  4. when i went to tesk manager to get the name of the game i dont find it i find just the name of the emulator which have the game inside it please can you tell me where can i get the Name to put it m.GetProcIdFromName("HERE");

    Reply
  5. hi it says System.NullReferenceException: 'Object reference not set to an instance of an object.
    private void maxsharpness_CheckedChanged(object sender, EventArgs e)
    {
    if (maxsharpness.Checked)
    m.WriteMemory("base+0x249D1C4A", "bytes", "0xC8 0x00");
    else
    m.WriteMemory("base+0x249D1C4A", "bytes", "0xC7 0x00");
    }

    i wanted to have a inlimited sharpnes but i can't becuse im lacking of information could you please help me? TY very much (T.T)

    Reply
  6. hy brother, its very good tutorial, whats your discord, in description link is dead,

    Edited : solved this Memory dll just read .exe right? how game extension .bin.. how to change it?

    ===
    i have quest how to readMemory + baseaddress,,
    because if i write like this m.readFloat("game.bin+0x0addres,offset"); always error input string eror was notbla bla bla
    if i write m.readFloat("base+0x0address,offset"); object error referen not set blablabla
    can u help me? sry my english bad, thanks 🙂

    Reply
  7. i can barely use the cheat engine, any game with unreal engine i cannot find the exact value despite putting the exact value idk maybe there is another way which i would love to know

    Reply
  8. How do I change, say for instance, I wanted to make a GodMode/health or Ammo hack for Call Of Duty Zombies, how would I do that?

    Reply
  9. Hi, Thanks for create this video.
    I use ReadProcessMemory and OpenProcess but I encounter the following error :
    Attempted to read or write protected memory. This is often an indication that other memory is corrupt
    Please help me in VB language or C#…I use VS2013

    Reply
  10. can someone please explain to me, How am i suppose to know what numbers means what?

    Reply
  11. Your reading a "Checked" property of a WinForm control in your DoWork function. You need to refactor this, as DoWork runs on a different thread then the form that Invokes it. WinForm controls are inherently not thread safe, which means you want to avoid cross thread manipulation. The best way to handle this would be to use the arguments parameter when you call the DoWork process. You can place all your settings in a bool array, or a generic dictionary object (Dictionary<string, bool> where string is the Name, and bool is the state).. then pass THAT into your DoWork process.

    Also, won't those memory locations most likely change once the game is closed and reopened again? So wouldn't you need to relocate the pointers, and see what new address(es) they are writing to.. then use those memory locations to write your values to?.

    Reply
  12. Thanks for such an amazing tutorial on starting with C#. Something to note is that doing a while(true) inside the background worker uses a lot of %cpu. For example on my 16GB RAM computer it takes up to 20% CPU. So it would be better to just use a Timer which reduces CPU usage to 0.5% and for each checkbox use CheckedChanged() function. What do you think about this? Is there other way to reduce CPU usage using your method?

    Reply
  13. does not work at all… Only thing it worked is attached the right process. When I do the readbyte; the returned value is 0 regardless of which type it reads.

    Reply

Leave a Comment