Wie beschädigt man absichtlich ein Bild? [abgeschlossen]

Ich arbeite derzeit an einem Projekt, bei dem ich absichtlich Bilder beschädigen möchte. Ich versuche seit ein paar Wochen zu recherchieren, wie man das macht, und finde mich immer wieder im Kreis. Ich weiß, dass schlechte SD-Karten, Kopierprozessoren und schlechte Anschlüsse dafür verantwortlich sind, aber ich frage mich, warum und wie oft das passiert? Gibt es eine Möglichkeit, die Bilddatei manuell zu öffnen und ihre Zeichen zu ändern?

Vielen Dank :)

Ich stimme nicht als gültige Frage ab, aber ich glaube nicht, dass es wirklich mit Fotografie zu tun hat? Wäre dies nicht besser für einen Stapelüberlauf geeignet?
Ich habe dafür gestimmt, dies als "unklar, was Sie fragen", zu schließen, aber nach erneutem Lesen scheint mir klar, dass dies für diese Site nicht zum Thema gehört. Stack Overflow könnte der richtige Ort dafür sein, aber ich würde vorschlagen, dass Reverse Engineering besser passt.
Versuchen Sie, die Bilder intelligent zu korrumpieren (dh kontextbewusst das Bilddateiformat, um bestimmte bedeutungsvolle Daten zu korrumpieren), oder versuchen Sie nur, die Dateien zu fuzzen (dh Bytes zufällig zu ändern)?

Antworten (1)

Versuchen Sie eine Websuche nach "Hex-Editor". Es gibt mehrere, darunter einige kostenlose. Sie können die Werte der Bytes, aus denen die Datei besteht, als (normalerweise) hexadezimale Werte (Basis 16) anzeigen - jedes 8-Bit-Byte wird als 2 hexadezimale Ziffern angezeigt. Einige ermöglichen es Ihnen auch, die Werte als Oktal (Basis 8) oder Binär (Basis 2) anzuzeigen. Wie bei den meisten Editoren können Sie nach Dingen suchen (normalerweise entweder als normaler Text oder nach Byte-Werten) und Dinge hinzufügen/entfernen/ändern.

Was normalerweise passiert, wenn eine Datei beschädigt ist, ist, dass entweder ein Teil der Datei beim Kopieren verloren geht oder zusätzlicher Müll eingefügt wird oder dass einige der Datenwerte geändert werden - oder ein Teil oder ein Teil der Datei später durch etwas anderes überschrieben wird .

Je nach Bildformat kann das Ändern der Daten entweder die Farbe eines Pixels ändern (Rohpixelwerte), eine Zeile durcheinander bringen (lauflängencodierte Werte) oder das Bild unladbar machen (einige Header-Felder oder Komprimierungsschemata).

Bei den meisten Komprimierungsschemata kann die Ladesoftware möglicherweise feststellen, dass ein Problem vorliegt, wenn sich die Änderung auf eine der räumlichen Informationen (Lauflänge) auswirkt, kann jedoch möglicherweise nicht feststellen, ob die Änderung nur Farbinformationen betrifft - wenn sie ein erwartet 1000 Pixel lange Zeile, und die Daten werden auf 1020 oder 980 dekomprimiert, dann ist das ziemlich offensichtlich, wenn es überprüft wird, aber ein rotes Pixel anstelle eines grünen zu haben, ist nicht wahrnehmbar. Wenn durch die Änderung wichtige Header-Informationen (wie die Größe des Bildes) zerstört werden, treten ebenfalls Probleme auf.

Je nachdem, was Sie mit den beschädigten Bildern zu tun versuchen, müssen Sie möglicherweise mehr über die beteiligten Bildformate recherchieren.

Bearbeiten: Für alle, die sich fragen, warum die Editoren die Bytewerte als Hex-, Oktal- oder Binärwerte anstelle einer normalen Dezimalzahl (Basis 10) anzeigen - das liegt daran, dass in vielen Datenformaten verschiedene Teile der Bytes verwendet werden können für verschiedene Dinge - zum Beispiel könnten Sie 2 Bits der 8 Bits in einem Byte verwenden, um 4 mögliche verschiedene Farben darzustellen, und die anderen 6, um eine Wiederholungszahl darzustellen (0-63 oder 1-64, wenn Sie eins zu den hinzufügen Zahl), und mit der Hex/Oktal/Binär-Anzeige ist es einfacher, die Zahlen aufzuteilen und herauszufinden, was das Bitmuster ist - jede Ziffer stellt einen separaten Satz von Bits dar, im Gegensatz zur Dezimalzahl, wo die Dinge vermischt werden:

7A (hex - verwendet Ziffern 0123456789ABCDEF) =

0111 1010 (binär, getrennt, um die Hex-Beziehung anzuzeigen - verwendet die Ziffern 0 1) =

01 111 010 (binär, beabstandet, um oktale Beziehung anzuzeigen) =

172 (oktal – verwendet Ziffern 01234567) =

132 dezimal, was keine offensichtliche Beziehung zur binären Version hat.

Wenn Sie ein beschädigtes Bild senden möchten, das angezeigt wird, können Sie ein entsprechendes Format auswählen (ppm, bmp).