Einzelnen Beitrag anzeigen

eric_draven

Registriert seit: 26. Jul 2007
15 Beiträge
 
#11

AW: Problem bei dynamischem Aufruf einer DLL mit Übergabe von Pointern ala Win32API

  Alt 15. Mär 2011, 07:55
Zitat:
Er will ja hoffentlich kein Atomkraftwerk damit steuern.
Hey, woher kennt ihr den Verwendungszweck ?
Aber Spaß beiseite, mir ist klar, dass wenn wie Assarbad schreibt, eine falsche Parameterzahl übergeben wird, der Stack dermaßen korrumpiert ist, dass das Programm abraucht oder etwas völlig unvorhersehbares macht, wie das Haustier des Besitzers zu killen.
Das Ganze soll aber in einem eigenen Modul laufen, so daß nicht alles abraucht und nur für Profiuser sein, nicht für den gemeinen Anwender. Es gibt auch noch Tricks, wie man das mit der falschen Parameterzahl, etc. abfängt, das macht z.B. OllyDbg beim "Call DLL Export".
Nichts desto Trotz ist dies alles ja im Moment gar nicht mein Problem, deshalb habe auf Luckies Vorschlag ja auch einen klassischen dynamischen Aufruf der DLL Funktion nach Delphi-manier (ohne bösen asm Code) gepostet.
Mein Problem ist, dass ich verstehen will, wie das Prinzip bei der Windows API funktioniert (ja ich weiß, dass ist C/C++ und kein Delphi).
Sprich:
Rufe eine Funktion einer DLL auf mit (ganz einfaches Beispiel) einem Parameter, der ein PChar ist.
Die Aufgerufene Funktion schreibt dir was in den (vorher alloziierten) PChar rein und Du kannst das Ergebnis nutzen.
Wie muss diese DLL aussehen ?
Das Gegenstück, der Aufrufer funktioniert ja für WinAPI - Funktionen, wie in den Beispielen.

@Himitsu: Die Adresse der Variablen gebe ich mir aus, weil ich diese dann im .DATA Segment im OllyDbg öffnen kann und so prüfen dass diese korrekt ist. Ich kann den Inhalt an der Stelle ja sogar editieren, so daß mein Programm diesen neuen Inhalt anzeigt.
  Mit Zitat antworten Zitat