Страница: 1 |
Люди помогите мне!!! Все знают игру Grand Theft Auto: Vice Sity, так вот мне известно что адрес памяти в котором храниться информация о количестве денег равен "0094ADC8" (без ковычек естественно) и имеет тип long. И вот сам вопрос: Как считать данные из памяти(зная адрес и тип)? Как вписать данные в память (тоже зная адрес и тип)
Помоему copymemory(writememory), или что то подобное Вот эти функции: Declare Function ReadProcessMemory Lib "kernel32" (byval hProcess as long, byval lpBaseAddress as Any, byval lpBuffer as Any, byval nSize as Long, byval lpNumberOfBytesWritten as long) as long Declare Function WriteProcessMemory Lib "kernel32" (то же самое ) as long Вот эти функции: Declare Function ReadProcessMemory Lib "kernel32" (byval hProcess as long, byval lpBaseAddress as Any, byval lpBuffer as Any, byval nSize as Long, byval lpNumberOfBytesWritten as long) as long Declare Function WriteProcessMemory Lib "kernel32" (то же самое ) as long Я тоже пытался сделать трейнер на Vice City. Сделал только на набор паролей. А вот с памятью не получается. Считывает только Текст. Пишу Код . если у тебя получиться - тогда и мне поможешь 'модуль Public Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long 'форма Private Sub Command1_Click() А если заменить, то вместо ReadProcessMemory-WriteProcessMemory Удачи Ну, во-первых, скорее всего можно сделать вот так: Public Function ConStrToNumber(strExpression As String) As Long Dim I 'Если значение будет больше &H7fffffff, то это вызовет OverFlow '&H7fffffff = 2147483647 For I = 0 To Len(strExpression) - 1 ConStrToNumber = ConStrToNumber Or Asc(Mid$(strExpression, Len(strExpression) - I, 1)) * (256 ^ I) Next I End Function - преобразователь String в числовое значение. Другой вариант, получать данные не как String, а как байтовый массив, тогда цикл будет выглядеть как for i=0 to ubound(bArray()) ConStrToNumber=ConStrToNumber Or bArray(ubound(bArray())-i)*(256^i) next i Кстати, не пробовал загружать прямо в Long или Double? Страница: 1 |
Вопрос: Создание трайнера!!!
Добавлено: 19.06.03 09:47
Автор вопроса: melnicov
Ответы
Всего ответов: 5
Номер ответа: 1
Автор ответа:
Danger2002
Вопросов: 10
Ответов: 109
Профиль | | #1
Добавлено: 19.06.03 11:50
Номер ответа: 2
Автор ответа:
univercal
ICQ: 173084484
Вопросов: 5
Ответов: 76
Web-сайт:
Профиль | | #2
Добавлено: 19.06.03 18:11
Номер ответа: 3
Автор ответа:
univercal
ICQ: 173084484
Вопросов: 5
Ответов: 76
Web-сайт:
Профиль | | #3
Добавлено: 19.06.03 18:12
Номер ответа: 4
Автор ответа:
Jen
Вопросов: 3
Ответов: 3
Профиль | | #4
Добавлено: 20.06.03 00:34
Public Declare Function GetWindowThreadProcessId Lib "user32" (ByVal hWnd As Long, lpdwProcessId As Long) As Long
Public Declare Function OpenProcess Lib "kernel32" (ByVal dwDesiredAcess As Long, ByVal bInheritHandle As Long, ByVal dwProcessId As Long) As Long
Public Declare Function WriteProcessMemory Lib "kernel32" (ByVal hProcess As Long, ByVal lpBaseAdress As Any, ByVal lpBuffer As Any, ByVal nSize As Long, lpNumberOfBytesWritten As Long) As Long
Public Declare Function ReadProcessMemory Lib "kernel32" (ByVal hProcess As Long, ByVal lpBaseAddess As Any, ByVal lpBuffer As Any, ByVal nSize As Long, lpNumberOfBytesWriten As Long) As Long
Public Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long
Public Const PROCESS_ALL_ACCESS = &HF0000 Or &H100000 Or &HFFF
Public Const STANDARD_RIGHTS_REQUIRED = &HF0000
Public Const SYNCHRONIZE = &H100000
Public Const PROCESS_VM_READ = &H10
Public Const PROCESS_VM_WRITE = &H20
Dim hWnd As Long '‘ удерживает управление, переданное функцией Find Window.
Dim pID As Long '‘ используется для хранения идентификатора процесса.
Dim pHandle As Long '‘ держит управление процессом.
Dim Znach As String * 20 'в этой переменной хранится считываемый блок памяти
hWnd = FindWindow(vbNullString, "GTA: Vice City")
If (hWnd = 0) Then
MsgBox Not window
Exit Sub
End If
GetWindowThreadProcessId hWnd, pID
pHandle = OpenProcess(PROCESS_ALL_ACCESS, False, pID)
If (pHandle = 0) Then
MsgBox "Couldn"
Exit Sub
End If
ReadProcessMemory pHandle,Адрес_Памяти, Znach, 4, 0&
CloseHandle hProcess
End Sub
Номер ответа: 5
Автор ответа:
univercal
ICQ: 173084484
Вопросов: 5
Ответов: 76
Web-сайт:
Профиль | | #5
Добавлено: 21.06.03 15:01