08-02-13, 01:22 AM
(آخر تعديل لهذه المشاركة : 08-02-13, 01:33 AM {2} بواسطة شركة الفرقان.)
كود :
<DllImport("kernel32", EntryPoint:="ReadProcessMemory", CharSet:=CharSet.Ansi, SetLastError:=True, ExactSpelling:=True)> _
Private Shared Function ReadProcessMemory1(ByVal hProcess As Integer, ByVal lpBaseAddress As Integer, ByRef lpBuffer As Integer, ByVal nSize As Integer, ByRef lpNumberOfBytesWritten As Integer) As Integer
End Function
كود :
Public Shared Function ReadLong(ByVal ProcessName As String, ByVal Address As Integer, Optional ByVal nsize As Integer = 4) As Long
Dim num2 As Long
Dim num3 As Long
If ProcessName.EndsWith(".exe") Then
ProcessName = ProcessName.Replace(".exe", "")
End If
Dim processesByName As Process() = Process.GetProcessesByName(ProcessName)
If (processesByName.Length = 0) Then
MessageBox.Show((ProcessName & " isn't open!"))
Return num2
End If
Dim ptr As IntPtr = DirectCast(ReadWritingMemory.OpenProcess(&H1F0FF, 0, processesByName(0).Id), IntPtr)
If (ptr = IntPtr.Zero) Then
MessageBox.Show(("Failed to open " & ProcessName & "!"))
Return num2
End If
Dim lpBaseAddress As Integer = Address
Dim lpNumberOfBytesWritten As Integer = 0
ReadWritingMemory.ReadProcessMemory3(CInt(ptr), lpBaseAddress, num3, nsize, lpNumberOfBytesWritten)
Return num3
End Function
كود :
Dim ptr As IntPtr = DirectCast(ReadWritingMemory.OpenProcess(&H1F0FF, 0, processesByName(0).Id), IntPtr)
كود :
<DllImport("kernel32", EntryPoint:="ReadProcessMemory", CharSet:=CharSet.Ansi, SetLastError:=True, ExactSpelling:=True)> _
Private Shared Function ReadProcessMemory3(ByVal hProcess As Integer, ByVal lpBaseAddress As Integer, ByRef lpBuffer As Integer, ByVal nSize As Integer, ByRef lpNumberOfBytesWritten As Integer) As Integer
End Function