![]() |
Re: "Verschlüsselte" Bilddateien "entschlüsse
Falls es irgendwie hilft: Es gibt ein kostenpflichtiges Programm, dass ebenfalls das macht was ich möchte. Mit diesem konnte ich die eine PNG Datei mal ersetzen. In der *.dat-Datei wurden durch das Programm nun folgende Änderungen gemacht. Was genau das ist bzw. wie ich die *.dat so ändern kann das meine Dateien geschluckt werden weiß ich leider noch nicht.
Zitat:
|
Re: "Verschlüsselte" Bilddateien "entschlüsse
Das sind einfach zu wenig Daten/Informationen, um irgendetwas damit anzufangen (außer zu raten).
Da dein Diff 16 aufeinanderfolgende Bytes Unterschied liefert, könnte jfheins recht haben (MD5). |
Re: "Verschlüsselte" Bilddateien "entschlüsse
Liste der Anhänge anzeigen (Anzahl: 1)
Und jfheins hatte Recht! Der MD5 String des Bildes steht in der *.dat Datei drin, siehe Anhang. Vielen Dank.
Nun gibt es eigentlich kein großes Problem mehr, jedenfalls von theoretischer Sicht aus für mich. Mein Programm holt sich den MD5 Hash der Original-Datei, holt sich dann den MD5 Hash meiner neuen Datei. *.dat Datei öffnen und alten Hash durch neuen Hash ersetzen. Speichern und fertig, oder? Nur leider... hakts an der Umsetzung. Strings in Dateien könnt ich ja vlt. noch grad so ersetzen, ob wie soll ich Hex-Werte ersetzen? :gruebel: |
Re: "Verschlüsselte" Bilddateien "entschlüsse
Hallo,
wie öffnest Du die Datei? ..mit eine StringList sollte es Probleme geben "binäre" Werte einzutragen. Bei einem TFileStream würde ich da keine Probleme sehen. Womit generierst Du Deinen MD5 Wert? Gibt es da auch eine Möglichkeit der Wert als 16 Byte zu bekommen oder wird der Wert nur in der Hexdarstellung angeboten? Grüße Klaus |
Re: "Verschlüsselte" Bilddateien "entschlüsse
Hallo Klaus,
im Moment öffne ich die Datei noch mit einem handelsüblichen HEX-Editor. Aus Delphi heraus dann sicherlich mit einem File- oder Memorystream. Gut das du gefragt hast, meine md5.pas ist weg und auf ![]() |
Re: "Verschlüsselte" Bilddateien "entschlüsse
Hallo, versuche doch mal diesen Code, um die MD5-Hashs zu ersetzen:
Delphi-Quellcode:
So ähnlich zumndest ;)
type
MD5Digest: Array [0..15] of byte type MD5Digest: Array [0..15] of byte procedure Replace(Stream: TStream; oldmd5, newmd5: MD5Digest) var i: Integer; pos: Int64; pattern: MD5Digest; begin for i = 0 to 15 do begin oldmd5[i] := oldmd5[i] xor $8D; newmd5[i] := newmd5[i] xor $8D; end; Stream.Position := 0; while (Stream.size - Stream.Position) >= sizeof(MD5Digest) do begin pos := Stream.Position; Stream.readbuffer(pattern, sizeof(MD5Digest)); Stream.position = pos + 1; // Wir müssen byteweise vorgehen if (comparemem(@pattern[0], @oldmd5[0], sizeof(MD5Digest)) = 0) then begin Stream.position = pos; Stream.writeBuffer(newmd5, sizeof(MD5Digest)); break; end; end; end; procedure ReplaceFile(FileName: String; old, new: Array of MD5Digest) var fs: TFileStream; mem: TmemoryStream; i: Integer; begin mem := TMemoryStream.Create(); fs := TFileStream.Create(FileName, fmOpenReadWrite or fmShareExclusive); try mem.CopyFrom(fs, 0); for i = low(old) to high(old) do begin Replace(mem, old[i], new[i]); end; fs.CopyFrom(mem, 0); finally fs.Free; mem.Free; end; end; |
Re: "Verschlüsselte" Bilddateien "entschlüsse
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo,
anbei die md5.pas die ich ab und an verwende. Den binären MD5 Wert erhälst Du wenn Du diese Funktion
Delphi-Quellcode:
aufrufst.
function MD5File(N: string): MD5Digest;
MD5Digest ist ein Array[0..15] of Byte; Grüße Klaus |
Re: "Verschlüsselte" Bilddateien "entschlüsse
Danke Klaus, genau die hatte ich schon per Google gefunden. :-)
Aber mein ganzer Dank geht an jfheins, durch dessen Hilfe es jetzt geht (+ ICQ Hilfen)! :party: Du bist mein Held des Monats. :) P.S.: Meld dich mal vor Weihnachten bei mir, ich schenk dir 25€ zu Weihnachten. Nicht das noch jemand auf die Idee kommt das hier wäre Schwarzarbeit. :mrgreen: |
AW: "Verschlüsselte" Bilddateien "entschlüsseln"
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo Leute,
Ich hole mal diesen alten Thread nach oben, weil good old Google ihn bei mir gefunden hat und ich anders nicht weiterkomme. Das Problem hat nix mit Delphi zu tun, aber ihr scheint mir alle tolle Experten zu sein! Ich habe von einer Freeware Designsoftware ein Hintergrundbild, das ich dringend für ein anderes Projekt benötige. Allerdings hat der Hersteller wohl ein paar Bytes in der Datei verändert, sie verschlüsselt oder irgendwie gepackt. Wenn man sich das im HEX-Editor anschaut sieht man neben kryptischen Zeichen (wohl den Bildinformationen) nur einen Abschnitt über Adobe XMP Core 4.1, Tiff-Datei und Dimensionen des Bildes. Kommt ihr darauf, was mit der Datei los is? Das wäre gigantisch! Hab sie hier hochgeladen: ![]() Und hier is der Abschnitt mit Hex-Code: ![]() Herzlichsten Dank! |
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:15 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