AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Aufruf einer Funktion per DLL Injektion, C++ nach Delphi
Thema durchsuchen
Ansicht
Themen-Optionen

Aufruf einer Funktion per DLL Injektion, C++ nach Delphi

Ein Thema von MrLolli · begonnen am 18. Jun 2009 · letzter Beitrag vom 18. Jun 2009
Antwort Antwort
MrLolli

Registriert seit: 5. Aug 2008
8 Beiträge
 
#1

Aufruf einer Funktion per DLL Injektion, C++ nach Delphi

  Alt 18. Jun 2009, 00:02
Hallo liebe DP Community,

ich bin noch recht frisch im Delphi Land, und beschäftige mich gerade mit dem Thema DLL Injektion und Funktionsaufrüfen per Assembler. Für den Zielprozess gab es hier glücklicherweise schon einen Beispielcode, allerdings in C++.

Folgendermaßen ist die Funktion in C++ deklariert:
Code:
int (*GetNumItems)() = ( int (*)() )0x004CCFD0;
Was mir klar ist:
Die Funktion gibt einen Integer Wert zurück, erwartet keinerlei Parameter und befindet sich im Zielprozess bei dem Offset 0x004CCFD0.
Was mir jetzt Probleme bereitet ist die Zieladresse der Funktion im Prozess (0x004CCFD0), welche ja in C++ hinten angebbar ist. Wie müsste ich die Funktion also in Delphi deklarieren, damit ich sie ebenfalls so leicht wie hier aufrufen könnte?
Code:
int NumItems = GetNumItems();
Ist mein Vorhaben in Delphi überhaupt möglich?

Ich bin schon jetzt für eure Hilfe dankbar.

Gruß
MrLolli
  Mit Zitat antworten Zitat
Benutzerbild von Aphton
Aphton

Registriert seit: 31. Mai 2009
1.198 Beiträge
 
Turbo Delphi für Win32
 
#2

Re: Aufruf einer Funktion per DLL Injektion, C++ nach Delphi

  Alt 18. Jun 2009, 06:56
Na klar:

Delphi-Quellcode:
type
  TEmptyFunc = function(): Integer;
var
  F: TEmptyFunc;
begin
  F := Pointer( $004CCFD0 );
  F;
das Erkennen beginnt, wenn der Erkennende vom zu Erkennenden Abstand nimmt
MfG
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke
Online

Registriert seit: 10. Jun 2003
Ort: Berlin
9.587 Beiträge
 
Delphi 11 Alexandria
 
#3

Re: Aufruf einer Funktion per DLL Injektion, C++ nach Delphi

  Alt 18. Jun 2009, 07:01
Oder so, wobei die leeren Klammern am Ende nur sinnvoll sind um anzudeuten, dass das ein Funktionsaufruf ist, aber auch weggelassen werden können.
Delphi-Quellcode:
type
  TEmptyFunc = function(): Integer;
begin
  TEmptyFunc(Pointer($004CCFD0))();
// EDIT:
Ach ja: Das geht erst ab Delphi 2005 oder Delphi 2006, Delphi 7 und früher stürzt dabei beim Kompilieren ab.
Sebastian Jänicke
Alle eigenen Projekte sind eingestellt, ebenso meine Homepage, Downloadlinks usw. im Forum bleiben aktiv!
  Mit Zitat antworten Zitat
Fridolin Walther

Registriert seit: 11. Mai 2008
Ort: Kühlungsborn
446 Beiträge
 
Delphi 2009 Professional
 
#4

Re: Aufruf einer Funktion per DLL Injektion, C++ nach Delphi

  Alt 18. Jun 2009, 11:09
Du weißt, daß die Entwicklung von World of Warcraft Bots den Blizzard Bestimmungen (und imho auch den Delphi Praxis Regeln) widerspricht, oder?
Fridolin Walther
  Mit Zitat antworten Zitat
Benutzerbild von BUG
BUG

Registriert seit: 4. Dez 2003
Ort: Cottbus
2.094 Beiträge
 
#5

Re: Aufruf einer Funktion per DLL Injektion, C++ nach Delphi

  Alt 18. Jun 2009, 11:18
Zitat von 0xF30FC7:
World of Warcraft Bots
Wo liest du denn das raus, aus den Adressen oder wurde da was wegeditiert

MfG,
Bug
Intellekt ist das Verstehen von Wissen. Verstehen ist der wahre Pfad zu Einsicht. Einsicht ist der Schlüssel zu allem.
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke
Online

Registriert seit: 10. Jun 2003
Ort: Berlin
9.587 Beiträge
 
Delphi 11 Alexandria
 
#6

Re: Aufruf einer Funktion per DLL Injektion, C++ nach Delphi

  Alt 18. Jun 2009, 11:29
Ich vermute er kommt von dieser Seite hier drauf, die ich so direkt bei Google gefunden habe...
http://www.elitepvpers.de/forum/wow-..._autofish.html
Zitat:
Code:
int (*GetNumLootItems)() = ( int (*)() )0x004CCFD0;
Wenn es sich um das Thema und Bots handelt, dann ist das Thema hier natürlich in der Tat fehl am Platze.
Sebastian Jänicke
Alle eigenen Projekte sind eingestellt, ebenso meine Homepage, Downloadlinks usw. im Forum bleiben aktiv!
  Mit Zitat antworten Zitat
Fridolin Walther

Registriert seit: 11. Mai 2008
Ort: Kühlungsborn
446 Beiträge
 
Delphi 2009 Professional
 
#7

Re: Aufruf einer Funktion per DLL Injektion, C++ nach Delphi

  Alt 18. Jun 2009, 11:36
Zitat von BUG:
Zitat von 0xF30FC7:
World of Warcraft Bots
Wo liest du denn das raus, aus den Adressen oder wurde da was wegeditiert
Ich bin ein äußerst wissbegieriger und paranoider junger Mensch. Wenn ich nen Spieleclient auf meinem Rechner installier, muss der reversed werden, weil ich ansonsten nicht ruhig schlafen kann. Daher kenn ich den Offset (zumal es ein recht prominenter Offset einer LUA Funktion innerhalb des WoW Clienten ist mit der man die Anzahl der zu lootenden Items ermittelt). Ansonsten kann man auch einfach den Offset googlen und findet sicher die ein oder anderen indizierten Header Dateien.

[EDIT]Jaenicke war schneller ... kann es sein das man den roten Kasten nicht bekommt, wenn man die Seite 10 Minuten geöffnet hat, in diesen 10 Minuten jemand geantwortet hat und man erst danach auf Reply drückt?[/EDIT]
Fridolin Walther
  Mit Zitat antworten Zitat
Benutzerbild von Aphton
Aphton

Registriert seit: 31. Mai 2009
1.198 Beiträge
 
Turbo Delphi für Win32
 
#8

Re: Aufruf einer Funktion per DLL Injektion, C++ nach Delphi

  Alt 18. Jun 2009, 12:41
Zitat von 0xF30FC7:
Zitat von BUG:
Zitat von 0xF30FC7:
World of Warcraft Bots
Wo liest du denn das raus, aus den Adressen oder wurde da was wegeditiert
Ich bin ein äußerst wissbegieriger und paranoider junger Mensch. Wenn ich nen Spieleclient auf meinem Rechner installier, muss der reversed werden, weil ich ansonsten nicht ruhig schlafen kann. Daher kenn ich den Offset (zumal es ein recht prominenter Offset einer LUA Funktion innerhalb des WoW Clienten ist mit der man die Anzahl der zu lootenden Items ermittelt). Ansonsten kann man auch einfach den Offset googlen und findet sicher die ein oder anderen indizierten Header Dateien.
Ja, und ? Was soll die Ausrede; denkst du das wird irgendetwas an der Hilfsbereitschaft der Community einem Bot.Programmierer ändern ?

Zitat von 0xF30FC7:
[EDIT]Jaenicke war schneller ... kann es sein das man den roten Kasten nicht bekommt, wenn man die Seite 10 Minuten geöffnet hat, in diesen 10 Minuten jemand geantwortet hat und man erst danach auf Reply drückt?[/EDIT]
Nein, dass kann nicht sein - normalerweise ist der rote Kasten immer da

MfG
das Erkennen beginnt, wenn der Erkennende vom zu Erkennenden Abstand nimmt
MfG
  Mit Zitat antworten Zitat
Benutzerbild von BUG
BUG

Registriert seit: 4. Dez 2003
Ort: Cottbus
2.094 Beiträge
 
#9

Re: Aufruf einer Funktion per DLL Injektion, C++ nach Delphi

  Alt 18. Jun 2009, 12:56
Zitat von Aphton:
Ja, und ? Was soll die Ausrede; denkst du das wird irgendetwas an der Hilfsbereitschaft der Community einem Bot.Programmierer ändern ?
Fehler!
0xF30FC7 ist nicht der TE ... und das er weiß wie es geht heißt nicht das er es macht.

Der rote Kasten hat übrigens ab und zu Aussetzer.


MfG,
Bug

PS: Ich glaub es ist langsam Zeit das Thema zu schließen.
Intellekt ist das Verstehen von Wissen. Verstehen ist der wahre Pfad zu Einsicht. Einsicht ist der Schlüssel zu allem.
  Mit Zitat antworten Zitat
Satty67

Registriert seit: 24. Feb 2007
Ort: Baden
1.566 Beiträge
 
Delphi 2007 Professional
 
#10

Re: Aufruf einer Funktion per DLL Injektion, C++ nach Delphi

  Alt 18. Jun 2009, 13:16
Zitat von Aphton:
Nein, dass kann nicht sein - normalerweise ist der rote Kasten immer da
Ich öffne von der Startseite interessante Themen in Tab's und lese die danach. Da kann es sein, das eine erste Antwort erst kommt, wenn mein Router getrennt hat. Denke wenn die Antwort mit neuer IP kommt, fehlt auch der rote Kasten.
  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 09:18 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