AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

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, 15: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
38.563 Beiträge
 
Delphi 10.4 Sydney
 
#2

AW: Dateien patchen

  Alt 6. Apr 2018, 16: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.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
Delphi-Tage 2005-2014

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

n/a Beiträge
 
#3

AW: Dateien patchen

  Alt 6. Apr 2018, 17: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
38.563 Beiträge
 
Delphi 10.4 Sydney
 
#4

AW: Dateien patchen

  Alt 6. Apr 2018, 17: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
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
Delphi-Tage 2005-2014

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

n/a Beiträge
 
#5

AW: Dateien patchen

  Alt 6. Apr 2018, 17: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
38.563 Beiträge
 
Delphi 10.4 Sydney
 
#6

AW: Dateien patchen

  Alt 6. Apr 2018, 17: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.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
Delphi-Tage 2005-2014
  Mit Zitat antworten Zitat
Benutzerbild von KodeZwerg
KodeZwerg

Registriert seit: 1. Feb 2018
3.061 Beiträge
 
Delphi 10.3 Rio
 
#7

AW: Dateien patchen

  Alt 6. Apr 2018, 23:05
Falls es helfen könnte kann ich einen "Patch-Generator" hochladen der Dir unter anderem ein Delphi Source dafür erstellt.
Anhand des erstellten Source kannst Du easy nachvollziehen wie ich's mache, auch eine Restore funktion ist enthalten.
Limitiert auf Dateien die gleich groß sind und bis max. 2GB Daten-Array (max. 1 GB Unterschiede pro Patch).
Es sind noch keine Funktionen integriert die einem Admin-Rechte o.ä. bereitstellen (würde man heutzutage meist brauchen um auf C:\ zuzugreifen)
Source vom Generator kann ich mit Absprache von Fukiszo bestimmt auch hochladen falls erwünscht.
Gruß vom KodeZwerg
  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 +2. Es ist jetzt 00:31 Uhr.
Powered by vBulletin® Copyright ©2000 - 2021, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2021 by Daniel R. Wolf