|
HARDstasy
Регистрация: 26.11.2004
Сообщений: 1,367
Провел на форуме: 4226592
Репутация:
2175
|
|
понравился, держи +8
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
const buf:array[0..2] of byte=($0,$84, $85);
const appname='1.exe';
var
Form1: TForm1;
i:cardinal;
sti:tstartupinfo;
lpPi:tprocessinformation;
h:HWND;
implementation
{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject);
begin
if not CreateProcess(nil,AppName,nil,nil,false,CREATE_NEW _CONSOLE or
NORMAL_PRIORITY_CLASS,nil,nil,StI,lpPI) then
begin
messageboxa(0,'Error patching!','Error',0);
halt(1);
end;
repeat
readprocessmemory(lppi.hProcess,pointer($004026EB) ,@buf[0],1,i);
until buf[0] = $0F;
suspendthread(lppi.hThread);
writeprocessmemory(lppi.hProcess,pointer($004026EC ),@buf[2],1,i); //JE
resumethread(lppi.hThread);
closehandle(lppi.hProcess);
halt;
end;
end.
|