AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein "Verschlüsselte" Bilddateien "entschlüsseln"
Thema durchsuchen
Ansicht
Themen-Optionen

"Verschlüsselte" Bilddateien "entschlüsseln"

Offene Frage von "sunnymtx"
Ein Thema von The Riddler · begonnen am 23. Okt 2008 · letzter Beitrag vom 16. Nov 2010
Antwort Antwort
Seite 1 von 3  1 23      
The Riddler
(Gast)

n/a Beiträge
 
#1

"Verschlüsselte" Bilddateien "entschlüsseln&q

  Alt 23. Okt 2008, 10:26
Hallo,

ich stehe vor einem kleinen aber feinen Problem: Ich habe hier diverse PNG und JPG Dateien, welche zu einem bestimmten Programm gehören. Da die Ersteller des Programmes allerdings nicht sonderlich gut darin waren, schöne Grafiken zu machen, möchte ich diese Bilddateien durch von mir erstelle Bilder austauschen.

Das Problem: Die Original-Bilddateien sind anscheinend "verschlüsselt", jedenfalls kann ich sie mit keinem anderen Bildbetrachter öffnen. Vermutlich wurden einfach ein paar Bytes entfernt sodass jedes Bildprogramm scheitert diese Grafiken zu laden.

Nun wäre es nicht unbedingt erforderlich das ich die Originaldateien sozusagen "entschlüssele", es wäre schon sinnvoller für mich wenn ich wüsste was die Programmautoren mit den Bildern gemacht haben um sie so hinzubekommen. Und natürlich wäre es perfekt wenn ich wissen würde, wie ich meine eigenen Bilder so verändere das das fremde Programm sie frisst.

Wäre super wenn einer von euch Experten sich das einmal angucken könnte, da mir einfach das nötige Wissen für so etwas fehlt. Eine Beispiel-Grafik habe ich einmal angehangen.

Danke & Grüße
Angehängte Grafiken
Dateityp: png karten_910.png (385,2 KB, 108x aufgerufen)
  Mit Zitat antworten Zitat
Daniel
(Co-Admin)

Registriert seit: 30. Mai 2002
Ort: Hamburg
13.920 Beiträge
 
Delphi 10.4 Sydney
 
#2

Re: "Verschlüsselte" Bilddateien "entschlüsse

  Alt 23. Okt 2008, 10:32
Moin,

erste Analysen sind gar nicht so schwer. Besorge Dir einen Hex-Editor, oder wenigstens einen Hex-Viewer. Der erlaubt es Dir, die Datei als Byte-Strom aufzufassen und Dir mal anszusehen, was da für Bytes in der Datei stehen. Diese müssen nämlich - wenn es denn eine PNG-Datei ist - einem bestimmten Format entsprechend, dem PNG-Format.

Falls es sich die Entwickler seeeeeeeeehr einfach gemacht haben, dann haben sie lediglich im Header ein paar Bytes verändert. Das kannst Du selbst kontrollieren, indem Du Dir mal die Spezifikationen für das PNG-Format ansiehst. keine Sorge: Du sollst keinen vollständigen Viewer schreiben, musst Du auch nicht. Nur ein paar Bytes im Header der Datei ansehen, das ist eine lösbare Aufgabe auch wenn man im Hinblick auf PNG-Dateien nur mäßige Vorkenntnisse hat.

Der Header einer PNG-Datei beispielsweise ist hier aufgelistet:
http://en.wikipedia.org/wiki/Portabl...cs#File_header
Daniel R. Wolf
mit Grüßen aus Hamburg
  Mit Zitat antworten Zitat
The Riddler
(Gast)

n/a Beiträge
 
#3

Re: "Verschlüsselte" Bilddateien "entschlüsse

  Alt 23. Okt 2008, 10:42
Hi,

danke erstmal.

Die ersten 8 Byte der PNG Datei sehen so aus: 80 87 97 87 8D 8D 8D 80, es scheint also in der Tat keinen Header zu geben oder er ist verschlüsselt.

Ich habe jetzt einfach mal den PNG-Header (89 50 4E 47 0D 0A 1A 0A) an den Anfang der Datei gesetzt, aber die Datei kann weiterhin nicht angezeigt werden. Wäre auch zu schön gewesen wenns so einfach gewesen wäre.
  Mit Zitat antworten Zitat
Benutzerbild von richard_boderich
richard_boderich

Registriert seit: 21. Jun 2004
Ort: Berlin
1.067 Beiträge
 
Delphi 7 Architect
 
#4

Re: "Verschlüsselte" Bilddateien "entschlüsse

  Alt 23. Okt 2008, 11:55
Mahlzeit!

Dann gehe ich davon aus, das die Dateien binär verschlüsselt sind. Wenn du den Algorithmus nicht kennst ist jeder
Versuch Zeitverschwendung. Woher weist du eigentlich das es Bilder sind? Ich kann dir auch irgendein Binärformat hinklatschen
und hänge irgendeine Dateiendung dran.
mfG Richard

Cimmams schrieb "das einzige was an ArmA gut ist, ist die Grafik bis 100m und der Rest ist so unreal wie unsere Demokratie."
  Mit Zitat antworten Zitat
The Riddler
(Gast)

n/a Beiträge
 
#5

Re: "Verschlüsselte" Bilddateien "entschlüsse

  Alt 23. Okt 2008, 12:17
Hi richard,

weil diese Dateien in dem Fremdprogramm ja angezeigt werden.

Keine Möglichkeit also da ranzukommen?

Greets
  Mit Zitat antworten Zitat
Daniel
(Co-Admin)

Registriert seit: 30. Mai 2002
Ort: Hamburg
13.920 Beiträge
 
Delphi 10.4 Sydney
 
#6

Re: "Verschlüsselte" Bilddateien "entschlüsse

  Alt 23. Okt 2008, 12:40
Solange Du nicht weißt, welchen Prozess sie verwenden, um ihre Bilder zu "schützen", ist es halt schwierig, diesen umkehren zu wollen. Was Du machen müsstest, wäre eine Form von "Reverse-Engeneering". Das heißt, dass Du Dir beispielsweise in einem Debugger ansehen müsstest, was da zur Laufzeit passiert.

Das ist aber - vorsichtig formuliert - "nicht ganz trivial".
Daniel R. Wolf
mit Grüßen aus Hamburg
  Mit Zitat antworten Zitat
Benutzerbild von nicodex
nicodex

Registriert seit: 2. Jan 2008
Ort: Darmstadt
286 Beiträge
 
Delphi 2007 Professional
 
#7

Re: "Verschlüsselte" Bilddateien "entschlüsse

  Alt 23. Okt 2008, 13:15
Nimm mal die ersten vier Bytes ("CF10") weg und XOR die restlichen Bytes mit $8D.

edit:
Delphi-Quellcode:
const
  FileName = 'D:\Temp\karten.png';
var
  Source: TFileStream;
  Header: array [0..3] of AnsiChar;
  Stream: TMemoryStream;
  Buffer: PByte;
  Index: Integer;
begin
  Source := TFileStream.Create(FileName, fmOpenRead);
  try
    Source.Position := 0;
    Source.ReadBuffer(Header, SizeOf(Header));
    if Header = 'CF10then
    begin
      Stream := TMemoryStream.Create();
      try
        Stream.CopyFrom(Source, Source.Size - Source.Position);
        Buffer := Stream.Memory;
        for Index := 1 to Stream.Size do
        begin
          Buffer^ := Buffer^ xor $8D;
          Inc(Buffer);
        end;
        Stream.SaveToFile(ChangeFileExt(FileName, '.decoded') +
          ExtractFileExt(FileName));
      finally
        Stream.Free();
      end;
    end;
  finally
    Source.Free();
  end;
end;
  Mit Zitat antworten Zitat
The Riddler
(Gast)

n/a Beiträge
 
#8

Re: "Verschlüsselte" Bilddateien "entschlüsse

  Alt 23. Okt 2008, 14:09
Wow Nico, vielen vielen Dank. Funktioniert perfekt, sogar mit den JPG-Bildern.

Ich habe nun versucht deinen Algorithmus umzukehren, um meine Bilder so zu verschlüsseln. Habe also umgekehrt versucht XOR auszuführen wenn der Header nicht CF10 ist. Leider klappt dies nicht. Kannst du mir da vlt. noch einmal aushelfen bitte?

Grüße
  Mit Zitat antworten Zitat
guidok

Registriert seit: 28. Jun 2007
417 Beiträge
 
#9

Re: "Verschlüsselte" Bilddateien "entschlüsse

  Alt 23. Okt 2008, 14:12
Zitat von The Riddler:
Wow Nico, vielen vielen Dank. Funktioniert perfekt, sogar mit den JPG-Bildern.

Ich habe nun versucht deinen Algorithmus umzukehren, um meine Bilder so zu verschlüsseln. Habe also umgekehrt versucht XOR auszuführen wenn der Header nicht CF10 ist. Leider klappt dies nicht. Kannst du mir da vlt. noch einmal aushelfen bitte?
Du musst nach dem XOR auch den Header CF10 vorne anhängen.
  Mit Zitat antworten Zitat
The Riddler
(Gast)

n/a Beiträge
 
#10

Re: "Verschlüsselte" Bilddateien "entschlüsse

  Alt 23. Okt 2008, 14:52
Eben da hakts bei mir. Problem ist, dass ich ja Stream.CopyFrom nicht verwenden kann. Oder steh ich nur auf dem Schlauch?
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 3  1 23      


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 21:56 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