تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
[سؤال] ممكن تعديل على الكود دا يا اخواتي لوسمحتو
#1
كود :
Module ReadWritingMemory
   Private Declare Function OpenProcess Lib "kernel32" (ByVal dwDesiredAccess As Integer, ByVal bInheritHandle As Integer, ByVal dwProcessId As Integer) As Integer

   Private Declare Function WriteProcessMemory1 Lib "kernel32" Alias "WriteProcessMemory" (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 WriteProcessMemory2 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 Single
   Private Declare Function WriteProcessMemory3 Lib "kernel32" Alias "WriteProcessMemory" (ByVal hProcess As Integer, ByVal lpBaseAddress As Integer, ByRef lpBuffer As Long, ByVal nSize As Integer, ByRef lpNumberOfBytesWritten As Integer) As Long

   Private Declare Function ReadProcessMemory1 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 ReadProcessMemory2 Lib "kernel32" Alias "ReadProcessMemory" (ByVal hProcess As Integer, ByVal lpBaseAddress As Integer, ByRef lpBuffer As Single, ByVal nSize As Integer, ByRef lpNumberOfBytesWritten As Integer) As Single
   Private Declare Function ReadProcessMemory3 Lib "kernel32" Alias "ReadProcessMemory" (ByVal hProcess As Integer, ByVal lpBaseAddress As Integer, ByRef lpBuffer As Long, ByVal nSize As Integer, ByRef lpNumberOfBytesWritten As Integer) As Long

   Const PROCESS_ALL_ACCESS = &H1F0FF

   Public Function WriteDMAInteger(ByVal Process As String, ByVal Address As Integer, ByVal Offsets As Integer(), ByVal Value As Integer, ByVal Level As Integer, Optional ByVal nsize As Integer = 4) As Boolean
       Try
           Dim lvl As Integer = Address
           For i As Integer = 1 To Level
               lvl = ReadInteger(Process, lvl, nsize) + Offsets(i - 1)
           Next
           WriteInteger(Process, lvl, Value, nsize)
           Return True
       Catch ex As Exception
           Return False
       End Try
   End Function

   Public Function ReadDMAInteger(ByVal Process As String, ByVal Address As Integer, ByVal Offsets As Integer(), ByVal Level As Integer, Optional ByVal nsize As Integer = 4) As Integer
       Try
           Dim lvl As Integer = Address
           For i As Integer = 1 To Level
               lvl = ReadInteger(Process, lvl, nsize) + Offsets(i - 1)
           Next
           Dim vBuffer As Integer
           vBuffer = ReadInteger(Process, lvl, nsize)
           Return vBuffer
       Catch ex As Exception

       End Try
   End Function

   Public Function WriteDMAFloat(ByVal Process As String, ByVal Address As Integer, ByVal Offsets As Integer(), ByVal Value As Single, ByVal Level As Integer, Optional ByVal nsize As Integer = 4) As Boolean
       Try
           Dim lvl As Integer = Address
           For i As Integer = 1 To Level
               lvl = ReadFloat(Process, lvl, nsize) + Offsets(i - 1)
           Next
           WriteFloat(Process, lvl, Value, nsize)
           Return True
       Catch ex As Exception
           Return False
       End Try
   End Function

   Public Function ReadDMAFloat(ByVal Process As String, ByVal Address As Integer, ByVal Offsets As Integer(), ByVal Level As Integer, Optional ByVal nsize As Integer = 4) As Single
       Try
           Dim lvl As Integer = Address
           For i As Integer = 1 To Level
               lvl = ReadFloat(Process, lvl, nsize) + Offsets(i - 1)
           Next
           Dim vBuffer As Single
           vBuffer = ReadFloat(Process, lvl, nsize)
           Return vBuffer
       Catch ex As Exception

       End Try
   End Function

   Public Function WriteDMALong(ByVal Process As String, ByVal Address As Integer, ByVal Offsets As Integer(), ByVal Value As Long, ByVal Level As Integer, Optional ByVal nsize As Integer = 4) As Boolean
       Try
           Dim lvl As Integer = Address
           For i As Integer = 1 To Level
               lvl = ReadLong(Process, lvl, nsize) + Offsets(i - 1)
           Next
           WriteLong(Process, lvl, Value, nsize)
           Return True
       Catch ex As Exception
           Return False
       End Try
   End Function

   Public Function ReadDMALong(ByVal Process As String, ByVal Address As Integer, ByVal Offsets As Integer(), ByVal Level As Integer, Optional ByVal nsize As Integer = 4) As Long
       Try
           Dim lvl As Integer = Address
           For i As Integer = 1 To Level
               lvl = ReadLong(Process, lvl, nsize) + Offsets(i - 1)
           Next
           Dim vBuffer As Long
           vBuffer = ReadLong(Process, lvl, nsize)
           Return vBuffer
       Catch ex As Exception

       End Try
   End Function

   Public Sub WriteNOPs(ByVal ProcessName As String, ByVal Address As Long, ByVal NOPNum As Integer)
       Dim C As Integer
       Dim B As Integer
       If ProcessName.EndsWith(".exe") Then
           ProcessName = ProcessName.Replace(".exe", "")
       End If
       Dim MyP As Process() = Process.GetProcessesByName(ProcessName)
       If MyP.Length = 0 Then
           MessageBox.Show(ProcessName & " isn't open!")
           Exit Sub
       End If
       Dim hProcess As IntPtr = OpenProcess(PROCESS_ALL_ACCESS, 0, MyP(0).Id)
       If hProcess = IntPtr.Zero Then
           MessageBox.Show("Failed to open " & ProcessName & "!")
           Exit Sub
       End If

       B = 0
       For C = 1 To NOPNum
           Call WriteProcessMemory1(hProcess, Address + B, &H90, 1, 0&)
           B = B + 1
       Next C
   End Sub

   Public Sub WriteXBytes(ByVal ProcessName As String, ByVal Address As Long, ByVal Value As String)
       If ProcessName.EndsWith(".exe") Then
           ProcessName = ProcessName.Replace(".exe", "")
       End If
       Dim MyP As Process() = Process.GetProcessesByName(ProcessName)
       If MyP.Length = 0 Then
           MessageBox.Show(ProcessName & " isn't open!")
           Exit Sub
       End If
       Dim hProcess As IntPtr = OpenProcess(PROCESS_ALL_ACCESS, 0, MyP(0).Id)
       If hProcess = IntPtr.Zero Then
           MessageBox.Show("Failed to open " & ProcessName & "!")
           Exit Sub
       End If

       Dim C As Integer
       Dim B As Integer
       Dim D As Integer
       Dim V As Byte

       B = 0
       D = 1
       For C = 1 To Math.Round((Len(Value) / 2))
           V = Val("&H" & Mid$(Value, D, 2))
           Call WriteProcessMemory1(hProcess, Address + B, V, 1, 0&)
           B = B + 1
           D = D + 2
       Next C

   End Sub

   Public Sub WriteInteger(ByVal ProcessName As String, ByVal Address As Integer, ByVal Value As Integer, Optional ByVal nsize As Integer = 4)
       If ProcessName.EndsWith(".exe") Then
           ProcessName = ProcessName.Replace(".exe", "")
       End If
       Dim MyP As Process() = Process.GetProcessesByName(ProcessName)
       If MyP.Length = 0 Then
           MessageBox.Show(ProcessName & " isn't open!")
           Exit Sub
       End If
       Dim hProcess As IntPtr = OpenProcess(PROCESS_ALL_ACCESS, 0, MyP(0).Id)
       If hProcess = IntPtr.Zero Then
           MessageBox.Show("Failed to open " & ProcessName & "!")
           Exit Sub
       End If

       Dim hAddress, vBuffer As Integer
       hAddress = Address
       vBuffer = Value
       WriteProcessMemory1(hProcess, hAddress, CInt(vBuffer), nsize, 0)
   End Sub

   Public Sub WriteFloat(ByVal ProcessName As String, ByVal Address As Integer, ByVal Value As Single, Optional ByVal nsize As Integer = 4)
       If ProcessName.EndsWith(".exe") Then
           ProcessName = ProcessName.Replace(".exe", "")
       End If
       Dim MyP As Process() = Process.GetProcessesByName(ProcessName)
       If MyP.Length = 0 Then
           MessageBox.Show(ProcessName & " isn't open!")
           Exit Sub
       End If
       Dim hProcess As IntPtr = OpenProcess(PROCESS_ALL_ACCESS, 0, MyP(0).Id)
       If hProcess = IntPtr.Zero Then
           MessageBox.Show("Failed to open " & ProcessName & "!")
           Exit Sub
       End If

       Dim hAddress As Integer
       Dim vBuffer As Single

       hAddress = Address
       vBuffer = Value
       WriteProcessMemory2(hProcess, hAddress, vBuffer, nsize, 0)
   End Sub

   Public Sub WriteLong(ByVal ProcessName As String, ByVal Address As Integer, ByVal Value As Long, Optional ByVal nsize As Integer = 4)
       If ProcessName.EndsWith(".exe") Then
           ProcessName = ProcessName.Replace(".exe", "")
       End If
       Dim MyP As Process() = Process.GetProcessesByName(ProcessName)
       If MyP.Length = 0 Then
           MessageBox.Show(ProcessName & " isn't open!")
           Exit Sub
       End If
       Dim hProcess As IntPtr = OpenProcess(PROCESS_ALL_ACCESS, 0, MyP(0).Id)
       If hProcess = IntPtr.Zero Then
           MessageBox.Show("Failed to open " & ProcessName & "!")
           Exit Sub
       End If

       Dim hAddress As Integer
       Dim vBuffer As Long

       hAddress = Address
       vBuffer = Value
       WriteProcessMemory3(hProcess, hAddress, vBuffer, nsize, 0)
   End Sub

   Public Function ReadInteger(ByVal ProcessName As String, ByVal Address As Integer, Optional ByVal nsize As Integer = 4) As Integer
       If ProcessName.EndsWith(".exe") Then
           ProcessName = ProcessName.Replace(".exe", "")
       End If
       Dim MyP As Process() = Process.GetProcessesByName(ProcessName)
       If MyP.Length = 0 Then
           MessageBox.Show(ProcessName & " isn't open!")
           Exit Function
       End If
       Dim hProcess As IntPtr = OpenProcess(PROCESS_ALL_ACCESS, 0, MyP(0).Id)
       If hProcess = IntPtr.Zero Then
           MessageBox.Show("Failed to open " & ProcessName & "!")
           Exit Function
       End If

       Dim hAddress, vBuffer As Integer
       hAddress = Address
       ReadProcessMemory1(hProcess, hAddress, vBuffer, nsize, 0)
       Return vBuffer
   End Function

   Public Function ReadFloat(ByVal ProcessName As String, ByVal Address As Integer, Optional ByVal nsize As Integer = 4) As Single
       If ProcessName.EndsWith(".exe") Then
           ProcessName = ProcessName.Replace(".exe", "")
       End If
       Dim MyP As Process() = Process.GetProcessesByName(ProcessName)
       If MyP.Length = 0 Then
           MessageBox.Show(ProcessName & " isn't open!")
           Exit Function
       End If
       Dim hProcess As IntPtr = OpenProcess(PROCESS_ALL_ACCESS, 0, MyP(0).Id)
       If hProcess = IntPtr.Zero Then
           MessageBox.Show("Failed to open " & ProcessName & "!")
           Exit Function
       End If

       Dim hAddress As Integer
       Dim vBuffer As Single

       hAddress = Address
       ReadProcessMemory2(hProcess, hAddress, vBuffer, nsize, 0)
       Return vBuffer
   End Function

   Public Function ReadLong(ByVal ProcessName As String, ByVal Address As Integer, Optional ByVal nsize As Integer = 4) As Long
       If ProcessName.EndsWith(".exe") Then
           ProcessName = ProcessName.Replace(".exe", "")
       End If
       Dim MyP As Process() = Process.GetProcessesByName(ProcessName)
       If MyP.Length = 0 Then
           MessageBox.Show(ProcessName & " isn't open!")
           Exit Function
       End If
       Dim hProcess As IntPtr = OpenProcess(PROCESS_ALL_ACCESS, 0, MyP(0).Id)
       If hProcess = IntPtr.Zero Then
           MessageBox.Show("Failed to open " & ProcessName & "!")
           Exit Function
       End If

       Dim hAddress As Integer
       Dim vBuffer As Long

       hAddress = Address
       ReadProcessMemory3(hProcess, hAddress, vBuffer, nsize, 0)
       Return vBuffer
   End Function

End Module
الكود الى عاوز اعدلو الى تحت دا انا عاوز استبدل process name ب process id
كود :
   Public Sub WriteInteger(ByVal ProcessName As String, ByVal Address As Integer, ByVal Value As Integer, Optional ByVal nsize As Integer = 4)
       If ProcessName.EndsWith(".exe") Then
           ProcessName = ProcessName.Replace(".exe", "")
       End If
       Dim MyP As Process() = Process.GetProcessesByName(ProcessName)
       If MyP.Length = 0 Then
           MessageBox.Show(ProcessName & " isn't open!")
           Exit Sub
       End If
       Dim hProcess As IntPtr = OpenProcess(PROCESS_ALL_ACCESS, 0, MyP(0).Id)
       If hProcess = IntPtr.Zero Then
           MessageBox.Show("Failed to open " & ProcessName & "!")
           Exit Sub
       End If

       Dim hAddress, vBuffer As Integer
       hAddress = Address
       vBuffer = Value
       WriteProcessMemory1(hProcess, hAddress, CInt(vBuffer), nsize, 0)
   End Sub
الرد
تم الشكر بواسطة:
#2
لم افهم التعديل على الكود او تعديل الكلمات في الكود دون تغيير الكود

في حالة تغيير فقط التسمية process name بـ process id ما عليك سوى استخدام Ctrl+H
سيظهرلك مربع نص استبدال

في حالة اردت تعديل الكود ...ننتر معك الخبراء
 لعل الكلمة التي تنفعني لم أكتبها بعد
عبد الله بن المبارك
الرد
تم الشكر بواسطة: ahmed112001 , ابو روضة , ابو روضة
#3
(20-12-20, 04:30 PM)عبد الهادي بهاب كتب : لم افهم التعديل على الكود او تعديل الكلمات في الكود دون تغيير الكود

في حالة تغيير فقط التسمية process name بـ process id ما عليك سوى استخدام Ctrl+H
سيظهرلك مربع نص استبدال

في حالة اردت تعديل الكود ...ننتر معك الخبراء

مشكور اخي
الرد
تم الشكر بواسطة: ابو روضة , ابو روضة
#4
(19-12-20, 08:14 PM)ahmed112001 كتب :
كود :
Module ReadWritingMemory
   Private Declare Function OpenProcess Lib "kernel32" (ByVal dwDesiredAccess As Integer, ByVal bInheritHandle As Integer, ByVal dwProcessId As Integer) As Integer

   Private Declare Function WriteProcessMemory1 Lib "kernel32" Alias "WriteProcessMemory" (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 WriteProcessMemory2 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 Single
   Private Declare Function WriteProcessMemory3 Lib "kernel32" Alias "WriteProcessMemory" (ByVal hProcess As Integer, ByVal lpBaseAddress As Integer, ByRef lpBuffer As Long, ByVal nSize As Integer, ByRef lpNumberOfBytesWritten As Integer) As Long

   Private Declare Function ReadProcessMemory1 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 ReadProcessMemory2 Lib "kernel32" Alias "ReadProcessMemory" (ByVal hProcess As Integer, ByVal lpBaseAddress As Integer, ByRef lpBuffer As Single, ByVal nSize As Integer, ByRef lpNumberOfBytesWritten As Integer) As Single
   Private Declare Function ReadProcessMemory3 Lib "kernel32" Alias "ReadProcessMemory" (ByVal hProcess As Integer, ByVal lpBaseAddress As Integer, ByRef lpBuffer As Long, ByVal nSize As Integer, ByRef lpNumberOfBytesWritten As Integer) As Long

   Const PROCESS_ALL_ACCESS = &H1F0FF

   Public Function WriteDMAInteger(ByVal Process As String, ByVal Address As Integer, ByVal Offsets As Integer(), ByVal Value As Integer, ByVal Level As Integer, Optional ByVal nsize As Integer = 4) As Boolean
       Try
           Dim lvl As Integer = Address
           For i As Integer = 1 To Level
               lvl = ReadInteger(Process, lvl, nsize) + Offsets(i - 1)
           Next
           WriteInteger(Process, lvl, Value, nsize)
           Return True
       Catch ex As Exception
           Return False
       End Try
   End Function

   Public Function ReadDMAInteger(ByVal Process As String, ByVal Address As Integer, ByVal Offsets As Integer(), ByVal Level As Integer, Optional ByVal nsize As Integer = 4) As Integer
       Try
           Dim lvl As Integer = Address
           For i As Integer = 1 To Level
               lvl = ReadInteger(Process, lvl, nsize) + Offsets(i - 1)
           Next
           Dim vBuffer As Integer
           vBuffer = ReadInteger(Process, lvl, nsize)
           Return vBuffer
       Catch ex As Exception

       End Try
   End Function

   Public Function WriteDMAFloat(ByVal Process As String, ByVal Address As Integer, ByVal Offsets As Integer(), ByVal Value As Single, ByVal Level As Integer, Optional ByVal nsize As Integer = 4) As Boolean
       Try
           Dim lvl As Integer = Address
           For i As Integer = 1 To Level
               lvl = ReadFloat(Process, lvl, nsize) + Offsets(i - 1)
           Next
           WriteFloat(Process, lvl, Value, nsize)
           Return True
       Catch ex As Exception
           Return False
       End Try
   End Function

   Public Function ReadDMAFloat(ByVal Process As String, ByVal Address As Integer, ByVal Offsets As Integer(), ByVal Level As Integer, Optional ByVal nsize As Integer = 4) As Single
       Try
           Dim lvl As Integer = Address
           For i As Integer = 1 To Level
               lvl = ReadFloat(Process, lvl, nsize) + Offsets(i - 1)
           Next
           Dim vBuffer As Single
           vBuffer = ReadFloat(Process, lvl, nsize)
           Return vBuffer
       Catch ex As Exception

       End Try
   End Function

   Public Function WriteDMALong(ByVal Process As String, ByVal Address As Integer, ByVal Offsets As Integer(), ByVal Value As Long, ByVal Level As Integer, Optional ByVal nsize As Integer = 4) As Boolean
       Try
           Dim lvl As Integer = Address
           For i As Integer = 1 To Level
               lvl = ReadLong(Process, lvl, nsize) + Offsets(i - 1)
           Next
           WriteLong(Process, lvl, Value, nsize)
           Return True
       Catch ex As Exception
           Return False
       End Try
   End Function

   Public Function ReadDMALong(ByVal Process As String, ByVal Address As Integer, ByVal Offsets As Integer(), ByVal Level As Integer, Optional ByVal nsize As Integer = 4) As Long
       Try
           Dim lvl As Integer = Address
           For i As Integer = 1 To Level
               lvl = ReadLong(Process, lvl, nsize) + Offsets(i - 1)
           Next
           Dim vBuffer As Long
           vBuffer = ReadLong(Process, lvl, nsize)
           Return vBuffer
       Catch ex As Exception

       End Try
   End Function

   Public Sub WriteNOPs(ByVal ProcessName As String, ByVal Address As Long, ByVal NOPNum As Integer)
       Dim C As Integer
       Dim B As Integer
       If ProcessName.EndsWith(".exe") Then
           ProcessName = ProcessName.Replace(".exe", "")
       End If
       Dim MyP As Process() = Process.GetProcessesByName(ProcessName)
       If MyP.Length = 0 Then
           MessageBox.Show(ProcessName & " isn't open!")
           Exit Sub
       End If
       Dim hProcess As IntPtr = OpenProcess(PROCESS_ALL_ACCESS, 0, MyP(0).Id)
       If hProcess = IntPtr.Zero Then
           MessageBox.Show("Failed to open " & ProcessName & "!")
           Exit Sub
       End If

       B = 0
       For C = 1 To NOPNum
           Call WriteProcessMemory1(hProcess, Address + B, &H90, 1, 0&)
           B = B + 1
       Next C
   End Sub

   Public Sub WriteXBytes(ByVal ProcessName As String, ByVal Address As Long, ByVal Value As String)
       If ProcessName.EndsWith(".exe") Then
           ProcessName = ProcessName.Replace(".exe", "")
       End If
       Dim MyP As Process() = Process.GetProcessesByName(ProcessName)
       If MyP.Length = 0 Then
           MessageBox.Show(ProcessName & " isn't open!")
           Exit Sub
       End If
       Dim hProcess As IntPtr = OpenProcess(PROCESS_ALL_ACCESS, 0, MyP(0).Id)
       If hProcess = IntPtr.Zero Then
           MessageBox.Show("Failed to open " & ProcessName & "!")
           Exit Sub
       End If

       Dim C As Integer
       Dim B As Integer
       Dim D As Integer
       Dim V As Byte

       B = 0
       D = 1
       For C = 1 To Math.Round((Len(Value) / 2))
           V = Val("&H" & Mid$(Value, D, 2))
           Call WriteProcessMemory1(hProcess, Address + B, V, 1, 0&)
           B = B + 1
           D = D + 2
       Next C

   End Sub

   Public Sub WriteInteger(ByVal ProcessName As String, ByVal Address As Integer, ByVal Value As Integer, Optional ByVal nsize As Integer = 4)
       If ProcessName.EndsWith(".exe") Then
           ProcessName = ProcessName.Replace(".exe", "")
       End If
       Dim MyP As Process() = Process.GetProcessesByName(ProcessName)
       If MyP.Length = 0 Then
           MessageBox.Show(ProcessName & " isn't open!")
           Exit Sub
       End If
       Dim hProcess As IntPtr = OpenProcess(PROCESS_ALL_ACCESS, 0, MyP(0).Id)
       If hProcess = IntPtr.Zero Then
           MessageBox.Show("Failed to open " & ProcessName & "!")
           Exit Sub
       End If

       Dim hAddress, vBuffer As Integer
       hAddress = Address
       vBuffer = Value
       WriteProcessMemory1(hProcess, hAddress, CInt(vBuffer), nsize, 0)
   End Sub

   Public Sub WriteFloat(ByVal ProcessName As String, ByVal Address As Integer, ByVal Value As Single, Optional ByVal nsize As Integer = 4)
       If ProcessName.EndsWith(".exe") Then
           ProcessName = ProcessName.Replace(".exe", "")
       End If
       Dim MyP As Process() = Process.GetProcessesByName(ProcessName)
       If MyP.Length = 0 Then
           MessageBox.Show(ProcessName & " isn't open!")
           Exit Sub
       End If
       Dim hProcess As IntPtr = OpenProcess(PROCESS_ALL_ACCESS, 0, MyP(0).Id)
       If hProcess = IntPtr.Zero Then
           MessageBox.Show("Failed to open " & ProcessName & "!")
           Exit Sub
       End If

       Dim hAddress As Integer
       Dim vBuffer As Single

       hAddress = Address
       vBuffer = Value
       WriteProcessMemory2(hProcess, hAddress, vBuffer, nsize, 0)
   End Sub

   Public Sub WriteLong(ByVal ProcessName As String, ByVal Address As Integer, ByVal Value As Long, Optional ByVal nsize As Integer = 4)
       If ProcessName.EndsWith(".exe") Then
           ProcessName = ProcessName.Replace(".exe", "")
       End If
       Dim MyP As Process() = Process.GetProcessesByName(ProcessName)
       If MyP.Length = 0 Then
           MessageBox.Show(ProcessName & " isn't open!")
           Exit Sub
       End If
       Dim hProcess As IntPtr = OpenProcess(PROCESS_ALL_ACCESS, 0, MyP(0).Id)
       If hProcess = IntPtr.Zero Then
           MessageBox.Show("Failed to open " & ProcessName & "!")
           Exit Sub
       End If

       Dim hAddress As Integer
       Dim vBuffer As Long

       hAddress = Address
       vBuffer = Value
       WriteProcessMemory3(hProcess, hAddress, vBuffer, nsize, 0)
   End Sub

   Public Function ReadInteger(ByVal ProcessName As String, ByVal Address As Integer, Optional ByVal nsize As Integer = 4) As Integer
       If ProcessName.EndsWith(".exe") Then
           ProcessName = ProcessName.Replace(".exe", "")
       End If
       Dim MyP As Process() = Process.GetProcessesByName(ProcessName)
       If MyP.Length = 0 Then
           MessageBox.Show(ProcessName & " isn't open!")
           Exit Function
       End If
       Dim hProcess As IntPtr = OpenProcess(PROCESS_ALL_ACCESS, 0, MyP(0).Id)
       If hProcess = IntPtr.Zero Then
           MessageBox.Show("Failed to open " & ProcessName & "!")
           Exit Function
       End If

       Dim hAddress, vBuffer As Integer
       hAddress = Address
       ReadProcessMemory1(hProcess, hAddress, vBuffer, nsize, 0)
       Return vBuffer
   End Function

   Public Function ReadFloat(ByVal ProcessName As String, ByVal Address As Integer, Optional ByVal nsize As Integer = 4) As Single
       If ProcessName.EndsWith(".exe") Then
           ProcessName = ProcessName.Replace(".exe", "")
       End If
       Dim MyP As Process() = Process.GetProcessesByName(ProcessName)
       If MyP.Length = 0 Then
           MessageBox.Show(ProcessName & " isn't open!")
           Exit Function
       End If
       Dim hProcess As IntPtr = OpenProcess(PROCESS_ALL_ACCESS, 0, MyP(0).Id)
       If hProcess = IntPtr.Zero Then
           MessageBox.Show("Failed to open " & ProcessName & "!")
           Exit Function
       End If

       Dim hAddress As Integer
       Dim vBuffer As Single

       hAddress = Address
       ReadProcessMemory2(hProcess, hAddress, vBuffer, nsize, 0)
       Return vBuffer
   End Function

   Public Function ReadLong(ByVal ProcessName As String, ByVal Address As Integer, Optional ByVal nsize As Integer = 4) As Long
       If ProcessName.EndsWith(".exe") Then
           ProcessName = ProcessName.Replace(".exe", "")
       End If
       Dim MyP As Process() = Process.GetProcessesByName(ProcessName)
       If MyP.Length = 0 Then
           MessageBox.Show(ProcessName & " isn't open!")
           Exit Function
       End If
       Dim hProcess As IntPtr = OpenProcess(PROCESS_ALL_ACCESS, 0, MyP(0).Id)
       If hProcess = IntPtr.Zero Then
           MessageBox.Show("Failed to open " & ProcessName & "!")
           Exit Function
       End If

       Dim hAddress As Integer
       Dim vBuffer As Long

       hAddress = Address
       ReadProcessMemory3(hProcess, hAddress, vBuffer, nsize, 0)
       Return vBuffer
   End Function

End Module
الكود الى عاوز اعدلو الى تحت دا انا عاوز استبدل process name ب process id
كود :
   Public Sub WriteInteger(ByVal ProcessName As String, ByVal Address As Integer, ByVal Value As Integer, Optional ByVal nsize As Integer = 4)
       If ProcessName.EndsWith(".exe") Then
           ProcessName = ProcessName.Replace(".exe", "")
       End If
       Dim MyP As Process() = Process.GetProcessesByName(ProcessName)
       If MyP.Length = 0 Then
           MessageBox.Show(ProcessName & " isn't open!")
           Exit Sub
       End If
       Dim hProcess As IntPtr = OpenProcess(PROCESS_ALL_ACCESS, 0, MyP(0).Id)
       If hProcess = IntPtr.Zero Then
           MessageBox.Show("Failed to open " & ProcessName & "!")
           Exit Sub
       End If

       Dim hAddress, vBuffer As Integer
       hAddress = Address
       vBuffer = Value
       WriteProcessMemory1(hProcess, hAddress, CInt(vBuffer), nsize, 0)
   End Sub

PHP كود :
   Public Sub WriteInteger(ByVal ProcessId As IntegerByVal Address As IntegerByVal Value As IntegerOptional ByVal nsize As Integer 4)
 
       Dim MyP As Process Process.GetProcessesById(ProcessId)
 
       If MyP Is Nothing Then
            MessageBox
.Show(ProcessId " isn't open!")
 
           Exit Sub
        End 
If
 
       Dim hProcess As IntPtr OpenProcess(PROCESS_ALL_ACCESS0MyP.Id)
 
       If hProcess IntPtr.Zero Then
            MessageBox
.Show("Failed to open " ProcessId "!")
 
           Exit Sub
        End 
If

 
       Dim hAddressvBuffer As Integer
        hAddress 
Address
        vBuffer 
Value
        WriteProcessMemory1
(hProcesshAddressCInt(vBuffer), nsize0)
 
   End Sub 
الرد
تم الشكر بواسطة: ابو روضة , ابو روضة , ahmed112001



التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم