Появился новый вопрос: Предположим адрес мы уже нашли (CheatFinderoм или МТСом): 0448СB79. Адрес надо будет указывать в программе сразу после знаков &H (&H0448СB79) без пробелов - это укажит программе, что мы используем шестнадцатеричные значения.Запускаем Visual Basic. Начинайте новый проект и выберете Standart EXE. В окне Properties в поле Caption назначить название окна, вместо принятого по умолчанию Form1 Добавте в форму TexBox, Button и Timer Выделите только что добавленное текстовое поле-TexBox, и сотрите в окне (справо) Properties в поле Text название Text1 - текстовое поле будет нужно для записи желаемого значения. Выделете Timer и в окне Properties в поле Interval поставте 500 - это частота обнавления значения в игре (заморозка). Выделете Button и в окне Properties в поле Caption сможете поставить свое название кнопки (она нужна для записи в игру набранного нами в текстовом поле трайнера значения). Выберите в меню Project опцию Add Module, чтобы добавить новый модуль в программу. В ок не Project перейдите в этот модуль и наберите указанные ниже строчки. Каждая новая строчка начинается со слова Declare и должна быть набрана в одну строку:
Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String)As Long 'У вас все должно быть в одну строчку Declare Function GetWindowThreadProcessld Lib "user32"(ByVal hwnd As Long,lpdwProcessld As Long)As Long Declare Function OpenProcess Lib "kernel32"(ByVal dwDesiredAcess As Long,ByVal blnheritHandle As Long,ByVal dwProcessld As Long)As Long 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 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 Declare Function CloseHandle Lib "kernel32"(ByVal hObject As Long)As Long
Теперь перейдите в Form1, щелкнув по ней в окне Project. Теперь перейдите в Form1, щелкнув по ней в окне Project. Вы увидете исходный экран с образом вашего будущего трейнера. Щелкнув на экране правой кнопкой мыши выберете View Code. Напишем следующий код. Зеленом выделен коментарий(после знака ' ), который можно не писать.
Private Sub Command1_Click() 'Объявляем необходимый код для кнопки Dim hwnd As long 'Удерживаем управление, переданное функцией FindWindow Dim pid As Long 'Используется для хранения идентификатора процесса Dim pHandle As Long 'Держит управление процессом 'Ищем окно игры, и если игра не запущена выдаем сообщение об ошибке. hwnd = FindWindow(vbNullString,"Ваш заголовок окна игры") 'Заголовок окна игры можно узнать по надписи на кнопке свернутого окна, нажав Alt+Tab во время игры If(hwnd=0) Then MsgBox "Window not found" Exit Sub End If 'Теперь определяем идентификатор процесса. GetWindowThreadProcessld hwnd,pid 'Используем этот идентификатор для получения управления процессом. pHandle =OpenProcess(PROCESS_ALL_ACCESS,False,pid) If(pHandle=0)Then MsgBox "Couldn't get a process handlel" Exit Sub End If 'Записываем новое значение в память по нужному адресу WriteProcessMemory pHandle,&H0448СB79,"Beans",5,0& 'За место &H0448СB79 вставте свой. 'Прекращаем управлять процессом. CloseHandle hProcess End Sub Private Sub ReadTimer_Timer()'объявляем некоторые необходимые моменты для таймера. Dim hwnd As Long 'Удерживает управление,переданное функцией FindWindow Dim pid As Long 'Удерживает идентификатор процесса. Dim pHandle As Long 'Удерживает управление процессом. Dim str As String*20 'Параметр текстовой строки 'Вначале ищем окно игры hwnd = FindWindow(vbNullString,"Ваш заголовок окна игры") If(hwnd=0) Then Exit Sub GetWindowThreadProcessld hwnd,pid 'Определяем идентификатор процесса. 'Используем идентификатор для управления процессом. pHandle =OpenProcess(PROCESS_ALL_ACCESS,False,pid) If(pHandle=0)Then Exit Sub 'Теперь можно прочитать из памяти ReadProcessMemory pHandle, &H0448СB79,str,20,0& 'Покажим строку в текстовом поле txtDisplay=str 'Прекращаем управлять процессом. CloseHandle hProcess End Sub
Все, трейнер почти готов. Осталось его создать запускаемый файл В меню File выберете Make Project1.exe. Трейнер готов. Не забудьте, что сначало нужно запустить игру а затем уже трейнер.
Все это работает, только не работает вызов в модуле проекта (в отмеченом жирным выдает ошибку) помогите плиз!!!!
Ответить
|