fragen zu DLLs.
-
Das Tool von Borland kann Import Libraries erstellen. Aber niemals Header.
-
OK, somit hätten wir ein "WARUM" geklärt, und was ist mit den anderen WARUM´s
-
Naja, ich wette wenn man fit in Sachen Assembler, Hex-Editor etc. ist, könnte man vermutlich auch Rückschlüsse auf die an die Funktion übergegeben Datentypen kriegen...
-
Es geht so wurden ja schon einige undokumentierte API Funktionen und zugehörige Datenstrukturen herausgefunden.
-
ok, vielen dank. dann besorge ich mir mal schnell den BCB6 (und das auf legalem wege
), und probiere das tool mal aus...
-
weiss zufällig jemand wie das tool beim BCB6 heisst?
kann es nämlich leider nicht finden...
/EDIT: glaub ich hab es, heisst tdump.exe, right?
habe es ausprobiert, aber es kann nur die funktionen anzeigen, nicht die parameter.... sieht etwa so aus:
RVA Ord. Hint Name -------- ---- ---- ---- 000010C0 1 0000 _CopyData@20 00001000 2 0001 _SetMemory@8
-
Die Parameter werden ja auch nicht "exportiert" um an diese zukommen, wirst du nicht über dissamblieren der DLL und analysieren heraum kommen - auser jemand hat dir die Arbeit abgenommen und du findest die Infos irgendwo
-
mal was anderes: was sind die @XX-teile hinter einer export-funktion?
sind die nötig, oder kann man die einfach entfernen (in der dll, hexeditor)?
-
ach ja, noch was: um die idee weiterzuführen, wie ich die parameter einer dll-funktion herausbekomme, habe ich mir folgendes gedacht:
könnte man eine art logger bauen, der die übergebenen parameter live überwacht (oder so)? oder könnte ich die dll dummy-technisch nachbauen, und solange die params ändern bis es geht? meckert windows, wenn eine dll-funktion zu wenig oder zu viele params bekommt?
-
Hallo allerseits,
es ist möglich alle Parametrs herauszukriegen wenn Programmierer, der diese Dll geschriben hatte,keine faule Triks verwendet hat.
z.b. IDA ( Interaktiv disassembler ) kann dir angebliche Paramaters ( und sogar deren Typen) zeigen. Sicher , um damit umzugehen solltest du gut Assembler beherschen und von eine Listingdatei 3-5 mb groß nicht bewußtlos zu fallen

BCB 3x-6x tool "ImpDef" kann nur namen von Routinen die in Exporttabelle stehen zeigen. Wenn du dort eine maskierte (von c++ Compiller hergestellte) Funkzion siest kann es dir auch einiges erzählen.
Vor allem muss ich sagen das eine Funktion voll zu disassemblieren um danach in deiner Anwendung zu benutzen lohnt sich nicht. Zu zeitaufwendig, zu unsicher etc.
PS:
Um eine Dummy dll zu bauen brauchst du alle parameters für die Routine die du ersetzen willzu kennen, sonst kannst du nicht originelle Routine nicht aufrufen.Dasselbe gilt für APIHooks.
-
nur zur info: ich will nichts aus der dll rippen oder eine routine ersetzen, ich will bloss die funktionen einer existierenden DLL aufrufen...
-
Das @XX gibt bei Funktionen mit pascal calling conventions an, wie viele Bytes am Stack von der Funktion aufgerufen werden, man kann also auch sagen, es gibt die Größe aller Parameter in Bytes an.
-
loki1985 schrieb:
nur zur info: ich will nichts aus der dll rippen oder eine routine ersetzen, ich will bloss die funktionen einer existierenden DLL aufrufen...
Ohne du wießt genau was, wo und wann passiert irgendwas in eine Funkzion du gehst eine Risiko ein ,dass ploztlich irgendwas schief gehen wird.
Schau mal was IDA machen kann.