18 thoughts on “VAMemory – Video Tutorial – How To Create A Trainer in C#

    1. string pointer = vam.ReadStringASCII((IntPtr)adr, 255); how to read offset i know how to read offset readinteger
      but this string can’t use IntPtr

  1. I am struggling days, just for reading a pointer, Please help me.

    CE Pointer: “Tutorial-i386.exe”+234630

    I first got (WRONG) base address using this:

    IntPtr baseaddr = (IntPtr)vam.getBaseAddress;

    Even this is wrong:


    Even This:

    GetModuleBaseAddress(process, “Tutorial-i386”)


    private static IntPtr GetModuleBaseAddress(string AppName, string ModuleName)
    IntPtr BaseAddress = IntPtr.Zero;
    Process[] myProcess = null;
    ProcessModule myProcessModule = null;

    myProcess = Process.GetProcessesByName(AppName);

    if (myProcess.Length > 0)
    ProcessModuleCollection myProcessModuleCollection;

    myProcessModuleCollection = myProcess[0].Modules;
    catch { return IntPtr.Zero; /*Maybe would be ok show the exception after/instead return*/ }

    for (int i = 0; i < myProcessModuleCollection.Count; i++)
    myProcessModule = myProcessModuleCollection[i];
    if (myProcessModule.ModuleName.Contains(ModuleName))
    BaseAddress = myProcessModule.BaseAddress;

    return BaseAddress;

    Any Help, how to get Base Address?

  2. i know that post is a bit old to comment .
    but i have problem with VAmemory
    when i’m trying to “set flag” a “process not found” occurs
    “winmine is not running or has not been found. please check and try again”

    what did i mess ? what should i do ?
    can you introduce VAmemory alternatives ?
    (sry if my english isn’t so good)

      1. run as administrator is the same error
        but i actually use one of the cheat engine addresses
        here is the exact code

        using System;
        using System.Collections.Generic;
        using System.ComponentModel;
        using System.Data;
        using System.Drawing;
        using System.Linq;
        using System.Text;
        using System.Threading.Tasks;
        using System.Windows.Forms;

        namespace WindowsFormsApplication2
        public partial class Form1 : Form
        public Form1()
        VAMemory VAM;

        private void button1_Click(object sender, EventArgs e)
        VAM = new VAMemory(“cheatengine-i386”);
        VAM.WriteByte((IntPtr)0x00117038, byte.Parse(textBox1.Text));

        1. VAM = new VAMemory(“cheatengine-i386″);
          VAM.WriteByte((IntPtr)0×00117038, byte.Parse(textBox1.Text));

          Have you tried?

    1. Look at the comment above you.

      int32 pointer = VAMemory.ReadInt32(0x005E5694)
      pointer = VAMemory.ReadInt32((IntPtr)pointer)

        1. I am not going to spoon feed you but I’ll try to help. Do this step by step and check each step if the value is the same as the one shown in Cheat Engine.

          First you read the first pointer 0x0016D970. Then you add the first offset to it (0x2C).
          As Cheat Engine tells us the pointer read at 0x0016D970 is 0x2028DA8. Now you add 0x2028DA8 + 0x2C which brings us to 0x2028DD4.

          Now you read the value of that pointer just like before and do it until you reach the end. If you have trouble converting this code into C# I suggest you start learning the basics of C# first.

    1. What other languages do you speak? You have to be more specific so I can help.

      If you want to read a pointer

      int32 pointer = VAMemory.ReadInt32(0x005E5694)
      pointer = VAMemory.ReadInt32((IntPtr)pointer)

Leave a message

Your email address will not be published. Required fields are marked *