![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
|
|
#1
|
|||
|
|||
|
Задача - тренер на игру
Вобщем есть часть кода от тренера: Код:
procedure TForm1.Button1Click(Sender: TObject);
var
WindowName: Integer;
ProcessId: Integer;
ThreadId: Integer;
buf: PChar;
write: Cardinal;
HandleWindow: Integer;
const
WindowTitle = 'блаблабла';
Address1 = $00DF5AE0;
PokeValue = 99999999;
NumberOfBytes = 4;
begin
WindowName:=FindWindow(nil, WindowTitle);
if WindowName = 0 then
begin
Beep;
ShowMessage('Запусти игру для начала!');
Edit1.Text := 'You Must начадь гейм';
Exit;
end;
Edit1.Text := 'чит активен';
ThreadId:=GetWindowThreadProcessId(WindowName, @ProcessId);
HandleWindow:=OpenProcess(PROCESS_ALL_ACCESS, False, ProcessId);
GetMem(buf, 1);
buf^:=Chr(PokeValue);
WriteProcessMemory(HandleWindow, ptr(Address1), buf, NumberOfBytes, write);
FreeMem(buf);
CloseHandle(HandleWindow);
end;Проблема такова. После нажатия кнопочки после которой срабатывает данный код в игру по нужному адресу вбивается не указанное значение а фигня какаето. Вот тут значение: Код:
PokeValue = 99999999; А в игре появляется 121281939 допустим.. Если сделаю так: Код:
PokeValue = $99999999; То всеравно такаяже фигня.... Я уж ненаю что делать. Даже если я введу: Код:
PokeValue = $0000000; или PokeValue = 0000000; Всеравно не прет.... Как сделать чтобы появлялось в игре точное значение? Пожааалуйста!! оч надо! |
|
#2
|
|||
|
|||
|
ответьте пожалуйста
|
|
#3
|
|||
|
|||
|
Значение в игре может быть закодированным. А может ты и не по тому адрессу его пишешь.
... (посмотрел по внимательнее) Цитата:
.2. потом по нужному тебе адресу пишется 4 байта с адреса переменной buf, где точно известно что первый байт =255 а остальные три неизвестно что хранят в себе! Собственно тут и есть твоя ошибка. |