[VB.NET]Class xKeat by Mr.Insanity

Stato
Discussione chiusa ad ulteriori risposte.

xKeapt

Utente Emerald
5 Luglio 2011
930
56
203
518
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:
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
 
Stato
Discussione chiusa ad ulteriori risposte.