AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Dateien patchen

Ein Thema von günni0 · begonnen am 6. Apr 2018 · letzter Beitrag vom 6. Apr 2018
Antwort Antwort
günni0
(Gast)

n/a Beiträge
 
#1

Dateien patchen

  Alt 6. Apr 2018, 14:29
Ich befasse mich aktuell etwas mehr mit dem Thema Dateien Patchen.
Robocopy kann das scheinbar, aber ich möchte gerne eine eigene Lösung haben. Nur leider habe ich davon noch absolut keinerlei Ahnung und ich nehme auch stark an, dass Antivirenprogramme solches File I/O-Verhalten nicht sonderlich mögen.
Könnt ihr mir weiterhelfen? Ich würde bei 0 anfangen.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.339 Beiträge
 
Delphi 12 Athens
 
#2

AW: Dateien patchen

  Alt 6. Apr 2018, 15:55
Ich bin mir sicher, dass ich bei irgendwem vor kurzem sowas auf der Webseite sah (Lucky, Andy, Andreas oder so), aber find grade nix.
http://michael-puff.de
http://andy.jgknet.de/blog/
https://github.com/assarbad
...

Aber gibt ja noch mehr zu finden ...
Hier im Forum suchenDatei patchen
Hier im Forum suchenFile patchen
Bei Google suchendelphi file diff (wer einen Patch erstellen will, muß erstmal die Unterschiede finden)
https://codereview.stackexchange.com...binary-patcher
http://delphiworlds.com/applying-patches/
http://www.sunshine2k.de/articles/co...ut_Patcher.htm

Die einfachste Variante
* bytweise vergleichen
* geänderte Byteabschnitte suchen
* eine Liste erstellen (Start, Länge, Datenbytes)
** willst du keine Gruppierungen suchen, dann eben (Position, Byte)
* und das irgendwie in einer Datei speichern

Erweitern kann man das noch durch eine bessere Erkennungsfunktion.
z.B. nicht nur Positionsbezogen überschreiben, sondern auch Bytes/Bytegruppen löschen, einfügen oder verschieben

Am Ende eventuell noch komprimieren, um den Patch noch kleiner zu bekommen.
Ein Therapeut entspricht 1024 Gigapeut.

Geändert von himitsu ( 6. Apr 2018 um 16:01 Uhr)
  Mit Zitat antworten Zitat
günni0
(Gast)

n/a Beiträge
 
#3

AW: Dateien patchen

  Alt 6. Apr 2018, 16:09
Zitat:
* und das irgendwie in einer Datei speichern
Klingt unglaublich kompliziert und nicht die Zeit wert. Ich höre schon die AntiViren-Sirenen läuten.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.339 Beiträge
 
Delphi 12 Athens
 
#4

AW: Dateien patchen

  Alt 6. Apr 2018, 16:11
Wieso?

Den Virenscannern ist sowas aber sowas von egal.
Sonst würden die bei fast jedem Programm meckern. (welche oft binäre Dateien erstellen)

Delphi-Referenz durchsuchenTReader, Delphi-Referenz durchsuchenTWriter (PS: die originalen DFM und die RES sind auch binär, DOC und XLS waren es auch usw.)
file of TDeinRecord
Ein Therapeut entspricht 1024 Gigapeut.

Geändert von himitsu ( 6. Apr 2018 um 16:14 Uhr)
  Mit Zitat antworten Zitat
günni0
(Gast)

n/a Beiträge
 
#5

AW: Dateien patchen

  Alt 6. Apr 2018, 16:13
Ich kann mir gerade auch nicht vorstellen, wie das bei binären Dateien korrekt funktionieren soll.
Angenommen original gibt es die Bytes A B C und D. Nun kommt zwischen A und B 1 und 2, zwischen C und D 3 und nach D 4. Das kann doch nur schiefgehen.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.339 Beiträge
 
Delphi 12 Athens
 
#6

AW: Dateien patchen

  Alt 6. Apr 2018, 16:17
Ich kann mir gerade auch nicht vorstellen, wie das bei binären Dateien korrekt funktionieren soll.
Angenommen original gibt es die Bytes A B C und D. Nun kommt zwischen A und B 1 und 2, zwischen C und D 3 und nach D 4. Das kann doch nur schiefgehen.
Das geht schon.
Nur wäre es nicht schlecht auch die Original-Daten mit im Patch zu speichern, um vorher zu vergleichen, ob die zu patchende Datei auch stimmt, denn sonst kommt definitiv Mist bei raus.
Eventuell auch noch einen Datei-Hash von vorher und nachher, um das Ergebnis zu prüfen.

Ob binär oder Text ist letztendlich egal ... sind alles nur Bytes.
Ein Therapeut entspricht 1024 Gigapeut.
  Mit Zitat antworten Zitat
Antwort Antwort


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 03:10 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