samedi 10 janvier 2009

StegaWav beta v0.1 - "J'ai rien entendu !"

Les week-ends... Ils ont leurs avantages tout comme leurs inconvénients ; c'est reposant, mais parfois, on peut s'faire chier comme un rat mort.

Il n'y a pas si longtemps que ça, je me suis mis en tête de coder un petit programme qui se sert du bit de poids faible d'un fichier x pour y dissimuler tous le contenu d'un fichier y. Une technique de stéganographie efficace mais très connue. Pour savoir ce qu'est - en détail - la stéganographie, je vous redirige sur ce lien :
http://fr.wikipedia.org/wiki/St%C3%A9ganographie

Je reprends... Je me suis donc mis en tête de coder l'outil pour cacher les informations, et l'autre pour les extraire.

J'élabore un petit cahier des charges dans ma tête. Pourquoi wav ? Parce que, généralement, les fichiers de ce type sont volumineux, car non compressés. En plus, il faudrait élaborer un petit truc sympa. Je me suis donc dit que je cacherai carrément un fichier dans le son. On commencerait donc par cacher des en-têtes, du genre :

Name: fichier.txt\n
Taille : 15\0

Ainsi, on cache le contenu. Ca peut servir pour l'extracteur, qui va lire le nom du fichier et qui ira ensuite extraire suivant la taille.

Ayant eu un souci en C auquel j'ai été confronté longtemps sans trouver de solution, je demande de l'aide sur #nibbles. Ivanlef0u, j0rn, Baboon et Deimos se penchent sur mon problème ; en fait, ça viendrait de fseek(), une fonction dont je me sers pour parcourir le fichier. Résultat, personne ne trouve malgré les théories élaborées, et ça finit en gentil troll.

J'ai plus qu'à faire ça en PHP. :(


J'ai commencé par pondre des scripts en console. Pour les télécharger, c'est ici :
http://venom630.free.fr/geo/?path=tools/StegaWav

Utilisez-les en CLI. De toute façon, z'avez pas le choix.

Je les compile avec bambalam, content de moi. Effectivement, je pourrai les diffuser aux gens (coucou Tybalt !) qui n'ont pas PHP d'installé sur leur bécane ! \o/

Oui, j'étais content de mon petit machin débile. Je l'ai donc fait essayer à certains amis qui avaient le temps, mais, le souci, c'est qu'ils n'avaient pas l'habitude d'utiliser la console. Donc, je me suis dit... Pourquoi ne pas leur faire d'interface graphique avec winbinder ?

C'est ce que j'ai fait !

Avantages :
- Prise en main facile ;
- programmation facile.

Inconvénients :
- Lent ;
- pas portable ;
- Eventuellement quelques bugs.
- Ca se peut que ça ne marche pas... Je suis pas pro en portabilité de winbinder.

Vous pouvez donc télécharger l'archive à cette adresse :
http://venom630.free.fr/geo/?path=tools/StegaWav_Gui

Elle contient :
- Les exécutables (quand même !) ;
- Les sources.

Ce que je prévois pour la suite :
- Vérification des fichiers : il faut que le fichier son soit environ neuf fois plus gros que le fichier à cacher (pas huit, parce que j'ai envie) ;
- Cacher plusieurs fichiers à la suite ? Eventuellement, faire un header principal du genre "NombreDeFichiers: 3"... ;
- Proposez-moi vos idées ? De toute façon, les sources sont diffusées. Vous faites ce que vous voulez.


Rien de compliqué, donc je vais, à votre plus grand malheur, m'arrêter là.

Geo