Skip to content
MPGHThe Dark Arts
/
RegisterLog in
Forum
Community
What's NewLatest posts across the boardTrendingHottest threads right nowSubscribedThreads you follow
Discussion
GeneralIntroductionsEntertainmentDebate FortFlaming & Rage
Board
News & AnnouncementsMPGH TimesSuggestions & HelpGiveaways
More Sections
Art & Graphic DesignProgrammingHackingCryptocurrency
Hacks & Cheats
Games
ValorantCS2 / CS:GOCall of Duty / WarzoneFortniteApex LegendsEscape From Tarkov
+14 moreLeague of LegendsGTA VMinecraftRustROTMGBattlefieldTroveBattleOnCombat ArmsCrossFireBlackshotRuneScapeDayZDead by Daylight
Resources
Game Hacking TutorialsReverse EngineeringGeneral Game HackingAnti-CheatConsole Game Hacking
Tools
Game Hacking ToolsTrainers & CheatsHack/Release NewsNew
Submit a release →Share your cheat, tool, or config with the community.
AINEW
AI Tools
General & DiscussionPrompt EngineeringLLM JailbreaksHotAI Agents & AutomationLocal / Open Models
AI × Gaming
AI Aimbots & VisionML Anti-CheatGame Bots & Automation
Create
AI Coding / Vibe CodingAI Art & MediaAI Voice & TTS
The AI frontier →Where game hacking meets modern machine learning. Jump in.
Marketplace
Buy & Sell
SellingBuyingTradingUser Services
Trust & Safety
Middleman LoungeMarketplace TalkVouch Copy Profiles
Money
Cryptocurrency TalkCurrency ExchangeWork & Job Offers
Start selling →List accounts, services, and goods. Use the middleman to trade safe.
MPGH The Dark Arts

A community for offensive security research, reverse engineering, and AI.

Community

ForumMarketplaceSearch

Account

RegisterLog in

Legal

Privacy PolicyForum RulesHelp & FAQ
© 2026 MPGH · All rights reserved.Built by the community, for the community. For educational purposes onlyContent is shared for security research and education — we don't condone illegal use. You're responsible for complying with applicable laws. Use at your own risk.
Home › Forum › MultiPlayer Game Hacks & Cheats › Call of Duty Hacks & Cheats › Call of Duty 8 - Modern Warfare 3 (MW3) Hacks & Cheats › Call of Duty Modern Warfare 3 Coding, Programming & Source Code › VB.Net Memory Class (Writen by Jorndel)

Red faceVB.Net Memory Class (Writen by Jorndel)

Posts 1–15 of 26 · Page 1 of 2
Jorndel
Jorndel
VB.Net Memory Class (Writen by Jorndel)
Well, so I re-wrote the Trainer Class. (Also re-named it.)

What is new:
It's way shorter thanks too: Dr. D (That informed me that I didn't need to use the OpenProcess() )

New Functions:
Process_Handle = Process to write/read too. (Returns an Boolean Value)
-Write-
WriteInteger = Writes an integer. (4 byte) Address = Offset to Write. Value = Value to Write.
WriteString = Writes an string. Address = Offset to Write. Text= String to Write.
WriteBytes = Writes an Byte Array. Address = Offset to Write. Bytes= Byte Array to Write.
WriteNOP = Writes an Byte Array. 5 Bytes of 0x90. Address = Offset to Write.
-Read-
ReadInteger = Reads an integer. (4 Byte also able to change) Address = Offset to Read. Length = Bytes to write [OPTIMAL]
ReadString = Reads an string. Address = Offset to Read from. Length = Length to read.
ReadBytes = Reads an Byte Array. Address = Offset to Read from. Length = Length to read.
-Extra-
HotKey = Allow you to check if the key is down. (Need to be in a timer to work)
Check_Value = Allow you to check the input in the TextBox / String. (If it's not a number, it returns 0. Else the written value)

Image:

Scans:
Memory Class VB.Net.rar - Jotti's malware scan
https://www.virustotal.com/file/c445...is/1337500752/
Report - Antivirus online virus scan - viruschief.com
Memory Class VB.Net_mpgh.net.rar
#1 · 14y ago
PH
Phusic
so should I use this instead of
Code:
<Flags()> _
    Public Enum ProcessAccessType
        PROCESS_TERMINATE = (&H1)
        PROCESS_CREATE_THREAD = (&H2)
        PROCESS_SET_SESSIONID = (&H4)
        PROCESS_VM_OPERATION = (&H8)
        PROCESS_VM_READ = (&H10)
        PROCESS_VM_WRITE = (&H20)
        PROCESS_DUP_HANDLE = (&H40)
        PROCESS_CREATE_PROCESS = (&H80)
        PROCESS_SET_QUOTA = (&H100)
        PROCESS_SET_INFORMATION = (&H200)
        PROCESS_QUERY_INFORMATION = (&H400)
    End Enum
    <DllImport("kernel32.dll")> _
    Public Shared Function OpenProcess(ByVal dwDesiredAccess As UInt32, ByVal bInheritHandle As Int32, ByVal dwProcessId As UInt32) As IntPtr
    End Function
    <DllImport("kernel32.dll")> _
    Public Shared Function CloseHandle(ByVal hObject As IntPtr) As Int32
    End Function
    <DllImport("kernel32.dll")> _
    Public Shared Function ReadProcessMemory(ByVal hProcess As IntPtr, ByVal lpBaseAddress As IntPtr, <[In](), Out()> ByVal buffer As Byte(), ByVal size As UInt32, ByRef lpNumberOfBytesRead As IntPtr) As Int32
    End Function
    <DllImport("kernel32.dll")> _
    Public Shared Function WriteProcessMemory(ByVal hProcess As IntPtr, ByVal lpBaseAddress As IntPtr, <[In](), Out()> ByVal buffer As Byte(), ByVal size As UInt32, ByRef lpNumberOfBytesWritten As IntPtr) As Int32
    End Function
 
 
    Public Function Hack(ByVal Application As String) As Boolean
        Dim pArray As Process() = Process.GetProcessesByName(Application)
        If pArray.Length = 0 Then
            Return True
        End If
        ReadProcess = pArray(0)
        Open()
        Return False
    End Function
 
    Public Sub SetInt(ByVal Address As Integer, ByVal Value As Integer)
        Dim byteswritten As Integer
        Write(Address, BitConverter.GetBytes(Value), byteswritten)
    End Sub
 
 
    Public Sub SetByte(ByVal Address As Integer, ByVal Value As Byte())
        Dim byteswritten As Integer
        Write(Address, Value, byteswritten)
    End Sub
 
 
    Private Property ReadProcess() As Process
        Get
            Return m_ReadProcess
        End Get
        Set(ByVal value As Process)
            m_ReadProcess = value
        End Set
    End Property
    Private m_ReadProcess As Process = Nothing
    Private m_hProcess As IntPtr = IntPtr.Zero
    Private Sub Open()
        Dim access As ProcessAccessType
        access = ProcessAccessType.PROCESS_VM_READ Or ProcessAccessType.PROCESS_VM_WRITE Or ProcessAccessType.PROCESS_VM_OPERATION
        m_hProcess = OpenProcess(CUInt(access), 1, CUInt(m_ReadProces*****))
    End Sub
    Private Sub CloseHandle()
        Dim iRetValue As Integer
        iRetValue = CloseHandle(m_hProcess)
        If iRetValue = 0 Then
            Throw New Exception("CloseHandle failed")
        End If
    End Sub
    Private Sub Write(ByVal MemoryAddress As IntPtr, ByVal bytesToWrite As Byte(), ByRef bytesWritten As Integer)
        Dim ptrBytesWritten As IntPtr
        WriteProcessMemory(m_hProcess, MemoryAddress, bytesToWrite, CUInt(bytesToWrite.Length), ptrBytesWritten)
        bytesWritten = ptrBytesWritten.ToInt32()
    End Sub
#2 · 14y ago
Jorndel
Jorndel
Quote Originally Posted by Phusic View Post
so should I use this instead of
Code:
<Flags()> _
    Public Enum ProcessAccessType
        PROCESS_TERMINATE = (&H1)
        PROCESS_CREATE_THREAD = (&H2)
        PROCESS_SET_SESSIONID = (&H4)
        PROCESS_VM_OPERATION = (&H8)
        PROCESS_VM_READ = (&H10)
        PROCESS_VM_WRITE = (&H20)
        PROCESS_DUP_HANDLE = (&H40)
        PROCESS_CREATE_PROCESS = (&H80)
        PROCESS_SET_QUOTA = (&H100)
        PROCESS_SET_INFORMATION = (&H200)
        PROCESS_QUERY_INFORMATION = (&H400)
    End Enum
    <DllImport("kernel32.dll")> _
    Public Shared Function OpenProcess(ByVal dwDesiredAccess As UInt32, ByVal bInheritHandle As Int32, ByVal dwProcessId As UInt32) As IntPtr
    End Function
    <DllImport("kernel32.dll")> _
    Public Shared Function CloseHandle(ByVal hObject As IntPtr) As Int32
    End Function
    <DllImport("kernel32.dll")> _
    Public Shared Function ReadProcessMemory(ByVal hProcess As IntPtr, ByVal lpBaseAddress As IntPtr, <[In](), Out()> ByVal buffer As Byte(), ByVal size As UInt32, ByRef lpNumberOfBytesRead As IntPtr) As Int32
    End Function
    <DllImport("kernel32.dll")> _
    Public Shared Function WriteProcessMemory(ByVal hProcess As IntPtr, ByVal lpBaseAddress As IntPtr, <[In](), Out()> ByVal buffer As Byte(), ByVal size As UInt32, ByRef lpNumberOfBytesWritten As IntPtr) As Int32
    End Function
 
 
    Public Function Hack(ByVal Application As String) As Boolean
        Dim pArray As Process() = Process.GetProcessesByName(Application)
        If pArray.Length = 0 Then
            Return True
        End If
        ReadProcess = pArray(0)
        Open()
        Return False
    End Function
 
    Public Sub SetInt(ByVal Address As Integer, ByVal Value As Integer)
        Dim byteswritten As Integer
        Write(Address, BitConverter.GetBytes(Value), byteswritten)
    End Sub
 
 
    Public Sub SetByte(ByVal Address As Integer, ByVal Value As Byte())
        Dim byteswritten As Integer
        Write(Address, Value, byteswritten)
    End Sub
 
 
    Private Property ReadProcess() As Process
        Get
            Return m_ReadProcess
        End Get
        Set(ByVal value As Process)
            m_ReadProcess = value
        End Set
    End Property
    Private m_ReadProcess As Process = Nothing
    Private m_hProcess As IntPtr = IntPtr.Zero
    Private Sub Open()
        Dim access As ProcessAccessType
        access = ProcessAccessType.PROCESS_VM_READ Or ProcessAccessType.PROCESS_VM_WRITE Or ProcessAccessType.PROCESS_VM_OPERATION
        m_hProcess = OpenProcess(CUInt(access), 1, CUInt(m_ReadProces*****))
    End Sub
    Private Sub CloseHandle()
        Dim iRetValue As Integer
        iRetValue = CloseHandle(m_hProcess)
        If iRetValue = 0 Then
            Throw New Exception("CloseHandle failed")
        End If
    End Sub
    Private Sub Write(ByVal MemoryAddress As IntPtr, ByVal bytesToWrite As Byte(), ByRef bytesWritten As Integer)
        Dim ptrBytesWritten As IntPtr
        WriteProcessMemory(m_hProcess, MemoryAddress, bytesToWrite, CUInt(bytesToWrite.Length), ptrBytesWritten)
        bytesWritten = ptrBytesWritten.ToInt32()
    End Sub
Up to you
This is just smaller and easier to work with.
Also more options.

But use what you like the best :P
#3 · 14y ago
PH
Phusic
Quote Originally Posted by Jorndel View Post
Up to you
This is just smaller and easier to work with.
Also more options.

But use what you like the best :P
You say more options, what may these options be?
#4 · 14y ago
Jorndel
Jorndel
Quote Originally Posted by Phusic View Post
You say more options, what may these options be?
Like read the thread sometimes answers the question:

And see what you have...
#5 · 14y ago
PH
Phusic
Quote Originally Posted by Jorndel View Post
Like read the thread sometimes answers the question:

And see what you have...
oh god now I feel blind and stupid, sorry about that
#6 · 14y ago
NO
Nordiii
Quote Originally Posted by Jorndel View Post
Well, so I re-wrote the Trainer Class. (Also re-named it.)

What is new:
It's way shorter thanks too: Dr. D (That informed me that I didn't need to use the OpenProcess() )

New Functions:
Process_Handle = Process to write/read too. (Returns an Boolean Value)
-Write-
WriteInteger = Writes an integer. (4 byte) Address = Offset to Write. Value = Value to Write.
WriteString = Writes an string. Address = Offset to Write. Text= String to Write.
WriteBytes = Writes an Byte Array. Address = Offset to Write. Bytes= Byte Array to Write.
WriteNOP = Writes an Byte Array. 5 Bytes of 0x90. Address = Offset to Write.
-Read-
ReadInteger = Reads an integer. (4 Byte also able to change) Address = Offset to Read. Length = Bytes to write [OPTIMAL]
ReadString = Reads an string. Address = Offset to Read from. Length = Length to read.
ReadBytes = Reads an Byte Array. Address = Offset to Read from. Length = Length to read.
-Extra-
HotKey = Allow you to check if the key is down. (Need to be in a timer to work)
Check_Value = Allow you to check the input in the TextBox / String. (If it's not a number, it returns 0. Else the written value)

Image:

Scans:
Memory Class VB.Net.rar - Jotti's malware scan
https://www.virustotal.com/file/c445...is/1337500752/
Report - Antivirus online virus scan - viruschief.com

You could add read and write Floats and get BaseAddress


For every one who may need this and dont know how to write it (may it isn't the best solution I only work with java usually)

Write:
Code:
    Public Sub WriteFloat(Address As Integer, Float As Single)
        Dim Buffer As Byte() = BitConverter.GetBytes(Float)
        Dim Zero As IntPtr = IntPtr.Zero
        WriteProcessMemory(pHandel, New IntPtr(Address), Buffer, 4, Zero)
    End Sub
Read:
Code:
    Public Function ReadFloat(Address As Integer, Optional Length As Integer = 4) As Double
        Return BitConverter.ToSingle(Read(Address, Length), 0)
    End Function
And may add get BaseAddress to Process_Handle

Code:
    Private pHandel As IntPtr
    Private ProcessModule As ProcessModule
    Public BaseAddress As Integer
    Public Function Process_Handle(ProcessName As String) As Boolean
        Try
            ProcList = Process.GetProcessesByName(ProcessName)
            If ProcList.Length = 0 Then
                Return False
            Else
                pHandel = ProcList(0).Handle
                ProcessModule = ProcList(0).MainModule
                BaseAddress = ProcessModule.BaseAddress
                Return True
            End If
        Catch ex As Exception
            Console.WriteLine("Process_Handle - " + ex.Message)
            Return False
        End Try
    End Function
#7 · 13y ago
Jorndel
Jorndel
Quote Originally Posted by Nordiii View Post
You could add read and write Floats and get BaseAddress
Well, nice of you to add, but already released update with this in it
#8 · 13y ago
NO
Nordiii
Quote Originally Posted by Jorndel View Post


Well, nice of you to add, but already released update with this in it
Oh sorry I doesn't saw it I used this Class ^^ have nothing said :3
#9 · 13y ago
Jorndel
Jorndel
Quote Originally Posted by Nordiii View Post
Oh sorry I doesn't saw it I used this Class ^^ have nothing said :3
No problems

Glad to see someone use and appreciate it, and add some updates to it
#10 · 13y ago
FR
fredemm
Don't really understand how to use this
Could someone give me basic examples of selecting which process to read/Write from and how to Read/Write a certain memory adress
#11 · 13y ago
KE
Kenshin13
Quote Originally Posted by fredemm View Post
Don't really understand how to use this
Could someone give me basic examples of selecting which process to read/Write from and how to Read/Write a certain memory adress
Look at post #7 .....
#12 · edited 12y ago · 13y ago
Mayion
[MPGH]Mayion
Why are you telling at him idiot ??!?, someone ask for help you should help him not say this, stupid...
#13 · 13y ago
KE
Kenshin13
Quote Originally Posted by Mayion View Post
Why are you telling at him idiot ??!?, someone ask for help you should help him not say this, stupid...
Yea but ask for help after you at least tried to figure out the problem.... >.> Read 1% of a thread, don't understand.

Usual Choice: Read other 99%. If you can't figure it out after, ask for help.
His Choice: Read 1% and ask for help.

You tend to get pissed at that...
#14 · 13y ago
kooperpc
kooperpc
How can I modify the 8Bytes values?
#15 · 13y ago
Posts 1–15 of 26 · Page 1 of 2

Post a Reply

Similar Threads

  • C# Memory Class (Writen by Jorndel)By Jorndel in Call of Duty Modern Warfare 3 Coding, Programming & Source Code
    12Last post 7y ago
  • Easy Class Editor for alteriw.netBy sisadebela in Call of Duty Modern Warfare 2 Private Servers
    7Last post 16y ago
  • Memory Hack base Using Classes Help I Don't Get ItBy kmanev073 in CrossFire Hack Coding / Programming / Source Code
    10Last post 14y ago
  • [VB.Net] Read MemoryBy jabbathehutt in Visual Basic Programming
    10Last post 15y ago
  • [Help]Reading Stacks from memory using VB.netBy euverve in Visual Basic Programming
    2Last post 15y ago

Tags for this Thread

None