Results 1 to 11 of 11
  1. #1
    jakel007's Avatar
    Join Date
    Feb 2011
    Gender
    male
    Posts
    46
    Reputation
    10
    Thanks
    57
    My Mood
    Tired

    Thumbs up C# Memory Editing - Pointers

    As above. Having problems with doing that, founding pointer's adress and changing it. I found this : https://www.mpgh.net/forum/31-c-c-pro...ml#post5903316 , but it uses DLL and I don't want that. Any advice will be very appreciated. I'm new to this stuff, so please, don't blame me. Thanks in advance.

  2. #2
    stevonator's Avatar
    Join Date
    Nov 2011
    Gender
    male
    Posts
    83
    Reputation
    10
    Thanks
    144
    My Mood
    Stressed
    1) the dll is for OFFLINE games (read the post)

    2) search better before asking questions... look at jorndel's namefaker class, this is open source and it can edit pointers

    (thanks if i helped xDDDDDDDD )

  3. The Following User Says Thank You to stevonator For This Useful Post:

    jakel007 (08-25-2012)

  4. #3
    jakel007's Avatar
    Join Date
    Feb 2011
    Gender
    male
    Posts
    46
    Reputation
    10
    Thanks
    57
    My Mood
    Tired
    1) the dll is for OFFLINE games (read the post)
    And what's the difference between OFFLINE and ONLINE Memory Editing? As far as I know there, isn't.

    look at jorndel's namefaker class
    Well, that's a good idea. Didn't know that his namefaker is open source. I'll take a look at it.

  5. #4
          ( ° ͜ʖ͡°)╭∩╮
    Former Staff
    MarkHC's Avatar
    Join Date
    Nov 2011
    Gender
    male
    Location
    127.0.0.1
    Posts
    2,750
    Reputation
    66
    Thanks
    14,529
    My Mood
    Angelic
    Quote Originally Posted by jakel007 View Post
    And what's the difference between OFFLINE and ONLINE Memory Editing? As far as I know there, isn't.
    None.. dunno why he said that...


    CoD Minion from 09/19/2012 to 01/10/2013

  6. #5
    stevonator's Avatar
    Join Date
    Nov 2011
    Gender
    male
    Posts
    83
    Reputation
    10
    Thanks
    144
    My Mood
    Stressed
    Quote Originally Posted by jakel007 View Post
    And what's the difference between OFFLINE and ONLINE Memory Editing? As far as I know there, isn't.
    Quote Originally Posted by -InSaNe- View Post
    None.. dunno why he said that...
    well i dunno either actually, but in the thread jakel007 linked to, there's writen it's for offline games

  7. #6
    dcrew10's Avatar
    Join Date
    May 2010
    Gender
    male
    Location
    Manchester, England
    Posts
    448
    Reputation
    10
    Thanks
    285
    My Mood
    Happy
    Use Jourdnel's C# memory editor for MW3, Worked for me
    C# (XNA) Coder


  8. #7
    jakel007's Avatar
    Join Date
    Feb 2011
    Gender
    male
    Posts
    46
    Reputation
    10
    Thanks
    57
    My Mood
    Tired
    Quote Originally Posted by dcrew10 View Post
    Use Jourdnel's C# memory editor for MW3, Worked for me
    You mean finding pointer's address and then editing memory? Could you tell me how to do it? Thanks.

    And by the way, it's really hard for me to find what exacly would be useful for me from the Dragon's tool source code, looks like he uses strings, don't know if it will work with normal values.
    Last edited by jakel007; 08-25-2012 at 12:37 PM.

  9. #8
    dcrew10's Avatar
    Join Date
    May 2010
    Gender
    male
    Location
    Manchester, England
    Posts
    448
    Reputation
    10
    Thanks
    285
    My Mood
    Happy
    Quote Originally Posted by jakel007 View Post
    You mean finding pointer's address and then editing memory? Could you tell me how to do it? Thanks.
    Have you got Skype or Steam? I can give you a helping hand, after all I am almost ready to release my new MW3 hack out soon

    Skype: dcrew2011
    Steam: Steam Community :: ID :: ./-Cw-\. Dcrew
    C# (XNA) Coder


  10. #9
    jakel007's Avatar
    Join Date
    Feb 2011
    Gender
    male
    Posts
    46
    Reputation
    10
    Thanks
    57
    My Mood
    Tired
    Please, could someboady say how to use pointers with for example Jorndels C# Class? Thanks again.

  11. #10
    Jorndel's Avatar
    Join Date
    Jul 2010
    Gender
    male
    Location
    Norway
    Posts
    8,676
    Reputation
    905
    Thanks
    19,113
    My Mood
    Angelic
    Quote Originally Posted by jakel007 View Post
    Please, could someboady say how to use pointers with for example Jorndels C# Class? Thanks again.
    I will release my Newest Memory Class tomorrow.
    But the current and mostly like what I will release tomorrow to help you a little:
    Code:
    public class Memory
        {
            string ProcName;
            public Memory(string ProcessName)
            {
                ProcName = ProcessName.Replace(".exe", "");
            }
    
            #region DLL Imports
            [DllImport("kernel32.dll")]
            private static extern IntPtr OpenProcess(UInt32 dwDesiredAccess, bool bInheritHandle, int dwProcessId);
            [DllImport("kernel32.dll")]
            private static extern Int32 ReadProcessMemory(IntPtr hProcess, IntPtr lpBaseAddress, [In, Out] byte[] buffer, UInt32 size, out IntPtr lpNumberOfBytesRead);
            [DllImport("kernel32.dll")]
            private static extern Int32 WriteProcessMemory(IntPtr hProcess, IntPtr lpBaseAddress, [In, Out] byte[] buffer, UInt32 size, out IntPtr lpNumberOfBytesWritten);
            #endregion
            #region Write & Read Main
            private byte[] Read(int Add, int Length)
            {
                byte[] Buffer = new byte[Length];
                IntPtr Zero = IntPtr.Zero;
                ReadProcessMemory(Open_Memory(), (IntPtr)Add, Buffer, (UInt32)Buffer.Length, out Zero);
                return Buffer;
            }
            private byte[] Write(int Address, byte[] Value, int Length = -1)
            {
                if (Length == -1)
                    Length = Value.Length;
    
                byte[] Buffer = new byte[Length];
                IntPtr Zero = IntPtr.Zero;
                Convert.ToByte(10);
                WriteProcessMemory(Open_Memory(), (IntPtr)Address, Buffer, (UInt32)Length, out Zero);
                return Buffer;
            }
            private IntPtr Open_Memory()
            {
                if (Process.GetProcessesByName(ProcName).Length != 0)
                {
                    return OpenProcess(0x1F0FFF, true, Process.GetProcessesByName(ProcName)[0].Id);
                }
                else return (IntPtr)0x0;
            }
            #endregion
    
            #region Write Stuff
            public void WriteInt(int Address, int Value)
            {
                byte[] buffer = BitConverter.GetBytes(Value);
                IntPtr R;
                WriteProcessMemory(Open_Memory(), (IntPtr)Address, buffer, 4, out R);
            }
            #endregion
            #region Read Stuff
            public uint ReadUInt(uint Address)
            {
                byte[] buffer = new byte[4];
                IntPtr R;
                ReadProcessMemory(Open_Memory(), (IntPtr)Address, buffer, 4, out R);
                return BitConverter.ToUInt32(buffer, 0);
            }
            #endregion
            #region Pointers
            private uint BaseAddressU(string Module_Name)
            {
                try
                {
                    if (Process.GetProcessesByName(ProcName).Length != 0)
                    {
                        foreach (ProcessModule Mod in Process.GetProcessesByName(ProcName)[0].Modules)
                        {
                            if (Mod.ModuleName == Module_Name)
                                return (uint)Mod.BaseAddress.ToInt32();
                        }
                        return 0;
                    }
                    else return 0;
                }
                catch { Console.WriteLine("Base Address Error"); return 0; }
            }
            public uint PointersU(string Module, uint[] Pointers)
            {
                uint Base = BaseAddressU(Module) + Pointers[0];
                uint Runner = ReadUInt(Base) + Pointers[1];
                for (int i = 2; i != Pointers.Length - 2; i++)
                    Runner = ReadUInt(Runner) + Pointers[i];
    
                return Runner;
            }
            #endregion
        }
    If you don't know how to use it, wait until tomorrow.

    The Pointer thing should be understand-able.
    If you look at the Name Faker (Dragon v6) release with the open source, you will see how the set-up should be

    Good Luck

     
    Contributor 01.27.2012 - N/A
    Donator 07-17-2012 - Current
    Editor/Manager 12-16-12 - N/A
    Minion 01-10-2013 - 07.17.13
    Former Staff 09-20-2012 - 01-10-2013 / 07-17-2013 - Current
    Cocksucker 20-04-2013 - N/A

  12. The Following User Says Thank You to Jorndel For This Useful Post:

    jakel007 (08-28-2012)

  13. #11
    jakel007's Avatar
    Join Date
    Feb 2011
    Gender
    male
    Posts
    46
    Reputation
    10
    Thanks
    57
    My Mood
    Tired
    Whoa, many thanks.

Similar Threads

  1. [Q] memory editing
    By ~dNkN! in forum C++/C Programming
    Replies: 4
    Last Post: 07-20-2010, 11:30 PM
  2. [Tutorial] Basic C++ Game Hacking (Memory Editing)
    By Tukjedude in forum C++/C Programming
    Replies: 17
    Last Post: 06-05-2010, 08:23 AM
  3. memory editing idea/help
    By ihacksumtimes in forum Combat Arms Help
    Replies: 1
    Last Post: 01-09-2010, 02:43 AM
  4. Memory Hacking Pointers
    By Ugleh in forum General Game Hacking
    Replies: 3
    Last Post: 11-09-2009, 05:07 AM
  5. Memory editing Last chaos?
    By Darkendnox in forum General Game Hacking
    Replies: 3
    Last Post: 12-09-2006, 08:25 AM