DLL-Funktionen in ner andderen DLL
So, ich hab folgendes Problem:
Ich habe eine DLL die Funktionen bereitstellt (ich kenn nur den Namen der Funktionen, nicht die Parameter, da liegt auch ein Problem...) Nun hab ich eine DLL geschrieben und sie praktisch durchlenken lassen. Ein Prog ruft statt der orginal DLL meien DLL auf und ich 'leite' dann alles weiter da ich alle funktionen per:
Delphi-Quellcode:
Eingebunden und über export freigelegt habe, nun meine Frage:
procedure xxx; external 'xxx.dll';
Wie kann ich nur mit der DLL Datei und dem NAmen der Funktion ihre Parameter abfragen und dann wie kann ich die Weitergabe beienflussen, also mit override, das geht nicht... |
Re: DLL-Funktionen in ner andderen DLL
Zitat:
Zitat:
procedure yyy; external 'xxx.dll' name 'xxx'; |
Re: DLL-Funktionen in ner andderen DLL
Hallo CrashXY!
Laut deiner Beschreibung versuchst du, das was man unter DLL-Wrapping versteht zu programmieren. Zitat:
Aber darf man fragen, wozu du das brauchst? Vielleicht gibt es ja andere (bessere?) Lösungen dafür ... ciao, Philipp |
Re: DLL-Funktionen in ner andderen DLL
Hallo!!
wenn du die Funktion in der DLL ansprechen willst brauchst du unter Delphi die Paramter, sonnst akzeptiert er deinen Aufruf nicht. Master |
Re: DLL-Funktionen in ner andderen DLL
Wie ich die genau beschaffen könnte ist mir immernoch unklar. Ich habe die DLL und ein Programm das sie nutzt (kein Source der beiden!). Um an die Namen der Proceduren zu kommen hab ich die DLL-Datei mit disasm disassmebliert. Was ich jetzt habe ist der Disassemblirte Code und meine DLL die als Zwischenleitung fungiert.
Zitat:
Zitat:
z.B.: Zitat:
|
Re: DLL-Funktionen in ner andderen DLL
So weit ich weiß ist disassemblieren fremder Programme (dll's etc.) verboten... korriegiert mich wenn das falsch ist.
|
Re: DLL-Funktionen in ner andderen DLL
Zitat:
Achja, mit dem richtigen Disassembler bekommt man auch meist die richtigen Parameter heraus (z.B. mit IDA, testversion sollte reichen ...) Trotzdem würde es mich interessieren, was es dir dann nutzt, wenn du die ganzen funktionen weiterleitest? ciao, Philipp |
Re: DLL-Funktionen in ner andderen DLL
Nein, ich will die Funktionen nicht nur weiterleiten ich will sie vorher noch beeinflöussen können...
Das sieht standart so aus: Programm <--> DLL Ich will es so Programm <--> Meine DLL <--> DLL So kann ich bestimmte Sachen im Programmablauf verändern... |
Re: DLL-Funktionen in ner andderen DLL
Hallo!!
Das disassemblieren fremder Programme verboten ist dann verboten wenn es sich um kommerzielle Software handelt. Da dann der geschützte Code ausgelesen werden kann. Auf diesem Weg werden meist auch Cracks geschrieben. Du brauchst die Parameter. Du kannst ja mal schauen ob du sie mit auslesen kannst master |
Re: DLL-Funktionen in ner andderen DLL
Nur mal so eine frage, aber heisst die Original DLL harmony.dll und war diese im system oder system32 ordner ?
Das Programm das diese DLL benutzt, heisst dieses mit der Exename "rpg2000.exe" (vom RPG Maker 2000) ? Wenn ja, ich kenne jemanden der die volle Funktionsliste hat. Ob diese Person mir/dir die Liste aushändigt, hmm... ist eine andere Sache. |
Re: DLL-Funktionen in ner andderen DLL
Jap, das ist sie, aber nein sie war nicht im System Ordner sondern im Exe-Verzeichniss...
k Luki hat ne Funktionsliste, aber der muss es au irgendwie gemacht haben und er erwähnte nur mal das er es disassembliert hat... |
Re: DLL-Funktionen in ner andderen DLL
Zitat:
Übrigens braucht man in diesem Fall wohl kaum die Parameter, da jegliche Parameter seien es nun Pointer/Strings oder Integertypen vermutlich als 32bit-Werte durchgeleitet werden müssen. Du kannst sogar versuchen diese Werte zu inspizieren, indem du mit
Code:
testest, ob der entsprechende Wert auf etwas zeigt.
IsBadCodePtr()
IsBadReadPtr() IsBadWritePtr() IsBadStringPtr() Dem Programm ist es prinzipiell egal, ob du den Parameter als DWORD, Pointer oder PChar deklarierst. Hauptsache die Aufrufkonvention und die Anzahl der Parameter stimmt. Echte Export Forwarder kann man mit einem Assembler oder C-Compilern basteln. Microsoft benutzt selber diese Technik. |
Re: DLL-Funktionen in ner andderen DLL
Ok, Danke an Alle... ich habs nun herausgefunden... Die wichtigste Aller Funktionen ist GetMidiTickCount, über sie kann man Integer-Zahlen ins Programm schleusen und damit kann ich jetzt schon einiges Anfangen...
Delphi-Quellcode:
Hab ich einfach mal zum Test genommen und es funktionierte...
function HarmonyGetMidiTick(): Integer;
Begin showmessage('TICK!'); Randomize; Result := Random(1000); End; Wie gesagt THX @ all. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:11 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