C'est votre premiere visite sur ce site ? Vous ne savez pas ce qu'est ubuntu ? cliquer ici !
21/03/2009 a 21h19 | 9382 hits
Un certain nombre de site propose d'afficher les adresses emails des utilisateurs sous forme d'images afin d'empêcher des bots de s'en servir pour spammer (à mon avis !) : protection assez inefficace pourtant !
Il s'avère en effet assez simple de décrypter une adresse email !
Prenons le cas de facebook, les adresses emails des profils sont des images provenant de :
http://www.facebook.com/string_image.php?ct=XXXXXXXXXXXXX&fp=8.7
où XXXXXXXXXXXXX est un identifiant, ou une sorte de clé cryptée, enfin bref, ce n'est pas un problème : le but du jeu (si l'on peut appeler ça un jeu) est de :
_ télécharger toutes ces images d'adresses emails (faites un bot)
_ puis de traduire les images en texte
_ et enfin, d'ajouter les adresses dans ses contacts sur msn (et oui, la plupart des gens ont leur adresse email confondu avec leur adresse du MSNP)
Ici donc, j'aimerais éclaircir l'étape "traduire les images en texte".
Tout d'abord, j'ai eu besoin d'opérer des hacks sur les images téléchargées : elles sont trop petites, et des lettres se "chevauchent" ce qui peut nuire à l'algorithme ! (oui, pas formidable cet algorithme)
du coup, on peut élargir la taille de l'image générée de cette façon :
http://www.facebook.com/string_image.php?ct=XXXXXXXXXXXXX&fp=32
(en même temps, plus c'est large, plus il y a de pixels et plus c'est long à traduire)
(remarquez aussi que certaines images ont une hauteur de 42, et d'autres de 45)
Ensuite, j'ai constitué un alphabet d'images avec ces caractères : [a-z0-9_.-@]
Puis intervient un programme de "détection de caractères", codé en ocaml d'environ 80 lignes de codes :