In VB kann diese Funktion z.B. so aussehen.
andrehaehnel
ach das meintest du..ja sry, das ist schon die richtige Funktion. Jedoch hab ich das mit ReadProcessMemory hinbekommen:
Code
- Dim sroProcess As Process() = Process.GetProcessesByName("SRO_Client")(0)
- Dim mid As IntPtr = OpenProcess(&H10, False, CUInt(sroProcess.Id))
- Dim bytes As Byte() = New Byte(2) {}
- If ReadProcessMemory(mid, &H633D00, bytes, 2, 0) = "7547" Then 'hier musste ich statt &H7547 einfach nur "7547" schreiben, also die MsgBox wird nun angezeigt
- MsgBox("Test")
- End If
Jedoch komme ich nun aber beim WriteProcessMemory nicht weiter, das ist irgendwie sehr kompliziert, AutoIT-Code:
Code
- memwrite($mid, 0x633D00, 'EB')
- 'Hier die Funktion:
- Func memwrite($mid, $adress, $hex)
- Local $struct = DllStructCreate('byte[' & BinaryLen('0x' & $hex) & ']')
- For $i = DllStructGetSize($struct) To 1 Step - 1
- DllStructSetData($struct, 1, BinaryMid('0x' & $hex, $i, 1), $i)
- Next
- DllCall($kernel32, 'int', 'WriteProcessMemory', 'int', $mid, 'int', $adress, 'ptr', DllStructGetPtr($struct), 'int', DllStructGetSize($struct), 'int', 0)
- EndFunc ;==>memwrite
Mein bisheriger Code ist der:
Code
- WriteProcessMemory(mid, &H633D00, bytes, 2, 0) 'Ich weiß nicht wie/wo ich 'EB' einfügen soll..
- Hier noch meine WriteProcessMemory-Funktion:
- <DllImport("kernel32.dll")> _
- Private Shared Function WriteProcessMemory(ByVal hProcess As IntPtr, ByVal lpBaseAddress As IntPtr, ByVal lpBuffer As Byte(), ByVal nSize As UInt32, ByRef lpNumberOfBytesWritten As UInt32) As Boolean
- End Function
Das ist nun ein wenig kompliziert, da hier nichts farbig markiert wird usw...hoffe mir könnte da trotzdem jemand helfen