) how to use Pointers (these Multi-Level-Things), that I got from CE?

Dim mem As New memory_Jorndel
Dim XP As Integer
mem.Process_Handle("Flight.exe")
XP = mem.ReadInteger(&H10845AC)
XP = mem.ReadInteger(XP + &H25C)
XP = mem.ReadInteger(XP + &H3BC)
XP = mem.ReadInteger(XP + &H238)
XP = mem.ReadInteger(XP + &H254)
XP = mem.ReadInteger(XP + &H3E4)
MsgBox(XP)
http://i.imgur.com/vvHmOQU.png
Dim mem As New memory_Jorndel
Dim XP As Integer
mem.Process_Handle("Flight.exe")
XP = mem.ReadInteger(&H10845AC)
XP = mem.ReadInteger(XP + &H25C)
XP = mem.ReadInteger(XP + &H3BC)
XP = mem.ReadInteger(XP + &H238)
XP = mem.ReadInteger(XP + &H254)
XP = mem.ReadInteger(XP + &H3E4)
MsgBox(XP)


Dim addr1 As Integer = ReadInteger(_mainModuleBase + &H010845AC)
Dim addr2 As Integer = ReadInteger(addr1 + &H25C)
Dim addr3 As Integer = ReadInteger(addr2 + &H3bc)
Dim addr4 as Integer = ReadInteger(addr3 + &H238)
Dim addr5 As Integer = ReadInteger(addr4 + &H254)
Dim addr6 As Integer = ReadInteger(addr5 + &H3e4)
MsgBox("Final address: 0x" & addr6.ToString("X"))
''You can re-use one Integer variable as in the example above. I did it this way for clarity - hopefully.
Imports System.Runtime.InteropServices
Imports System.Text
Public Class memory_Jorndel
#Region "Basic Stuff"
<DllImport("kernel32.dll")> _
Private Shared Function ReadProcessMemory(hProcess As IntPtr, lpBaseAddress As IntPtr, <[In](), Out()> buffer As Byte(), size As UInt32, ByRef lpNumberOfBytesWritten As IntPtr) As Int32
End Function
<DllImport("kernel32.dll")> _
Private Shared Function WriteProcessMemory(hProcess As IntPtr, lpBaseAddress As IntPtr, <[In](), Out()> buffer As Byte(), size As UInt32, ByRef lpNumberOfBytesWritten As IntPtr) As Int32
End Function
<DllImport("user32.dll", CharSet:=CharSet.Auto, ExactSpelling:=True)> _
Public Shared Function GetKeyState(ByVal virtualKeyCode As Keys) As Short
End Function
Private pHandel As IntPtr
Private procId As Integer
Private mainModuleBase As Integer
Public Function Process_Handle(ProcessName As String) As Boolean
Try
Dim ProcList As Process() = Process.GetProcessesByName(ProcessName)
If ProcList.Length = 0 Then
Return False
Else
pHandel = ProcList(0).Handle
procId = ProcList(0).Id
mainModuleBase = ProcList(0).MainModule.BaseAddress
Return True
End If
Catch ex As Exception
Console.Beep()
Console.WriteLine("Process_Handle - " + ex.Message)
Return False
End Try
End Function
Public ReadOnly Property GetMainModuleBase() As Int32
Get
Return MainModuleBase
End Get
End Property
Private Function Read(Address As Integer, Length As Integer) As Byte()
Dim Buffer As Byte() = New Byte(Length - 1) {}
Dim Zero As IntPtr = IntPtr.Zero
ReadProcessMemory(pHandel, New IntPtr(Address), Buffer, UInt32.Parse(Buffer.Length), Zero)
Return Buffer
End Function
Private Sub Write(Address As Integer, Value As Integer)
Dim Buffer As Byte() = BitConverter.GetBytes(Value)
Dim Zero As IntPtr = IntPtr.Zero
WriteProcessMemory(pHandel, New IntPtr(Address), Buffer, UInt32.Parse(Buffer.Length), Zero)
End Sub
#End Region
'This is the part you want to edit
#Region "Write Functions (Integer & String)"
Public Sub WriteInteger(Address As Integer, Value As Integer)
Write(Address, Value)
End Sub
Public Sub WriteString(Address As Integer, Text As String)
Dim Buffer As Byte() = New ASCIIEncoding().GetBytes(Text)
Dim Zero As IntPtr = IntPtr.Zero
WriteProcessMemory(pHandel, New IntPtr(Address), Buffer, UInt32.Parse(Buffer.Length), Zero)
End Sub
Public Sub WriteBytes(Address As Integer, Bytes As Byte())
Dim Zero As IntPtr = IntPtr.Zero
WriteProcessMemory(pHandel, New IntPtr(Address), Bytes, CUInt(Bytes.Length), Zero)
End Sub
Public Sub WriteNOP(Address As Integer)
Dim Buffer As Byte() = New Byte() {&H90, &H90, &H90, &H90, &H90}
Dim Zero As IntPtr = IntPtr.Zero
WriteProcessMemory(pHandel, New IntPtr(Address), Buffer, UInt32.Parse(Buffer.Length), Zero)
End Sub
#End Region
#Region "Read Functions (Integer & String)"
Public Function ReadInteger(Address As Integer, Optional Length As Integer = 4) As Integer
Return BitConverter.ToInt32(Read(Address, Length), 0)
End Function
Public Function ReadString(Address As Integer, Optional Length As Integer = 4) As String
Return New ASCIIEncoding().GetString(Read(Address, Length))
End Function
Public Function ReadBytes(Address As Integer, Length As Integer) As Byte()
Return Read(Address, Length)
End Function
#End Region
#Region "Extra"
Public Function HotKey(Key As Keys) As Boolean
Return Convert.ToBoolean(GetKeyState(Key))
End Function
Private Check_res As Boolean = True
Public Function Check_Value(Value As String) As Integer
For Each a As Char In Value
If Char.IsNumber(a, 0) Then
Check_res = True
Else
Check_res = False
Return 0
Exit For
End If
Next
Return Convert.ToInt32(Value)
End Function
#End Region
End Class
mem.Process_Handle("Flight.exe")
Dim addr1 As Integer = mem.ReadInteger(mem.GetMainModuleBase + &H10845AC)
Dim addr2 As Integer = mem.ReadInteger(addr1 + &H25C)
Dim addr3 As Integer = mem.ReadInteger(addr2 + &H3BC)
Dim addr4 As Integer = mem.ReadInteger(addr3 + &H238)
Dim addr5 As Integer = mem.ReadInteger(addr4 + &H254)
Dim addr6 As Integer = mem.ReadInteger(addr5 + &H3E4)
MsgBox("Final address: 0x" & addr6.ToString("X"))

Private mainModuleBase As Integer





Imports System.Runtime.InteropServices
Imports System.Text
Public Class memory_Jorndel
#Region "Basic Stuff"
<DllImport("kernel32.dll")> _
Private Shared Function ReadProcessMemory(hProcess As IntPtr, lpBaseAddress As IntPtr, <[In](), Out()> buffer As Byte(), size As UInt32, ByRef lpNumberOfBytesWritten As IntPtr) As Int32
End Function
<DllImport("kernel32.dll")> _
Private Shared Function WriteProcessMemory(hProcess As IntPtr, lpBaseAddress As IntPtr, <[In](), Out()> buffer As Byte(), size As UInt32, ByRef lpNumberOfBytesWritten As IntPtr) As Int32
End Function
<DllImport("user32.dll", CharSet:=CharSet.Auto, ExactSpelling:=True)> _
Public Shared Function GetKeyState(ByVal virtualKeyCode As Keys) As Short
End Function
Private pHandel As IntPtr
Private procId As Integer
Private mainModuleBase As Integer
Public Function Process_Handle(ProcessName As String) As Boolean
Try
Dim ProcList As Process() = Process.GetProcessesByName(ProcessName)
If ProcList.Length = 0 Then
Return False
Else
pHandel = ProcList(0).Handle
procId = ProcList(0).Id
mainModuleBase = ProcList(0).MainModule.BaseAddress
Return True
End If
Catch ex As Exception
Console.Beep()
Console.WriteLine("Process_Handle - " + ex.Message)
Return False
End Try
End Function
Public ReadOnly Property GetMainModuleBase() As Int32
Get
Return MainModuleBase
End Get
End Property
Private Function Read(Address As Integer, Length As Integer) As Byte()
Dim Buffer As Byte() = New Byte(Length - 1) {}
Dim Zero As IntPtr = IntPtr.Zero
ReadProcessMemory(pHandel, New IntPtr(Address), Buffer, UInt32.Parse(Buffer.Length), Zero)
Return Buffer
End Function
Private Sub Write(Address As Integer, Value As Integer)
Dim Buffer As Byte() = BitConverter.GetBytes(Value)
Dim Zero As IntPtr = IntPtr.Zero
WriteProcessMemory(pHandel, New IntPtr(Address), Buffer, UInt32.Parse(Buffer.Length), Zero)
End Sub
#End Region
'This is the part you want to edit
#Region "Write Functions (Integer & String)"
Public Sub WriteInteger(Address As Integer, Value As Integer)
Write(Address, Value)
End Sub
Public Sub WriteString(Address As Integer, Text As String)
Dim Buffer As Byte() = New ASCIIEncoding().GetBytes(Text)
Dim Zero As IntPtr = IntPtr.Zero
WriteProcessMemory(pHandel, New IntPtr(Address), Buffer, UInt32.Parse(Buffer.Length), Zero)
End Sub
Public Sub WriteBytes(Address As Integer, Bytes As Byte())
Dim Zero As IntPtr = IntPtr.Zero
WriteProcessMemory(pHandel, New IntPtr(Address), Bytes, CUInt(Bytes.Length), Zero)
End Sub
Public Sub WriteNOP(Address As Integer)
Dim Buffer As Byte() = New Byte() {&H90, &H90, &H90, &H90, &H90}
Dim Zero As IntPtr = IntPtr.Zero
WriteProcessMemory(pHandel, New IntPtr(Address), Buffer, UInt32.Parse(Buffer.Length), Zero)
End Sub
#End Region
#Region "Read Functions (Integer & String)"
Public Function ReadInteger(Address As Integer, Optional Length As Integer = 4) As Integer
Return BitConverter.ToInt32(Read(Address, Length), 0)
End Function
Public Function ReadString(Address As Integer, Optional Length As Integer = 4) As String
Return New ASCIIEncoding().GetString(Read(Address, Length))
End Function
Public Function ReadBytes(Address As Integer, Length As Integer) As Byte()
Return Read(Address, Length)
End Function
#End Region
#Region "Extra"
Public Function HotKey(Key As Keys) As Boolean
Return Convert.ToBoolean(GetKeyState(Key))
End Function
Private Check_res As Boolean = True
Public Function Check_Value(Value As String) As Integer
For Each a As Char In Value
If Char.IsNumber(a, 0) Then
Check_res = True
Else
Check_res = False
Return 0
Exit For
End If
Next
Return Convert.ToInt32(Value)
End Function
#End Region
End Class

XP = mem.ReadInteger(mem.GetMainModuleBase + H10845AC)
XP = mem.ReadInteger(XP + &H25C)
XP = mem.ReadInteger(XP + &H3BC)
XP = mem.ReadInteger(XP + &H238)
XP = mem.ReadInteger(XP + &H254)
XP = mem.ReadInteger(XP + &H3E4)
)
Dim XP As IntPtr
XP = CInt(Process.GetProcessesByName("Flight")(0).MainModule.BaseAddress)
XP = ReadMemory(Of Integer)(XP + &H10845AC)
XP = ReadMemory(Of Integer)(XP + &H25C)
XP = ReadMemory(Of Integer)(XP + &H3BC)
XP = ReadMemory(Of Integer)(XP + &H238)
XP = ReadMemory(Of Integer)(XP + &H254)
XP = ReadMemory(Of Integer)(XP + &H3E4)
MsgBox(XP.ToString)
Dim XP As IntPtr
Dim mem As New memory_Jorndel
mem.Process_Handle("Flight")
XP = CInt(Process.GetProcessesByName("Flight")(0).MainModule.BaseAddress)
XP = mem.ReadInteger(XP + &H10845AC)
XP = mem.ReadInteger(XP + &H25C)
XP = mem.ReadInteger(XP + &H3BC)
XP = mem.ReadInteger(XP + &H238)
XP = mem.ReadInteger(XP + &H254)
XP = mem.ReadInteger(XP + &H3E4)
MsgBox(XP.ToString)
