Categories
Programming Python

pipenv

Stegano utilise maintenant pipenv, le nouvellement recommandé (à prendre avec des pincettes) outil Python de packaging.

Si vous n’utilisez pas encore pipenv, je vous conseil de lire cette documentation. Et pourquoi pas ce petit billet.

Et si vous êtes un peu perdu avec les outils de packaging Python, j’ai commencé ce petit historique.

Categories
Programming Security

Stegano 0.7

Une nouvelle version de Stegano vient de pointer son nez. La principale nouveauté est le support d’unicode. Donc la possibilité de cacher des caractères avec un encodage UTF-8 (8 bits ou plus). Voici un exemple avec un encodage UTF-32 LE. Cela me donne envie de tester avec une option pour utiliser UTF-32 BE.

La seconde nouveauté, un peu moins importante, est l’introduction des type hints. J’y travail depuis quelques temps. Ce n’est qu’un début. Vous pouvez voir ce que ça donne ici.

Categories
Programming Python Steganography

Décret à propos de Python et Stéganô

Trump's decree on Python
Trump’s decree on Python
$ sudo pip3.5 install --upgrade Stegano
$ wget https://blog.cedricbonhomme.org/wp-content/uploads/2017/02/Trump_decree_on_Python.png
$ lsb-set reveal -i Trump_decree_on_Python.png -g eratosthenes

Plus sérieusement, quelques améliorations (et corrections) pour Stéganô sont disponibles. Bien que je ne parle pas tellement de ce projet ici, le changelog est à jour.

Categories
Steganography

Stéganô 0.6

wall

$ sudo pip3.5 install --upgrade Stegano
$ wget --no-check-certificate https://blog.cedricbonhomme.org/wp-content/uploads/2016/08/wall.png
$ echo -e `lsb-set reveal -i wall.png -g eratosthenes`
Categories
Steganography

Avancées du projet Stéganô

Stéganô, le module Python de stéganographie, a beaucoup évolué ces derniers jours. J’ai principalement été motivé par quelques commentaires de personnes. Cela faisait aussi quelque temps que je voulais mieux structurer le code.

L’organisation du module est entièrement revue. Le découpage en sous-modules en fonction des différentes techniques est plus logique.
Les performances sont meilleures lors de l’utilisation de la technique LSB.
Il est maintenant possible de donner directement une fonction (pour générer les ensembles de pixels) aux fonctions lsb.hide() et lsb.reveal().
L’ensemble des changements est détaillé dans les notes de versions.

Le tutoriel a aussi été amélioré et est plus clair. Voici un bon exemple. Les nouveaux tests unitaires permettent également de mieux comprendre l’usage du module.

Si vous avez des commentaires ou idées, n’hésitez pas !

Categories
Steganography

Première contribution sur PyPI

Et voici ma première contribution sur le «Python Package Index». Le petit moment de fierté de la soirée.

J’ai récemment eu besoin de cet ancien code que je maintiens à jour de temps à autre. À cette occasion je m’étais dit que ce petit projet pourrait très bien avoir sa place sur PyPI. D’autres modules Python de stéganographie existent, mais ne sont généralement plus maintenus (ou ne supportent pas Python 3) et sont moins originaux.

Je serai aussi content que ce code puisse servir à quelqu’un. Voir attirer des contributeurs.

Il faut maintenant que j’améliore la documentation, afin que vous puissiez tranquillement exécuter la commande:

$ sudo pip install Stegano
Categories
Steganography

Stéganô fonctionne maintenant avec Pillow

Selena-Gomez

La série de billets sur la stéganographie n’est pas encore terminée, une chance pour vous (et pour moi). Aujourd’hui nous allons découvrir le message caché de Selena Gomez, la petite coquine. Ceci en utilisant comme toujours Stéganô que j’ai porté ce soir sous Python 3. Pillow le fork amical de PIL est dorénavant usité. Globalement le portage s’est fait facilement avec 2to3 et quelques modifications effectuées manuellement. Il y a encore des petits tests à réaliser (notamment à cause du changement de l’opérateur division avec Python 3).

Pour mémoire, nous avions déjà vu comment cacher des messages en utilisant des générateurs d’ensembles d’entiers avec Jennifer Morrison. L’avantage d’utiliser une suite (bien répartie) est de compliquer un peu la stéganalyse de l’image contenant le secret. Je ne fais pas durer le suspense et vous donne les quelques instructions nécessaires afin de trouver le secret de Selena.

$ hg clone https://bitbucket.org/cedricbonhomme/stegano/
$ cd stegano/stegano/
$ wget http://blog.cedricbonhomme.org/wp-content/uploads/2013/03/Selena-Gomez.png
$ python3.2 slsbset.py --reveal -i ./Selena-Gomez.png --generator OEIS_A000217
Impossible to detect message.

$ python3.2 slsbset.py --reveal -i ./Selena-Gomez.png --generator eratosthenes

Étant vraiment gentil, je vous donne même le générateur à utiliser. Un simple algorithme de stéganalyse est livré avec Stéganô.

N’oubliez pas le tutoriel qui explique plus en détail le fonctionnement.

Categories
Python Security Steganography

Installation simple et rapide de Stéganô (avec Ginnifer Goodwin)

Ginnifer Goodwin

Gentils lecteurs, je sais que vous aimez la série de billets sur la stéganographie. Nous avions commencé par Lena, puis Elisha Cuthbert, Jennifer Morrison, Jessica Alba et voici enfin Ginnifer Goodwin. Pour se rafraîchir les idées on pourra lire à nouveaux ces magnifiques posts.

L’objectif de ce petit billet (en plus de vous faire un cadeau de Noël un peu érotique en avance) est essentiellement de montrer comme il est maintenant simple d’installer et utiliser Stéganô. Pour des opérations encore un peu basiques mais intéressantes. Bref, voici comment installer Stéganô sur une distribution GNU/Linux:

hg clone https://bitbucket.org/cedricbonhomme/stegano/
cd stegano/
sudo python setup.py install

Vous pouvez faire quelques tests avec les scripts présents dans le dossier examples. Par exemple:

cd examples/
./example4.sh

Le script example4.sh va cacher un secret, effectuer deux stéganalyses afin de pouvoir comparer les images puis trouver le secret. Vous pouvez aussi directement trouver le secret de cette manière:

wget http://blog.cedricbonhomme.org/wp-content/uploads/2012/12/Ginnifer-Goodwin.png
slsb-set --reveal --generator eratosthenes -i ./Ginnifer-Goodwin.png

De nouveaux générateurs sont fournis. Certains sont plus adaptés pour cacher de petits messages, d’autres permettent même de cacher des fichiers binaires dans une photo.

Le tutoriel explique le fonctionnement de base.

Categories
Security Steganography

A gentle introduction to Steganography

J’ai tout récemment commencé à rassembler ce que j’ai déjà expérimenté avec la stéganographie et Stéganô. À cette occasion j’ai donc créé un dépôt simplement nommé: A gentle introduction to Steganography (puisqu’il existe déjà de très bon livres si tu veux plus de détails). L’objectif n’est pas exactement d’écrire un cours comme cela a été suggéré il y a quelques temps, mais surtout de compiler quelques connaissances de bases acquises dans ce domaine. L’ensemble abreuvé d’exemples concrets (et de belles photographies).

Le document sera au format LaTeX pour avoir un beau pdf (par exemple), ainsi qu’au format reStructuredText afin d’avoir une belle version HTML (générée avec Sphinx). Une version HTML à jour sera toujours disponible via le site Read the Docs, ici. Vous pouvez demander une mise à jour immédiate grâce à cette page.
Les versions seront quasiments identiques, la version Web certainement plus “intéractive” avec plus de liens, à voir…

Évidemment toute aide est la bienvenue! On verra jusqu’où ça ira!

Categories
Steganography

Mise à jour de Stéganô (cadeau à l’intérieur)

hg clone https://bitbucket.org/cedricbonhomme/stegano/
cd stegano/stegano
wget https://lh6.googleusercontent.com/-Sntb2St4xUQ/T5HgDH90JTI/AAAAAAAADwA/IQq_7mFeUhM/s0/sanga.png
python ./slsbset.py --reveal -i ./sanga.png -b OFD --generator XXX
cvlc -L OFD

Il faut remplacer XXX par le bon générateur (énorme indice). Ça fonctionnerai aussi avec une image de taille inférieure, mais je préfère donner une belle photo de Sanga.