Autor Beitrag
Martok
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 3661
Erhaltene Danke: 604

Win 8.1, Win 10 x64
Pascal: Lazarus Snapshot, Delphi 7,2007; PHP, JS: WebStorm
BeitragVerfasst: Sa 15.12.12 14:35 
Moin!

Das war doch mal wieder was einfaches, jedenfalls für alle die hier nicht das erste Mal mitmachen. Es geht natürlich nicht um den Hasen (so einfach dann doch nicht :lol:), sondern um einen Raben!

Die grundsätzliche Idee bei dem Rätsel ist in den Tipps 2 und 3 be-tippt: Botschaften vor aller Augen verstecken kann man am einfachsten per Suche in Wikipedia STEGANOGRAPHIE.
Das muss man aber gar nicht wissen, sondern kann auch nach Personen aus Trittenheim Wikipedia'n oder direkt nach Suche bei Google ""VON TRITTENHEIM"" Googlen. Beides führt mit kleiner Klicktiefe kleiner zu Johannes Trithemius, eigentlich Johannes Heidenberg oder Johannes Zeller; auch Johannes von Trittenheim, Johannes Tritheim. Was hat der damit zu tun?
Zitat:
Ebenso schrieb er über Astrologie und Magie, hier war er u.a. Verfasser eines Standardwerkes über Kryptographie und Steganographie; solche Themen wurden in jener Zeit auch unter der Geistlichkeit viel diskutiert und gelesen.

:arrow: wir brauchen Steganographie!

Die Tippserei sagt weiterhin das offensichtliche an: Aller guten Dinge sind drei. - und was gibt es in einem RGB-Bild drei mal? Richtig, Farbkanäle! Zerlegen wir also den Hasen fachmännisch:
hase1

Noch sieht man nicht viel. Aber noch haben wir auch nichts Steganographiert. Im Wikipedia-Artikel-Beispiel-Bild ist die Information im untersten Bit (0b00000001) versteckt - aber halt, wir wissen ja, dass wir nicht "ganz unten", sondern "direkt daneben" suchen sollen. "Daneben" geht nur in eine Richtung, die Maske ist also: (0b00000010) Wenden wir die auf das Bild an und machen per Histogramm das sichtbar (ein eigenes Programm könnte direkt ein S/W-Bild ausgeben):
hase2
Hey, Text! Bisschen durcheinander, aber das geht ja. - Spiralig im Rot-Kanal, "normal" in Grün und senkrecht in Blau.

Wer's nicht erkennt, kanns googlen - das ist eine Strophe (die kürzeste nach Zeichen, weil die ganz ins Rätsel passt) aus Edgar Allen Poe's The Raven.

Und was für ein Zufall - der Rabe ist eine Lösungsmöglichkeit :zustimm:

Die Bilder hier hab ich in ImageJ gemacht, man muss also nicht zwingend was selber schreiben. Geht wohl auch in Gimp, da hab ich aber die Binäroperation nicht hinbekommen :gruebel:

Viele Grüße und viel Spaß mit den nächsten Rätseln,
Martok
Einloggen, um Attachments anzusehen!
_________________
"The phoenix's price isn't inevitable. It's not part of some deep balance built into the universe. It's just the parts of the game where you haven't figured out yet how to cheat."

Für diesen Beitrag haben gedankt: BenBE, Narses
Xion
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
EE-Maler
Beiträge: 1952
Erhaltene Danke: 128

Windows XP
Delphi (2005, SmartInspect), SQL, Lua, Java (Eclipse), C++ (Visual Studio 2010, Qt Creator), Python (Blender), Prolog (SWIProlog), Haskell (ghci)
BeitragVerfasst: Sa 15.12.12 15:09 
:shock: :rofl:
Au Backe war ich weit von der Lösung weg...ich bin so vorgegangen:

Einfach mal das Bild mit nem Texteditor (Notepad++) aufmachen. Naja, man könnte ja mal nach den Tierchen in der Lösung suchen. Oh, schön, da steht doch tatsächlich BÄR im Code. Das wäre aber ziemlich einfach (aller guten Dinge sind drei, also muss da noch ein Tierchen zu finden sein). Mal gucken, was passiert, wenn man da HASE hinschreibt. Oh, da ergibt sich ein Pixelmuster oben links. Zufällig wo anders was geändert: kein Pixelmuster. Heiße Spur also! Vielleicht könnte man diese Pixelmuster überlagern, indem man statt BÄR alle Werte von AAA bis ZZZ hinschreibet. Leider beschweren sich alle Programme (bis auf den Windows-Bildbetrachter), dass das veränderte Bild ungültig ist (auch Delphi). Also mal das Format auseinandernehmen. Auffällig: Der erste IDAT-Chunk ist verdächtig kurz (in dem steht auch das BÄR). Hat mich aber nicht weiter gebracht. Hab dann per Tool die CRCs reparieren lassen und die Pixel überlagert (im Anhang).
Hmm, mit viel Fantasie ist es der Kopf eines ELEFANTen (blickt nach links).

Die Tipps gingen aber irgendwie in eine andere Richtung (irgendwas ist da unter dem Hasen zu finden? Im Schnee? Also der letzte IDAT-Chunk?). Also mal das Bild per Google-Suche gesucht. Oh, da gibts ja das Original-Bild mit dem Häschen (leider als jpg in einer anderen Größe). Hab die Überlagert und keinen Unterschied gesehen. Nirgends. Also muss es doch im Code sein ;)

Logisch, oder? :lol:

Naja, wenigstens hab ich dabei was übers png-Format gelernt ;)
Einloggen, um Attachments anzusehen!
_________________
a broken heart is like a broken window - it'll never heal
In einem gut regierten Land ist Armut eine Schande, in einem schlecht regierten Reichtum. (Konfuzius)
dsi
Hält's aus hier
Beiträge: 22
Erhaltene Danke: 8



BeitragVerfasst: Sa 15.12.12 15:58 
Der erste Buchstabe ließ sich recht leicht finden. Ich hab in Gimp ein wenig mit dem Tool 'Farbkurven korrigieren' herumgespielt und innerhalb weniger Sekunden ein Zeichen im Auge entdeckt :lupe: . Doch dann kam ich erstmal nicht weiter. Mit der Bildersuche habe ich das Originalbild gefunden, doch das Rätselbild war nur ein skalierter Ausschnitt aus dem Original, so dass sich die beiden Fotos auch nicht vergleichen ließen.
Aber da ich im Originalbild das Zeichen im Auge nicht entdecken konnte, wusste ich, dass ich auf dem richtigen Weg war.

Daraufhin habe ich weiter mit dem Farbkurventool (Kurventyp: Freihand)) herumgespielt, und bekam nach und nach immer mehr Buchstaben zu sehen.

Der Rest war dann leicht, einfach jeden Farbkanal einzeln betrachten und man hatte die Lösung vor Augen.

Schönes Rätsel, hat echt Spaß gemacht.
Einloggen, um Attachments anzusehen!
_________________
Dirk
Martok Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 3661
Erhaltene Danke: 604

Win 8.1, Win 10 x64
Pascal: Lazarus Snapshot, Delphi 7,2007; PHP, JS: WebStorm
BeitragVerfasst: Sa 15.12.12 17:14 
@user profile iconXion: :lol: :gruebel:

user profile icondsi hat folgendes geschrieben Zum zitierten Posting springen:
Daraufhin habe ich weiter mit dem Farbkurventool (Kurventyp: Freihand)) herumgespielt, und bekam nach und nach immer mehr Buchstaben zu sehen.
Wie bist du da zu den anderen Buchstaben gekommen? So wie im Screenshot hatte ich auch erreicht, aber da ist halt alles große weiße Fläche. Und mit Kurvenspielerei wurde die dann grau, sonst nichts.

_________________
"The phoenix's price isn't inevitable. It's not part of some deep balance built into the universe. It's just the parts of the game where you haven't figured out yet how to cheat."
dsi
Hält's aus hier
Beiträge: 22
Erhaltene Danke: 8



BeitragVerfasst: Sa 15.12.12 17:36 
user profile iconMartok hat folgendes geschrieben Zum zitierten Posting springen:
@user profile iconXion: :lol: :gruebel:

user profile icondsi hat folgendes geschrieben Zum zitierten Posting springen:
Daraufhin habe ich weiter mit dem Farbkurventool (Kurventyp: Freihand)) herumgespielt, und bekam nach und nach immer mehr Buchstaben zu sehen.
Wie bist du da zu den anderen Buchstaben gekommen? So wie im Screenshot hatte ich auch erreicht, aber da ist halt alles große weiße Fläche. Und mit Kurvenspielerei wurde die dann grau, sonst nichts.


Meine Kurve sah zum Schluss wie eine Zickzacklinie aus, wobei die unteren Spitzen immer zwischen zwei Balken im Histogramm lagen.
hase2
Einloggen, um Attachments anzusehen!
_________________
Dirk

Für diesen Beitrag haben gedankt: BenBE, Martok
Tilman
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 1405
Erhaltene Danke: 51

Win 7, Android
Turbo Delphi, Eclipse
BeitragVerfasst: Sa 15.12.12 19:42 
Rätsel mit Bildern finde ich immer toll, hat Spaß gemacht :zustimm:
Ein wenig musste ich rumrätseln, bis ich wusste dass man hier nicht mod 2 sondern mod 4 benutzen muss, aber irgendwann hatte ich den (zunächst unscharfen) Text vor mir ^^

Meine Lösungsprozedur (wird von 3 Menüeinträgen R, G, B mit den Tags 0, 1 und 2 aufgerufen, das Bild mit dem Hasen habe ich vorher in ein .bmp-Bild umgewandelt):

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
procedure TForm1.AnalysClick(Sender: TObject);
  var
    x,y: Integer;
    c: TColor;
    farbwert: Integer;
begin
  for x := 0 to bild.Width-1 do
    for y := 0 to bild.Height-1 do
      begin
        c := bild.Canvas.Pixels[x,y];
        case (sender as TMenuItem).Tag of
          0: farbwert := getRValue(c);
          1: farbwert := getGValue(c);
          2: farbwert := getBValue(c);
        end;

        if ((farbwert mod 4) = 2or ((farbwert mod 4) = 3)  then
          canvas.Pixels[x,y] := clBlack else
          canvas.Pixels[x,y] := clWhite;
      end;
end;
Einloggen, um Attachments anzusehen!
_________________
Bringe einen Menschen zum grübeln, dann kannst du heimlich seinen Reis essen.
(Koreanisches Sprichwort)
Marc.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 1876
Erhaltene Danke: 129

Win 8.1, Xubuntu 15.10

BeitragVerfasst: Sa 15.12.12 20:31 
Meine erste Vermutung hatte sich als tatsächlich als korrekt herausgestellt und mein Lösungsprogramm sah dann so aus:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
  bitmap.PixelFormat := pf24bit;
  bitmap.LoadFromFile('tier.bmp');
  for x := 0 to bitmap.Width - 1 do
    for y := 0 to bitmap.Height - 1 do
      bitmap.Canvas.Pixels[x,y] := bitmap.Canvas.Pixels[x,y] shr 2;
  image1.Canvas.Draw(0,0, bitmap);
  image1.Picture.SaveToFile('loesung.bmp');

Der Rest war dann mit Photoshop die Farbkanäle trennen und anschließend nach dem Zitat googlen. :-)
Tilman
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 1405
Erhaltene Danke: 51

Win 7, Android
Turbo Delphi, Eclipse
BeitragVerfasst: Sa 15.12.12 21:09 
Immer wieder gut ist auch die Simpsons-Version des Gedichts: dotsub.com/view/5859...8c-bfe9-22463d46d907 :D

_________________
Bringe einen Menschen zum grübeln, dann kannst du heimlich seinen Reis essen.
(Koreanisches Sprichwort)
Mathematiker
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 2622
Erhaltene Danke: 1447

Win 7, 8.1, 10
Delphi 5, 7, 10.1
BeitragVerfasst: So 16.12.12 00:46 
Gratulation allen, die die richtige Lösung haben. Ich war wieder zu dämlich, ich gewöhne mich daran. :(

Hier meine "Lösung":
Ebenso wie Xion habe ich das BÄR in der Bytefolge gefunden.
"Aller guten Dinge sind drei."
Schön. 3 Buchstaben, alles Ok. Dann kam aber

"Manch' Trittenheimer kann das auch."
Da der Herr Trithemius über Steganographie geschrieben hat, habe ich mein eigenes Programm verwendet; mit dem Ergebnis: Nichts!
Also wird es das Trithemius-Verfahren sein. Bei der Suche in der Byte-Folge mit allen möglichen Schlüsseln entsteht 8 Mal "BÄR". Also "BÄR"!

"In manchen Rätseln operiert man ganz unten, dabei hat sich die Botschaft direkt daneben versteckt."
Das heißt für mich, von unten suchen, mit der umgekehrten Buchstabenfolge. Und siehe da, als erstes findet das Trithemius-Verfahren "RÄB". Was will man mehr.

Gesamtergebnis: "BÄR" und wieder falsch. :autsch:

Beste Grüße
Mathematiker

_________________
Töten im Krieg ist nach meiner Auffassung um nichts besser als gewöhnlicher Mord. Albert Einstein
jfheins
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 918
Erhaltene Danke: 158

Win 10
VS 2013, VS2015
BeitragVerfasst: So 16.12.12 15:01 
Ich habe das ganze mit Matlab gelöst.
Nachem ich das gesehen hatte dachte ich mir: Hmmm... erstmal das Histogramm angucken. Also nach Kanälen aufgeteilt und imhist aufgerufen. Das Ergebnis ist im Anhang zu sehen.
Damit war klar, dass da eigentlich zwei verschiedene Bilder überlagert sind. Nach genauen hinschauen (alternativ: ausprobieren) kann man dann die häufigen Pixel zu 0 setzen (oder die seltenen) und dann einen Grenzwert von 1 anwenden.
Der Rest war dann abtippen und googlen :)

Ach, und noch etwas: Dass da wichtige Informationen in den hinteren Bits sind habe ich mir von Anfang an gedacht. Jeder normale Mensch hätte für so ein Foto JPEG hergenommen, aber dann werden die Farbwerte natürlich nicht exakt wiedergegeben... Dass das Bild als PNG gespeichert war, ließ darauf schließen dass die genauen Farbwerte wichtig sind :wink:

Mein Programm schaut so aus:
ausblenden Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%   DF AGS 2012 Spiel 2   %%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

bild = imread('tier.png');
r = bild(:,:,1);
g = bild(:,:,2);
b = bild(:,:,3);

r2=zeros(600,800);
g2=zeros(600,800);
b2=zeros(600,800);

for x = 1:800
  for y = 1:600
    if (mod(r(y,x),4) == 0) || (mod(r(y,x),4) == 1)
      r2(y,x)=r(y,x);
    end
    if (mod(g(y,x),4) == 0) || (mod(g(y,x),4) == 1)
      g2(y,x)=g(y,x);
    end
    if (mod(b(y,x),4) == 0) || (mod(b(y,x),4) == 1)
      b2(y,x)=b(y,x);
    end
  end
end

imtool(r2); % Zeigt das Bild an. Pixel mit 0 als schwarz, alle anderen weiß.
imtool(g2);
imtool(b2);
Einloggen, um Attachments anzusehen!
PantherX
ontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic starofftopic star
Beiträge: 43
Erhaltene Danke: 7

Win XP, Win 7
Delphi 7, VS2010 C#
BeitragVerfasst: Mo 17.12.12 10:13 
ja kruzifix,

leute ich geh lieber nach "Wer wird Millionär", da hab ich mehr Chancen :roll:

_________________
Grafische Oberflächen sind wie U-Boote. Kaum macht man ein Fenster auf, fangen die Probleme an!

Für diesen Beitrag haben gedankt: Regan