Einzelnen Beitrag anzeigen

Arnulf

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

Re: uallcollection - GetRealModule Handle win speicherverwal

  Alt 23. Jul 2005, 22:23
Oh das ist mal echt informativ .
damit ist das mal klar:
Delphi-Quellcode:
if GetRealModuleHandle(addr) <> GetModuleHandle('ntdll.dll') then
              result := false;
@nicoDE
was meinst du mit RVA? vielleicht verstehe ich dann den ganzen satz hoff ich.
Mit forwarder string meinst du, daß die function nicht in der .dll liegt die sie exportiert hoff ich ..?

Bitte nicht für blöd halten, aber das ist alles neu für mich und es sickert alles nur langsam in mein hirn.
Das ganze ist also nur ein spezialfall check?
die source ist ja eigentlich so:
Delphi-Quellcode:
        if (integer(addr) < moduleh) or (integer(addr) > moduleh+integer(INH^.OptionalHeader.SizeOfImage)) then
           if GetRealModuleHandle(addr) <> GetModuleHandle('ntdll.dll') then
              result := false;
hier wird überprüft ob die import adresse im bereich des moduls liegt wenn nicht wird mit getrealmodulehandle nach dem eigentlichen modul gesucht und nochmal überprüft ob nicht dieser spezialfall mit ntdll.dll zutrifft.
jetzt will ichs aber genau wissen.
Zitat:
da die Module nur an Adressen geladen werden, die ein Vielfaches von $10000 sind.
das heißt windows verwaltet die module so, daß sie immer oberhalb von hex 10000 liegen.

Wie schaft es windows dann von meiner function dann mit getmodulefilename den functionsnamen zu bekommen?
genügt der api einfach nur eine adresse die im adressbereich der function liegt um den namen des moduls zurück zu liefern?
und warum gibt es ein dec hex 10000 als suchfunktion?
    dec(h,$10000); Danke auf jeden Fall mal - jetzt ist mir der Sinn der function mal verständlich
Arnulf
  Mit Zitat antworten Zitat