Diese Funktion sollte ein beliebiges Modul anhand seines Handles vor den meisten Prozess analyzing und Anti-Cheat-Souftwares verstecken.
Da es zur Zeit nur im eigenen Prozess funktioniert rate ich dazu es in einer injecteten DLL aufzurufen.
Sollte Interesse bestehen, kann ich auch gerne mal ein Tutorial zum Thema PEB machen, mit Erläuterungen zum Verstecken/Hooken von Modulen via PEB.

Code:
function HideModule(hModule : Cardinal) : Boolean;
var
NtQueryInformationProcess : TFNNtQueryInformationProcess;
procinfo : TProcessBasicInformation;
pldrmod : PLdrModule;
begin
  result := false;
  NtQueryInformationProcess := GetProcAddress(GetModuleHandle('ntdll.dll'),'NtQueryInformationProcess');
  if @ntqueryInformationProcess = nil Then Exit;
  NTQueryInformationProcess(GetCurrentProcess,PROCESSBASICINFORMATION,procinfo,SizeOf(TProcessBasicInformation),nil);
  pldrmod := PLdrModule(procinfo.PebBaseAddress.Ldr.InLoadOrderModuleList.Flink);
  while (pldrMod.BaseAddress <> 0) Do begin
    If pldrmod.BaseAddress = hModule Then begin //found the right one
      pldrmod.InLoadOrderModuleList.Blink.Flink := pldrmod.InLoadOrderModuleList.Flink;
      pldrmod.InLoadOrderModuleList.Flink.Blink := pldrmod.InLoadOrderModuleList.Blink;
      pldrmod.InMemoryOrderModuleList.Blink.Flink := pldrmod.InMemoryOrderModuleList.Flink;
      pldrmod.InMemoryOrderModuleList.Flink.Blink := pldrmod.InMemoryOrderModuleList.Blink;
      pldrmod.InInitializationOrderModuleList.Blink.Flink := pldrmod.InInitializationOrderModuleList.Flink;
      pldrmod.InInitializationOrderModuleList.Flink.Blink := pldrmod.InInitializationOrderModuleList.Blink;
      result := true;
    end;
    pldrMod := PLdrModule(pldrMod.InLoadOrderModuleList.Flink); //next one, please
  end;
end;
Benötigt wird außerdem die uPEB unit von nicoDE (bzw. ein Teil davon), wegen den ganzen Headern
http://nopaste.free-hack.com/index.php?id=49e666dd5d

gruß
Hamtaro aka CorVu5



----------------
Now playing: Dire Straits - Sultans of Swing ( Live )
via FoxyTunes