Страница: 1 |
Вопрос: Создание трайнера!!! | Добавлено: 19.06.03 09:47 |
Автор вопроса: ![]() |
Люди помогите мне!!! Все знают игру Grand Theft Auto: Vice Sity, так вот мне известно что адрес памяти в котором храниться информация о количестве денег равен "0094ADC8" (без ковычек естественно) и имеет тип long. И вот сам вопрос: Как считать данные из памяти(зная адрес и тип)? Как вписать данные в память (тоже зная адрес и тип) |
Ответы | Всего ответов: 5 |
Номер ответа: 1 Автор ответа: ![]() ![]() Вопросов: 10 Ответов: 109 |
Профиль | Цитата | #1 | Добавлено: 19.06.03 11:50 |
Помоему copymemory(writememory), или что то подобное |
Номер ответа: 2 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ICQ: 173084484 Вопросов: 5 Ответов: 76 |
Web-сайт: Профиль | Цитата | #2 | Добавлено: 19.06.03 18:11 |
Вот эти функции: 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" (то же самое |
Номер ответа: 3 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ICQ: 173084484 Вопросов: 5 Ответов: 76 |
Web-сайт: Профиль | Цитата | #3 | Добавлено: 19.06.03 18:12 |
Вот эти функции: 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" (то же самое |
Номер ответа: 4 Автор ответа: ![]() ![]() ![]() ![]() ![]() Вопросов: 3 Ответов: 3 |
Профиль | Цитата | #4 | Добавлено: 20.06.03 00:34 |
Я тоже пытался сделать трейнер на Vice City. Сделал только на набор паролей. А вот с памятью не получается. Считывает только Текст. Пишу Код . если у тебя получиться - тогда и мне поможешь 'модуль Public Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long 'форма Private Sub Command1_Click()
|
Номер ответа: 5 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ICQ: 173084484 Вопросов: 5 Ответов: 76 |
Web-сайт: Профиль | Цитата | #5 | Добавлено: 21.06.03 15:01 |
Ну, во-первых, скорее всего можно сделать вот так: 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 |
|