~bohwaz/blog/

Avec de vrais morceaux de 2.0 !

Eragon

Réalisé avec autant de conviction qu'un épisode de Mac Gyver (et encore), Eragon semblait pourtant pouvoir devenir une belle surprise de noël. Basé sur romans de Christopher Paolini, il y avait du potentiel sous le capot. Pourtant tout s'étends mollement et s'écrase comme une bouse de dragon. Le scénario, simplifié à l'extrême, cherche à être compris des nouveau-nés tellement il est simplet (qui a dit débile?).

Dans un pays on ne sais où, il y avait avant des dragons et des dragonniers. Mais un méchant roi les a tous tués pour prendre le pouvoir. Un peu plus tard, Eragon, jeune paysan blondinet fraîchement coiffé à coup de décoloration, "tombe" littéralement sur un oeuf de dragon, le ramène chez lui, il éclot et hop un petit dragon. Un jour ou il essaye de faire voler le dragon, celui-ci s'envole, va faire un tour en étant petit comme un chiot et revient grand comme un semi-remorque. On saura jamais pourquoi mais soit. Donc le destin veux que Eragon soit le nouveau dragonnier. Mais pas cool les méchants le recherchent et tuent sa famille. Coup de peau, dans son village y'a aussi un ancien dragonnier (reconverti en clochard), le dernier vivant. Il lui explique et lui apprends tout en trois coups de cuillière à pot. Et alors qu'Eragon et son pote s'en vont retrouver les rebelles dans la montagne, le jeune fermier a des visions d'une jolie fille attachée dans le chateau du méchant. On sais pas qui elle est ni à quoi elle sert, mais ce débile de paysan va la secourir illico presto (problème d'hormones ?) dans une mission commando ou son pote meure prématurément suite à un combat avec le méchant sorcier copain du roi méchant. La suite se résumant assez simplement : Eragon rejoint les rebelles, le méchant sorcier les attaque, Eragon tue le sorcier et... oh bah c'est déjà la fin !

Bah merde ça c'est du scénar. C'est vide, vide, vide. C'est chiant, on comprends rien parce que ya des trous énormes dans l'intrigue (genre la fille sauvée du chateau, une sorcière, une princesse ? on la vois finalement que très peu et elle semble faire de la figuration). On oubliera très rapidement tous les acteurs, qui semblent s'ennuyer comme devant un épisode de Dallas, ainsi que le réalisateur qui devait s'être endormi précédemment sur le scénario. Je parle évidemment pas de la musique ou du reste, parce que tout n'est que vide, ennui, attente. Un film ennuyeux avec un personnage principal qui joue aussi bien que ce débile de James Van Der Beek (alias Dawson) mais avec le look Brad Pitt et un regard livide qui donne envie de le faire passer à l'abattoir lui et son dragon qui parle avec une voix de GPS pour voiture. A éviter.

They Are Among Us

Téléfilm produit par Sci-Fi, They Are Among Us (ils sont parmis nous) est un film particulièrement bien mené. On a ici affaire à une histoire d'extraterrestres qui reste longtemps bien mystérieuse. Loin du sensationnalisme et de la mode de faire des films qui vont à 100 à l'heure, ce long métrage prends le temps de poser ses personnages, ses décors, son scénario. Si bien que tout cela commence à sembler crédible. Le travail sur les personnages est important et on le sens dans les relations entre eux mais surtout dans le travail des acteurs, certains étant vraiment bluffants. Notamment George Buck Flower (hélas décédé peu après ce film), jouant ici le rôle de "Ol'Chuck" qui est un grand acteur, ayant joué dans près de 150 films et second rôle fétiche de John Carpenter.

Ce film offre donc une grande importance à l'ambiance et à ses personnage, chose devenue trop rare. Les lumières sont particulièrement soignées et l'image est "honnête" dans le sens ou elle sait rester discrète, ou les cadres servent le film simplement. Les effets spéciaux "à l'ancienne" (sans retouche numérique) sont bien foutus et même si on aura pas vraiment de frisson ou de sursaut au long du film, l'ambiance oppressante nous fait ressentir étranges. D'ailleurs ce film me fait fortement penser à Society, premier long métrage de Brian Yuzna (plus connu pour être le réalisateur de Re-animator 2 et producteur de toute la série), qui a également un déroulement plutôt lent et oppressant.

En somme c'est un film d'épouvante-horreur qui se démarque de la production actuelle pour vraiment apporter quelque chose d'intéressant et de captivant.

Quand la chanson crée la prison

C'est le nouveau "single" de Diam's, "Confessions nocturnes". Pour vous résumer le début de l'histoire, une copine de Diams se pointe chez elle, elle crois que "son mec" la trompe.

DIAM'S :

Mais Vi' arrête ! Tu sais ton mec t'aimes, ton mec m'a dit «Tu sais Mélanie, Vi' c'est une reine et je pourrais crever pour elle»

Faut pas que tu paniques, j'te jure ton mec assure, ton mec assume, Vi' ouais

Ton mec est pur, il te trompe pas, j'en suis sûre

On a déjà ici la référence aux contes de fées débiles ("reine"), de la légende stupide de Roméo et Juliette ("je pourrais crever pour elle"), et enfin de l'image religieuse oppressante des relations amoureuses (rapport à la "pureté" avec la confiance). Bon on enchaîne avec la chanteuse (non ce n'est pas Diams) qui bla bla "je sens son odeur", bla bla "elle laisse des messages tous les quarts d'heures" (youpi les rimes), et "J'ai infiltré son répondeur". Alors là déjà stop "infiltré son répondeur" je vous laisse sur l'image de la confiance qui règne et du respect de la vie privée comme règle d'or...

Suite du skeud, la chanteuse connaît même l'adresse de l'hôtel ou "son mec" "couche" avec "l'autre", donc Diams tombe des nues:

DIAM'S :

J'étais à côté de la plaque, je croyais que ton mec était intact moi

Pas de trucs bizarres, pas de plans drague, pas de pétasses

Je croyais que ton mec était à part, qu'il parlait mariage et appart'

Prends ton sac, l'adresse de leur rencard et viens on va les voir viens !!

OK on reprends les images préformatées, avec le mec "intact", et le respect est de mise ("pétasses"), ça continue avec l'image bien-pensante des relations et de la société ("mariage et appart") pour finir sur limite un appel au lynchage. Sur ce, Diams et sa copine se rendent à l'hôtel (en Mercedes dernier modèle, évidemment, faut pas se priver [dans le clip]) :

DIAM'S :

Ok reste discrète, donne moi le cric, la bombe lacrymogène

Vite, donne moi une clé, donne moi sa plaque

Que je la raye sa BM, que je la crève sa BM

Que je la saigne comme il te blesse sa BM

Si tu savais comme j'ai la haine là !

Ouaouh quel esprit rebelle, quelle révolution, la prolétarienne Diams, que dis-je, la révoltée, l'anarchiste Diams va, tenez-vous bien, rayer la BM du mec pendant que sa copine attends dans la Mercedes (sic!). Très fort Diams. Ben oui elle a la haine quoi...

Bon donc après l'épisode démolissage de BM, Diams et sa grande copine se rendent à l'hotel (ben ouais faut finir la vendetta) et donc sa copine chanteuse reprends face au mec :

VITAA :

Mais qu'est-ce que tu fous là ?

J'te croyais chez ton père mais tu te fous de moi !

J'ai toujours été droite et j'vivais pour toi

J'avais confiance en toi j'pouvais crever pour toi

Et toi t'oses baiser cette chienne !

Toujours cette notion de bienséance ("toujours été droite"), et d'amour exclusif voir d'objetisation de l'être humain ("je vivais pour toi"). On retrouve également le drame Shakespearien ("je pouvais crever pour toi") et tout le respect dû à la gente féminine ("baiser", "cette chienne"). Mais Diam's surenchérit en s'adressant successivement au mec puis à "l'autre" fille :

DIAM'S :

Mais fermes ta gueule toi !

Et si tu veux parler s'teplait rhabille toi

Franchement t'as pas d'honneur t'as pas honte de toi ?

Prends ton string et casse toi !!

Les filles comme toi ne méritent pas plus qu'un p'tit bout de trottoir

Encore des idées passionantes et tellement politiquement engagées... dans les religions et les partis de droite. "Honneur", "honte" des mots un peu fort pour juste deux personnes qui font du sexe ensemble nan ? Mais ça ne suffit pas puisqu'on vois ici tout le féminisme de Diams dévoilé en traitant "l'autre" fille de prostituée, voire pire ("[tu] ne mérite pas plus qu'un petit bout de trottoir").

On pourrais croire être au sommet de la pensée de droite catholique, malgré que je vous rappelle que nous sommes dans un clip de "rap" d'une "artiste" censée être à gauche. Mais non ce n'est pas finit, ça continue on en remet une couche ! Diams essaye de rassurer sa copine, en n'oubliant pas son féminisme ("c'était bien ton gras dans les bras d'une petite pétasse"), son respect ("ce batard n'est rien pour toi"), et oublie un petit mot ("la vie est une garce quand t'as décidé d'être droite" au lieu de "quand t'as décidé d'être de droite" ?). Elle raconte ensuite son histoire ("j'y croyais plus [...] et puis l'amour m'est tombé dessus [...] crois-moi tu sais ce que c'est de se sentir trahie quand ton mari a sauté toutes les michtonneuses de paris et regarde-moi aujourd'hui j'ai presque la bague au doigt"), tout à fait bateau.

Et là c'est le drame parce que la copine à Diams est décidemment une sacrée parano et espionner le répondeur de "son mec" à pas suffit, elle s'en prends à sa copine (?) :

VITAA :

Mais qu'est-ce t'en sais toi ?

Peux tu m'dire ce que fait ton mec et à quel endroit ?

Ce qu'il fait de ses nuits quand t'es pas là ?

Et dans quels bras,

Il court étouffer ses péchés quand t'es avec moi ?

Es tu sûre qu'il est fidèle ?

As tu consulté ses mails ?

Fouillé son msn ?

Capté ses messages,

Questionné sa mère quand elle a dit qu'il est chez elle et lui qu'il est chez son frère ?

Si t'es sûre de toi, alors prends ton téléphone écoute son répondeur et tu verras !

Et ouais y'a des copines comme ça qui vous donnent confiance en vous. Donc passons sur le véritable flicage et parano suggérés par la bonne copine (mails, messagerie instantanée, mobile, voire "indics"...). La copine saisis suite à cela le téléphone de Diams (toujours dans sa Mercedes), écoute les messages du "mec" de Diams et tombe évidemment sur le message d'une autre fille et donc la chanson finit là dessus :

Mel tiens toi prête faut que j'te parle

Tu vas passer tes journées dans l'noir,

Mel je le sais, je le sens, j'en suis sûre, il se fout de toi ...

La morale de ce texte est donc on ne peux plus clair : Ne faites confiance à personne et surtout pas à ceux que vous aimez, espionnez-les, soyez parano, ils profiteront de n'importe quel moment pour vous trahir. Surveillance généralisée du peuple par le peuple, Orwell ne pouvait rêver mieux car Diams l'a déjà fait.

Ici c'est la chanson qui crée la prison intellectuelle. Là ou on pense généralement que le rap est une musique de "rue", de "révolte" (et c'est bien ce qu'elle est), la soupe prédigérée de Diams se rapproche plus de la variété à la Johny en y ajoutant un soupçon d'enfermement et de propagation des idées conservatrices, sexistes et misogynes. Elle se permet également de propager ses idées conservatrices sur les relations amoureuses et c'est grâce à ce genre de culture "populaire" de merde que certains en arrivent à insulter les personnes qui désirent vivre leurs relations autrement.

Bref, il y aurait tellement de choses à dire d'un point de vue politique et même humaniste sur ce texte (et tous les autres de Diams), que je pourrais y passer des jours mais ça n'en vaux définitivement pas le coup... Une seule question reste en suspens : Diams rejoindra-t-elle les rangs de l'UMP aux côtés de Doc Gynéco (en faisant une photo souvenir avec Nicolas au passage ?) dans les prochaines semaines ? En tout cas même si le geste n'y est pas, on sais que le coeur, lui, y est...

Syntaxes, xHTML, WYSIWYG et intuitiveté

Le problème majeur de la plupart des CMS, wikis, blogs, etc. c'est d'avoir chacun une syntaxe différente. Il y a bien des tentatives d'uniformiser tout ça, et je l'ai tenté plusieurs fois à travers notamment la classe FormatHTML qui formattait plusieurs syntaxes: BBCode, SPIP, <PRé>Textes Julika et Bérénice, wiki2xhtml, etc.. En théorie c'était très bien cela permettait de mixer toutes les syntaxes selon ses envies. Le problème étant que les syntaxes se recoupent. Par exemple un lien en Spip est [texte->lien], en wiki2xhtml c'est [texte|lien], etc.. Ce qui menait à des conflits complexes.

Plus tard il m'a semblé que wiki2xhtml était la syntaxe la plus pratique et la plus répandue (notamment à cause de DotClear), je l'ai donc utilisée dans WikiKubbe et L'encrier (moteur de journaux en ligne), mais après plus d'un an d'utilisation je m'aperçoit de plus en plus que cette syntaxe est totalement naze, avec des principes débiles qui vont à l'encontre de toute logique.

Après diverses réflexions je me suis dit que la meilleure solution c'est de faire directement du xHTML. Et oui, le xHTML c'est une très bonne syntaxe, très simple, sémantique, et mondialement connue. Le truc c'est que ce n'est pas très intuitif pour les débutants, et que son écriture est fastidieuse pour les utilisateurs expérimentés. A cela il existe donc deux solutions.

Pour les débutants : du WYSIWYG !

Pour les débutants, le WYSIWYG semble tout à fait indiqué, cependant il existe plusieurs problèmes majeurs à l'utilisation de WYSIWYG en Web. Le premier c'est la différence d'implémentation des modes d'édition entre les navigateurs. Là ou Opera et IE permettent d'éditer n'importe quel élément de la page via la propriété javascript contentEditable, Firefox et tout ce qui est basé sur Gecko exigent d'utiliser la propriété designMode uniquement sur un document entier, et donc d'utiliser un iframe. Première difficulté. Ensuite on ne peux pas simplement transformer un textarea en éditeur wysiwyg, sinon ça serait bien plus simple. Il faut donc utiliser un iframe obligatoirement, qu'il faudra synchroniser avec un textarea caché pour que le serveur reçoive le contenu.

Autre problème majeur, le markup généré par les navigateurs. En plus d'être souvent invalide et non sémantique, il est totalement hétérogène. Là ou IE fait des <em>, Firefox fait des <span style="font-style: italic;"> et Opera des <i>. Débile. On pourrait se dire qu'on a qu'à faire comme dans un textarea en jouant sur la sélection (comme le font MediaWiki et Dotclear 1.2 par exemple), et en rajoutant nos propres tags, sauf qu'il n'est pas possible de modifier la sélection en javascript sur un div, ça aurait été trop simple...

Heureusement des codeurs fous gentils développeurs se sont déjà penchés sur le problème, notamment The Man in Blue qui a fait un widgEditor tout à fait intéressant. Il formatte à peu près comme il faut, même s'il ne prends pas en compte les spécificités d'Opera, ce ne sont que quelques lignes à rajouter. On a donc un éditeur WYSIWYG qui fournis presque quelque chose d'intéressant. Pour le filtrage de tags en aval on utilisera un parseur de code qui fera les finitions, on va voir ça plus bas.

Pour les utilisateurs expérimentés : le xHTML assisté

Le principe du xHTML assisté c'est d'avoir un champ textarea dans lequel tous les tags xhtml sémantiques soient acceptés, sauf <p>. On peux taguer le texte avec des boutons utilisant javascript, comme sur MediaWiki ou DotClear 1.2, les tags qui ne sont pas autorisés sont transformés en entités HTML, ainsi que les tags précédés par \ (escaping de tags ;) ). Les tags de bloc de paragraphe et de retour à la ligne <br /> seront ajoutés automatiquement, ainsi il suffit de laisser une ligne vide pour faire un nouveau paragraphe et un retour à la ligne donnera... un retour à la ligne. Simple. Il n'y a rien d'extraordinaire, simplement une aide au formattage xHTML.

Tout cela est possible grâce à une class Garbage2xhtml qui est une sorte de tidy en PHP, mais sans les dépendances. Elle va simplement parser une chaîne de caractère et selon les options qu'on lui a donné (notamment les tags et attributés autorisés) il va corriger le code HTML. Ainsi les balises fermées mais non ouvertes, et ouvertes mais non fermées passeront à la benne. Les tags et attributs non autorisés également. Il va également transformer les tags b et i respectivement en strong et em notamment. Bref elle va tenter de faire quelque chose de valide et sémantique. Elle évite également pas mal de failles de XSS (même si c'est difficile de tout bloquer).

Voilà ce sont les pistes que j'ai exploré jusque là, et que vous retrouverez bientôt dans PitiCMS, un CMS censé être simple/léger/pratique, mais j'en reparlerais lors de sa sortie d'ici quelques jours. En attendant pour illustrer cet article un peu de code :

L'humiliation c'est trop cool !

Douille m'a parlé de son baptême à son école de médecine en Belgique. Elle trouve ça super cool de devoir se bourre la gueule, devoir se mettre à genoux par terre...

J'ai cherché à en savoir un peu plus. Bon alors le "baptême" (ou totémisation) en Belgique c'est du bizutage. Pur et net. En France, le bizutage est illégal, la loi dit très clairement : « Hors les cas de violences, de menaces ou d'atteintes sexuelles, le fait pour une personne d'amener autrui, contre son gré ou non, à subir ou à commettre des actes humiliants ou dégradants lors de manifestations ou de réunions liées aux milieux scolaire et socio-éducatif est puni de 6 mois d'emprisonnement et de 7500 euros d'amende. »

Malheureusement en Belgique c'est toujours légal (malgré la Convention Européenne des droits de l'homme). Après m'être renseigné un peu partout, j'en sais pourtant un peu plus sur en quoi consiste un baptême. Au pire, le baptême ça peut être de devoir se déshabiller (ou être déshabillé de force) devant un amphithéâtre rempli, voire des attouchements sexuels. Au mieux c'est devoir se bourrer la gueule, et subir des "crasses". Un témoignage à propos d'une école vétérinaire belge pour vous mettre un peu dans l'idée :

Notre ami en sort choqué mentalement et physiquement. Durant 3 semaines, il n'a pas eu le droit de rentrer chez lui, de dormir plus de 2 heures d'affilées, d'assister aux cours. Forcé à boire, il vomissait tous les jours. Il nous a raconté succinctement ce qu'il avait subi (et d'après lui ce n'était pas le pire), en voici quelques exemples. Considéré comme un "sous-homme", il ne pouvait pas se tenir debout devant un bizuteur. Un exemple de petit déjeuner imposé par sa "marraine" : 2 pintes de bière, et 10 cuillères à soupe de mayonnaise. La majorité du temps, il ne savait pas ce qu'il mangeait. Le dernier rite du baptême est ignoble : les futurs "baptisés" doivent passer de stand en stand et ingérer des substances douteuses. Celui qui vomit doit recommencer le parcours, notre ami a vomi 3 fois.

OK, c'est toujours aussi cool... C'est ça le baptême : alcool en quantité barbare, soumission, humiliations diverses.

Bon mais c'est pas aussi horrible que ça, de toutes façons t'est pas obligé de le faire !

Ouais sauf que si justement. Être non-baptisé empêche souvent d'avoir les notes de cours, voir carrément aux cours, les baptisés ne vous parlent pas, etc.. Les pratiques varient évidemment d'une école à l'autre, mais la théorie est là. Sans oublier qu'être consentant au bizutage est loin d'être une évidence. L'effet et la pression du groupe aidant, peu vont refuser, en sachant en plus qu'ils risquent d'en subir les conséquences... Cette "non-obligation" est donc totalement factice.

Non seulement cette pratique élitiste totalement débile est dangereuse mais elle est humiliante et dégradante. Elle pousse à la consommation de drogues (particulièrement l'alcool), voir à l'alcoolisme. Certaines pratiques sont même totalement barbares, par exemple la privation de sommeil est une torture souvent utilisée par la police pour déstabiliser le mis en examen; et c'est particulièrement efficace...

Ainsi tout cela serait "cool" ? Ouais trop génial ! Je vous laisse juger par vous-même de la "coolitude" de l'activité. Oh évidemment on a toujours droit à des arguments totalement incroyables de mauvaise foi : "Oui mais c'est pas aussi pire que ça" (mais la composante essentielle du bapteme reste l'humiliation du nouveau), "Oh de toutes façons t'as jamais vécu tu peux pas comprendre" (facile...), "Mais c'est juste pour rencontrer de nouvelles personnes" (il n'y a donc aucun autre moyen de rencontrer des gens ?), etc etc.

J'ai eu droit à tout et n'importe quoi en me renseignant, des insultes, des rabaissements ("de toutes façons t'est qu'un français"), des attaques personnelles ("t'est un sale névrosé"), etc etc. Quasiment aucune réaction posée m'expliquant quoi que ce soit d'intéressant ou répondant à mes questions... Un peu gênant pour des gens qui n'ont de cesse de dire qu'il n'y a ni humiliation, ni domination et que personne n'est forcé.

A part ça, c'est "cool", et subir ça devient "normal"...

Parfois, le monde me fait extrêmement peur. Je ne suis pas prêt de me remettre à jouer aux journaliste...

Bitlbee, MSN and web-interface

I wrote a little Bitlbee fork just for fun. Took Bitlbee 1.0.3 + akke1 msn patch + some modifications of my own so the MSN pictures path can't be edited by user and just edited in bitlbee.conf. With this you can do public servers with this patch.

You can try it by creating an account on alinea.kd2.org:6667. Add a MSN account, go to http://bitlbee.kd2.org/, create your webspace, wait for some MSN friends to speak to you so that they will transmit their buddy icon to you and go watch always at http://bitlbee.kd2.org, with only your BitlBee nickname and password (the web interface uses bitlbee files to match your password), and see what happened. The web interface lets you also edit your own buddy icon.

If you want to install this, check those things on my SVN:

Warning, do this at your own risk, it's totally experimental :)

Faille majeure dans WiClear

La dernière version de WiClear contient une faille majeure permettant l'injection de code distant quand register_globals est sur ON dans PHP.

Je dévoilerais les détails quand elle sera corrigée, mais je vous conseil de mettre register_globals à Off ou de supprimer WiClear de votre site.

(Note: ceci explique le hack des homepages de kd2.org et bl0g.eu)

D'ailleurs quand on parle du loup: http://secunia.com/advisories/22547/

Edit: joke, l'auteur de WiClear réagit avec une semaine de retard et se plaint que ses sites se sont fait défacés. Et les utilisateurs de WiClear ? Il ne publie même pas de correctif, simplement suggère de mettre .htaccess dans les répertoires d'admin. C'était compliqué de remplacer une variable par une constante ?

Musique libre... pas libre

Pour la soirée de sortie de Firefox 2, Dogmazic propose une playlist de musique "libre" (via Tristan Nitot). Sauf que dans cette playlist de 44 morceaux il y en a 33 qui ont soit la clause NC (pas d'utilisation commerciale, donc pas "libre" mais juste "librement diffusable dans un cadre non-commercial") soit la clause ND (pas de travaux dérivés, donc aucun remix, reprise, ou toute modification, donc tout sauf libre).

Bref seulement 11 morceaux libres dans une playlist annoncée comme de la musique "libre" ça fait mal...

PS: Je me bat grave les couilles du débat de merde libre/non-libre. Je voudrais juste qu'on fasse comme dans les logiciels ou l'appellation soit claire. Un freeware n'est pas un logiciel libre. Ca n'a rien à voir. Si on commence à dire "toute musique librement diffusable même avec plein de restrictions débiles ben c'est libre" on qu'à dire "tout logiciel librement diffusable même avec plein de restrictions débiles ben c'est libre" et donc Internet Explorer, Acrobat Reader ou Winamp sont des logiciels libres. Appelons un chat un chat. Et pour un logiciel libre (Firefox, qui n'est donc pas un freeware), utiliser de la musique freeware plutôt que libre ça la fout mal.

PS: Voir aussi l'exemple de la recette de cuisine (merci Kerdekel).

Music for masses!

Allofmp3.com released a brand-new feature: free downloading of 128kbps MP3 songs, but files are encrypted and only playable in Music for masses Windows player, which is able to display ads (but there is no ads for now). I done some searching work to find how they encrypt files and using DRM.

Files differences

I downloaded a file in their .mp3x free format and bought the same in mp3 128kbps. There is only a 32 bytes size difference between files, but files are completely differents. So this is not just a header modification, seems that file is completely encrypted.

Sniffing client

So i launched the client and sniffed packets with wireshark. First it sends a GET request in HTTP when logging:

GET http://212.5.165.110:8080/drm/interface.html?r=695307100&action=login
  &username=<strong>Mj8hJCgj</strong>&password=<strong>******</strong>&base=PPISIYFUCTEKYKDLKOQWEYAELQIOIMET HTTP/1.1

Note that for security reasons I removed my encrypted password. You can notice that both username and password are encrypted, but I don't know how (DSA?). The r argument is static, it don't change at each connection, but base changes at each new connection. Let's see what the server answers:

Connection: close
Content-Type: text/html
Content-Length: 664
Server: DRM Player Interface Server 0.1

<?xml version="1.0" encoding="windows-1251"?>
<data>
  <drmplayer version="51" minvalidversion="51">http://files.allofmp3.com/files/musicformasses-setup.exe</drmplayer>
  <session id="<strong>1561401155</strong>">HEwBQHvGdEPjX1O0E1BPtbqYnAD6mYjxgZvFFw7FibrObIVRN/PbFBzBhiSFf6lbn2HaJ13aSvPjTn4mSboUHA==</session>
  <coverurl>http://www.alltunes.com/image.php?rnd=%RANDOM%&amp;gid=%GROUPID%&amp;aid=%ALBUMID%&amp;pic=5</coverurl>
  <orderurl>http://music.allofmp3.com/onlineenc/order-drm.shtml?r=%RANDOM%&amp;session=%SESSION%&amp;cid=%CONTENT%</orderurl>
  <balance>2.85470438774421</balance>
  <deskey>3tbDmPWCBbIG3ipiXkXKEZJcYr8HIfRwDPycnC6lNadjfy99JzEiBhwgCg==</deskey>
</data>

OK their protocol seems easy, but powerful. Just XML, encryption, and keys mechanism. No need to have some weird blobs like Window Media Player or ITunes. So in details: the server sends back a session id, and in <session> tag some encrypted keys, some kind of template to get cover url and an url to order album in better quality. It also contains my balance value (go get some round function ;) ), the last required valid version to access the service and a url to download it (for upgrading clients), and also a <deskey>.

Now let's see when the player loads a .mp3x file:

GET http://212.5.165.110:8080/drm/interface.html?r=309666303&action=getfiledrmkey
   &DrmKeyID=<strong>1339079983</strong>&SessionID=<strong>1561401155</strong>&ContentID=<strong>1271061</strong> HTTP/1.1

DrmKeyID and ContentID don't change, and SessionID is the one sent when authentication is done. No idea where the player finds the KeyID and ContentID, there are for sure in the .mp3x file but it has to decrypt a part of it, because it isn't in plain ascii in the file. And then the server answers:

Connection: close
Content-Type: text/html
Content-Length: 187
Server: DRM Player Interface Server 0.1

<?xml version="1.0" encoding="windows-1251"?>
<data>
  <key>i7ZTtbnDYVaCJPeeafXb7RfgeKCwbUTedmWJWdBOGq8oe315PT4aFg8zaw==</key>
  <content groupid="3327" albumid="3" songid="1"/>
</data>

So it gives a key (probably an encrypted one) to decrypt the file, and also a group id, album id and a song id. And that's all. 2 requests, 2 answers. This is the most basic and probably the most efficient DRM system. Everything is based on the obfuscation because we don't know the encryption key for all encrypted datas in http exhange between client and server. But after someone will disassemble the player code and find the key, the only protection is to change the key periodically.

With this demonstration you can see that absolutely no DRM system will secure, beause by its theory, it can't. DRMs must use obfuscation and their only one protection is to hide the crypting key and the protocol used. This is no security, this is just gaining some hours before someone cracks the key and the protocol. And this is just a question of days before someone cracks the Music4Masses key, as protocol is in plain text.

Note that AllofMP3.com is actually the greatest music download website. It allow you to buy for low prices (from 1 to 3 dollars by album), for the format of your choice (from MP3, Vorbis, FLAC, AAC, Wave, MPC, etc. at any bitrate), without any DRM. Their "music for masses" program is here to seduce new people to listen freely to medium quality music, and after making them paying the album to download it to your MP3 walkman (or iPod). Great idea imho. Give it a try.

Oh and as you can notice, there is absolutely no spyware in this software.

PS: You can follow MusicForMasses development on AOM Developers blog.

Notes rapides... ↓