Перейти к содержанию

FarmHitman

Стажёры
  • Постов

    10
  • Зарегистрирован

  • Посещение

Репутация

0 Навыки не прокачены
  1. Ага, с правами админа заработала, только не много в другую сторону Надо код проверять... Ладно, спасибо за помощь, дальше придется с кодом мучаться...
  2. Я просто код копировал с 1 поста этой темы, не заметил 1 в GetMem(buf,1); Если я правильно понимаю надо 1 поменять на 4 ? или вообще убрать эту часть кода?
  3. GetMem(buf,1); buf^ := Chr(PokeValue); If buf = 0 then begin MessageBox(win,'Error!'+#13+#10+ 'Buffer is empty.','Ошибка',MB_OK or MB_ICONINFORMATION); end; На выделенную строчку ругается... Operator not applicable to this operand type
  4. WindowName := FindWindow(nil,WindowTitle); If WindowName = 0 then begin MessageBox(win,'Игра должна быть запущенна до трейнера.'+#13+#10+ ' Запустите её,а потом трейнер','Ошибка',MB_OK or MB_ICONINFORMATION); end; ThreadId := GetWindowThreadProcessId(WindowName,@ProcessId); If ThreadID := 0 then begin ShowMessage('ThreadID.'); end; HandleWindow := OpenProcess(PROCESS_ALL_ACCESS,False,ProcessId); if HandleWindow = 0 then begin Show Message('HandleWindow'); end; Как я понял эту часть надо сделать так, а дальше как сделать? Можно код плиз? GetMem(buf,1); buf^ := Chr(PokeValue); WriteProcessMemory(HandleWindow,ptr(Address),buf,NumberOfBytes,write); FreeMem(buf);
  5. Я написал 2 примера кода, ни 1 из них на указанных ОС не работают. п. 1 не подходит, не понял пункты 3, 5 и 6 а п.4 не думаю что не успевает, если только на некоторых ОС не работает, антивируса нету.
  6. var WindowName: integer; ProcessId: integer; ThreadId: integer; HandleWindow: Integer; write: cardinal; buf: dword; const WindowTitle = 'Name'; Address = $007B5678; NumberOfBytes = 4; begin WindowName := FindWindow(nil,WindowTitle); If WindowName = 0 then begin MessageDlg('Игра должна быть запущена до трейнера. Запустите ее, потом трейнер', mtwarning,[mbOK],0); end; ThreadId := GetWindowThreadProcessId(WindowName,@ProcessId); HandleWindow := OpenProcess(PROCESS_ALL_ACCESS,False,ProcessId); buf:=$0; WriteProcessMemory(HandleWindow, ptr(address), @buf, 4, write); end; Можно и в таком варианте: var WinClass : TWndClass; hInst: HWND; Handle: HWND; Msg: TMSG; hFont: HWND; win: hwnd; WindowName: integer; ProcessId: integer; ThreadId: integer; buf: PChar; HandleWindow: Integer; write: cardinal; const WindowTitle= 'Name'; Address= $007B5678; PokeValue= $0; NumberOfBytes= 4; begin WindowName := FindWindow(nil,WindowTitle); If WindowName = 0 then begin MessageBox(win,'Игра должна быть запущенна до трейнера.'+#13+#10+ ' Запустите её,а потом трейнер','Ошибка',MB_OK or MB_ICONINFORMATION); end; ThreadId := GetWindowThreadProcessId(WindowName,@ProcessId); HandleWindow := OpenProcess(PROCESS_ALL_ACCESS,False,ProcessId); GetMem(buf,1); buf^ := Chr(PokeValue); WriteProcessMemory(HandleWindow,ptr(Address),buf,NumberOfBytes,write); FreeMem(buf); CloseHandle(HandleWindow); end; У большинства людей работает. Не работает на: Win 7 x32 Максимальная, Win 7 x64 Ultimate Работает на: Win XP SP2 x32, Win XP SP3 x32, Win 7 x64 Домашняя, Win 7 x64 Максимальная... Адреса были проверены через CheatEngine, соответственно на компьютере где не работает.
  7. Еще вопрос Почему на некоторых ОС не работает трейнер? Т.е. адреса все совпадают, но на нажатие кнопки никак не реагирует?
  8. Разобрался, спс. А как можно в текст вывести? ReadProcessMemory(HandleWindow, ptr($01162420), @bb, 4, wread); На что это поменять надо?
  9. Как можно сделать программу, чтобы, к примеру, в Label показывалось мое кол-во жизней в игре? PS: Адрес есть...
×
×
  • Создать...

Важная информация

Находясь на нашем сайте, Вы автоматически соглашаетесь соблюдать наши Условия использования.