Code:
   Private Declare Function OpenProcess Lib "kernel32" (ByVal dwDesiredAccess As Integer, ByVal bInheritHandle As Integer, ByVal dwProcessId As Integer) As Integer
    Private Declare Function WriteProcessMemory Lib "kernel32" (ByVal hProcess As Integer, ByVal lpBaseAddress As Integer, ByRef lpBuffer As ULong, ByVal nSize As Integer, ByRef lpNumberOfBytesWritten As Integer) As Integer
    Private Declare Function WriteFloatMemory Lib "kernel32" Alias "WriteProcessMemory" (ByVal hProcess As Integer, ByVal lpBaseAddress As Integer, ByRef lpBuffer As Single, ByVal nSize As Integer, ByRef lpNumberOfBytesWritten As Integer) As Integer
    Private Declare Function ReadFloat Lib "kernel32" Alias "ReadProcessMemory" (ByVal hProcess As IntPtr, ByVal lpBaseAddress As IntPtr, ByRef buffer As Single, ByVal size As Int32, ByRef lpNumberOfBytesRead As Int32) As Boolean
    Private Declare Function ReadProcessMemory Lib "kernel32" Alias "ReadProcessMemory" (ByVal hProcess As Integer, ByVal lpBaseAddress As Integer, ByRef lpBuffer As Integer, ByVal nSize As Integer, ByRef lpNumberOfBytesWritten As Integer) As Integer
    Private Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Integer) As Integer
    Public Declare Function GetAsyncKeyState Lib "user32" (ByVal vKey As Long) As Integer
    Public Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
    Public Declare Function GetDC Lib "user32" (ByVal hWnd As Long) As Long
    Public Declare Function SetBkMode Lib "gdi32" (ByVal hDC As Long, ByVal nBkMode As Long) As Long
    Public Declare Function SetTextColor Lib "gdi32" (ByVal hDC As Long, ByVal crColor As Long) As Long
    Public Declare Function TextOut Lib "gdi32" Alias "TextOutA" (ByVal hDC As Long, ByVal X As Long, ByVal Y As Long, ByVal lpString As String, ByVal nCount As Long) As Long
    Public Declare Function SetBkColor Lib "gdi32" (ByVal hDC As Long, ByVal crColor As Long) As Long
    Public Declare Function UpdateWindow Lib "user32" (ByVal hWnd As Long) As Long
    Public Declare Function ReleaseDC Lib "user32" (ByVal hWnd As Long, ByVal hDC As Long) As Long
    Public Const TRANSPARENT = 1
    Public Const OPAQUE = 2

    Public RBuff As Long
    Public RBuff2 As Single
    Public RBuff3 As Integer

    'Poke Addresses'

    Public Function W1Byte(ByVal Address As Integer, ByVal Value As Byte)
        Dim LookUp As Process() = Process.GetProcessesByName("iw5mp")
        If LookUp.Length = 0 Then
            MsgBox("iw5mp.exe not found!")
            Exit Function
        End If
        Dim processHandle As IntPtr = OpenProcess(&H1F0FFF, 0, LookUp(0).Id)
        WriteProcessMemory(processHandle, Address, Value, 1, Nothing)
        CloseHandle(processHandle)
    End Function

    Public Function W2Bytes(ByVal Address As Integer, ByVal Value As Integer)
        Dim LookUp As Process() = Process.GetProcessesByName("iw5mp")
        If LookUp.Length = 0 Then
            MsgBox("iw5mp.exe not found!")
            Exit Function
        End If
        Dim processHandle As IntPtr = OpenProcess(&H1F0FFF, 0, LookUp(0).Id)
        WriteProcessMemory(processHandle, Address, Value, 2, Nothing)
        CloseHandle(processHandle)
    End Function

    Public Function W4Bytes(ByVal Address As Integer, ByVal Value As Long)
        Dim LookUp As Process() = Process.GetProcessesByName("iw5mp")
        If LookUp.Length = 0 Then
            MsgBox("iw5mp.exe not found!")
            Exit Function
        End If
        Dim processHandle As IntPtr = OpenProcess(&H1F0FFF, 0, LookUp(0).Id)
        WriteProcessMemory(processHandle, Address, Value, 4, Nothing)
        CloseHandle(processHandle)
        MsgBox("Applied!", MsgBoxStyle.Information)
    End Function

    Public Function W8Bytes(ByVal Address As Integer, ByVal Value As ULong)
        Dim LookUp As Process() = Process.GetProcessesByName("iw5mp")
        If LookUp.Length = 0 Then
            MsgBox("iw5mp.exe not found!")
            Exit Function
        End If
        Dim processHandle As IntPtr = OpenProcess(&H1F0FFF, 0, LookUp(0).Id)
        WriteProcessMemory(processHandle, Address, Value, 8, Nothing)
        CloseHandle(processHandle)
    End Function

    Public Function WFloat(ByVal Address As Integer, ByVal Value As Single, ByVal Bytes As Integer)
        Dim LookUp As Process() = Process.GetProcessesByName("iw5mp")
        If LookUp.Length = 0 Then
            MsgBox("iw5mp.exe not found!")

            Exit Function
        End If
        Dim processHandle As IntPtr = OpenProcess(&H1F0FFF, 0, LookUp(0).Id)
        WriteProcessMemory(processHandle, Address, Value, Bytes, Nothing)
        CloseHandle(processHandle)
    End Function

    Public Function WDouble(ByVal Address As Integer, ByVal Value As Double, ByVal Bytes As Integer)
        Dim LookUp As Process() = Process.GetProcessesByName("iw5mp")
        If LookUp.Length = 0 Then
            MsgBox("iw5mp.exe not found!")
            Exit Function
        End If
        Dim processHandle As IntPtr = OpenProcess(&H1F0FFF, 0, LookUp(0).Id)
        WriteProcessMemory(processHandle, Address, Value, Bytes, Nothing)
        CloseHandle(processHandle)
    End Function

    'Read Addresses'

    Public Function ReadAddress(ByVal Address As Integer, ByVal Bytes As Integer)
        Dim LookUp As Process() = Process.GetProcessesByName("iw5mp")
        If LookUp.Length = 0 Then
            MsgBox("iw5mp.exe not found!")

            Exit Function
        End If
        Dim processHandle As IntPtr = OpenProcess(&H1F0FFF, 0, LookUp(0).Id)
        ReadProcessMemory(processHandle, Address, RBuff, 4, Nothing)
        CloseHandle(processHandle)
        Return RBuff
    End Function

    'Read Addresses ( Pointers )'

    Public Function ReadFloatPointer(ByVal Base As Integer, ByVal Offset As Short)
        Dim fullAddress As Long
        Dim LookUp As Process() = Process.GetProcessesByName("iw5mp")
        If LookUp.Length = 0 Then
            MsgBox("iw5mp.exe not found!")
            Exit Function
        End If
        Dim processHandle As IntPtr = OpenProcess(&H1F0FFF, 0, LookUp(0).Id)
        ReadProcessMemory(processHandle, Base, RBuff, 4, Nothing)
        fullAddress = RBuff + Offset
        ReadFloat(processHandle, fullAddress, RBuff2, 4, Nothing)
        Return RBuff2
        CloseHandle(processHandle)
    End Function

    Public Function Read4BytesPointer(ByVal Base As Integer, ByVal Offset As Short, ByVal Bytes As Integer)
        Dim fullAddress As Long
        Dim LookUp As Process() = Process.GetProcessesByName("iw5mp")
        If LookUp.Length = 0 Then
            MsgBox("iw5mp.exe not found!")
            Exit Function
        End If
        Dim processHandle As IntPtr = OpenProcess(&H1F0FFF, 0, LookUp(0).Id)
        ReadProcessMemory(processHandle, Base, RBuff, 4, Nothing)
        fullAddress = RBuff + Offset
        ReadProcessMemory(processHandle, fullAddress, RBuff3, Bytes, Nothing)
        Return RBuff3
        CloseHandle(processHandle)
    End Function

    'Poke Addresses ( Pointers )'

    Public Function P1Byte(ByVal Base As Integer, ByVal Offset As Short, ByVal Value As Byte)
        Dim fullAddress As Long
        Dim LookUp As Process() = Process.GetProcessesByName("iw5mp")
        If LookUp.Length = 0 Then
            MsgBox("iw5mp.exe not found!")

            Exit Function
        End If
        Dim processHandle As IntPtr = OpenProcess(&H1F0FFF, 0, LookUp(0).Id)
        ReadProcessMemory(processHandle, Base, RBuff, 1, Nothing)
        fullAddress = RBuff + Offset
        WriteProcessMemory(processHandle, fullAddress, Value, 1, Nothing)
        CloseHandle(processHandle)
    End Function

    Public Function P2Bytes(ByVal Base As Integer, ByVal Offset As Short, ByVal Value As Integer)
        Dim fullAddress As Long
        Dim LookUp As Process() = Process.GetProcessesByName("iw5mp")
        If LookUp.Length = 0 Then
            MsgBox("iw5mp.exe not found!")

            Exit Function
        End If
        Dim processHandle As IntPtr = OpenProcess(&H1F0FFF, 0, LookUp(0).Id)
        ReadProcessMemory(processHandle, Base, RBuff, 2, Nothing)
        fullAddress = RBuff + Offset
        WriteProcessMemory(processHandle, fullAddress, Value, 2, Nothing)
        CloseHandle(processHandle)
    End Function

    Public Function P4Bytes(ByVal Base As Integer, ByVal Offset As Short, ByVal Value As Long)
        Dim fullAddress As Long
        Dim LookUp As Process() = Process.GetProcessesByName("iw5mp")
        If LookUp.Length = 0 Then
            MsgBox("iw5mp.exe not found!")
            Exit Function
        End If
        Dim processHandle As IntPtr = OpenProcess(&H1F0FFF, 0, LookUp(0).Id)
        ReadProcessMemory(processHandle, Base, RBuff, 4, Nothing)
        fullAddress = RBuff + Offset
        WriteProcessMemory(processHandle, fullAddress, Value, 4, Nothing)
        CloseHandle(processHandle)
    End Function

    'NOP'

    Public Function NOP(ByVal Address As Integer, ByVal Bytes As Integer)
        Dim LookUp As Process() = Process.GetProcessesByName("iw5mp")
        If LookUp.Length = 0 Then
            MsgBox("iw5mp.exe not found!")

            Exit Function
        End If
        Dim processHandle As IntPtr = OpenProcess(&H1F0FFF, 0, LookUp(0).Id)
        WriteProcessMemory(processHandle, Address, &H90, 1, Nothing)
        CloseHandle(processHandle)
    End Function
Credits: dbhackerZ

Example:
Code:
msgbox(ReadAddress("&h1cd8c54", 4))
Code:
 W4Bytes("&h1cd8c54", Textbox1.text)
Notes:
Not all addresses are 4 bytes
All vb.net addresses must start with a "&h"
This is easy to find on google

Enjoy