Вниз
Скачать: CL | DM;

!= Работа с памятью StarCraft:BW=!   Найти похожие ветки 

 
a[x]el   (2004-06-28 02:20) [0]

Я делаю утилиту для игры StarCraft: BroodWar и мне нужно
заменять текстовое значение в памяти, так как память динамическая, то
нужный мне адрес постоянно меняется. Получается, что мне каждый раз
нужно находить его заново. Утилита которую я делаю - это НЕ трейнер,но принцип
работы такой же.
Вот какой код я нашёл для записи значения в определённый адрес памяти :

Var WindowName : integer;
   ProcessId : integer;
   ThreadId : integer;
   buf,buf2 : PChar;
   HandleWindow : Integer;
   write : cardinal;
   Adress: integer;

Const WindowTitle = "Brood War";
    Address = $0449010C;
     PokeValue = $32;
     NumberOfBytes = 1;

implementation

{$R *.dfm}
//WRITE NEW VALUE
procedure TForm1.Button1Click(Sender: TObject);
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);
 GetMem(buf,1);
 buf^ := Chr(PokeValue);
 WriteProcessMemory(HandleWindow,ptr(Adress),buf,NumberOfBytes,write);
 FreeMem(buf);
 CloseHandle(HandleWindow);
 Adress:= Adress;
end;


Как мне осуществить поиск и записать туде не одну букву а слово.
Получается мне надо с каждой буквой увеличивать адрес на 1?
Может кто-нибудь писал трейнер или знает как это делается?
Заранее благодарен!


 
Digitman ©   (2004-06-28 09:23) [1]


> так как память динамическая, то
> нужный мне адрес постоянно меняется


> Как мне осуществить поиск


см. ф-цию VirtualQueryEx()

циклический вызов этой ф-ции с нужными параметрами позволит перечислить регионы страниц памяти целевого процесса, хранящие данные

в каждой итерации цикла для каждого перечисляемого региона (регион описывается нач.вирт.адресом и размером, кратным 4к) выполняй скользящий поиск по АП региона искомой строки, адрес найденной строки и есть искомый адрес



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.45 MB
Время: 0.019 c
6-1084085778
Dublicator
2004-05-09 10:56
2004.07.11
Передача изображения по локальной сети


3-1086671031
Makyha
2004-06-08 09:03
2004.07.11
SQL in Delphi


1-1087796493
ПсихЪ
2004-06-21 09:41
2004.07.11
Функции из DCU


3-1087306446
kondryuk
2004-06-15 17:34
2004.07.11
Получаю одно и то же...


3-1087051839
Sectey
2004-06-12 18:50
2004.07.11
Подключение к MS SQL через ADO




   Наверх