Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 16.02.2008, 16:43   #1
ERASERROR
Форумчанин
 
Регистрация: 15.01.2008
Сообщений: 117
Радость трейнер

Пишу трейнер к игре, имеется адресс 16 ричный, имеется значение которое надо туда записать, пытался в сам exe записать, винда запретила так как процесс уже запущен, хотя открывал с параметром fmsharedenynone.может кто подскажет?
ERASERROR вне форума Ответить с цитированием
Старый 16.02.2008, 16:58   #2
Air
Участник клуба
 
Аватар для Air
 
Регистрация: 30.04.2007
Сообщений: 1,307
По умолчанию

Вам скорее всего надо не в ЕХЕ-файл записывать, а в память образа.
К примеру: "ArtMoney" так работает.
Всё гениальное - просто!
Air вне форума Ответить с цитированием
Старый 16.02.2008, 17:07   #3
ERASERROR
Форумчанин
 
Регистрация: 15.01.2008
Сообщений: 117
По умолчанию

А как записать в память? Допустим адресс 04C33E24, а значение 270F
ERASERROR вне форума Ответить с цитированием
Старый 16.02.2008, 17:57   #4
Air
Участник клуба
 
Аватар для Air
 
Регистрация: 30.04.2007
Сообщений: 1,307
По умолчанию

1 - почему бы не отредактировать ЕХЕ до его старта?
2 - почему бы не использовать "ArtMoney" или другой редактор памяти?
3 - и наконец, что за игру Вы собираетесь пропатчить?

Код:
var D:TStream;
     Buf:DWORD;
begin
Buf:=$270F;
D:=TFileStream.Create('C:\1.exe',fmOpenWrite);
d.Seek($04C33E24,soBeginning);
d.Write(Buf,sizeof(buf));
d.Free;
Это если отредактировать ЕХЕ перед его запуском (резервную копию на всякий случай сделайте)
Всё гениальное - просто!
Air вне форума Ответить с цитированием
Старый 16.02.2008, 18:06   #5
ERASERROR
Форумчанин
 
Регистрация: 15.01.2008
Сообщений: 117
По умолчанию

Игра C&C3 Tiberium wars, до запуска делал, бесполезно, ресурсы заполняются во время игры, я хочу ради практики написать свой трейнер(не патч)
ERASERROR вне форума Ответить с цитированием
Старый 16.02.2008, 18:36   #6
Air
Участник клуба
 
Аватар для Air
 
Регистрация: 30.04.2007
Сообщений: 1,307
По умолчанию

Жди ответа с темы "Редактирование памяти процесса"
http://www.programmersforum.ru/showthread.php?t=14328
я если честно трейнеры ещё не писал.
Если что прверь сайт http://chemax.ru/
Всё гениальное - просто!

Последний раз редактировалось Air; 16.02.2008 в 18:59.
Air вне форума Ответить с цитированием
Старый 16.02.2008, 18:42   #7
ERASERROR
Форумчанин
 
Регистрация: 15.01.2008
Сообщений: 117
По умолчанию

И на том спасибо
ERASERROR вне форума Ответить с цитированием
Старый 16.02.2008, 19:36   #8
Air
Участник клуба
 
Аватар для Air
 
Регистрация: 30.04.2007
Сообщений: 1,307
По умолчанию

Вот попробуй так.

Код:
uses Tlhelp32
...

function GetProcessId(pName: PChar): dword;
var
 Snap: dword;
 Process: TPROCESSENTRY32;
begin
  Result := 0;
  Snap := CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
  if Snap <> INVALID_HANDLE_VALUE then
     begin
      Process.dwSize := SizeOf(TPROCESSENTRY32);
      if Process32First(Snap, Process) then
         repeat
          if lstrcmpi(Process.szExeFile, pName) = 0 then
             begin
              Result := Process.th32ProcessID;
              CloseHandle(Snap);
              Exit;
             end;
         until not Process32Next(Snap, Process);
      Result := 0;
      CloseHandle(Snap);
     end;
end;

Function WriteDataToEXE(EXEname:String; Buff,Position:Dword):int64;
var f:cardinal; buf,pos:Dword;
begin
WriteProcessMemory(getprocessid(pchar(EXEname)),@Position,@buff,sizeof(buff),f);
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
WriteDataToEXE('taskmgr.exe',$270F,$04C33E24);
end;
Всё гениальное - просто!
Air вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Трейнер для игры Патрон Gamedev - cоздание игр: Unity, OpenGL, DirectX 4 19.06.2008 07:52