|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
изменить значение в памяти другого процесса
Вобщем надо изменить значение в другой прогамме.
Адрес памяти всегда постоянный, (отсеял его с помощью ArtMoney) адрес 00871714 нашел в интернете как считывать изменять данные в программе,но уменя не работает =( вот листинг программы,посмотрите что не так Код:
uses ...TlHelp32; //функция поиска хендла по имени exe файла прогаммы function GetProcessByEXE(exename:string):thandle; var I: Integer; hSnapshoot: THandle; pe32: TProcessEntry32; proc:thandle; begin result:=0; hSnapshoot := CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0); if (hSnapshoot = -1) then Exit; pe32.dwSize := SizeOf(TProcessEntry32); if (Process32First(hSnapshoot, pe32)) then repeat if (pe32.szExeFile=exename)then begin result:=pe32.th32ProcessID; exit; end; until not Process32Next(hSnapshoot, pe32); end; procedure TForm1.Button1Click(Sender: TObject); var GameScreen: HWND; //хендл процесса Buffer: Byte; //тут будет наше значение ProcessIdentifier, ProcessHandle, Temp: Cardinal; NumberOfBytes: byte;// количество байт begin NumberOfBytes:=8; GameScreen := GetProcessByEXE('proga.exe'); if GameScreen <> 0 then begin GetWindowThreadProcessId(GameScreen, @ProcessIdentifier); ProcessHandle := OpenProcess(PROCESS_ALL_ACCESS, False, ProcessIdentifier); ReadProcessMemory(ProcessHandle, Ptr($00871714), @Buffer,NumberOfBytes, Temp); ShowMessage( IntToStr(Buffer) ); //Buffer:=5; //пока не надо //WriteProcessMemory(ProcessHandle,Ptr($00871714),@Buffer,NumberOfBytes,Temp); Closehandle(ProcessHandle); end; end; еще,где NumberOfBytes:=8; это АртМоней показывает Тип-целое, 8байт. вроде правильно подставил? Хенд процесса возвращается правильный, сверял с АртМонием. Где косяк? еще я слышал что дельфи шестнадцатеричные числа както в обратном порядке читает.может адрес памяти переконвертировать както надо? Последний раз редактировалось Snake22, 21.07.2012 в 02:17. |