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, 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
44.048 Beiträge
 
Delphi 12 Athens
 
#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.
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.

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
44.048 Beiträge
 
Delphi 12 Athens
 
#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
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.

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
44.048 Beiträge
 
Delphi 12 Athens
 
#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.
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat
Benutzerbild von KodeZwerg
KodeZwerg

Registriert seit: 1. Feb 2018
3.691 Beiträge
 
Delphi 11 Alexandria
 
#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
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 10:39 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