Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Patchen über Stream (https://www.delphipraxis.net/12608-patchen-ueber-stream.html)

Uncle Cracker 30. Nov 2003 20:36


Patchen über Stream
 
In diesem Thread wollte ich wissen wie man einen Loader spreiben kann, geht eigentlich auch, aber nun wollte ich wissen ob das ganz vielleicht auch über einen Stream möglich ist, die datei Patchen und dann starten, ohne das auf der Festplatte zwischen gespeichert wird.

Ist das vielleicht möglich, und wenn ja wie, oder geht das gar nicht über einen Stream?


:love: Danke UC

Uncle Cracker 11. Dez 2003 12:35

Re: Patchen über Stream
 
Ich möchte jetzt meine Frage nochmal aufwerfen:

Ich habe jetzt mit bekommen, dass man bestimmte Werte, die im EXE-Header wichtig sind, nicht ohne Probleme mit einem Loader ändern, wie in diesem Beitrag zu sehen.

Denn ein Loader lädt, denke ich zumindestens, eine Datei in den Speicher, als startet diese schon fast, ändert bestimmte Werte und dann wird diese Datei erst komplett ausgeführt.

Nun meine Frage, wie kann ich trotzdem Werte im Header ändern, ohne diese erst auf der Festplatte komplett zu patchen?

Ich habe mir gedacht irgendwie über einen Stream, doch geht auch nicht so richtig


Vielleicht kann man irgendjemand bei meinem Problem helfen.


:love: Danke UC


PS: scp hat gemeint es gibt keine andere Lösung als diese Datei vorher auf der Festplatte zu patchen, oder doch?

Baal 11. Dez 2003 12:59

Re: Patchen über Stream
 
einen stream patchen kann man mit read und write

ich weiß leider nicht ob man den stream auch mit shellexecute ausführen kann

Uncle Cracker 11. Dez 2003 14:54

Re: Patchen über Stream
 
Und wie sollte ich das am besten machen?

Folgendermaßen mach ich das jetzt so in kurz Form:

Delphi-Quellcode:
 For i:=1 to Anzahl do // Alle Wert von 1 bis Anzahl
 Begin
 {$I-}
 reset(F,1);
 {$I+}
 Seek(F,A[i].A);     // Offset
 Ch:=Char(A[i].B);   // Zeichen werden geholt
 Blockwrite(F,Ch,1); // Schreibt eine Anzahl von Records aus einer Puffervariablen in eine Datei
 End;

 Closefile(F);


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:29 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz