Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi Stream im Speicher starten (https://www.delphipraxis.net/136973-stream-im-speicher-starten.html)

napsterxx 11. Jul 2009 13:56


Stream im Speicher starten
 
Moin,
ich habe mir einmal den Source von Nico bezüglich InMemExecution angeschaut und bin mit meinem Verständnis soweit:
* create any process
* write to this process

SourceCode:
http://pastebin.com/f438306ef

Fehler:
Zitat:

---------------------------
Project1.exe - Fehler beim Initialisieren von .NET Framework.
---------------------------
Es konnte keine Version der Laufzeit zum Ausführen dieser Anwendung gefunden werden.
---------------------------
OK
---------------------------

jaenicke 11. Jul 2009 15:05

Re: Stream im Speicher starten
 
Du versuchst ein .NET Programm auszuführen, hast aber die entsprechende Runtime offenbar nicht installiert. Das jedenfalls sagt die Fehlermeldung aus.

Wann kommt diese Fehlermeldung denn?

Phoenix 11. Jul 2009 15:14

Re: Stream im Speicher starten
 
Äh, WAS hast Du vor?

Du bist in der Sparte .NET. Du gibst an, dass Du Delphi Win/32 entwickelst und bekommst eine Fehlermeldung des .NET Frameworks.

Versuch doch mal zu erklären was Du konkret vorhast und was Du denkst, das der Code macht.

Das ganze Zeug sieht mir ungeheuer danach aus, dass es überhaupt gar nichts mit .NET zu tun hat.
Und wenn Du damit eine .NET Anwendung starten willst, dann kannst Du das vergessen. Das sind nämlich keine Executables in dem Sinne. Das einzige PE Zeug was da drin ist ist eine Art Bootstrapper, der die mscoree.dll lädt und sich selbst an die .NEt Execution Engine übergibt. Die guckt dann in der Anwendung nach was es ist und wie das ausgeführt wird. Und da hakt es dann wohl.

napsterxx 12. Jul 2009 12:28

Re: Stream im Speicher starten
 
Dachte auf Grund des .Net Fehlers poste ich ihn hier.

Ich lade eine Datei in einen TMemoryStream und möchte anschließend die Datei nicht von der Festplatte, sondern aus dem RAM herraus starten.

napsterxx 12. Jul 2009 22:11

Re: Stream im Speicher starten
 
PUSHHHH^^

sx2008 12. Jul 2009 22:33

Re: Stream im Speicher starten
 
Zitat:

Zitat von napsterxx
Ich lade eine Datei in einen TMemoryStream und ...

Was für eine Datei?
Hast du schon mal Notepad.exe aus dem Windows-Verzeichnis versucht?
Wenn nicht, dann probier's und schreibe ob das Notepad gestartet wird.

napsterxx 12. Jul 2009 22:37

Re: Stream im Speicher starten
 
Was für eine Datei?
Eine Exe Datei. Ein bisschen älteres Projekt.

Hast du schon mal Notepad.exe aus dem Windows-Verzeichnis versucht?
Japs - gleicher Fehler

Wenn nicht, dann probier's und schreibe ob das Notepad gestartet wird.
Funktioniert nicht - aber Notepad wurde gestartet. Die Fehlermeldung kommmt ja auch vom Notepad.

fkerber 12. Jul 2009 22:39

Re: Stream im Speicher starten
 
Hi!

Bitte nicht innerhalb von 24h pushen - Dankeschön!


Grüße, Frederic

Blup 13. Jul 2009 07:09

Re: Stream im Speicher starten
 
Es genügt nicht die "Exe" einfach in einen Speicherbereich zu laden, einen Prozess zu erzeugen und die erste Adresse anzuspringen.

Eine "Exe" im PE-Format ist eigentlich eine Beschreibung wie das Programm im Speicher zu erzeugen ist.
Dazu gehört das Laden diverser DLL, das Mappen der Sprungadressen entsprechend der enthaltenen Tabelle usw..
Schau dir dazu die Dokumentation des PE-Formats an.


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:30 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