Re: Projet de loi "Creation & Internet" ex-Hadopi

Top Page

Reply to this message
Author: Marc TERRIER
Date:  
To: Olivier Allard-Jacquin
CC: La Guilde
Subject: Re: Projet de loi "Creation & Internet" ex-Hadopi
Olivier Allard-Jacquin a écrit :
>     Bonjour Marc,

>
> Marc TERRIER a écrit :
>> Raphaël Jacquot a écrit :
>>> Marc TERRIER wrote:
>>>
>>>> Il y a peut-être des précédents juridiques. Cela m'intéresserait d'en
>>>> connaître, mais les sites que j'ai trouvés jusqu'ici, tels que "GPL
>>>> Violations" ( http://gpl-violations.org/ ), par exemple, citent des
>>>> cas et expliquent comment telle ou telle affaire s'est réglée au
>>>> final, mais pas tellement comment l'indélicat s'est fait prendre...
>>> c'est *le* site (et l'équipe derriere) qui gere ce probleme.
>>> si tu découvres un logiciel libre dans un équipement et que la license
>>> est pas respectée, il suffit de leur envoyer un mail, ils feront le
>>> nécessaire.
>> C'est vrai qu'avec un nom comme ça, on peut s'attendre à ce que ce soit
>> LE site de référence en la matière. J'ai eu l'impression que ce site
>> était maintenu par une seule personne, qui recense les cas dont il a
>> connaissance, et la façon dont ça s'est soldé, mais j'étais sans doute
>> trop obnubilé par l'absence de rubrique "How ?" et je suis sans doute
>> passé trop vite au dessus de la rubrique "Who ?".
>>
>> Le fait qu'il y ait une équipe d'investigation derrière le webmaster de
>> GPL Violations, c'est bien. Reste à étayer un peu les soupçons, quand
>> soupçons il y a, pour éviter de les lancer sur une fausse piste. Les cas
>> sont probablement rares où l'indélicat écrit clairement dans son produit
>> ou dans sa doc "Ceci est un logiciel proprio qui contient x % de
>> logiciel libre mais qui ne respecte pas les termes de la GPL" :-/
>>
>> Tu dis : "si tu découvres un logiciel libre dans ..." Ma question est
>> donc : le cas échéant, comment fait-on, dans la pratique ? N.B. : mes
>> compétences en développement Unix/Linux sont longtemps restées au niveau
>> des exercices simplistes qu'on fait en T.P. de langage C et dépassaient
>> à peine l'archi-classique "Hello World !" :-). Je ne viens de découvrir
>> le développement d'applis *graphiques* sous Linux que récemment ( j'ai
>> découvert l'existence de Qt il y a en gros un an ). Je me considère donc
>> comme tout sauf expert en développement Linux, et il y a sans doute des
>> outils pour regarder l'intérieur d'un binaire, dont j'ignore
>> l'existence. Auriez-vous des pistes, des liens, dans ce sens ?
>>
>> P.S. : je n'ai pas de soupçons, dans l'immédiat, sur tel ou tel logiciel
>> particulier. C'est juste que la question m'intéresse.
>
>     La dernière affaire qu'il me vient à l'esprit (mais ce n'est sûrement
> pas la dernière en date), c'est l'affaire de MPLayer (
> http://www.mplayerhq.hu/design7/news.html ) contre les lecteurs de
> DVD-DivX de salon "Kiss": http://www.google.com/search?q=mplayer+kiss

>
>     L'auteur s'est rendu compte que le firmware, disponible sur le site du
> constructeur (afin que les utilisateurs mettent à jour leur lecteur,
> pour y rajouter de nouveaux "codecs" par exemple), contenait des
> morceaux de mplayer.

>
>     Comment ? En faisant tout bêtement un "strings" sur le binaire (cela
> extrait les morceaux de texte). Il a alors trouvé des chaînes de
> caractères, comme des messages d'erreurs, qui étaient des copier-coller
> de messages de mplayer. Vu le nombre qu'il y avait, il ne pouvait pas
> s'agir d'un hasard.

>
>     La première réaction de "Kiss" face à ce problème, a été de publier un
> nouveau firmware pour ses lecteurs, en faisant de l'obstrufication. Mais
> c'était assez simple (grosso-modo, le code de mplayer était tout
> simplement "gzipé" dans le firmware), et l'auteur a facilement retrouvé
> les mêmes morceaux que précédemment.

>
>     Une autre possibilité de trouver l'appartenance d'un code, est la
> suivante (elle nécessite de parfaitement connaître son code) : Il s'agit
> de donner au logiciel un flux de données qu'il n'aime pas, et qui va le
> forcer à réagir de manière inappropriée. Par exemple, afin de le forcer
> à afficher un message d'erreur dont le message serait typique du soft.
> Si on reprend le cas de mplayer, cela pourrait un message du type
> "MPlayer ne supporte pas le format xxxxx".

>
>     Bien entendu, le mot "mplayer" pourrait "chiffré" dans le code source,
> de telle manière qu'une recherche "grep" ne le retrouve pas facilement.

>
>     D'une manière générale, il s'agit donc de forcer le code à produire un
> comportement précis, que seul le développeur originel connaît. Certes,
> un autre développeur pourrait retirer le morceau de code incriminé. Mais
> encore faut-il qu'il le trouve, et que cela ne demande pas de recoder
> tout le soft. Ce genre de choses peut se faire pour toutes les phases
> d'analyse de flux de données.

>
>     Enfin, on peut aussi analyser les dépendances qu'il y a entre un soft
> et ses librairies. Par exemple , un "ldd /usr/bin/mplayer" donne ceci :

>
>         linux-gate.so.1 =>  (0xb7ffc000)
> <typique d'un programme Linux>
> [...]
>         libaa.so.1 => /usr/lib/libaa.so.1 (0xb7cde000)
>         libcaca.so.0 => /usr/lib/libcaca.so.0 (0xb7cd5000)
>         libcucul.so.0 => /usr/lib/libcucul.so.0 (0xb7c36000)
>         libvga.so.1 => /usr/lib/libvga.so.1 (0xb7bd5000)
>         libSDL-1.2.so.0 => /usr/lib/libSDL-1.2.so.0 (0xb7b24000)
> <quelques libraires typiques qu'utilise mplayer, qui peut afficher des
> flux vidéo sur ses supports videos "bizarres", comme une console en mode
> texte>
> [...]
>         libfaac.so.0 => /usr/lib/libfaac.so.0 (0xb76aa000)
>         libx264.so.60 => /usr/lib/libx264.so.60 (0xb7623000)
>         libjpeg.so.62 => /usr/lib/libjpeg.so.62 (0xb6c1b000)
>         libgif.so.4 => /usr/lib/libgif.so.4 (0xb6c13000)
>         libvorbis.so.0 => /usr/lib/libvorbis.so.0 (0xb6a07000)
>         libogg.so.0 => /usr/lib/libogg.so.0 (0xb6a01000)
>         libspeex.so.1 => /usr/lib/sse2/libspeex.so.1 (0xb69e6000)
>         libtheora.so.0 => /usr/lib/libtheora.so.0 (0xb699f000)
> <des décodeurs audio/video, qu'utilise mplayer>
> [...]
>     etc..

>
>     Pour ce genre de choses, la personne qui détourne le soft va avoir un
> peu de boulot de modification des sources, si il veut masquer cette
> dépendances avec des libraires externes. Au minimum, il devrait compiler
> le soft en statique.

>
>     A noter que si tu veux que la FSF t'aide, il faut leur donner ls droits
> de ton soft : http://linuxfr.org//~mammique/10069.html . Dans les faits,
> cela ne t'empêche nullement de continuer à coder dessus, et le soft
> reste toujours en GPL.

>
>     Cordialement,

>
>                         Olivier


Bonjour Olivier, et merci pour toutes ces infos. Là, on rentre bien dans
le domaine du "comment ?", et c'était précisément le but de ma question
d'origine. Maintenant, à moi de creuser. Mais encore une fois, c'est
pour ma culture générale que je posais cette question, pas dans le cadre
d'un logiciel précis : je n'ai encore rien écrit, personnellement, de
suffisament intéressant pour que quelqu'un puisse souhaiter se
l'approprier de la façon évoquée dans ce fil de discussion... ;-)

Bon W.E. à tous.

--
Marc