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 2 von 4     12 34      
Benutzerbild von Luckie
Luckie

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

Re: Handle einer geladenen DLL in einem anderen Process find

  Alt 26. Jul 2004, 01:18
Du kannst auch eine DLL ohne ASM in den fremden Prozess einschleusen. Warum sollte man dazu ASM brauchen? Du muss ja Systemfunktionen aufrufen.

Was du willst ist also folgendes: In den Speicher des fremden Prozesses rein und dort Variablen auslesen? Dannmach dich mal über Hier im Forum suchenReadProcessMemory und Hier im Forum suchenWriteProcessMemory schlau.
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
 
#12

Re: Handle einer geladenen DLL in einem anderen Process find

  Alt 26. Jul 2004, 01:20
Danke

genau aus diesem Grund frag ich hier nach. So schnell kriegt man kaum irgendwo eine Antwort.

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
 
#13

Re: Handle einer geladenen DLL in einem anderen Process find

  Alt 26. Jul 2004, 01:24
Ich sag dir aber gleich, das ist nicht gerade trivial. Kuckt dir mein LuckieDIPS von meiner Seite an. Ist mit Source und Kommentaren. Bei den LuckieDIPS funktioniert das so: Ich reserviere mir speicher im fremden Porzess, kopiere die Informationen da rein. In diesem Fall die Struktur und lese sie mit WriteProcessmemory aus und kopiere sie mir damit in eine identische Struktur in meinem Adressraum. Und dann kan ich damit machen, was ich will.

Dein Problem ist: Wie willst du die Variable in den von dir reservierten Speicher im fremden Prozess kopieren? Dafür aheb ich auch keine Lösung. Eventuell erklärst du noich, wozu du das brauchst bzw. warum du das machen willst. Willst du Spielstände öndern wäre ein Stichwort für die Suche hie rund bei Google Trainer.
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
 
#14

Re: Handle einer geladenen DLL in einem anderen Process find

  Alt 26. Jul 2004, 01:34
Also,
um genau zu sein will ich im Spiel einige Macros einbauen. Das kann ich aber nicht mit der Simulation von keystrokes machen, da ich vor allem auch zusätzliche Infos brauche, wo ich mich grad befinde, u.s.w. Aber wahrscheinlich kommt es einem Trainer ziemlich nahe, weil ich ja Zugriff auf die Spielvariablen und Funktionen haben möchte.

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
 
#15

Re: Handle einer geladenen DLL in einem anderen Process find

  Alt 26. Jul 2004, 01:57
Also wenn das Spiel dazu keine Schnittstelle bietet, halte ich das für ein nahezu aussichtsloses Unterfangen.
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
 
#16

Re: Handle einer geladenen DLL in einem anderen Process find

  Alt 26. Jul 2004, 02:13
Warum denn?

Wenn das Spiel seine Funktionen benutzt und von denen weiß ich bereits die Entry Points, dann kann man, spätestens, wenn man eine DLL eingeschleust hat, diese auch benutzen. Es gibt ja bereits zahlreiche Hacks dazu, daher habe ich überhaupt die Infos über die Funktionen, aber ich wollte halt mal versuchen es ohne DLL-Einschleusen zu machen. Soll ja auch kein Hack werden, sondern einfach ein Macro-Prog.

BTW, wie würde man eigentlich eine DLL in einen anderen Process ohne ASM mappen?

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
 
#17

Re: Handle einer geladenen DLL in einem anderen Process find

  Alt 26. Jul 2004, 03:23
Schön du hast die Entry Points. Und weiter? Wie willst du da an die Variablen drankommen? Direkt den speicher auslesen dürfte schwierig werden. Und auch wenn du es schaffst, woher weißt du, wo die Variable liegt?

Was willst du denn immer mit deinem ASM? Es geht bei allem was mit dem OS zu tun hat schlicht und ergreifend nur um Betriebssystemfunktionsaufrufe. Das hat mit ASM gar nichts zu tun. Kuck dir hie rmal das DLL udn Hooking Tutorial von Assarbad an: http://www.luckie-online.de/Downloads/Importe/Assarbad/
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
 
#18

Re: Handle einer geladenen DLL in einem anderen Process find

  Alt 26. Jul 2004, 11:27
Guten Morgen,

ich markier das Thema mal als beantwortet, weil ja die eigentliche Frage längst beantwortet ist.

Zu den Variablen: Von denen weiß ich ja die Stellen an denen sie gespeichert werden, zumindest hab ich den Quell-Code von so nem Hack dazu und da steht, dass bei diesen Variablen kein DMA benutzt wird.(Und von da hab ich auch die Adressen, allerdings bin ich noch beim Entziffern, da es in c/asm geschrieben ist).

Wenn man jetzt eine DLL einschleusen wollte, dann muss sie ja praktisch in den Address-Space von dem bereits laufenden Programm rein. Man müsste also meiner Meinung nach das Spiel irgendwie dazu bringen die DLL zu laden. Deswegen hab ich das mit ASM gebracht. Ich hab mal irgendwo son Beispiel-Codefetzen gehabt, wo in eine andere Anwendung ASM-Code (per WriteProcessMemory?) eingefügt wurde, der dieses Programm dazu brachte eine DLL, praktisch wie mit LoadLibrary selbst zu laden. (Leider find ich das nicht, D'OH ).

Danke auf jeden Fall für die Hilfe,
auch wenn ich's letztendlich nicht schaffe, zumindest hab ich was neues gelernt

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

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

Re: Handle einer geladenen DLL in einem anderen Process find

  Alt 26. Jul 2004, 16:24
Kann man das eigentlich ned alles mit IPC Regeln? So wie ich das verstanden hab, willst du von einem externen Programm ein anderes beeinflussen. Mach halt in dein Programm irgendeine Kommunikationsmöglichkeit rein, und kommuniziere einfach über ipc, sei es über windowmessages, oder über mailslots. Oder hab ich da irgendwas falsch verstanden?

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

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

Re: Handle einer geladenen DLL in einem anderen Process find

  Alt 26. Jul 2004, 16:26
Dürfte schwer werden, wenn das andere Programm nicht von ihm ist.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 4     12 34      


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 09:54 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