Inwieweit kann benutzerdefinierter Code, wenn überhaupt, in ein PNG, GIF oder JPG eingebettet werden?

7

Computergrafikdateien werden in Windows von Komponenten wie der Grafikgeräteschnittstelle und Direct2D gerendert .

Ist es möglich, eine Grafikdatei zu erstellen, die neben der Anzeige einer Grafik auch benutzerdefinierten Code in der Grafikdatei verwendet?

Mit benutzerdefiniertem Code beziehe ich mich auf Funktionen wie:

  1. Inkrementieren eines Zählers oder Datums, das in der Grafik angezeigt wird.
  2. Zugriff auf eine Web-URL zum Abrufen von Daten, die in der Grafik angezeigt werden.
Coderworks
quelle
1
Was ist mit Bildern, die Code sind? Schauen Sie sich den Esolang Piet an, mit dem Sie mit Bildern programmieren können. Und dieses Video, in dem ein Bild erstellt und dann als ausführbare Datei erstellt wird.
Seife
Neben Schwachstellen in Bilddecodern (z. B. GDI +) ist es möglich, Code zB NACH dem EOF-Marker in ein JPEG einzubetten. In diesem Fall befindet sich der benutzerdefinierte Code in derselben Bilddatei, ist jedoch technisch nicht Teil des Bildes. Siehe Beispiel in diesem Dokument zu: "Hammertoss" -Malware
user100487
Siehe auch

Antworten:

7

Gängige Grafikformate wie JPEG, PNG und GIF enthalten keinen Code. Sie speichern nur ein komprimiertes Array von Pixeln - sie können auf Befehl nichts generieren oder einen Webdienst usw. kontaktieren.

(In Image-Decodern wurden gelegentlich Sicherheitslücken entdeckt, die es einem böswillig erstellten Image ermöglichen, beim Anzeigen über einen Pufferüberlauf-Exploit oder ähnliches eine Codeausführung zu verursachen. Dies ist jedoch natürlich nicht Teil des Entwurfs des Formats.)

Einige Vektorgrafikformate wie EPS und SVG ermöglichen das Einbetten von Code. Da es sich jedoch um Vektorformate anstelle von Bitmap-Formaten handelt, werden diese Formate von normalen Bildbetrachtern häufig nicht unterstützt (obwohl SVG von Browsern unterstützt wird) und können in normalen Malprogrammen nicht bearbeitet werden. Man braucht spezielle Vektorgrafikprogramme, um mit ihnen zu arbeiten.

Um ein Image zu generieren, das mit neuen Daten aktualisiert wird, können Sie einen Webdienst erstellen, der das Image bei jeder Anforderung auf dem Server neu generiert. Wenn ein Client das resultierende Bild jedoch zwischenspeichert, anstatt es bei jeder Anzeige erneut anzufordern, werden alte Daten angezeigt.

Nathan Reed
quelle
0

Ich weiß nicht, ob Sie dies als eine Strecke für eine Antwort auf Ihre Frage betrachten würden, da ich ein bisschen unsicher bin, wie es interpretiert werden sollte. Unter Berücksichtigung dessen können 2D-Barcodes Grafiken sein, mit denen Code gespeichert und mit variablen Datenelementen interagiert wird, die in Symbologien wie PDF417, DataMatrix usw. definiert sind.

user1846
quelle
Ich glaube, die Frage ist die Einbettung von Code in die Bilddatei und nicht in das Bild selbst. Wenn Sie sich nicht sicher sind, wonach eine Frage sucht, können Sie die Frage auch kommentieren, sobald Sie einen ausreichenden Ruf haben.
Trichoplax
1
danke user1846, ich wollte den Code in die Bilddatei einbetten, wie Trichoplax erwähnt.
Coderworks