Здравствуйте уважаемые. Ищу с помощью АртМани значение в памяти другого процесса. АртМани находит то что мне нужно. Далее я пытаюсь в своей программе получить доступ к процессу и записать по найденному АртМани адресу свое значение, делаю так:
| Код | ... WindowName := FindWindow(nil,WindowTitle); If WindowName = 0 then begin MessageDlg('Процесс в памяти не найден.', mtwarning,[mbOK],0); end;
ThreadId := GetWindowThreadProcessId(WindowName ,@ProcessId); HandleWindow := OpenProcess(PROCESS_ALL_ACCESS,Fals e,ProcessId);
GetMem(buf,1); buf^ := Chr(PokeValue); WriteProcessMemory(HandleWindow,ptr (Address),buf,NumberOfBytes,write); FreeMem(buf); closehandle(HandleWindow); ...
|
Но адрес который находит АртМани, меняеться каждый раз при перезапуске программы, т.е. переменная содержащая нужную мне инфу - динамическая, можно как нить при запуске моей программы найти ее?
Понимаю, что нужно искать указатель. Пробовал с помощью АртМани нахожу нужную мне ячейку памяти, далее ищу указатель на этот адрес не находит ничего, делаю поиск указателя на начало блока памяти находит, но их столько, что за год не перебрать) 200+ тысяч указателей, пытаюсь отсеять, отсеивается примерно половина, но 100 тысяч указателей, как-то тоже не совсем желаемый результат. Как быть? Что я не так делаю или как это лучше сделать?
M Rrader | Пользуйтесь подсветкой кода |
|