C# Memory Class x64 / x86

Posts 19 of 9 · Page 1 of 1
C# Memory Class x64 / x86
My Generic C# Memory Class, just some more Advanced.
It supports now PatternScan and offset reading.
It's also very simple to use, i let suffer GTA a little bit more for you:
Code:
using System;

namespace ConsoleApp1
{
    class Program
    {
        static void Main(string[] args)
        {
            const int WORLD_OFFSET = 8;
            const int LIFE_OFFSET = 0x280;
            const int ARMOR_OFFSET = 0x14B8;
            const int PLAYER_INFO_OFFSET = 0x10B8;
            const int WANTED_LEVEL_OFFSET = 0x0780 + 0x0098;

            Memory GTA = new Memory("GTA5");
            Console.WriteLine("Game process Id: " + GTA.GetProcessID().ToString("x8").ToUpper());

            // UInt64 WorldFlirtPointer = GTA.PointerScan("\x48\x8B\x05\x90\x90\x90\x90\x45\x90\x90\x90\x90\x48\x8B\x48\x08\x48\x85\xC9\x74\x07", "xxx????x????xxxxxxxxx");
            UInt64 WorldFlirtPointer = GTA.PointerScan("48 8B 05 ? ? ? ? 45 ? ? ? ? 48 8B 48 08 48 85 C9 74 07");
            Console.WriteLine("World FLIRT Address: " + WorldFlirtPointer.ToString("x8"));

            UInt64 World = GTA.ReadRelativeAddress(WorldFlirtPointer);
            Console.WriteLine("World Address: " + World.ToString("x8"));

            UInt64 Player = GTA.Read<UInt64>(World, new int[] { WORLD_OFFSET });
            Console.WriteLine("Player Address: " + Player.ToString("x8"));

            Console.WriteLine("Health: " + GTA.Read<float>(Player + LIFE_OFFSET).ToString());
            Console.WriteLine("Armor: " + GTA.Read<float>(Player + ARMOR_OFFSET).ToString());
            Console.WriteLine("Wanted Level: " + GTA.Read<int>(Player + PLAYER_INFO_OFFSET, new int[] { WANTED_LEVEL_OFFSET }).ToString());
            
            GTA.Write<float>(Player + LIFE_OFFSET, 150.0f);
            GTA.Write<float>(Player + ARMOR_OFFSET, 50.0f);
            GTA.Write<int>(Player + PLAYER_INFO_OFFSET, 5, new int[] { WANTED_LEVEL_OFFSET });

            Console.WriteLine("Wanted Level: " + GTA.Read<int>(Player + PLAYER_INFO_OFFSET, new int[] { WANTED_LEVEL_OFFSET }).ToString());
            Console.WriteLine("Health: " + GTA.Read<float>(Player + LIFE_OFFSET).ToString());
            Console.WriteLine("Armor: " + GTA.Read<float>(Player + ARMOR_OFFSET).ToString());
            System.Threading.Thread.Sleep(100000);
        }   
    }
}
VirusTotal
Jotti Malware Scan
MetaDefender
Memory_mpgh.net.zip2 KB · 92 downloads Clean
Are you a Java developer by any chance? C# has properties, no need for get/set methods.. Oh and you should also implement IDisposable instead of just a finalizer for the class
I'm C++ Developer ^^
Java is everything, but not a programming language.
More the Cancer of Computers
Quote Originally Posted by MikeRohsoft View Post
but not a programming language.
More the Cancer of Computers
Well, that's one way to put it.. XD
Quote Originally Posted by Biesi View Post


Well, that's one way to put it.. XD
hahaha, You'r funny
You actually did updated it once in a while? Didn't saw that yet until now. Great job, Mike!
Quote Originally Posted by MikeRohsoft View Post
My Generic C# Memory Class, just some more Advanced.
It supports now PatternScan and offset reading.
It's also very simple to use, i let suffer GTA a little bit more for you:
Code:
using System;

namespace ConsoleApp1
{
    class Program
    {
        static void Main(string[] args)
        {
            const int WORLD_OFFSET = 8;
            const int LIFE_OFFSET = 0x280;
            const int ARMOR_OFFSET = 0x14B8;
            const int PLAYER_INFO_OFFSET = 0x10B8;
            const int WANTED_LEVEL_OFFSET = 0x0780 + 0x0098;

            Memory GTA = new Memory("GTA5");
            Console.WriteLine("Game process Id: " + GTA.GetProcessID().ToString("x8").ToUpper());

            // UInt64 WorldFlirtPointer = GTA.PointerScan("\x48\x8B\x05\x90\x90\x90\x90\x45\x90\x90\x90\x90\x48\x8B\x48\x08\x48\x85\xC9\x74\x07", "xxx????x????xxxxxxxxx");
            UInt64 WorldFlirtPointer = GTA.PointerScan("48 8B 05 ? ? ? ? 45 ? ? ? ? 48 8B 48 08 48 85 C9 74 07");
            Console.WriteLine("World FLIRT Address: " + WorldFlirtPointer.ToString("x8"));

            UInt64 World = GTA.ReadRelativeAddress(WorldFlirtPointer);
            Console.WriteLine("World Address: " + World.ToString("x8"));

            UInt64 Player = GTA.Read<UInt64>(World, new int[] { WORLD_OFFSET });
            Console.WriteLine("Player Address: " + Player.ToString("x8"));

            Console.WriteLine("Health: " + GTA.Read<float>(Player + LIFE_OFFSET).ToString());
            Console.WriteLine("Armor: " + GTA.Read<float>(Player + ARMOR_OFFSET).ToString());
            Console.WriteLine("Wanted Level: " + GTA.Read<int>(Player + PLAYER_INFO_OFFSET, new int[] { WANTED_LEVEL_OFFSET }).ToString());
            
            GTA.Write<float>(Player + LIFE_OFFSET, 150.0f);
            GTA.Write<float>(Player + ARMOR_OFFSET, 50.0f);
            GTA.Write<int>(Player + PLAYER_INFO_OFFSET, 5, new int[] { WANTED_LEVEL_OFFSET });

            Console.WriteLine("Wanted Level: " + GTA.Read<int>(Player + PLAYER_INFO_OFFSET, new int[] { WANTED_LEVEL_OFFSET }).ToString());
            Console.WriteLine("Health: " + GTA.Read<float>(Player + LIFE_OFFSET).ToString());
            Console.WriteLine("Armor: " + GTA.Read<float>(Player + ARMOR_OFFSET).ToString());
            System.Threading.Thread.Sleep(100000);
        }   
    }
}
VirusTotal
Jotti Malware Scan
MetaDefender
How would you trigger script events? Ie for kicks?
Quote Originally Posted by MikeRohsoft View Post
My Generic C# Memory Class, just some more Advanced.
It supports now PatternScan and offset reading.
It's also very simple to use, i let suffer GTA a little bit more for you:
Code:
using System;

namespace ConsoleApp1
{
    class Program
    {
        static void Main(string[] args)
        {
            const int WORLD_OFFSET = 8;
            const int LIFE_OFFSET = 0x280;
            const int ARMOR_OFFSET = 0x14B8;
            const int PLAYER_INFO_OFFSET = 0x10B8;
            const int WANTED_LEVEL_OFFSET = 0x0780 + 0x0098;

            Memory GTA = new Memory("GTA5");
            Console.WriteLine("Game process Id: " + GTA.GetProcessID().ToString("x8").ToUpper());

            // UInt64 WorldFlirtPointer = GTA.PointerScan("\x48\x8B\x05\x90\x90\x90\x90\x45\x90\x90\x90\x90\x48\x8B\x48\x08\x48\x85\xC9\x74\x07", "xxx????x????xxxxxxxxx");
            UInt64 WorldFlirtPointer = GTA.PointerScan("48 8B 05 ? ? ? ? 45 ? ? ? ? 48 8B 48 08 48 85 C9 74 07");
            Console.WriteLine("World FLIRT Address: " + WorldFlirtPointer.ToString("x8"));

            UInt64 World = GTA.ReadRelativeAddress(WorldFlirtPointer);
            Console.WriteLine("World Address: " + World.ToString("x8"));

            UInt64 Player = GTA.Read<UInt64>(World, new int[] { WORLD_OFFSET });
            Console.WriteLine("Player Address: " + Player.ToString("x8"));

            Console.WriteLine("Health: " + GTA.Read<float>(Player + LIFE_OFFSET).ToString());
            Console.WriteLine("Armor: " + GTA.Read<float>(Player + ARMOR_OFFSET).ToString());
            Console.WriteLine("Wanted Level: " + GTA.Read<int>(Player + PLAYER_INFO_OFFSET, new int[] { WANTED_LEVEL_OFFSET }).ToString());
            
            GTA.Write<float>(Player + LIFE_OFFSET, 150.0f);
            GTA.Write<float>(Player + ARMOR_OFFSET, 50.0f);
            GTA.Write<int>(Player + PLAYER_INFO_OFFSET, 5, new int[] { WANTED_LEVEL_OFFSET });

            Console.WriteLine("Wanted Level: " + GTA.Read<int>(Player + PLAYER_INFO_OFFSET, new int[] { WANTED_LEVEL_OFFSET }).ToString());
            Console.WriteLine("Health: " + GTA.Read<float>(Player + LIFE_OFFSET).ToString());
            Console.WriteLine("Armor: " + GTA.Read<float>(Player + ARMOR_OFFSET).ToString());
            System.Threading.Thread.Sleep(100000);
        }   
    }
}
VirusTotal
Jotti Malware Scan
MetaDefender
error
Code:
Error	1	The name 'ptrScan' does not exist in the current context
Posts 19 of 9 · Page 1 of 1

Post a Reply

Similar Threads

Tags for this Thread

None

Need help?