Autor |
Beitrag |
Marlno
      
Beiträge: 75
|
Verfasst: Fr 25.07.03 00:31
hi leute wollte mal wissen ob jemand bescheid weiß
wie ich ein update programm mache
bzw wie kann ich in eine exe eingreifen den gewünschten code durch einen neuen ersetzen und die exe dann speichern und schon ist beispielsweise aus version 1 version 1.2 geworden ..
weiß das jemand?
oder ist die lösung so einfach das ich mir mein ltztes programm im hex anschauen muss und die stellen raussuchen muss und mit einem string ersetze?? bloß woher weiß ich was in der exe was ist???
bitte um hilfe...
|
|
DeCodeGuru
      
Beiträge: 1333
Erhaltene Danke: 1
Arch Linux
Eclipse
|
Verfasst: Fr 25.07.03 00:42
das was du vor hast, geht in der form, die du beschrieben hast, nicht. Man kann nicht einfach Quellcodepassagen einfach durch neue ersetzen. Der Grund dafür ist, dass das Programm kompiliert wurde. Es wurde aus dem Delphi-Code Maschinencode erstellt.
Wenn du die Anwendungen patchen willst, müsstest du praktisch "in den Hex-Editor gehen" und dort alle Passagen der alten exe, die sich von den neuen Unterscheiden mit den neuen ersetzen. Das würde gehen. Google mal nen bisschen. Vielleicht findeste ein Program, welches dir Updates von Programmen generieren kann.
_________________ Viele Grüße
Jakob
|
|
Marlno 
      
Beiträge: 75
|
Verfasst: Fr 25.07.03 01:00
Zitat: | das was du vor hast, geht in der form, die du beschrieben hast, nicht. Man kann nicht einfach Quellcodepassagen einfach durch neue ersetzen. Der Grund dafür ist, dass das Programm kompiliert wurde. Es wurde aus dem Delphi-Code Maschinencode erstellt.
|
das ist mir schon klar ich habs leider falsch formuliert weil ich nebenbei am tele war sorry
ich meinte ja eher so wie du meintest deshalb auch hex editor....
aber dann muss ich ja die werte raussuchen und beides in einen string stecken dann im alten programm nach dem stringold suchen diesen markieren lassen und mit dem wert aus stringnew ersetzen lassen
wobei die strings natürlich den compilierten quellcode haben also den maschienen code oder nicht??
so müsste das doch gehen oder???
googeln hmmm da bin ich schlecht drin... heul
aber trotzdem thx
|
|
Terra23
      
Beiträge: 872
Win 8
Delphi 7
|
Verfasst: Fr 25.07.03 02:44
Was du vielleicht auch machen könntest ist folgendes: Wenn du dein Programm im Netz anbietest, kannst du doch eine Prüfung ins Tool einbauen, daß im Netz nach Updates sucht. Wie man das macht, findest du hier sicherlich auch irgendwo (ich meine, ich habe das schonmal gesehen). Dann mußt du nicht "mühsam" per Editor Zeilen ersetzen sondern erzeugst einfach mit Delphi eine Update-Exe, stellst die Online und die alte Version deines Programms findet dann das Update und kann es dann (auf Anfrage) ausm Netz laden bzw. sich selber updaten..
_________________ Hasta La Victoria Siempre
|
|
MathiasSimmack
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Fr 25.07.03 07:59
Bei Delphi-Source.de gibt´s ein Programm namens MAKEUPD (Make Update). Es gab auch schon ein paar Beiträge zu diesem Thema; sprich: wie erzeugt man aus einer alten und einer neuen Versionen einen Patch, der in der Regel kleiner ist und an die Anwender weitergegeben werden kann, und der dann (beim Anwender) aus der alten Version die neue erzeugt.
Leider finde ich nicht mehr alle Beiträge dazu. Wahrscheinlich immer noch das Problem mit der Suchfunktion und dem Alter der Topics.
O.g. Programm jedenfalls ist in Delphi geschrieben und sehr hilfreich für solche Zwecke.
|
|
Tino
      

Beiträge: 9839
Erhaltene Danke: 45
Windows 8.1
Delphi XE4
|
Verfasst: Fr 25.07.03 09:14
Hier ist der direkte Link zu Make Update.
Hier die Deutsche Erklärung:
Delphi-Source hat folgendes geschrieben: | Vorbemerkung: Bei der hier angebotenen Version 1.07 handelt es sich um die neueste Version vom September 2001, wobei die hiermit erzeugten Update-Files nicht zu denen kompatibel sind, die mit älteren Versionen von Make Update erzeugt wurden!
"Make Update" und "Update" sind zwei Teile einer Anwendung, um eine ältere Version einer Datei (oder Dateien) auf eine neuere Version upzudaten. Dabei gehen sie so vor, dass einfach die Unterschiede zwischen den beiden Versionen ermittelt und diese dann auf die ältere Version angewendet werden.
Dies ist besonders nützlich, wenn Sie allgemeine Versionen großer Dateien auf Servern bereit halten müssen und die Unterschiede zwischen den beiden Versionen klein sind. Eine andere Anwendung ist das "Patchen" von Dateien oder Anwendungen - d.h. es werden Updates von Dateien (z. B. Anwendungen) den Anwendern zur Verfügung gestellt, ohne dass die Inhalte der kompletten Dateien anderen zugänglich gemacht werden.
Make Update erlaubt es dem Benutzer, eine Liste von Datei-Paaren zu erstellen - jedes Paar besteht aus einer alten und einer neuen Version einer einzelnen Datei. Make Update vergleicht dann die Dateien paarweise und findet die Unterschiede zwischen der alten und der neuen Version. Es komprimiert diese Unterschiede und speichert sie zusammen mit einigen Versionsinformationen, der Größe und dem CRC jeder Datei in einer Update-Datei, welche standardmäßig die Endung *.upd hat.
Make Update erlaubt es dem Benutzer, Einstellungsdateien in einer Update-Session-Datei zu speichern, die standardmäßig die Endung *.ups hat.
Update erlaubt es dem Benutzer
(1) ein Verzeichnis, das die alte Version der Datei(en) enthält und
(2) ein Update-File
auszuwählen.
Update wird dann die Datei(en) auf die neueste Version updaten, indem die Unterschiede, die im Update-File gefunden werden, angewendet werden. Update zeigt eine Log-Datei an, die alle bearbeiteten Dateien enthält.
Update prüft die Datenintegrität indem eine Nummer von 32-Bit CRCs und die Dateigröße geprüft werden:
(1) Es berechnet die CRC der Unterschiede und vergleicht sie mit den CRCs, die vorher von Make Update berechnet und im Update-File gespeichert wurden. Falls es einen Unterschied zwischen den beiden CRCs gibt, bricht Update den Vorgang ab.
(2) Für jede alte Datei, die upgedatet werden soll, berechnet es die CRC und die Dateigröße und vergleicht sie mit den "alten" und "neuen" CRCs und der Dateigröße, die vorher von Make Update berechnet und im Update-File gespeichert wurden.
(a) Wenn es entdeckt, dass die CRC und die Größe mit der vorher berechneten CRC und Größe der neuen Version der Datei zusammenpassen, überspringt Update die Datei und vermerkt in der Log-Datei, dass diese Datei bereits auf die neue Version upgedatet worden ist.
(b) Ansonsten, wenn es entdeckt, dass die CRCs und die Größe nicht mit der vorher berechneten CRC und Größe der alten Version der Datei zusammen, überspringt Update die Datei und vermerkt in der Log-Datei, dass die Datei nicht der erwarteten alten Version entspricht.
(c) Ansonsten wendet es die Unterschiede auf die Datei an, indem zeitweise eine neue Version erstellt wird. Dann berechnet es die CRC und die Größe dieser zeitweiligen neuen Version und vergleicht sie mit der vorher berechneten CRC und Größe der neuen Version. Wenn entweder die CRCs oder die Größen nicht übereinstimmen, löscht Update die zeitweilige neue Version der Datei und vermerkt in der Log-Datei, dass die Datei übersprungen wurde, weil die upgedatete Datei den CRC-Check nicht bestanden hat.
(d) Ansonsten ersetzt Update die alte Datei mit der zeitweilig neuen Version und vermerkt in der Log-Datei, dass die Datei auf die neue Version upgedatet wurde.
Sie können Make Update verwenden, um "multi-version" Update-Files zu erstellen, indem die Unterschiede an ein existierendes Update-File angehängt werden. Eine Backup-Kopie des existierenden Update-Files wird in einer Datei mit der Endung *.~upd gespeichert.
Es gibt eine "all-or-nothing"-Option in Make Update, wodurch es alle Änderungen rückgängig machen kann, indem die alten Dateien in ihrem Originalzustand wieder hergestellt werden, wenn Update Probleme beim Verändern einer Datei hat.
Es gibt eine Option, dass Update die neue Datei unter einem anderen Namen speichert, wenn die Unterschiede erfolgreich angewendet werden konnten, aber die alte Datei nicht ersetzt werden konnte, weil sie in Benutzung ist. Dies ist hilfreich beim Updaten von laufenden ausführbaren Programmen.
Außerdem können Sie Ihr Update-File in ein selbstanwendendes Update umwandeln.
Mehr dazu in der englischsprachigen Hilfe, die neben dem kompletten Quellcode und den ausführbaren Dateien in der Download-Datei enthalten ist.
Make Update und Update sind Freeware-Anwendungen. Copyright Gregory L. Bullock (bullock@tsppd.com), 1999.
They are provided "as is", with no warranty guaranteed or implied. You use them at your own risk. They may be freely distributed and modified. |
|
|
|