首先,我有這樣的記憶寫模塊:生成一個隨機值
Module Lul
#Region "Declarations"
Private Declare Function OpenProcess Lib "kernel32" Alias "OpenProcess" (ByVal dwDesiredAccess As Integer, ByVal bInheritHandle As Integer, ByVal dwProcessId As Integer) As Integer
Private Declare Function WriteProcessMemory 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 WriteFloatMemory 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 Integer
Private Declare Function ReadFloat Lib "kernel32" Alias "ReadProcessMemory" (ByVal hProcess As IntPtr, ByVal lpBaseAddress As IntPtr, ByRef buffer As Single, ByVal size As Int32, ByRef lpNumberOfBytesRead As Int32) As Boolean
Private Declare Function ReadProcessMemory 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 CloseHandle Lib "kernel32" Alias "CloseHandle" (ByVal hObject As Integer) As Integer
Private string1 As Long
Private string2 As Integer
Private RBuff1 As Long
Private RBuff2 As Single
Private RBuff3 As Integer
#End Region
Public Function IsProcessOpen(ByVal name As String) As Boolean
For Each clsProcess As Process In Process.GetProcesses
If clsProcess.ProcessName.Contains(name) Then
Return True
End If
Next
' Do nothing
Return False
End Function
#Region "Hacks"
'WriteMemory
Private Function WriteMemory(ByVal Address As Integer, ByVal Value As Long, ByVal Bytes As Integer)
Dim ACRSPLookUp As Process() = Process.GetProcessesByName("S4Client")
If ACRSPLookUp.Length = 0 Then
End
End If
Dim processHandle As IntPtr = OpenProcess(&H1F0FFF, 0, ACRSPLookUp(0).Id)
WriteProcessMemory(processHandle, Address, Value, Bytes, Nothing)
CloseHandle(processHandle)
Return Nothing
End Function
'WriteFloat
Private Function WriteFloat(ByVal Address As Integer, ByVal Value As Single)
Dim ACRSPLookUp As Process() = Process.GetProcessesByName("S4Client")
If ACRSPLookUp.Length = 0 Then
End
End If
Dim processHandle As IntPtr = OpenProcess(&H1F0FFF, 0, ACRSPLookUp(0).Id)
WriteFloatMemory(processHandle, Address, Value, 4, Nothing)
CloseHandle(processHandle)
Return Nothing
End Function
'NOP
Private Function NOP(ByVal Address As Integer, ByVal value As Integer)
Dim ACRSPLookUp As Process() = Process.GetProcessesByName("S4Client")
If ACRSPLookUp.Length = 0 Then
End
End If
Dim processHandle As IntPtr = OpenProcess(&H1F0FFF, 0, ACRSPLookUp(0).Id)
WriteProcessMemory(processHandle, Address, value, 1, Nothing)
CloseHandle(processHandle)
Return Nothing
End Function
#End Region
#Region "Functions"
Public Function memoryh4x(ByVal address As String, ByVal value As Long, ByVal bytes As Byte)
If IsProcessOpen("S4Client") Then
string2 = "&H" & Hex(string1 + address)
WriteMemory(string2, value, bytes)
End If
Return Nothing
End Function
Public Function floath4x(ByVal address As String, ByVal value As Long)
If IsProcessOpen("S4Client") Then
string2 = "&H" & Hex(string1 + address)
WriteFloat(string2, value)
End If
Return Nothing
End Function
Public Function noph4x(ByVal address As String, ByVal value As Long)
If IsProcessOpen("S4Client") Then
string2 = "&H" & Hex(string1 + address)
NOP(string2, value)
End If
Return Nothing
End Function
#End Region
End Module
而且我寫的過程的記憶是這樣的:
memoryh4x(&H482719, 8, 4)
我希望它把一個隨機當每次檢查複選框而不是8時爲值。 我該怎麼做?謝謝。
您使用的關鍵字'End'被濫用。這不是正確的方式來結束一個功能 - 它會結束你的應用程序 - 而不是以正確的方式! – OneFineDay
我想你錯了。我只是想讓它產生一個隨機值來寫。 – user3423677
不,我想告訴你,這是一個不好的事情來打電話,不應該被使用。讓我知道你的軟件的名字是什麼,所以我可以避免它 - 謝謝 – OneFineDay