Inhaltsverzeichnis:
- Lieferungen
- Schritt 1: Was ist Steganographie?
- Schritt 2: Wie Text auf Computern kodiert wird
- Schritt 3: So funktioniert das Programm
- Schritt 4: Fazit
Video: Dieses PNG ist ein Geheimfach - Gunook
2024 Autor: John Day | [email protected]. Zuletzt bearbeitet: 2024-01-31 10:15
Ihre Herausforderung, lieber Leser, besteht darin, herauszufinden, welche Nachricht in dem output.png-Bild verborgen ist, das ich für Sie auf github gestellt habe. Sie können dort den MessageHider-Code verwenden, um die Nachricht zu extrahieren. Wenn Sie verwirrt sind, kommentieren Sie bitte unten und ich helfe Ihnen, die Antwort zu erhalten! Sie können sogar sofort aufhören zu lesen, einfach zu github gehen, den Code abrufen und mit der Steganographie beginnen. Genug gesagt, aber bleib bitte dran und ich erzähle dir mehr.
Die beiden Bilder hier sehen identisch aus, sind es aber nicht. Dies sind die Bilder von greenman-p.webp
Dieses anweisbare ist von einem großen Youtube-Video inspiriert. Nachdem ich dieses Video eines Tages spät in der Nacht gesehen hatte und Schwierigkeiten hatte, an eine coole Vorlesung und eine Zwischenprüfung für einen fortgeschrittenen Java-Programmierkurs zu denken, war dieses Projekt geboren. Die obigen Bilder sind zusammen mit dem in dieser Anleitung beschriebenen Code auf Github kostenlos.
Lieferungen
Sie benötigen einen Computer und Sie müssen wissen, wie man ein Java-Programm kompiliert und ausführt. Dieses Programm besteht nur aus zwei kurzen Dateien und Sie müssen es auf der Befehlszeile ausführen.
Schritt 1: Was ist Steganographie?
Sie sollten sich das YouTube-Video ansehen, das ich im vorherigen Schritt verlinkt habe, aber hier ist die Zusammenfassung:
Wenn Sie eine geheime Nachricht an einen Freund verstecken müssen, ist Steganographie eine coole Möglichkeit. Die Idee der Bildsteganographie ist einfach; Computerbilder bestehen aus Pixeln, und jedes Pixel ist eine Kombination aus Rot, Grün und Blau. In vielen Computerbildformaten werden die Rot-, Grün- und Blauanteile in jedem Pixel als Werte von 0-127 ausgedrückt. So hätte beispielsweise ein sehr rotes Pixel einen Rotwert von 127 und Grün- und Blauwerte von Null. Der Trick ist folgender: Eine Rotintensität von 126 ist von einer Rotintensität von 127 (für das menschliche Auge) nicht zu unterscheiden. Durch Herumspielen mit plus oder minus eins in jedem roten Pixel können wir Bits in Pixeln ausblenden. Wenn wir einen heimtückischen Weg finden, die Bits wieder zu sammeln, können wir die Daten abrufen, die wir in das Bild eingeschmuggelt haben!
Seien Sie kreativ! Steganographie ist mit allen digitalen Medien möglich! Sie können zum Beispiel mit Bits in Musik- oder Videodateien spielen, aber dazu müssen Sie außerhalb des Rahmens dieser Anleitung mehr Nachforschungen anstellen.
Schritt 2: Wie Text auf Computern kodiert wird
Was hier folgt, erfordert möglicherweise einen Abschluss in CS oder viel Hobby-Leidenschaft, um es zu verstehen. Computer speichern Daten in Bits als 1 und 0. Diese Einsen und Nullen werden typischerweise in Bündeln von 8 gruppiert und als "Bytes" bezeichnet. Wie hier und hier erklärt, gibt es nur wenige Möglichkeiten, einen Computer anzuweisen, Bytes als Text zu interpretieren. Um das Beste aus dieser Steganographie-Vorlesung / Anleitung herauszuholen, müssen Sie ASCII und UTF8 mehr oder weniger verstehen. Dies sind zwei gängige Methoden zum Codieren von Sprachdaten in einer Reihe von Bytes.
Sobald Sie eine Vorstellung von diesem Thema haben, werden Sie Folgendes verstehen: In ASCII und UTF8 wird das Wort "the" durch die folgenden Bytes (in Hex) 0x74 0x68 0x65 dargestellt. Binär sind diese Bytes: 01110100b 01101000b 01101101b
Außerdem werden Sie verstehen, dass in UTF8 ein grinsendes Gesicht Emoji durch die folgenden Bytes (in Hex) 0xF0 0x9F 0x98 0x80 dargestellt wird. Binär sind diese Bytes 11110000b 10011111b 10011000b 10000000b.
Auf jeden Fall sehen Sie im beigefügten Screenshot, dass mein Computer etwas mit diesen Bytes macht. Ich habe sie in der Programmausgabe mit Pfeilen und einem großen "LOOK!" hervorgehoben.
Schritt 3: So funktioniert das Programm
Das Kompilieren des Programms von github ist einfach. Holen Sie sich das auf der Titelseite angezeigte Repo hier und dann
Das Programm wird wie folgt über die Befehlszeile ausgeführt: java Main input-p.webp
In den angehängten Beispielen sehen Sie, dass ich Java Main greenman-p.webp
Sie werden dasselbe tun.
Wenn Sie sich Main.java ansehen, werden Sie feststellen, dass Folgendes passiert:
- Das Programm liest das Bild in ein 2D-Array ein
- Das Programm wandelt die von Ihnen gelieferte Nachricht in ein Byte-Array (byte) um.
- Das Programm verwendet dann eine MessageHider-Klasse, um die Nachrichtenbytes im Bildarray auszublenden.
- Das Programm schreibt dann das 2D-Array des Bildes in eine Datei (output.png) mit den versteckten Daten darin. Wenn man sich dieses Bild anschaut, ist es vom Original nicht zu unterscheiden
- Das Programm liest dann output-p.webp" />
Der Code funktioniert also so ziemlich wie wir es erwarten.
Schritt 4: Fazit
Also habe ich Ihnen einen funktionierenden Code gegeben, einen Beweis dafür, dass er in Form eines Bildes funktioniert, und einige Vorlesungsnotizen, die ich meinen Universitätsstudenten gebe. Ich habe dich auch herausgefordert! Ich verbrachte ein paar Stunden damit, den Code zu schreiben und Vorlesungsnotizen vorzubereiten, also tut es mir leid, dass dieses instructable nicht viele Bilder hat. Wenn Sie der Meinung sind, dass Steganographie interessant ist, nehmen Sie bitte meine Herausforderung an!
Empfohlen:
Hast du ein neues Neopixel? Hier ist eine Kurzanleitung!: 5 Schritte
Hast du ein neues Neopixel? Hier ist eine Kurzanleitung!: Ich weiß, dass ich in meinem letzten instructable gesagt habe, dass ich regelmäßig sein werde, aber ich habe es nicht. Nun, ich habe es versucht, aber ich hatte keine guten Ideen: Wachsüberzogenes Streichholz: KABOOM!*Crayon Candle: Fissssssss
On Off Latch-Schaltung mit UC. Ein Druckknopf. Ein Stift. Diskrete Komponente.: 5 Schritte
On Off Latch-Schaltung mit UC. Ein Druckknopf. Ein Stift. Discrete Component.: Hallo zusammen, habe im Netz nach einer Ein/Aus-Schaltung gesucht. Alles, was ich fand, war nicht das, was ich suchte. Ich habe mit mir selbst gesprochen, es gibt unbedingt einen Weg dazu. Das habe ich gebraucht. - Nur ein Druckknopf zum Ein- und Ausschalten. - Muss nur
EIN ALTES HANDY (NOKIA 6600) IN EIN SUPERGADGET-MIKROCOMPUTER VERWANDELN: 37 Schritte
WIE MAN EIN ALTES HANDY (NOKIA 6600) IN EIN SUPERGADGET-MIKROCOMPUTER VERWANDELT: http://www.internetsecretbook.com https://www.youtube.com/thebibleformulaInmitten der Schwierigkeit liegt die Chance. - Albert Einstein Das Nokia 6600 bietet neue fortschrittliche Bildgebungsfunktionen, darunter ein helles TFT-Display mit 65.536 Farben und ca
Was ist ein mehrdeutiges Gefühl_"EMEMOHO": 5 Schritte
What Is Ambiguous Feeling_"EMEMOHO": Das Projekt ist KNUA (Korea National University of Arts), ein Fusionskunstzentrum, <Team läuft 2019: Hey, Strangers. Do It Together!>. Dies ist das Ergebnis des Teams "Faint Hope". In diesem Projekt haben wir Ausdrücke definiert, die zwei gegensätzliche
So richten Sie ein Heimnetzwerk ein: 6 Schritte
So richten Sie ein Heimnetzwerk ein: Das Einrichten eines Netzwerks kann zunächst entmutigend klingen, aber sobald Sie alles haben, was Sie brauchen, ist es sehr einfach. Die traditionelle Einrichtung erfordert ein Modem und einen Router, aber einige benötigen möglicherweise mehr und andere weniger. Es gibt viele verschiedene