Перейти к содержанию

Лидеры

Популярный контент

Показан контент с высокой репутацией 21.04.2014 во всех областях

  1. unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs,TlHelp32, StdCtrls; type TForm1 = class(TForm) Label1: TLabel; Label2: TLabel; GroupBox1: TGroupBox; Button1: TButton; Button2: TButton; GroupBox2: TGroupBox; CheckBox1: TCheckBox; GroupBox3: TGroupBox; Button3: TButton; Button4: TButton; procedure Button1Click(Sender: TObject); procedure Button2Click(Sender: TObject); procedure CheckBox1Click(Sender: TObject); procedure Button3Click(Sender: TObject); procedure Button4Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; prID: Cardinal; implementation {$R *.dfm} //Процедура записи байт в процесс игры procedure WriteSignatyre(GameID: Cardinal; PokeAddr: Integer; PokeVal: array of Byte); var pHandle:LongInt; numwritten:SIZE_T;//Если будет ошибка заменить SIZE_T на Cardinal begin pHandle:=OpenProcess(PROCESS_VM_READ or PROCESS_VM_WRITE or PROCESS_VM_OPERATION,false,GameID); WriteProcessMemory(pHandle,ptr(PokeAddr),@PokeVal,SizeOf(PokeVal),numwritten); CloseHandle(pHandle); end; //Процедура получения ID зная название процесса function GetProcess(FileName: string): Cardinal; var hSnap:THandle; prEntry:PROCESSENTRY32; begin Result:=0; hSnap:=CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0); prEntry.dwSize:=SizeOf(prEntry); If Process32First(hSnap,prEntry) then begin While Process32Next(hSnap,prEntry) do Begin If prEntry.szExeFile = FileName then Result:=Cardinal(prEntry.th32ProcessID); End; end; CloseHandle(hSnap); end; //Нажатие на кнопку procedure TForm1.Button1Click(Sender: TObject); const ProcessName='PlantsVsZombies.exe';//Процесс Игры Adress = $0048B35C ; //Адрес по которому будет производиться запись сигнатуры байт SignatyreOn: array[0..3] of Byte = ($83,$47,$24,$67);//Байты для записи в процесс игры SignatyreOFF: array[0..3] of Byte = ($83,$47,$24,$01);//Байты для записи в процесс игры begin prID:=GetProcess(ProcessName);//Получаем ID процесса по названию процесса WriteSignatyre(prID,Adress,SignatyreOn);//Пример записи байт в память End; procedure TForm1.Button2Click(Sender: TObject); const ProcessName='PlantsVsZombies.exe';//Процесс Игры Adress = $0048B35C ; //Адрес по которому будет производиться запись сигнатуры байт SignatyreOFF: array[0..3] of Byte = ($83,$47,$24,$01);//Байты для записи в процесс игры begin prID:=GetProcess(ProcessName);//Получаем ID процесса по названию процесса WriteSignatyre(prID,Adress,SignatyreOFF);//Пример записи байт в память End; procedure TForm1.Button3Click(Sender: TObject); const ProcessName='PlantsVsZombies.exe';//Процесс Игры Adress = $0048B35C ; //Адрес по которому будет производиться запись сигнатуры байт SignatyreOn: array[0..3] of Byte = ($83,$47,$24,$67);//Байты для записи в процесс игры begin prID:=GetProcess(ProcessName);//Получаем ID процесса по названию процесса if prID = 0 then begin Application.MessageBox('Процесс не найден', 'Предупреждение', MB_OK + MB_ICONINFORMATION); end else begin Application.MessageBox('Активировано', 'Предупреждение', MB_OK + MB_ICONINFORMATION); WriteSignatyre(prID,Adress,SignatyreOn);//Пример записи байт в память End; end; procedure TForm1.Button4Click(Sender: TObject); const ProcessName='PlantsVsZombies.exe';//Процесс Игры Adress = $0048B35C ; //Адрес по которому будет производиться запись сигнатуры байт SignatyreOFF: array[0..3] of Byte = ($83,$47,$24,$01);//Байты для записи в процесс игры begin prID:=GetProcess(ProcessName);//Получаем ID процесса по названию процесса if prID = 0 then begin Application.MessageBox('Процесс не найден', 'Предупреждение', MB_OK + MB_ICONINFORMATION); end else begin Application.MessageBox('Деактивировано', 'Предупреждение', MB_OK + MB_ICONINFORMATION); WriteSignatyre(prID,Adress,SignatyreOFF);//Пример записи байт в память End; end; //Пример записи в процесс на чекбоксе procedure TForm1.CheckBox1Click(Sender: TObject); const ProcessName='PlantsVsZombies.exe';//Процесс Игры Adress = $0048B35C ; //Адрес по которому будет производиться запись сигнатуры байт SignatyreOn: array[0..3] of Byte = ($83,$47,$24,$67);//Байты для записи в процесс игры SignatyreOFF: array[0..3] of Byte = ($83,$47,$24,$01);//Байты для записи в процесс игры begin if CheckBox1.Checked = True then begin prID:=GetProcess(ProcessName);//Получаем ID процесса по названию процесса WriteSignatyre(prID,Adress,SignatyreOn);//Пример записи байт в память CheckBox1.Caption := 'Деактивировать'; end else begin prID:=GetProcess(ProcessName);//Получаем ID процесса по названию процесса WriteSignatyre(prID,Adress,SignatyreOFF);//Пример записи байт в память CheckBox1.Caption := 'Активировать'; end;end; end.
    1 балл
×
×
  • Создать...

Важная информация

Находясь на нашем сайте, Вы автоматически соглашаетесь соблюдать наши Условия использования.