AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Aus DLL die zugreifende Anwendung ermitteln
Thema durchsuchen
Ansicht
Themen-Optionen

Aus DLL die zugreifende Anwendung ermitteln

Ein Thema von djl · begonnen am 30. Nov 2005 · letzter Beitrag vom 1. Dez 2005
Antwort Antwort
djl

Registriert seit: 14. Aug 2003
Ort: Darmstadt
6 Beiträge
 
Delphi 7 Professional
 
#1

Aus DLL die zugreifende Anwendung ermitteln

  Alt 30. Nov 2005, 14:08
Hallo,

da ich zum ersten mal bei meiner Suche erfolglos geblieben bin , stelle ich mal eine Frage:

Ich habe eine DLL und möchte zur Laufzeit herausfinden, welche Anwendung auf meine DLL zugreift.
Dazu benötige ich im Grunde den Namen der EXE-Datei mit exaktem Pfad.

Hat vielleicht jemand einen Tipp ob und wenn ja wie ich aus der DLL heraus an diesen Pfad ran komme


(Hintergrund: Ich möchte die zugreifenden Anwendungen möglichst eindeutig identifizieren (so etwas wie ein 128bit-Hash-Wert der EXE-Datei dürfte reichen) um zu erkennen, wenn andere Anwendungen diese DLL nutzen. Dazu benötige ich die Daten der zugreifenden Anwendung! )

Scho ma Danke!!!

Gruß
djl
  Mit Zitat antworten Zitat
Vjay

Registriert seit: 2. Dez 2003
Ort: Berlin/Eschede
481 Beiträge
 
Delphi 7 Professional
 
#2

Re: Aus DLL die zugreifende Anwendung ermitteln

  Alt 30. Nov 2005, 14:12
Nutzt du die VCL, schonmal paramStr(0) probiert?
Wer später bremst ist eher tot.
  Mit Zitat antworten Zitat
Benutzerbild von MarcoWarm
MarcoWarm

Registriert seit: 10. Sep 2003
Ort: Großhennersdorf
532 Beiträge
 
Delphi 10.1 Berlin Professional
 
#3

Re: Aus DLL die zugreifende Anwendung ermitteln

  Alt 30. Nov 2005, 14:13
Da Du die DLL ja selber schreibst, lass dir einfach als Parameter einer Funktion das Handle der aufrufenden Application übergeben... Dann hast du, was du willst.
Marco Warm
TUO
TheUnknownOnes.net
  Mit Zitat antworten Zitat
Benutzerbild von chaosben
chaosben

Registriert seit: 27. Apr 2005
Ort: Görlitz
1.358 Beiträge
 
Delphi XE2 Professional
 
#4

Re: Aus DLL die zugreifende Anwendung ermitteln

  Alt 30. Nov 2005, 14:13
Du könntest über die Liste der laufenden Prozesse gehen und dir pro Prozess die geladenen Module suchen und darin deine DLL suchen. Dadurch bekommst du so ziemlich alle Infos über die Anwendung. Ist zwar ein wenig "hintenrum", aber im Moment der einzige Weg, der mir einfällt.
Benjamin Schwarze
If I have seen further it is by standing on the shoulders of Giants. (Isaac Newton)
  Mit Zitat antworten Zitat
Robert Marquardt
(Gast)

n/a Beiträge
 
#5

Re: Aus DLL die zugreifende Anwendung ermitteln

  Alt 30. Nov 2005, 14:16
GetModuleFileName duerfte die gesuchte Funktion sein. Wenn man sie mit dem Instance-Handle der DLL aufruft,
bekommt man den Pfadnamen der DLL und wenn man 0 benutzt den Pfadnamen des aufrufenden Programms.

Ein bischen unsinnig ist es aber doch wenn man die DLL nur in genau einem Programm benutzen will. Da kann man doch den Code gleich ins Programm einfuegen.
  Mit Zitat antworten Zitat
djl

Registriert seit: 14. Aug 2003
Ort: Darmstadt
6 Beiträge
 
Delphi 7 Professional
 
#6

Re: Aus DLL die zugreifende Anwendung ermitteln

  Alt 30. Nov 2005, 14:44
@Vjay: funktioniert, Danke! Weißt du evtl. wie leicht man diesen Parameter manipulieren kann? Woher kommen diese Informationen?

Hätte ich noch erwähnen sollen: Die gesuchte Information soll einigermaßen schwer zu manipulieren sein, deshlab scheidet auch aus, das man das Handle selbst übergibt!
Da ich nur eine Instanz der DLL zulasse ist es evtl. am einfachsten die laufenden Prozesse zu untersuchen und so die Anwendung herauszufischen ?!?

@Robert: Es soll schon möglich sein die DLL aus verschiedenen Programmen aufzurufen, ich möchte das nur mitbekommen um evtl. manipulationen mit dieser DLL zu protokollieren!

Danke an alle für die schnellen Antworten!!!
  Mit Zitat antworten Zitat
Benutzerbild von sakura
sakura

Registriert seit: 10. Jun 2002
Ort: Unterhaching
11.412 Beiträge
 
Delphi 12 Athens
 
#7

Re: Aus DLL die zugreifende Anwendung ermitteln

  Alt 30. Nov 2005, 14:48
Zitat von djl:
@Vjay: funktioniert, Danke! Weißt du evtl. wie leicht man diesen Parameter manipulieren kann? Woher kommen diese Informationen?
Der Parameter wird direkt durch Windows gesteuert, wenn auch nicht unmöglich, so ist eine Manipulation iA sehr unwahrscheinlich.

......
Daniel Lizbeth
Ich bin nicht zurück, ich tue nur so
  Mit Zitat antworten Zitat
brechi

Registriert seit: 30. Jan 2004
823 Beiträge
 
#8

Re: Aus DLL die zugreifende Anwendung ermitteln

  Alt 30. Nov 2005, 14:52
Paramstr benutzt GetCommandLine von der kernel32.dll
durch einen API hook kann man das natürlich leicht faken
vielleicht solltest besser ne checksumme von dem prozes, bzw bestimmten sections machen?
  Mit Zitat antworten Zitat
djl

Registriert seit: 14. Aug 2003
Ort: Darmstadt
6 Beiträge
 
Delphi 7 Professional
 
#9

Re: Aus DLL die zugreifende Anwendung ermitteln

  Alt 30. Nov 2005, 15:06
Checksumme von einem Prozess, den ich nicht selbst programmiert habe dürfte schwierig werden, da ich dann nicht weiss wo variable anteile stehen!

Ein API-Hook ist immerhin schon mal eine gewisse Hürde, aber die Idee die laufenden Prozesse zu untersuchen gefällt mir immer besser, werde mich mal daran versuchen!
  Mit Zitat antworten Zitat
Vjay

Registriert seit: 2. Dez 2003
Ort: Berlin/Eschede
481 Beiträge
 
Delphi 7 Professional
 
#10

Re: Aus DLL die zugreifende Anwendung ermitteln

  Alt 1. Dez 2005, 16:18
Sämtliche Möglichkeiten, die er verwenden würde um den Pfad herauszubekommen, würden sich durch einen API-Hook manipulieren lassen.
Schließlich kann er als Programmierer auch nur Anfragen an das OS stellen. Evtl. wäre eine Kombination der drei hier aufgeführten Möglichkeiten noch eine grössere Hürde, die ein ein findiger Cracker aber eh in 5 Min umgangen hätte.
Daher Sinnlos sich da einen zu grossen Kopf drum zu machen @brechi.
Wer später bremst ist eher tot.
  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 08:16 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