Einzelnen Beitrag anzeigen

Arnulf

Registriert seit: 28. Okt 2004
Ort: Wien
271 Beiträge
 
#17

Re: CreateToolHelp32SnapShot hooks umgehen

  Alt 4. Aug 2005, 22:24
Hi again - bin zurück
Zitat:
seiten zu viel traffic haben
Ja das wäre dann auch bei mir wohl das problem - ich hab nur 200 gig frei im monat.
4-5 gigabyte fallen da nicht auf aber mehr .... naja.

Jedenfalls hab ich probiert die ntdll.dll mit forceloadlibrary nachzuladen - aber ich bekomm von der funktion nichts zurück.
Der hook dürfte funktionieren, zumindestenst springt er in die hook funktion wenn LoadLibraryA aufgerufen wird.
Trotzdem bekomm ich keine neue .dll geladen oder von der func nichts zurück.
die Source hat sich ja nicht geändert hab die nur abgeschrieben - aber trotzdem nochmal:
Der aufruf:
 nt2dll := ForceLoadLibraryNtA('ntdll.dll'); Brechis Source:
Delphi-Quellcode:
function myRtlEqualUnicodeString(a,b: pointer; c: boolean): boolean; stdcall;
begin
  if pos(forcename,uppercase(pwidechar(pointer(cardinal(b)+4)^))) > 0 then
    result := false else
    result := nextRtlEqualUnicodeString(a,b,c);
end;

function ForceLoadLibraryNtA(dllname: pchar): cardinal; stdcall;
begin
  @oldRtlEqualUnicodeString := GetProcAddress(GetModuleHandle('ntdll.dll'),'RtlEqualUnicodeString');
  if (@oldRtlEqualUnicodeString <> nil) then
  begin
    uallTableHook.HookAPIJMP(@oldRtlEqualUnicodeString,@myRtlEqualUnicodeString,@nextRtlEqualUnicodeString);
    forcename := uppercase(dllname);
    result := LoadLibraryA(dllname);
    uallTableHook.UnhookAPIJMP(@nextRtlEqualUnicodeString);
  end else
    Result := LoadLibraryA(dllname);
end;
Naja ich hoffe du weißt warum ich nämlich nicht .
Wäre auch super, wenn du eine erklärung für myRtlEqualUnicodeString hättest... weil ich zwar sehe, daß loadlibraryA die funktion verwendet, aber mir nicht klar ist, wie dadurch die .dll neu geladen werden sollte ..

Arnulf
  Mit Zitat antworten Zitat