AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi Handle einer geladenen DLL in einem anderen Process finden
Thema durchsuchen
Ansicht
Themen-Optionen

Handle einer geladenen DLL in einem anderen Process finden

Ein Thema von Reddog · begonnen am 25. Jul 2004 · letzter Beitrag vom 31. Jul 2004
Antwort Antwort
Seite 1 von 4  1 23     Letzte »    
Benutzerbild von Reddog
Reddog

Registriert seit: 18. Jul 2004
Ort: Würzburg
56 Beiträge
 
#1

Handle einer geladenen DLL in einem anderen Process finden

  Alt 25. Jul 2004, 02:54
Hallo,

ich habe hier ein recht verzwicktes Problemm. Wie der Titel schon sagt, möchte ich das Handle einer geladenen DLL auslesen. Die DLL wurde aber nicht vom Programm selbst, sondern von einem anderen Process geladen. Deswegen krieg ich mit GetModuleHandle das Handle nicht, da diese Funktion anscheinend nur den eigenen Process durchsucht. Und mit LoadLibrary ruft es, glaub ich, die DLL einfach neu auf, so dass ich keinen Einfluss auf den anderen Process nehmen kann.

Also, wenn mir jemand weiter helfen könnte, ich wäre sehr froh.

Reddog.
All prime numbers are odd with the exception of two, which is an odd prime
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#2

Re: Handle einer geladenen DLL in einem anderen Process find

  Alt 25. Jul 2004, 03:02
Kuck dir mal meine SysInfo an, da habe ich Code drin der alle im System geladenen Module auflistet, auch die anderer Processe.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von Reddog
Reddog

Registriert seit: 18. Jul 2004
Ort: Würzburg
56 Beiträge
 
#3

Re: Handle einer geladenen DLL in einem anderen Process find

  Alt 25. Jul 2004, 20:52
Hmm das SysInfo kann ich irgendwie nicht runterladen.
Ist die Adresse: http://www.luckie-online.de/cgi-bin/...sysinfosfx.exe richtig?
Oder hab ich da was falsch verstanden?

Reddog.

EDIT: OK hab's jetzt von: http://www.luckie-online.de/Downloads/SysInfo3_2.zip
All prime numbers are odd with the exception of two, which is an odd prime
  Mit Zitat antworten Zitat
Benutzerbild von kiar
kiar

Registriert seit: 2. Aug 2003
Ort: Aschersleben
1.362 Beiträge
 
Delphi 5 Professional
 
#4

Re: Handle einer geladenen DLL in einem anderen Process find

  Alt 25. Jul 2004, 21:00
http://www.luckie-online.de/Downloads/

hier und ziemlich weit unten
verhältnisse die einem nicht passen,
muss man verändern oder verlassen
  Mit Zitat antworten Zitat
Benutzerbild von Reddog
Reddog

Registriert seit: 18. Jul 2004
Ort: Würzburg
56 Beiträge
 
#5

Re: Handle einer geladenen DLL in einem anderen Process find

  Alt 26. Jul 2004, 00:03
Hmm,

danke schon mal an Luckie, ich kann jetzt ein Handle der gewünschten DLL finden. Allerdings ist es ja nur innerhalb des aufrufenden Process gültig. Kann man aus diesem Handle jetzt irgendwie auf die globale Adresse schließen? Ansonsten nützt ja das Handle praktisch nichts.

Reddog.
All prime numbers are odd with the exception of two, which is an odd prime
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#6

Re: Handle einer geladenen DLL in einem anderen Process find

  Alt 26. Jul 2004, 00:28
Wozu brauchst du denn das Handle überhaupt?
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von Reddog
Reddog

Registriert seit: 18. Jul 2004
Ort: Würzburg
56 Beiträge
 
#7

Re: Handle einer geladenen DLL in einem anderen Process find

  Alt 26. Jul 2004, 00:50
Hätt ich vielleicht gleich schreiben sollen

Also eigentlich war das so gedacht:

Ich hab son kleines Spiel was diese DLL lädt. Ich möchte jetzt eine Funktion innerhalb dieser DLL benutzen. Von der Funktion weiß ich allerdings nur, an welcher Stelle relativ zum Anfang des DLL-Codes sie sich befindet(Naja und die Parameter, die sie erwartet). Jetzt hab ich mir gedacht ich könnte das Handle der DLL als die Adresse im Speicher benutzen und die Funktion direkt an der Stelle ansprechen. Wenn ich die DLL selbst lade, dann scheint die Methode auch ganz gut zu klappen (die Funktion die sonst das Spiel schließen soll, schließt dann mein Prog ). Naja aber ich möchte ja das Spiel beeinflussen, deswegen müsste ich die vom Spiel geladene DLL ansprechen, oder?

Er könnte jetzt sein, dass das überhaupt keinen Sinn ergibt, weil ich mich mit sowas leider schlecht auskenne. Fällt dir dazu etwas ein?
All prime numbers are odd with the exception of two, which is an odd prime
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#8

Re: Handle einer geladenen DLL in einem anderen Process find

  Alt 26. Jul 2004, 01:19
moment telefon
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#9

Re: Handle einer geladenen DLL in einem anderen Process find

  Alt 26. Jul 2004, 02:00
Du willst also das fenster des Spieles schließen? Dann hol dir mit Hier im Forum suchenFindWindow das handle und schick mit Hier im Forum suchenSendMessage ein Hier im Forum suchenWM_CLOSE an das Fenster.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von Reddog
Reddog

Registriert seit: 18. Jul 2004
Ort: Würzburg
56 Beiträge
 
#10

Re: Handle einer geladenen DLL in einem anderen Process find

  Alt 26. Jul 2004, 02:11
Leider ist es nicht so einfach,

es war lediglich ein Beispiel, weil es einfach war das anhand dieser einen Funktion zu testen. Die DLL speichert bestimmte Variablen und beinhaltet einige Functionen, die im Spiel zum Einsatz kommen. Ich wollte eben diese von meinem Programm aus benutzen. Die sind aber in einem anderen Process, deswegen kann ich, obwohl ich den Entry Point dieser Functionen kenn, trotzdem nicht auf sie zugreiffen. Ich weiß aber nicht ob's überhaupt geht von meinem Programm aus auf den Speicher von dem anderen Programm zuzugreiffen.

Es geht bestimmt auch, wenn man bei dem Spiel eine DLL einschleust, aber das müsste man ja mit Assembler-Code machen ( Dazu müsste ich mich ja wieder mit Assembler beschäftigen).

Ich hoffe das Problem ist klar geworden.
All prime numbers are odd with the exception of two, which is an odd prime
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 4  1 23     Letzte »    


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 16:26 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