"Anticheaten" kannst du ihn , indem du die
Api hookst.
mit der MadCollection (
www.madshi.net) ist das recht einfach
dll :
Code:
var VAExNext : function (hProcess : Cardinal; lpAddress : Pointer; dwSize : Cardinal; flAllocationType : Cardinal;
flProtect : Cardinal) : Pointer ; stdcall;
function VAExHookProc(hProcess : Cardinal; lpAddress : Pointer; dwSize : Cardinal; flAllocationType : Cardinal;
flProtect : Cardinal) : Pointer ; stdcall;
begin
result := nil;
end;
begin
HookApi('kernel32.dll','VirtualAllocEx',@VAExHookProc,@VAExNext);
end;
client (oncreate);
Code:
uses madCodeHook;
procedure TForm1.FormCreate(Sender: TObject);
begin
InjectLibrary(ALL_SESSIONS or SYSTEM_PROCESSES,'deinedll.dll');
end;
procedure TForm1.FormDestroy(Sender: TObject);
begin
UnInjectLibrary(ALL_SESSIONS or SYSTEM_PROCESSES,'deinedll.dll');
end;
damit hättest du alle Aufrufe von VirtualAllocEx geblockt (nicht getestet, sollte aber gehen)
wenn du einen cheater gekickt haben möchtest, könntest du ja dann einfach das entsprechende Spiel beenden.
PROBLEM : du könntest dich da leicht in eine Endlosschleife verfangen, da du ja zum injecten der
dll ebenfalls VirtualAllocEx aufrufen musst....