AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Laden einer DLL erkennen

Ein Thema von c113plpbr · begonnen am 6. Jul 2005 · letzter Beitrag vom 6. Jul 2005
Antwort Antwort
Benutzerbild von c113plpbr
c113plpbr

Registriert seit: 18. Nov 2003
Ort: localhost
674 Beiträge
 
Delphi 2005 Professional
 
#1

Laden einer DLL erkennen

  Alt 6. Jul 2005, 16:10
Hi DP'ler,

ich suche für folgendes Problem eine Lösung:
Eine (fremde) DLL wird in den Speicher (m)eines Programms geladen, allerdings nicht direkt über LoadLibrary, sondern eher indirekt über SetWindowsHookEx. Mein Problem dabei ist, dass ich dies erkennen möchte.
Bei LoadLibrary wäre es relativ einfach, da würde ich es über die DllMain-Funktion & DLL_THREAD_ATTACH erfahren, aber bei SetWindowsHookEx wird diese Funktion (warum auch immer) einfach nicht aufgerufen (ich bekomme aber dennoch DLL_THREAD_ATTACH-Nachrichten über die DllMain, bei über LoadLibrary geladenen DLLs).
Daher suche ich nach alternativen, um dies zu erkennen. Fällt jemandem von euch eine ein?

Eine Methode wäre natürlich in bestimmten Zeitabständen zu prüfen, ob die DLL geladen wurde, allerdings wäre diese Lösung des Problems sehr "unsauber" ...

ciao, Philipp
Philipp
There is never enough time to do all the nothing you want.
*HABENWILL*
  Mit Zitat antworten Zitat
barf00s
(Gast)

n/a Beiträge
 
#2

Re: Laden einer DLL erkennen

  Alt 6. Jul 2005, 17:22
SetWindowsHookEx lädt keine Dlls in den Prozessraum eines Programms/Prozesses, das macht alles diese LoadLibrary ...................
aber eventuell hilft dir da die madCollection ( www.madshi.net ) und desses Forum - Ziel also, die LoadLibrary funktion zu hooken...
  Mit Zitat antworten Zitat
Benutzerbild von c113plpbr
c113plpbr

Registriert seit: 18. Nov 2003
Ort: localhost
674 Beiträge
 
Delphi 2005 Professional
 
#3

Re: Laden einer DLL erkennen

  Alt 6. Jul 2005, 17:36
Zitat von barf00s:
SetWindowsHookEx lädt keine Dlls in den Prozessraum eines Programms/Prozesses, das macht alles diese LoadLibrary
Denkste, die DLL's werden sehr wohl in den "Prozessraum" geladen!
Zitat von barf00s:
aber eventuell hilft dir da die madCollection ( www.madshi.net ) und desses Forum - Ziel also, die LoadLibrary funktion zu hooken...
Nope, weder LoadLibraryA noch LoadLibraryW wird aufgerufen, glaub mir. Und wenn es aufgerufen werden würde, würde ich ja meine Messages bekommen ...

SetWindowsHookEx scheint eine (oder ein paar) Ebenen unter LoadLibrary zu arbeiten ...

ciao, Philipp
Philipp
There is never enough time to do all the nothing you want.
*HABENWILL*
  Mit Zitat antworten Zitat
Win32.API

Registriert seit: 23. Mai 2005
312 Beiträge
 
#4

Re: Laden einer DLL erkennen

  Alt 6. Jul 2005, 17:40
Hi,
kann es sein das SetWindowsHokEx WriteProcessMemory benutzt?
Versuch doch mal das zu hooken vieleicht gehts ja.

Win32.API
  Mit Zitat antworten Zitat
Benutzerbild von c113plpbr
c113plpbr

Registriert seit: 18. Nov 2003
Ort: localhost
674 Beiträge
 
Delphi 2005 Professional
 
#5

Re: Laden einer DLL erkennen

  Alt 6. Jul 2005, 17:59
Ok, ich hab die Lösung gefunden (dank Assarbad):
SetWindowsHookEx ruft die Funktion LdrLoadDll der ntdll.dll auf. Ein (API-) Hook auf diese Funktion sollte das Problem lösen.

Trotzdem danke, an alle

ciao, Philipp
Philipp
There is never enough time to do all the nothing you want.
*HABENWILL*
  Mit Zitat antworten Zitat
Olli
(Gast)

n/a Beiträge
 
#6

Re: Laden einer DLL erkennen

  Alt 6. Jul 2005, 18:15
Achtung:
  1. Funzt das nicht auf 9x - das kennt nämlich kein LdrLoadDll()
  2. Mußt du jeweils überprüfen, welche API benutzt wird, denn seit XP hat die Funktion glaube ich Geschwisterchen bekommen
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:24 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz