Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Синтаксис
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 24.02.2008, 20:53
НичеНепониаю НичеНепониаю вне форума
Новичок
 
Регистрация: 25.01.2008
Сообщения: 52
Репутация: 10
По умолчанию Проблемы со значением

Задача - тренер на игру

Вобщем есть часть кода от тренера:

Код:
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  
Старый 25.02.2008, 19:14
НичеНепониаю НичеНепониаю вне форума
Новичок
 
Регистрация: 25.01.2008
Сообщения: 52
Репутация: 10
По умолчанию

ответьте пожалуйста
__________________
НичеНепонимаю Савсем! Кто объяснит мне тот получит конфетку!!!
Ответить с цитированием
  #3  
Старый 05.03.2008, 23:34
Navi1982 Navi1982 вне форума
Прохожий
 
Регистрация: 28.01.2008
Сообщения: 12
Репутация: 10
По умолчанию

Значение в игре может быть закодированным. А может ты и не по тому адрессу его пишешь.
...
(посмотрел по внимательнее)
Цитата:
GetMem(buf, 1);
buf^:=Chr(PokeValue);
WriteProcessMemory(HandleWindow, ptr(Address1), buf, NumberOfBytes, write);
1. у тебя функция Chr(PokeValue) возвращает 255, которая пишется в buf размером в один байт (см. GetMem(buf,1).
2. потом по нужному тебе адресу пишется 4 байта с адреса переменной buf, где точно известно что первый байт =255 а остальные три неизвестно что хранят в себе! Собственно тут и есть твоя ошибка.
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 05:50.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter