Mettre son propre logo dans un QR Code

Pour ceux qui ne connaissent pas les QR Codes, c’est nouveau code barre en 2D qui permet par exemple de partager des liens internet, mais encore beaucoup d’autres informations (position géographique, texte…). Ces QR Code sont utilisés sur les smartphones, ils sont lus grâce à l’appareil photo de votre mobile.

Générer un QR Code est très simple, beaucoup de sites et d’applications mobiles (Android et iPhone) le font à votre place. Mais…

Il y a peu de temps, je suis tombé sur cet article, qui explique comment et pourquoi on peut mettre un logo personnalisé dans un QR Code.

Comment est-ce possible ?

Cela vient du fonctionnement même du QR code. C’est une matrice de petits carrés noirs et blancs. Et dans cette matrice, il y a une certaine quantité d’erreurs qui peuvent être corrigées, le maximum d’erreurs possibles étant de 30%. 30% représente une assez grande partie d’un QR Code.

Il est donc possible de volontairement foirer une partie égale ou inférieure à ce pourcentage. Et par foirer, je veux dire bien entendu mettre ce que l’on veut, par exemple coller un logo par dessus. 😉

Pour plus d’infos, il y a bien évidemment l’article de Wikipedia. 🙂

Fonctionnement

Le QR code se décompose en plusieurs parties distinctes. Certaines doivent rester intactes, les autres, on s’en fout !

Schéma d'un QR code - Copyright HackADay

Voici la représentation d’un QR code version 6. Sur ce schéma, les zones blanches représentes les zones à laisser intactes. Les couleurs représentes un bloc de 1 byte (formé par 8 petits carrés blancs ou noirs). Les traits noirs relient ensemble les blocs qui sont divisés en deux parties.

Il y a 172 zones de 8 pixels. 30% d’erreur signifie donc que l’ont peut à peu près recouvrir 51 zones. Ce qui fait déjà une assez bonne partie.

Ce qui reste à faire ? C’est très simple, il faut faire son ptit dessin, le mettre au dessus de ce schéma et regarder s’il recouvre 51 zones, et pas une de plus. Il ne faut pas oublier non plus qu’une zone en partie recouverte compte pour une zone recouverte complètement.

La pratique

Voici un petit exemple concret. Prenons par exemple… le logo space invaders de ce ptit blog. On le superpose avec le shéma et ça donne ça :

 

QR code avec logo superposé

Nickel, on n’écrase que 42 zones.

Attention : le logo doit être entouré de blanc pour éviter tout croisement avec d’autres pixels noirs. Je ne suis pas sûr à 100% de cette règle mais il vaut mieux éviter les problèmes 😉

On va alors créer un QR code, par exemple sur ce site. N’oubliez pas de choisir V6 en version et 30% de “Error correction level“.

QR code menant vers LouWii.fr

Là il ne faut juste pas se planter, parce que le schéma ci-dessus est plus grand que le QR code généré. Il faut donc bien retaillé le logo en conséquence.

Le résultat est là :

QR code menant vers LouWii.fr avec logo : OK !

Et bien entendu, ça fonctionne ! 🙂

J’ai ici gardé l’effet pixelisé en prenant des pixels de la même taille pour le space invader. Mais rien ne vous oblige à faire ça.

D’ailleurs, en voilà un autre qui fonctionne tout autant.

 

QR code avec logo en résolution "native"

Fin

A vous de jouer maintenant ! 😉

LulzSec dévoile des infos volées dans les bases de données de Sony

LulzSec, un petit groupe de hackers vient à l’instant de diffuser les liens pour télécharger son archive où se trouve des fichiers textes avec le contenu des bases de données de Sony en clair. Les sites piratés sont sonypictures.com, sonybmg.be et sonybmg.nl. La faille utilisée est une bête injection SQL. Plus d’infos dans la suite…

Continue reading LulzSec dévoile des infos volées dans les bases de données de Sony