AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Stream im Speicher starten

Ein Thema von napsterxx · begonnen am 11. Jul 2009 · letzter Beitrag vom 13. Jul 2009
Antwort Antwort
napsterxx

Registriert seit: 18. Mär 2007
Ort: Borland
556 Beiträge
 
Delphi 7 Enterprise
 
#1

Stream im Speicher starten

  Alt 11. Jul 2009, 14:56
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
---------------------------
Du derefernzierst p2 einmal und weißt die Adresse von i zu. Das heißt p2 (also der Zeiger auf einen Zeiger) zeigt auf den Zeiger p1 welchen du so auf i zeigen lässt.
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.288 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: Stream im Speicher starten

  Alt 11. Jul 2009, 16:05
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?
Sebastian Jänicke
Alle eigenen Projekte sind eingestellt, ebenso meine Homepage, Downloadlinks usw. im Forum bleiben aktiv!
  Mit Zitat antworten Zitat
Benutzerbild von Phoenix
Phoenix
(Moderator)

Registriert seit: 25. Jun 2002
Ort: Hausach
7.604 Beiträge
 
#3

Re: Stream im Speicher starten

  Alt 11. Jul 2009, 16:14
Ä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.
Sebastian Gingter
Phoenix - 不死鳥
Mein Blog: http://gingter.org
  Mit Zitat antworten Zitat
napsterxx

Registriert seit: 18. Mär 2007
Ort: Borland
556 Beiträge
 
Delphi 7 Enterprise
 
#4

Re: Stream im Speicher starten

  Alt 12. Jul 2009, 13:28
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.
Du derefernzierst p2 einmal und weißt die Adresse von i zu. Das heißt p2 (also der Zeiger auf einen Zeiger) zeigt auf den Zeiger p1 welchen du so auf i zeigen lässt.
  Mit Zitat antworten Zitat
napsterxx

Registriert seit: 18. Mär 2007
Ort: Borland
556 Beiträge
 
Delphi 7 Enterprise
 
#5

Re: Stream im Speicher starten

  Alt 12. Jul 2009, 23:11
PUSHHHH^^
Du derefernzierst p2 einmal und weißt die Adresse von i zu. Das heißt p2 (also der Zeiger auf einen Zeiger) zeigt auf den Zeiger p1 welchen du so auf i zeigen lässt.
  Mit Zitat antworten Zitat
Benutzerbild von sx2008
sx2008

Registriert seit: 16. Feb 2008
Ort: Baden-Württemberg
2.332 Beiträge
 
Delphi 2007 Professional
 
#6

Re: Stream im Speicher starten

  Alt 12. Jul 2009, 23:33
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.
fork me on Github
  Mit Zitat antworten Zitat
napsterxx

Registriert seit: 18. Mär 2007
Ort: Borland
556 Beiträge
 
Delphi 7 Enterprise
 
#7

Re: Stream im Speicher starten

  Alt 12. Jul 2009, 23:37
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.
Du derefernzierst p2 einmal und weißt die Adresse von i zu. Das heißt p2 (also der Zeiger auf einen Zeiger) zeigt auf den Zeiger p1 welchen du so auf i zeigen lässt.
  Mit Zitat antworten Zitat
Benutzerbild von fkerber
fkerber
(CodeLib-Manager)

Registriert seit: 9. Jul 2003
Ort: Ensdorf
6.723 Beiträge
 
Delphi XE Professional
 
#8

Re: Stream im Speicher starten

  Alt 12. Jul 2009, 23:39
Hi!

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


Grüße, Frederic
Frederic Kerber
  Mit Zitat antworten Zitat
Blup

Registriert seit: 7. Aug 2008
Ort: Brandenburg
1.429 Beiträge
 
Delphi 10.4 Sydney
 
#9

Re: Stream im Speicher starten

  Alt 13. Jul 2009, 08:09
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.
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:06 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