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