Ecco il nuovo modo di creare cheat....per chi usa VB.NET
Si puo dichiararla per chi usa SuspendProcess con "WithEvents xKeat As New xKeat("S4League_o_un_altro_processo")"(ha gli eventi),e senza una guida perche e simile a quela del kernel,per gli utenti che usano VB.NET sara un gioco da ragazzi capire come funziona la classe...
Esempio di un integerWrite:
Si puo dichiararla per chi usa SuspendProcess con "WithEvents xKeat As New xKeat("S4League_o_un_altro_processo")"(ha gli eventi),e senza una guida perche e simile a quela del kernel,per gli utenti che usano VB.NET sara un gioco da ragazzi capire come funziona la classe...
Esempio di un integerWrite:
Codice:
xKeat.integerWrite(xKeat.DevHandle(), &H55C43, 0)'Ovviamente dopo aver dichiarato come spora la variabile xKeat
Codice:
''' <summary>
''' Classe by Mr.Insanity
''' Comented by Mr.Insanity
''' </summary>
''' <remarks><see>http://.infoge.net</see></remarks>
Public Class xKeat
''' <summary>
''' Variabile che contiene il nome del processo!!!!!!!!
''' </summary>
''' <remarks></remarks>
Private Shared _DevName() As Process
''' <summary>
''' Dichiara il Nome del Processo(con o senza ".exe")
''' </summary>
''' <param name="DevName">Il nome del processo</param>
Sub New(ByVal DevName As String)
DevName = DevName.ToLower
DevName = DevName.Replace(".exe", "")
_DevName = Process.GetProcessesByName(DevName)
End Sub
''' <summary>
''' Variabile Privata che contiene il DevHandle!!!
''' </summary>
''' <remarks></remarks>
Private Shared _DevHandle As Integer
''' <summary>
''' Variabile Privata che contiene il Base-Address
''' </summary>
''' <remarks></remarks>
Private Shared _BaseAddress As Integer
''' <summary>
''' Read-Only Property DevHandle.Ritorna il handle del processo.
''' </summary>
''' <returns>Ritorna il handle del processo</returns>
Friend Shared ReadOnly Property DevHandle As Integer
Get
Try
_DevHandle = _DevName(0).Handle
Return _DevHandle
Catch ex As Exception
Return "Error@"
End Try
End Get
End Property
''' <summary>
''' Read-Only Property BaseAddress.Ritorna il Base-Address del processo.
''' </summary>
''' <returns>Ritorna il Base-Address del processo.</returns>
Friend Shared ReadOnly Property BaseAddress As Integer
Get
Try
_BaseAddress = _DevName(0).MainModule.BaseAddress
Return _BaseAddress
Catch ex As Exception
Return "Error@"
End Try
End Get
End Property
''' <summary>
''' Enumeratore che contiente i vari tipi di Type
''' </summary>
Enum _Type
TByte = 1
TShort_2Byte = 2
TInteger_4Byte = 4
TLong_8Byte = 8
TSingle_Float = 4
TDouble = 8
End Enum
' #################################Write/Read-Functions#################################-Start
'''<summary>
''' Scrive 1 byte in un'area di memoria di un processo specificato.
''' </summary>
''' <param name="DevHandle">Un handle al processo.</param>
''' <param name="Address">L'address di base dell'area di memoria da scrivere.</param>
''' <param name="NewValue">Un puntatore al buffer che contiene il valore che deve essere scritto nell'address.</param>
''' <param name="VirtualSize">Il numero di bytes che devono essere scritti. Default: 1.</param>
''' <param name="NmbB">Un pointer ad una variabile che ricevera il numero di bytes scritti nell'area di memoria. Se il valore e NULL, il parametro viene ignorato. Default: Nothing.</param>
''' <returns>Se la funzione ha successo, il valore restituito sara non-zero.</returns>
Friend Declare Function byteWrite Lib "NTDLL" Alias "ZwWriteVirtualMemory" (ByVal DevHandle As Integer, ByVal Address As Integer, ByRef NewValue As Byte, Optional ByVal VirtualSize As Integer = _Type.TByte, Optional ByRef NmbB As Integer = Nothing) As Byte
''' <summary>
''' Legge 1 Bytes di memoria.
''' </summary>
''' <param name="DevHandle">Un handle al processo.</param>
''' <param name="Address">L'address di base dell'area di memoria da leggere.</param>
''' <param name="ReturnValue">Un puntatore al buffer che ricevera il valore letto dall'address.</param>
''' <param name="VirtualSize">Il numero di bytes che devono essere letti. Default: 1.</param>
''' <param name="NmbB">Un pointer ad una variabile che ricevera il numero di bytes trasferiti nel buffer. Se il valore e NULL, il parametro viene ignorato. Default: Nothing.</param>
''' <returns>Se la funzione ha successo, il valore restituito sara non-zero.</returns>
Friend Declare Function byteRead Lib "NTDLL" Alias "ZwReadVirtualMemory" (ByVal DevHandle As Integer, ByVal Address As Integer, ByRef ReturnValue As Byte, Optional ByVal VirtualSize As Integer = _Type.TByte, Optional ByRef NmbB As Integer = Nothing) As Byte
'''<summary>
''' Scrive 2 byte in un'area di memoria di un processo specificato.
''' </summary>
''' <param name="DevHandle">Un handle al processo.</param>
''' <param name="Address">L'address di base dell'area di memoria da scrivere.</param>
''' <param name="NewValue">Un puntatore al buffer che contiene il valore che deve essere scritto nell'address.</param>
''' <param name="VirtualSize">Il numero di bytes che devono essere scritti. Default: 2.</param>
''' <param name="NmbB">Un pointer ad una variabile che ricevera il numero di bytes scritti nell'area di memoria. Se il valore e NULL, il parametro viene ignorato. Default: Nothing.</param>
''' <returns>Se la funzione ha successo, il valore restituito sara non-zero.</returns>
Friend Declare Function shortWrite Lib "NTDLL" Alias "ZwWriteVirtualMemory" (ByVal DevHandle As Integer, ByVal Address As Integer, ByRef NewValue As Short, Optional ByVal VirtualSize As Integer = _Type.TShort_2Byte, Optional ByRef NmbB As Integer = Nothing) As Short
''' <summary>
''' Legge 2 Bytes di memoria.
''' </summary>
''' <param name="DevHandle">Un handle al processo.</param>
''' <param name="Address">L'address di base dell'area di memoria da leggere.</param>
''' <param name="ReturnValue">Un puntatore al buffer che ricevera il valore letto dall'address.</param>
''' <param name="VirtualSize">Il numero di bytes che devono essere letti. Default: 2.</param>
''' <param name="NmbB">Un pointer ad una variabile che ricevera il numero di bytes trasferiti nel buffer. Se il valore e NULL, il parametro viene ignorato. Default: Nothing.</param>
''' <returns>Se la funzione ha successo, il valore restituito sara non-zero.</returns>
Friend Declare Function shortRead Lib "NTDLL" Alias "ZwReadVirtualMemory" (ByVal DevHandle As Integer, ByVal Address As Integer, ByRef ReturnValue As Short, Optional ByVal VirtualSize As Integer = _Type.TShort_2Byte, Optional ByRef NmbB As Integer = Nothing) As Short
'''<summary>
''' Scrive 4 byte in un'area di memoria di un processo specificato.
''' </summary>
''' <param name="DevHandle">Un handle al processo.</param>
''' <param name="Address">L'address di base dell'area di memoria da scrivere.</param>
''' <param name="NewValue">Un puntatore al buffer che contiene il valore che deve essere scritto nell'address.</param>
''' <param name="VirtualSize">Il numero di bytes che devono essere scritti. Default: 4.</param>
''' <param name="NmbB">Un pointer ad una variabile che ricevera il numero di bytes scritti nell'area di memoria. Se il valore e NULL, il parametro viene ignorato. Default: Nothing.</param>
''' <returns>Se la funzione ha successo, il valore restituito sara non-zero.</returns>
Friend Declare Function integerWrite Lib "NTDLL" Alias "ZwWriteVirtualMemory" (ByVal DevHandle As Integer, ByVal Address As Integer, ByRef NewValue As Integer, Optional ByVal VirtualSize As Integer = _Type.TInteger_4Byte, Optional ByRef NmbB As Integer = Nothing) As Integer
''' <summary>
''' Legge 4 Bytes di memoria.
''' </summary>
''' <param name="DevHandle">Un handle al processo.</param>
''' <param name="Address">L'address di base dell'area di memoria da leggere.</param>
''' <param name="ReturnValue">Un puntatore al buffer che ricevera il valore letto dall'address.</param>
''' <param name="VirtualSize">Il numero di bytes che devono essere letti. Default: 4.</param>
''' <param name="NmbB">Un pointer ad una variabile che ricevera il numero di bytes trasferiti nel buffer. Se il valore e NULL, il parametro viene ignorato. Default: Nothing.</param>
''' <returns>Se la funzione ha successo, il valore restituito sara non-zero.</returns>
Friend Declare Function integerRead Lib "NTDLL" Alias "ZwReadVirtualMemory" (ByVal DevHandle As Integer, ByVal Address As Integer, ByRef ReturnValue As Integer, Optional ByVal VirtualSize As Integer = _Type.TInteger_4Byte, Optional ByRef NmbB As Integer = Nothing) As Integer
'''<summary>
''' Scrive 8 byte in un'area di memoria di un processo specificato.
''' </summary>
''' <param name="DevHandle">Un handle al processo.</param>
''' <param name="Address">L'address di base dell'area di memoria da scrivere.</param>a
''' <param name="NewValue">Un puntatore al buffer che contiene il valore che deve essere scritto nell'address.</param>
''' <param name="VirtualSize">Il numero di bytes che devono essere scritti. Default: 8.</param>
''' <param name="NmbB">Un pointer ad una variabile che ricevera il numero di bytes scritti nell'area di memoria. Se il valore e NULL, il parametro viene ignorato. Default: Nothing.</param>
''' <returns>Se la funzione ha successo, il valore restituito sara non-zero.</returns>
Friend Declare Function longWrite Lib "NTDLL" Alias "ZwWriteVirtualMemory" (ByVal DevHandle As Integer, ByVal Address As Integer, ByRef NewValue As Long, Optional ByVal VirtualSize As Integer = _Type.TLong_8Byte, Optional ByRef NmbB As Integer = Nothing) As Long
''' <summary>
''' Legge 8 Bytes di memoria.
''' </summary>
''' <param name="DevHandle">Un handle al processo.</param>
''' <param name="Address">L'address di base dell'area di memoria da leggere.</param>
''' <param name="ReturnValue">Un puntatore al buffer che ricevera il valore letto dall'address.</param>
''' <param name="VirtualSize">Il numero di bytes che devono essere letti. Default: 8.</param>
''' <param name="NmbB">Un pointer ad una variabile che ricevera il numero di bytes trasferiti nel buffer. Se il valore e NULL, il parametro viene ignorato. Default: Nothing.</param>
''' <returns>Se la funzione ha successo, il valore restituito sara non-zero.</returns>
Friend Declare Function longRead Lib "NTDLL" Alias "ZwReadVirtualMemory" (ByVal DevHandle As Integer, ByVal Address As Integer, ByRef ReturnValue As Long, Optional ByVal VirtualSize As Integer = _Type.TLong_8Byte, Optional ByRef NmbB As Integer = Nothing) As Long
'''<summary>
''' Scrive 4 byte in un'area di memoria di un processo specificato.
''' </summary>
''' <param name="DevHandle">Un handle al processo.</param>
''' <param name="Address">L'address di base dell'area di memoria da scrivere.</param>
''' <param name="NewValue">Un puntatore al buffer che contiene il valore che deve essere scritto nell'address.</param>
''' <param name="VirtualSize">Il numero di bytes che devono essere scritti. Default: 4.</param>
''' <param name="NmbB">Un pointer ad una variabile che ricevera il numero di bytes scritti nell'area di memoria. Se il valore e NULL, il parametro viene ignorato. Default: Nothing.</param>
''' <returns>Se la funzione ha successo, il valore restituito sara non-zero.</returns>
Friend Declare Function singleWrite Lib "NTDLL" Alias "ZwWriteVirtualMemory" (ByVal DevHandle As Integer, ByVal Address As Integer, ByRef NewValue As Single, Optional ByVal VirtualSize As Integer = _Type.TSingle_Float, Optional ByRef NmbB As Integer = Nothing) As Single
''' <summary>
''' Legge 4 Bytes di memoria.
''' </summary>
''' <param name="DevHandle">Un handle al processo.</param>
''' <param name="Address">L'address di base dell'area di memoria da leggere.</param>
''' <param name="ReturnValue">Un puntatore al buffer che ricevera il valore letto dall'address.</param>
''' <param name="VirtualSize">Il numero di bytes che devono essere letti. Default: 4.</param>
''' <param name="NmbB">Un pointer ad una variabile che ricevera il numero di bytes trasferiti nel buffer. Se il valore e NULL, il parametro viene ignorato. Default: Nothing.</param>
''' <returns>Se la funzione ha successo, il valore restituito sara non-zero.</returns>
Friend Declare Function singleRead Lib "NTDLL" Alias "ZwReadVirtualMemory" (ByVal DevHandle As Integer, ByVal Address As Integer, ByRef ReturnValue As Single, Optional ByVal VirtualSize As Integer = _Type.TSingle_Float, Optional ByRef NmbB As Integer = Nothing) As Single
'''<summary>
''' Scrive 8 byte in un'area di memoria di un processo specificato.
''' </summary>
''' <param name="DevHandle">Un handle al processo.</param>
''' <param name="Address">L'address di base dell'area di memoria da scrivere.</param>
''' <param name="NewValue">Un puntatore al buffer che contiene il valore che deve essere scritto nell'address.</param>
''' <param name="VirtualSize">Il numero di bytes che devono essere scritti. Default: 8.</param>
''' <param name="NmbB">Un pointer ad una variabile che ricevera il numero di bytes scritti nell'area di memoria. Se il valore e NULL, il parametro viene ignorato. Default: Nothing.</param>
''' <returns>Se la funzione ha successo, il valore restituito sara non-zero.</returns>
Friend Declare Function doubleWrite Lib "NTDLL" Alias "ZwWriteVirtualMemory" (ByVal DevHandle As Integer, ByVal Address As Integer, ByRef NewValue As Double, Optional ByVal VirtualSize As Integer = _Type.TDouble, Optional ByRef NmbB As Integer = Nothing) As Double
''' <summary>
''' Legge 8 Bytes di memoria.
''' </summary>
''' <param name="DevHandle">Un handle al processo.</param>
''' <param name="Address">L'address di base dell'area di memoria da leggere.</param>
''' <param name="ReturnValue">Un puntatore al buffer che ricevera il valore letto dall'address.</param>
''' <param name="VirtualSize">Il numero di bytes che devono essere letti. Default: 8.</param>
''' <param name="NmbB">Un pointer ad una variabile che ricevera il numero di bytes trasferiti nel buffer. Se il valore e NULL, il parametro viene ignorato. Default: Nothing.</param>
''' <returns>Se la funzione ha successo, il valore restituito sara non-zero.</returns>
Friend Declare Function doubleRead Lib "NTDLL" Alias "ZwReadVirtualMemory" (ByVal DevHandle As Integer, ByVal Address As Integer, ByRef ReturnValue As Double, Optional ByVal VirtualSize As Integer = _Type.TDouble, Optional ByRef NmbB As Integer = Nothing) As Double
'''<summary>
''' Scrive una stringa in un'area di memoria di un processo specificato.
''' </summary>
''' <param name="DevHandle">Un handle al processo.</param>
''' <param name="Address">L'address di base dell'area di memoria da scrivere.</param>
''' <param name="NewValue">Un puntatore al buffer che contiene il valore che deve essere scritto nell'address.</param>
''' <param name="VirtualSize">Il numero di bytes che devono essere scritti.</param>
''' <param name="NmbB">Un pointer ad una variabile che ricevera il numero di bytes scritti nell'area di memoria. Se il valore e NULL, il parametro viene ignorato. Default: Nothing.</param>
''' <returns>Se la funzione ha successo, il valore restituito sara non-zero.</returns>
Friend Declare Function strWrite Lib "NTDLL" Alias "ZwWriteVirtualMemory" (ByVal DevHandle As Integer, ByVal Address As Integer, ByRef NewValue As Double, Optional ByVal VirtualSize As Integer = _Type.TDouble, Optional ByRef NmbB As Integer = Nothing) As Double
'''<summary>
''' Legge una stringa in un'area di memoria di un processo specificato.
''' </summary>
''' <param name="DevHandle">Un handle al processo.</param>
''' <param name="Address">L'address di base dell'area di memoria da scrivere.</param>
''' <param name="ReturnValue">Un puntatore al buffer che contiene il valore che deve essere scritto nell'address.</param>
''' <param name="VirtualSize">Il numero di bytes che devono essere scritti.</param>
''' <param name="NmbB">Un pointer ad una variabile che ricevera il numero di bytes scritti nell'area di memoria. Se il valore e NULL, il parametro viene ignorato. Default: Nothing.</param>
''' <returns>Se la funzione ha successo, il valore restituito sara non-zero.</returns>
Friend Declare Function strRead Lib "NTDLL" Alias "ZwReadVirtualMemory" (ByVal DevHandle As Integer, ByVal Address As Integer, ByRef ReturnValue As Double, Optional ByVal VirtualSize As Integer = _Type.TDouble, Optional ByRef NmbB As Integer = Nothing) As Double
' #################################Write/Read-Functions#################################-End
' ################################# Pointer-Functions #################################-Start
''' <summary>
''' Scrive 1 Byte di memoria.
''' </summary>
''' <param name="DevHandle">Un handle al processo.</param>
''' <param name="Address">Il Base Address se e attivo il BaseAddressModule o un address qualsiasi se non e attivo.</param>
''' <param name="OffSets">Offsets per Ragiungere l'address</param>
''' <param name="NewWalue">Il nuovo valore da impostare al Address.</param>
''' <remarks>"Usare sempre False se volete scrivere un address senza base address.</remarks>
'''
Friend Shared Sub byteWritePointer(ByVal DevHandle As Integer, ByVal Address As Integer, ByVal OffSets() As Integer, ByVal NewWalue As Byte)
Dim Buffer As Int32
Dim ActAddress As Int32 = Address
For I As Int32 = 0 To OffSets.Length - 1 Step +1
integerRead(DevHandle, ActAddress, Buffer)
ActAddress = Buffer + OffSets(I)
Next
byteWrite(DevHandle, ActAddress, NewWalue)
End Sub
''' <summary>
''' Scrive 2 Bytes di memoria.
''' </summary>
''' <param name="DevHandle">Un handle al processo.</param>
''' <param name="Address">Il Base Address se e attivo il BaseAddressModule o un address qualsiasi se non e attivo.</param>
''' <param name="OffSets">Offsets per Ragiungere l'address</param>
''' <param name="NewWalue">Il nuovo valore da impostare al Address.</param>
''' <remarks>"Usare sempre False se volete scrivere un address senza base address.</remarks>
Friend Shared Sub shortWritePointer(ByVal DevHandle As Integer, ByVal Address As Integer, ByVal OffSets() As Integer, ByVal NewWalue As Short)
Dim Buffer As Int32
Dim ActAddress As Int32 = Address
For I As Int32 = 0 To OffSets.Length - 1 Step +1
integerRead(DevHandle, ActAddress, Buffer)
ActAddress = Buffer + OffSets(I)
Next
shortWrite(DevHandle, ActAddress, NewWalue)
End Sub
''' <summary>
''' Scrive 4 Bytes di memoria.
''' </summary>
''' <param name="DevHandle">Un handle al processo.</param>
''' <param name="Address">Il Base Address se e attivo il BaseAddressModule o un address qualsiasi se non e attivo.</param>
''' <param name="OffSets">Offsets per Ragiungere l'address</param>
''' <param name="NewWalue">Il nuovo valore da impostare al Address.</param>
''' <remarks>"Usare sempre False se volete scrivere un address senza base address.</remarks>
Friend Shared Sub integerWritePointer(ByVal DevHandle As Integer, ByVal Address As Integer, ByVal OffSets() As Integer, ByVal NewWalue As Integer)
Dim Buffer As Int32
Dim ActAddress As Int32 = Address
For I As Int32 = 0 To OffSets.Length - 1 Step +1
integerRead(DevHandle, ActAddress, Buffer)
ActAddress = Buffer + OffSets(I)
Next
integerWrite(DevHandle, ActAddress, NewWalue)
End Sub
''' <summary>
''' Scrive 8 Bytes di memoria.
''' </summary>
''' <param name="DevHandle">Un handle al processo.</param>
''' <param name="Address">Il Base Address se e attivo il BaseAddressModule o un address qualsiasi se non e attivo.</param>
''' <param name="OffSets">Offsets per Ragiungere l'address</param>
''' <param name="NewWalue">Il nuovo valore da impostare al Address.</param>
''' <remarks>"Usare sempre False se volete scrivere un address senza base address.</remarks>
Friend Shared Sub longWritePointer(ByVal DevHandle As Integer, ByVal Address As Integer, ByVal OffSets() As Integer, ByVal NewWalue As Long)
Dim Buffer As Int32
Dim ActAddress As Int32 = Address
For I As Int32 = 0 To OffSets.Length - 1 Step +1
integerRead(DevHandle, ActAddress, Buffer)
ActAddress = Buffer + OffSets(I)
Next
longWrite(DevHandle, ActAddress, NewWalue)
End Sub
''' <summary>
''' Scrive 4 Bytes di memoria.
''' </summary>
''' <param name="DevHandle">Un handle al processo.</param>
''' <param name="Address">Il Base Address se e attivo il BaseAddressModule o un address qualsiasi se non e attivo.</param>
''' <param name="OffSets">Offsets per Ragiungere l'address</param>
''' <param name="NewWalue">Il nuovo valore da impostare al Address.</param>
''' <remarks>"Usare sempre False se volete scrivere un address senza base address.</remarks>
Friend Shared Sub singleWritePointer(ByVal DevHandle As Integer, ByVal Address As Integer, ByVal OffSets() As Integer, ByVal NewWalue As Single)
Dim Buffer As Int32
Dim ActAddress As Int32 = Address
For I As Int32 = 0 To OffSets.Length - 1 Step +1
integerRead(DevHandle, ActAddress, Buffer)
ActAddress = Buffer + OffSets(I)
Next
singleWrite(DevHandle, ActAddress, NewWalue)
End Sub
''' <summary>
''' Scrive 8 Bytes di memoria.
''' </summary>
''' <param name="DevHandle">Un handle al processo.</param>
''' <param name="Address">Il Base Address se e attivo il BaseAddressModule o un address qualsiasi se non e attivo.</param>
''' <param name="OffSets">Offsets per Ragiungere l'address</param>
''' <param name="NewWalue">Il nuovo valore da impostare al Address.</param>
''' <remarks>"Usare sempre False se volete scrivere un address senza base address.</remarks>
Friend Shared Sub doubleWritePointer(ByVal DevHandle As Integer, ByVal Address As Integer, ByVal OffSets() As Integer, ByVal NewWalue As Double)
Dim Buffer As Int32
Dim ActAddress As Int32 = Address
For I As Int32 = 0 To OffSets.Length - 1 Step +1
integerRead(DevHandle, ActAddress, Buffer)
ActAddress = Buffer + OffSets(I)
Next
doubleWrite(DevHandle, ActAddress, NewWalue)
End Sub
''' <summary>
''' Scrive una stringa di memoria.
''' </summary>
''' <param name="DevHandle">Un handle al processo.</param>
''' <param name="Address">Il Base Address se e attivo il BaseAddressModule o un address qualsiasi se non e attivo.</param>
''' <param name="OffSets">Offsets per Ragiungere l'address</param>
''' <param name="NewWalue">Il nuovo valore da impostare al Address.</param>
''' <param name="StrSize">La Dimensione Della Stringa</param>
''' <remarks>"Usare sempre False se volete scrivere un address senza base address.</remarks>
Friend Shared Sub strWritePointer(ByVal DevHandle As Integer, ByVal Address As Integer, ByVal OffSets() As Integer, ByVal NewWalue As String, ByVal StrSize As Integer)
Dim Buffer As Int32
Dim ActAddress As Int32 = Address
For I As Int32 = 0 To OffSets.Length - 1 Step +1
integerRead(DevHandle, ActAddress, Buffer)
ActAddress = Buffer + OffSets(I)
Next
strWrite(DevHandle, ActAddress, NewWalue, StrSize)
End Sub
''' <summary>
''' Legge 1 Byte di memoria.
''' </summary>
''' <param name="DevHandle">Un handle al processo.</param>
''' <param name="Address">Il Base Address se e attivo il BaseAddressModule o un address qualsiasi se non e attivo</param>
''' <param name="OffSets">Offsets del Address</param>
''' <returns>Il value del addres letto</returns>
''' <remarks>"Usare sempre False se volete scrivere un address senza base address</remarks>
Friend Shared Function byteReadPointer(ByVal DevHandle As Integer, ByVal Address As Integer, ByVal OffSets() As Byte) As Byte
Dim Buffer As Int32
Dim ActAddress As Int32 = Address
Dim ReturnVal As Int32 = 0
For I As Int32 = 0 To OffSets.Length - 1 Step +1
integerRead(DevHandle, ActAddress, Buffer)
ActAddress = Buffer + OffSets(I)
Next
byteRead(DevHandle, ActAddress, ReturnVal)
Return ReturnVal
End Function
''' <summary>
''' Legge 2 Byte di memoria.
''' </summary>
''' <param name="DevHandle">Un handle al processo.</param>
''' <param name="Address">Il Base Address se e attivo il BaseAddressModule o un address qualsiasi se non e attivo</param>
''' <param name="OffSets">Offsets del Address</param>
''' <returns>Il value del addres letto</returns>
''' <remarks>"Usare sempre False se volete scrivere un address senza base address</remarks>
Friend Shared Function shortReadPointer(ByVal DevHandle As Integer, ByVal Address As Integer, ByVal OffSets() As Integer) As Short
Dim Buffer As Int32
Dim ActAddress As Int32 = Address
Dim ReturnVal As Short = 0
For I As Int32 = 0 To OffSets.Length - 1 Step +1
integerRead(DevHandle, ActAddress, Buffer)
ActAddress = Buffer + OffSets(I)
Next
shortRead(DevHandle, ActAddress, ReturnVal)
Return ReturnVal
End Function
''' <summary>
''' Legge 4 Byte di memoria.
''' </summary>
''' <param name="DevHandle">Un handle al processo.</param>
''' <param name="Address">Il Base Address se e attivo il BaseAddressModule o un address qualsiasi se non e attivo</param>
''' <param name="OffSets">Offsets del Address</param>
''' <returns>Il value del addres letto</returns>
''' <remarks>"Usare sempre False se volete scrivere un address senza base address</remarks>
Friend Shared Function integerReadPointer(ByVal DevHandle As Integer, ByVal Address As Integer, ByVal OffSets() As Integer) As Integer
Dim Buffer As Int32
Dim ActAddress As Int32 = Address
Dim ReturnVal As Integer = 0
For I As Int32 = 0 To OffSets.Length - 1 Step +1
integerRead(DevHandle, ActAddress, Buffer)
ActAddress = Buffer + OffSets(I)
Next
integerRead(DevHandle, ActAddress, ReturnVal)
Return ReturnVal
End Function
''' <summary>
''' Legge 8 Byte di memoria.
''' </summary>
''' <param name="DevHandle">Un handle al processo.</param>
''' <param name="Address">Il Base Address se e attivo il BaseAddressModule o un address qualsiasi se non e attivo</param>
''' <param name="OffSets">Offsets del Address</param>
''' <returns>Il value del addres letto</returns>
''' <remarks>"Usare sempre False se volete scrivere un address senza base address</remarks>
Friend Shared Function longReadPointer(ByVal DevHandle As Integer, ByVal Address As Integer, ByVal OffSets() As Integer) As Long
Dim Buffer As Int32
Dim ActAddress As Int32 = Address
Dim ReturnVal As Long = 0
For I As Int32 = 0 To OffSets.Length - 1 Step +1
integerRead(DevHandle, ActAddress, Buffer)
ActAddress = Buffer + OffSets(I)
Next
longRead(DevHandle, ActAddress, ReturnVal)
Return ReturnVal
End Function
''' <summary>
''' Legge 4 Byte di memoria.
''' </summary>
''' <param name="DevHandle">Un handle al processo.</param>
''' <param name="Address">Il Base Address se e attivo il BaseAddressModule o un address qualsiasi se non e attivo</param>
''' <param name="OffSets">Offsets del Address</param>
''' <returns>Il value del addres letto</returns>
''' <remarks>"Usare sempre False se volete scrivere un address senza base address</remarks>
Friend Shared Function singleReadPointer(ByVal DevHandle As Integer, ByVal Address As Integer, ByVal OffSets() As Integer) As Single
Dim Buffer As Int32
Dim ActAddress As Int32 = Address
Dim ReturnVal As Single = 0
For I As Int32 = 0 To OffSets.Length - 1 Step +1
integerRead(DevHandle, ActAddress, Buffer)
ActAddress = Buffer + OffSets(I)
Next
singleRead(DevHandle, ActAddress, ReturnVal)
Return ReturnVal
End Function
''' <summary>
''' Legge 8 Byte di memoria.
''' </summary>
''' <param name="DevHandle">Un handle al processo.</param>
''' <param name="Address">Il Base Address se e attivo il BaseAddressModule o un address qualsiasi se non e attivo</param>
''' <param name="OffSets">Offsets del Address</param>
''' <returns>Il value del addres letto</returns>
''' <remarks>"Usare sempre False se volete scrivere un address senza base address</remarks>
Friend Shared Function doubleReadPointer(ByVal DevHandle As Integer, ByVal Address As Integer, ByVal OffSets() As Integer) As Double
Dim Buffer As Int32
Dim ActAddress As Int32 = Address
Dim ReturnVal As Double = 0
For I As Int32 = 0 To OffSets.Length - 1 Step +1
integerRead(DevHandle, ActAddress, Buffer)
ActAddress = Buffer + OffSets(I)
Next
doubleRead(DevHandle, ActAddress, ReturnVal)
Return ReturnVal
End Function
''' <summary>
''' Legge 1 Stringa di memoria.
''' </summary>
''' <param name="DevHandle">Un handle al processo.</param>
''' <param name="Address">Il Base Address se e attivo il BaseAddressModule o un address qualsiasi se non e attivo</param>
''' <param name="OffSets">Offsets del Address</param>
''' <param name="StrSize">La Dimensione Della Stringa</param>
''' <returns>Il value del addres letto</returns>
''' <remarks>"Usare sempre False se volete scrivere un address senza base address</remarks>
Friend Shared Function strReadPointer(ByVal DevHandle As Integer, ByVal Address As Integer, ByVal OffSets() As Integer, ByVal StrSize As Integer) As String
Dim Buffer As Int32
Dim ActAddress As Int32 = Address
Dim ReturnVal As String = 0
For I As Int32 = 0 To OffSets.Length - 1 Step +1
integerRead(DevHandle, ActAddress, Buffer)
ActAddress = Buffer + OffSets(I)
Next
strRead(DevHandle, ActAddress, ReturnVal, StrSize)
Return ReturnVal
End Function
' ################################# Pointer-Functions #################################-End
' ################################# Process Options #################################-Start
''' <summary>
''' Serve per Sospendere un processo
''' </summary>
''' <param name="DevHandle">Il Handle del processo</param>
''' <returns>Se la funzione ha successo, il valore restituito sara il processo sospeso.
''' Se la funzione fallisce, il valore restituito sara NULL.</returns>
''' <remarks></remarks>
Friend Declare Function _SuspendProcess Lib "ntdll" Alias "NtSuspendProcess" (ByVal DevHandle As Integer) As Integer
''' <summary>
''' Serve per Riprendere un processo
''' </summary>
''' <param name="DevHandle">Il Handle del processo</param>
''' <returns>Se la funzione ha successo, il valore restituito sara il processo ripreso.
''' Se la funzione fallisce, il valore restituito sara NULL.</returns>
''' <remarks></remarks>
Friend Declare Function _ResumeProcess Lib "Ntdll" Alias "NtResumeProcess" (ByVal DevHandle As Integer) As Integer
Shared Event ProcessSuspended As EventHandler
Shared Event ProcessResummed As EventHandler
''' <summary>
''' Serve per sospendere un processo,da potervi lavorare
''' </summary>
''' <param name="aDevName">Il nome del processo</param>
''' <remarks></remarks>
Friend Shared Sub SuspendProcess(ByVal aDevName As String)
aDevName = aDevName.ToLower
aDevName = aDevName.Replace(".exe", "")
Dim _DevName As Process() = Process.GetProcessesByName(aDevName)
Dim _DevHandle As Integer
Dim ErrorCode As String = Nothing
Dim e As New EventArgs
Try
ErrorCode = 1
_DevHandle = _DevName(0).Handle
ErrorCode = 2
_SuspendProcess(_DevHandle)
ErrorCode = 0
Catch ex As Exception
MsgBox("Error Code : " & ErrorCode & "-" & ex.Message)
End Try
If ErrorCode = 0 Then
RaiseEvent ProcessSuspended("xKeat_Class_SuspendP", e)
End If
End Sub
''' <summary>
''' Serve per riprendere il normale funzionamento del processo
''' </summary>
''' <param name="Processname">Il nome del processo</param>
''' <remarks></remarks>
Friend Shared Sub ResumeProcess(ByVal Processname As String)
Processname = Processname.ToLower
Processname = Processname.Replace(".exe", "")
Dim _DevName As Process() = Process.GetProcessesByName(Processname)
Dim _DevHandle As Integer
Dim ErrorCode As Integer = Nothing
Dim e As New EventArgs
Try
ErrorCode = 1
_DevHandle = _DevName(0).Handle
ErrorCode = 2
_ResumeProcess(_DevHandle)
ErrorCode = 0
Catch ex As Exception
MsgBox("Error Code : " & ErrorCode & "-" & ex.Message)
End Try
If ErrorCode = 0 Then
RaiseEvent ProcessResummed("xKeat_Class_ResumeP", e)
End If
End Sub
' ################################# Process Options #################################-End
Private Declare Unicode Function WritePrivateProfileString Lib "kernel32" Alias "WritePrivateProfileStringW" _
(ByVal ipApplicationName As String, ByVal IpKeyName As String, ByVal IpString As String, _
ByVal IpFileName As String) As Int32
Private Declare Unicode Function GetPrivateProfileString Lib "kernel32" Alias "GetPrivateProfileStringW" _
(ByVal ipApplicationName As String, ByVal IpKeyName As String, ByVal IpDefault As String, _
ByVal IpReturnedString As String, ByVal nSize As Int32, ByVal IpFileName As String) As Int32
''' <summary>
''' Scrive un parametro in un file ".ini"
''' </summary>
''' <param name="iniFileName">La directory del file ".ini"(se esiste scrive dentro se non esiste lo crea...)</param>
''' <param name="Section">Sezione da scrivere</param>
''' <param name="ParamName">Nome del parametro</param>
''' <param name="ParamVal">Value da assegnare al parametro</param>
''' <remarks></remarks>
Friend Shared Sub WriteIni(ByVal iniFileName As String, ByVal Section As String, ByVal ParamName As String, ByVal ParamVal As String)
Dim Result As Integer
Result = WritePrivateProfileString(Section, ParamName, ParamVal, iniFileName)
End Sub
''' <summary>
''' Restituisce il valore di un parametro in un file ".ini"
''' </summary>
''' <param name="FileName">La directory del file ".ini"</param>
''' <param name="Section">Sezione da leggere</param>
''' <param name="ParamName">Nome del parametro</param>
''' <returns>Il value del parametro letto</returns>
''' <remarks>Il ParamDeffault e sempre //==>""</remarks>
Friend Shared Function ReadIni(ByVal FileName As String, ByVal Section As String, ByVal ParamName As String) As String
Dim ParamDefault As String = Nothing
Dim ParamVal As String
Dim LenParamVal As Long
ParamVal = Space$(1024)
LenParamVal = GetPrivateProfileString(Section, ParamName, ParamDefault, ParamVal, Len(ParamVal), FileName)
ReadIni = Left$(ParamVal, LenParamVal)
Return ParamDefault
End Function
End Class