Zitat von
Zacherl:
Ja das ist natürlich am einfachsten. Doch ist wirklich so .. wenn man im RemoteThread beispielsweise nur eine String Variable deklariert stürzt das ganze ab. Ist in C für die spezifischen Datentypen aber sicher auch so. Muss halt entweder
ASM sein, oder pure
API Aufrufe.
Das soll auch so sein. Denn Delphi benutzt für die Stringverwaltung ein paar Funktionen aus der
Unit System. Und wenn du keine
DLL injezierst, sondern nur deine Funktion kommt es irgendwann zum Aufruf von irgendeiner _LStr***-Funktion . Der funktioniert in deinem Remotethread allerdings nicht mehr, da der Aufruf ja nur ein relativer Sprung von deiner aktuellen Position ist. Und der gilt nur für deinen Prozess. Die Wahrscheinlichkeit, dass in dem anderen Prozess (
selbst wenn er mit Delphi compiliert wurde) genau an dieser relativen Adresse von deinem alloziierten Speicherplatz aus (für deine RemoteFunktion) genau diese Funktion (_Lstr***) steht, ist geringer als ein Lottogewinn.
Dieser Beitrag ist für Jugendliche unter 18 Jahren nicht geeignet.