DLL Analysieren
-
Hallo,
bei uns wird eine Software eingesetzt, welche eine möglichkeit bietet, mittels Scriptsprache eigene kleine Routinen abzuarbeiten. Bei dieser Scriptsprache kann man mehrere Module zu laden um den Funktionsumfang zu erweitern. Leider fehlen mir einige Standartfunktionen. Aus diesem Grund dachte ich mir das ich mir mein eigenes Modul dazu programmieren kann.
Meine Frage ist nun, wie ich das am besten angehe, um ein eigenes Modul zu schreiben. Kann man eine bestehende DLL soweit analysieren, das man aus den Erkenntnissen ein eigenes Modul schreiben kann?
Danke für eure Hilfe
-
Wenn du nicht mal sagst welche ScriptSprache, können wir dir schlecht helfen. Davon mal abgesehen:
Nein, man kann aus einer DLL nicht wirklich was ableiten. Du kennst weder die Typen die vllt. Verwendet werden, noch die ganzen Parameter/Returns der Funktionen (zumindest kann man es mit den Tools die ich kenne nicht ableiten).
Insbesondere, wenn die DLLs in C++ geschrieben sind (ohne extern "C") werden die Namen geradezu verstümmelt (hab aber leider grad kein Tool zur Hand um ein Beispiel zu geben).Und nochwas: Was hat deine Frage mit C++ zu tun?
-
Hallo,
also die Scriptsprache hat an sich keine Name. Das scheint eine Eigenentwicklung von dem Softwarehersteller zu sein. Nach ersten Versuchen mit dem DependencyWalker etwas aus der DLL raus zu bekommen, dachte ich, das die DLL mit C++ programmiert ist und da ich dann eine eigene DLL auch in C++ schreiben müsste, will, vermutete ich, das ich im C++ Forum richtig aufgehoben bin.
-
Bietet der Hersteller keinen Support? Wenn man die Sprache durch DLLs erweitern kann, dann sollte der Hersteller doch am ehesten wissen, wie das geht.
-
ja die Anfragen zu den Erweiterungen sind ja schon gemacht wurde, aber es passiert einfach nichts ... und von daher ... Selbst ist der Mann

-
Du kannst Dir eine solche DLL (Erweiterungsbaustein) nehmen und sie reassemblieren. Die Analyse ist möglich, aber in der Regel sehr aufwendig. Vielleicht gibt es aber ein sauberes, klar definiertes Interface. Vielleicht aber auch nicht.
-
Jonas OSDever schrieb:
Nein, man kann aus einer DLL nicht wirklich was ableiten. Du kennst weder die Typen die vllt. Verwendet werden, noch die ganzen Parameter/Returns der Funktionen (zumindest kann man es mit den Tools die ich kenne nicht ableiten).
Die Namen und Adressen bekommt man raus, dann kann man disassemblieren, um die Parameter und Rückgaben rauszukriegen. Wenn man die Aufrufe in der Scriptsprache kennt, kann man das vielleicht zusammenbringen. Das ganze ist aber eher was für fortgeschrittene, wenn der OP das könnte hätte er die Frage wohl nicht gestellt.

Insbesondere, wenn die DLLs in C++ geschrieben sind (ohne extern "C") werden die Namen geradezu verstümmelt (hab aber leider grad kein Tool zur Hand um ein Beispiel zu geben).
Das ist aber eigentlich gerade gut, weil man die Namen wieder entstümmeln kann und dadurch die komplette Signatur herausbekommt. Der MSVC hat da z.B. ein Tool namens UNDNAME, mit dem man das machen kann.