XSIPS XenSimpleStega Encoder + Decoder (Steganographie)
- ts-soft
- Beiträge: 22292
- Registriert: 08.09.2004 00:57
- Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel - Wohnort: Berlin
@ziegenpeter
wenn Du das ganze mit ReadData in den Speicher liest, bist dem Ziel schon recht Nahe. Bin im Moment zu faul, das zu testen. Mit Strings wird es nicht funktionieren, da ja Zeichen verloren gehen
wenn Du das ganze mit ReadData in den Speicher liest, bist dem Ziel schon recht Nahe. Bin im Moment zu faul, das zu testen. Mit Strings wird es nicht funktionieren, da ja Zeichen verloren gehen
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

Ich bin mal so kühn und behaupte: Nein, das geht nicht._ZOMTEX_ hat geschrieben: Aber was man eventuell machen kann, muß ich mal testen, ein JPEG als "Originalbild"
erstellen und das "Informationsträgerbild" als PNG speichern, dass müßte
gehen.
Denn letztenendes geht es ja um nix anderes, als den Unterschied zwischen zwei Werten.
Ob du nun den einen Wert veränderst, oder den anderen is da Jacke wie Hose.
Kann sein, dass du ein Bild erstellen kannst, dass keine Genauigkeitsverluste zu verzeichnen hat, aber für ein beliebiges Bild wird es nicht gehen.
Aus dem ganz einfachen Grunde, weil du ja sonst die Vergleichswerte veränderst.
BTW, das hab ich vorhin vergessen, zu erwähnen: Ich hab mir das damals net einfallen lassen, sondern ich hab es bei Galileo gesehen. Da gings aber glaub ich um Videos. Sollte ich wohl so fair sein, die Idee an sich nicht auf meine Kappe zu schreiben. Is bei dir ja wat anderes, wenn man es sich selbst ausdenkt is et ja letztenendes trotzdem die eigene Idee, auch wenn sie schonmal wer hatte
Achja, und nochwat. Ich hab auch noch gleich nen Verschlüssler eingebaut
Sodass man selbst wenn man beide Bilder hat nichts machen kann, es sei denn, man kennt verschlüsselungsid und Passwort.
Das Passwort wird mit in der Datei verschlüsselt.
Somit hat man eine dreifache Sicherheit.
Wer die Datei entschlüsseln will muss
1.)Beide Dateien haben
2.)Die Verschlüsselungsid kenn
und
3.1)Das Passwort kennen (sonst sperrt sich mein Prog gegen eine Ausgabe)
oder
3.2)Wissen, wie mein Programm vorgeht und alle verschlüsselungs-, lese- , binarisierungs- und schreib- Algorithmen kennen.
Das wäre so einiges, was er wissen müsste, da die Verschlüsselung auf 3 Arten arbeitet.
Erste Art: Die Direkten ByteWerte werden verändert (10 verschiedene Arten, je nach Verschlüsselungsid)
Danach wird in Binärstring umgewandelt ("0100010")
Zweite Art: Die Verämderung des Binärstrings (10 verschiedene Arten, je nach Verschlüsselungsid)
Dritte Art: Die Art, wie die Binärdaten nun in die Datei geschrieben werden.
Alles in allem würd ich das ganze jetzt mal als Unknackbar bezeichnen, wenn man nicht 3 der 4 Dinge kennt
Da hätte sicher auch "Translator"(Entschlüsselungsmaschine der NSA aus Dan Brown: "Digital Fortress") seine Probleme mit ^^
Falsch zugeordnetes Zitat des Tages: "O'zapft is" - Edward Snowden 
@Franky
Wenn Du vom JPEG die einzelnen Pixel darstellst und die Werte
RGB ausliest und veränderst und das Ergebis in ein PNG speicherst,
hast Du ja ein "verlustfreies Format" erzeugt und das JPEG hat sich ja
keinesfalls verändert. Wenn Du es später wieder lädst, werden die Pixelwerte
immer noch die selben sein wie vorher und das PNG ist ja sowieso so wie Du
es abgespeichert hast.
Verschlüsselung der Nutzdaten wäre natürlich auch noch eine zusätliche
Sicherheit, die man einbauen könnte, wär dann ein nächster Schritt.
Was auch noch gut ist, die Daten vorher zu Packen (komprimieren).
@zigapeda
Die Rohdaten miteinander zu kombinieren um dann auf die Zip-Datei zu kommen, wird so nicht funktionieren. Das PNG ist ja schon komprimiert.
Die Nutzdaten werden nicht in die Rohdaten des PNGs eingearbeitet!!
Du mußt die Pixelwerte auslesen und bis runter auf die kleinste
Informationseinheit steigen. Nur so kannst Du die Zip-Datei
erfolgreich extrahieren!
Gruß
Michael
Ich denke aber schon, dass man ein JPEG als Refernzbild verwenden kann.Ich bin mal so kühn und behaupte: Nein, das geht nicht.
Wenn Du vom JPEG die einzelnen Pixel darstellst und die Werte
RGB ausliest und veränderst und das Ergebis in ein PNG speicherst,
hast Du ja ein "verlustfreies Format" erzeugt und das JPEG hat sich ja
keinesfalls verändert. Wenn Du es später wieder lädst, werden die Pixelwerte
immer noch die selben sein wie vorher und das PNG ist ja sowieso so wie Du
es abgespeichert hast.
Verschlüsselung der Nutzdaten wäre natürlich auch noch eine zusätliche
Sicherheit, die man einbauen könnte, wär dann ein nächster Schritt.
Was auch noch gut ist, die Daten vorher zu Packen (komprimieren).
@zigapeda
Die Rohdaten miteinander zu kombinieren um dann auf die Zip-Datei zu kommen, wird so nicht funktionieren. Das PNG ist ja schon komprimiert.
Die Nutzdaten werden nicht in die Rohdaten des PNGs eingearbeitet!!
Du mußt die Pixelwerte auslesen und bis runter auf die kleinste
Informationseinheit steigen. Nur so kannst Du die Zip-Datei
erfolgreich extrahieren!
Gruß
Michael
Googleist Dein bester Freund!
Lustige Idee Daten in ein Bild zu schrieben hab ich mir au mal überlegt, nur dann kam ich zu dem schluss das es ja eigendlch doch ziemlich unnütz ist das man das bild fürs entschlüsseln eh irgendwie zum entschlüsseln irgewndwo speichern muss und auserdem is es ja so das das eigendlich halt nur ein verdammt riesen PW is. Und da mann schon bei 100 Stellen PW ewig zum entschlüsseln brauchen würde find ich das es das net so ganz bringt...
Hab aber au mal eine Verschlüssler/Entschlüssler geschrieben der wandelt aber die Datei einfach durch ein PW verschlüsselt in ein BIld um das sieht dann bissle doof aus aber dafür is es net soooooooooooooooooo rießig sondern eher klein...
Hab aber au mal eine Verschlüssler/Entschlüssler geschrieben der wandelt aber die Datei einfach durch ein PW verschlüsselt in ein BIld um das sieht dann bissle doof aus aber dafür is es net soooooooooooooooooo rießig sondern eher klein...
Was die Blüten betrifft...
Hat 23 Minuten gedauert 
Gruß,
Mischa
Code: Alles auswählen
Pure Basic
aus Wikipedia, der freien Enzyklopädie
(Weitergeleitet von PureBasic)
Pure Basic, entwickelt von Frédéric Laboureur (Fantaisie Software, Frankreich), ist ein kommerzieller Compiler für Windows,
Linux und AmigaOS (Mac OS X in Planung). Die Programme sind klein und schnell, die Syntax eine Mischung aus Basic und C.
Neben vielen stark optimierten Bibliotheken (GUI-Gadgets, Grafik, Sound, Netzwerk, Datenbank, Kompression, Kryptografie, ...)
kann man direkt die WinAPI ansprechen und Assemblercode verwenden (Inline-Assembler). Außerdem ist es möglich, eigene Bibliotheken zu schreiben.
Des weiteren bietet PureBasic seit Version 3.5 eine rudimentäre 3D-Engine (OGRE 3D), mit der es möglich ist, schnell und einfach kleine 3-D-Anwendungen zu programmieren.
Ein wesentlicher Vorteil gegenüber anderen Programmiersprachen besteht auch besonders darin, dass sich die Sprache in ständiger Weiterentwicklung befindet,
nach und nach immer mächtiger wird und neue Befehle und Optimierungen hinzukommen. Außerdem erhält man mit dem Erwerb vom Pure Basic automatisch die Berechtigung,
alle folgenden Updates kostenfrei herunterzuladen. Es fallen auch keine weiteren Kosten beim Vertrieb des Programmes mehr an, das geschriebene Programm kann lizenzfrei vermarktet werden,
ohne Auflagen seitens der Hersteller beachten zu müssen.
Die aktuelle Version für Windows ist 3.93 und für Linux 3.92. Für Mac OS X steht eine Betaversion für alle Besitzer der Vollversion zum Test zur Verfügung. (Stand: 13. März 2005)
Hier ein Purebasic Codebeispiel für das "Hallo Welt" Programm in der Kommandozeile:
OpenConsole() ; Oeffnet die Konsole
Print("Hallo Welt!") ; "Hallo Welt" in Konsole ausgeben
Delay(3000) ; Programm fuer 3000 Millisekunden anhalten
CloseConsole() ; Konsole wieder schließen Gruß,
Mischa
Test
Versucht mal das zu entschlüsseln...
Is warscheinlich zu easy ich tipp auf unter 10 min...
|
|
V
[img]http://www.komani.de/Entschlüsselt.png[/img]
Is warscheinlich zu easy ich tipp auf unter 10 min...
|
|
V
[img]http://www.komani.de/Entschlüsselt.png[/img]
Nun ist natürlich mein Part mich zu dem Beitrag von Mischa zu äußern.
Weiterhin möchte ich mich für meine Überheblichkeit am Anfang meines Threads bei allen hier Entschuldigen und meine Aussage über die
Sicherheit meiner Methode als wiederlegt erklären!
In meinem "jugendlichen Leichtsinn" war ich davon absolut überzeugt,
und wurde aber, wie Ihr hier sehen könnt eines Besseren belehrt und auf den Boden der Tatsachen zurückgeholt und für meine Überheblichkeit hart bestraft. Es lehrt mich mal wieder, dass man sich nie seiner Sache absolut sicher sein kann. Und es bestätigt mir wieder meine Vermutung, dass es in unserer Welt scheinbar doch nichts wirklich sicheres zu geben scheint.
Nun steh ich da mit heruntergelassenen Hosen am Pranger dieses Forums und fühl mich nicht wirklich wohl dabei und werde wohl einsehen müssen in Zukunft lieber länger über eine Sache nachzudenken bevor ich sie als perfekt ansehe. Und ich sollte mich vielleicht lieber anderen Themen zuwenden, bei denen es nicht um Sicherheit geht.
@Mischa,
erstmal sag ich dazu nur respekt und ziehe mein Hut, wie ich das oben geschrieben habe.
Nun möchten hier bestimmt alle wissen und insbesondere ich, wie Du es geschafft hast mein Verfahren auszuheben und den Text ohne das "Originalbild" zu extrahieren. Und ich wäre Dir sehr dankbar, wenn Du mir die Schwachstelle aufzeigst. Ich geh mal davon aus, dass Du Dich in der Welt der Grafik sehr gut auskennst anderst kann ich mir es nicht erklären, wie es überhaupt möglich sein kann.
Also bitte berichte uns
und wenn Du dazu Code hast, dann nur her damit. Und sag mir vielleicht auch, ob es überhaupt eine Methode gibt, das ganze Wasserdicht zu machen, bin jetzt aber überhaupt nicht mehr davon überzeugt!
Aus meiner prekären Lage heraus möchte ich Euch jetzt das Programm + den Sourcecode zur Verfügung stellen. Obwohl ich weiß, dass wahrscheinlich niemand mehr nach dieser Niederlage eine Verwendung dafür haben möchte. Aber schaut es Euch vielleicht doch an!
http://www.xensonsoft.de/xsips/XSIPS.zip
In diesem Sinne, ich werde jetzt schlafen gehen und schreckliche Alpträume werden mich heimsuchen...
Gruß
Michael
Ich muß hier leider bestätigen, dass der Text von Mischa, den er hier gepostet hat exakt mit dem Inhalt übereinstimmt, den ich in das Blütenbild eingearbeitet habe.Was die Blüten betrifft...
Code:
Pure Basic
aus Wikipedia, der freien Enzyklopädie
(Weitergeleitet von PureBasic)
Pure Basic, entwickelt von Frédéric Laboureur (Fantaisie Software, Frankreich), ist ein kommerzieller Compiler für Windows,
Linux und AmigaOS (Mac OS X in Planung). Die Programme sind klein und schnell, die Syntax eine Mischung aus Basic und C.
Neben vielen stark optimierten Bibliotheken (GUI-Gadgets, Grafik, Sound, Netzwerk, Datenbank, Kompression, Kryptografie, ...)
kann man direkt die WinAPI ansprechen und Assemblercode verwenden (Inline-Assembler). Außerdem ist es möglich, eigene Bibliotheken zu schreiben.
Des weiteren bietet PureBasic seit Version 3.5 eine rudimentäre 3D-Engine (OGRE 3D), mit der es möglich ist, schnell und einfach kleine 3-D-Anwendungen zu programmieren.
Ein wesentlicher Vorteil gegenüber anderen Programmiersprachen besteht auch besonders darin, dass sich die Sprache in ständiger Weiterentwicklung befindet,
nach und nach immer mächtiger wird und neue Befehle und Optimierungen hinzukommen. Außerdem erhält man mit dem Erwerb vom Pure Basic automatisch die Berechtigung,
alle folgenden Updates kostenfrei herunterzuladen. Es fallen auch keine weiteren Kosten beim Vertrieb des Programmes mehr an, das geschriebene Programm kann lizenzfrei vermarktet werden,
ohne Auflagen seitens der Hersteller beachten zu müssen.
Die aktuelle Version für Windows ist 3.93 und für Linux 3.92. Für Mac OS X steht eine Betaversion für alle Besitzer der Vollversion zum Test zur Verfügung. (Stand: 13. März 2005)
Hier ein Purebasic Codebeispiel für das "Hallo Welt" Programm in der Kommandozeile:
OpenConsole() ; Oeffnet die Konsole
Print("Hallo Welt!") ; "Hallo Welt" in Konsole ausgeben
Delay(3000) ; Programm fuer 3000 Millisekunden anhalten
CloseConsole() ; Konsole wieder schließen
Hat 23 Minuten gedauert
Gruß,
Mischa
Weiterhin möchte ich mich für meine Überheblichkeit am Anfang meines Threads bei allen hier Entschuldigen und meine Aussage über die
Sicherheit meiner Methode als wiederlegt erklären!
In meinem "jugendlichen Leichtsinn" war ich davon absolut überzeugt,
und wurde aber, wie Ihr hier sehen könnt eines Besseren belehrt und auf den Boden der Tatsachen zurückgeholt und für meine Überheblichkeit hart bestraft. Es lehrt mich mal wieder, dass man sich nie seiner Sache absolut sicher sein kann. Und es bestätigt mir wieder meine Vermutung, dass es in unserer Welt scheinbar doch nichts wirklich sicheres zu geben scheint.
Nun steh ich da mit heruntergelassenen Hosen am Pranger dieses Forums und fühl mich nicht wirklich wohl dabei und werde wohl einsehen müssen in Zukunft lieber länger über eine Sache nachzudenken bevor ich sie als perfekt ansehe. Und ich sollte mich vielleicht lieber anderen Themen zuwenden, bei denen es nicht um Sicherheit geht.
@Mischa,
erstmal sag ich dazu nur respekt und ziehe mein Hut, wie ich das oben geschrieben habe.
Nun möchten hier bestimmt alle wissen und insbesondere ich, wie Du es geschafft hast mein Verfahren auszuheben und den Text ohne das "Originalbild" zu extrahieren. Und ich wäre Dir sehr dankbar, wenn Du mir die Schwachstelle aufzeigst. Ich geh mal davon aus, dass Du Dich in der Welt der Grafik sehr gut auskennst anderst kann ich mir es nicht erklären, wie es überhaupt möglich sein kann.
Also bitte berichte uns
Aus meiner prekären Lage heraus möchte ich Euch jetzt das Programm + den Sourcecode zur Verfügung stellen. Obwohl ich weiß, dass wahrscheinlich niemand mehr nach dieser Niederlage eine Verwendung dafür haben möchte. Aber schaut es Euch vielleicht doch an!
http://www.xensonsoft.de/xsips/XSIPS.zip
In diesem Sinne, ich werde jetzt schlafen gehen und schreckliche Alpträume werden mich heimsuchen...
Gruß
Michael
Googleist Dein bester Freund!
Die "Sicherheit", die bei der Steganographie zu sehen ist, rührt größtenteils daher, dass ein Otto-Normal-Betrachter gar nicht weiß, dass in dem Bild eine Information versteckt ist. Auch wenn du mittlerweile weißt, dass dein Idee keine Weltneuheit ist, solltest du bedenken, dass schon viele schlaue Köpfe sich mit dieser Technik befasst haben. In der c´t gibt es regelmäßig Artikel zu diesem Thema.