erste steganographie versuche im png

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
saylin
User
Beiträge: 7
Registriert: Samstag 2. Januar 2016, 22:18

Hi
ich versuche gerade ein kleines steganographie programm zu basteln, um sachen in png datein zu versteken
allerdings stoße ich da auf so ein paar pobleme und vieleicht kann mir jemand helfen das wäre nett

also ich hab mich gerade mit dem png format etwas beschäftigt und kann es einlesen und auch die chunks (z.b. IHDR und IDAT usw.) erkennen und soweiter
also als hexcode mein ich

allerdings schaff ich es nicht die bytes der einzelnen pixel richtig zu identifizieren... sie müssten ja im idat chunk drin sein oder?
also dachte das ich zu jedem pixel drei byte für rgb finde und dann drüber schreiben kann

aber selbst bei diesem kleinen bild hier 4x4 pixel weiß, schwarz,weiß,schwarz, find ich nicht die richtigen bytes

das hier ist der hexcode des kleinen bildes:

89504E470D0A1A0A0000000D494844520000000200000002080600000072B60D24000000017352474200AECE1CE90000000467414D410000B18F0BFC6105000000097048597300000EC400000EC401952B0E1B0000001649444154185763F80F040C0C0CFF1941C4FFFFFF190055C508F9AE766DA90000000049454E44AE426082



also wenn jemand weiß wie ich die pixel im idat chunk richtig indentifizieren kann wär ich sehr erfreut das zu hören

bis dann :)
Sirius3
User
Beiträge: 17737
Registriert: Sonntag 21. Oktober 2012, 17:20

@saylin: die Pixel in png-Dateien sind komprimiert (zlib). Also so einfach was im Hexstring herauslesen geht nicht. Zudem gibt es einige Filter, um die Kompression zu verbessern. Nimm am besten eine fertige Bibliothek (Mein Favorit: pypng weil reines Python).
saylin
User
Beiträge: 7
Registriert: Samstag 2. Januar 2016, 22:18

hihi
danke für die antwort habs mit der bibliothek gemacht und funktioniert eigentlich auch ganz gut!
nur manche png´s kann die bibliothek nicht öffnen mit der Fehlermeldung:
"File "C:\Python34\lib\site-packages\png.py", line 1459, in chunk
raise ChunkError(message)
png.ChunkError: ChunkError: Checksum error in IHDR chunk: 0x35D1DCE0 != 0x35D1DCE4."

aber das ist ja nicht so das poblem dann muss ich ein anderes bildchen als ursprungsbildchen nehmen ;)
Sirius3
User
Beiträge: 17737
Registriert: Sonntag 21. Oktober 2012, 17:20

@saylin: wenn die Checksumme nicht stimmt, ist entweder die Datei kaputt oder die Checksumme falsch berechnet.
Antworten