Viele Dateiformate sind standardisiert, es gibt also eine feste Definition wie diese Format aufgebaut sind. Am Anfang der Datei gibt es einen Header, in dem festgelegt ist, welches Format das eigentlich ist (so kann verifiziert werden, dass es sich wirklich um ein .jpeg oder eine .exe handelt), wie groß das Bild ist, wann es aufgenommen wurde, welche Informationen enthalten sind (evtl. ein zusätzlicher Block mit Koordinaten usw.). Wie du das Bild verändern kannst, kommt auf den Kompressionsalgorithmus an, JPEG z.B. benutzt ein Verfahren, bei dem Bilder mit Verlust komprimiert werden, mehr dazu hier:

Was du einfach verändern kannst, ist z.B. das BMP-Format. Bei Wikipedia findet man den Aufbau des Formats:
Windows Bitmap ? Wikipedia, da besteht jeder Pixel dann aus 4 Byte (255 Werte für Rot, für Grün und für Blau, dazu ein leeres / nicht definiertes Feld).
Non-printable characters müsstest du mit [alt] + dem entsprechenden ASCII Code (auf dem Numpad eingeben) (

) erzeugen können.