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

Top Page

Reply to this message
Author: Olivier Allard-Jacquin
Date:  
To: La Guilde
Subject: Re: Projet de loi "Creation & Internet" ex-Hadopi
    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


-- 
~~~~~~~  _____/\_____  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Phoenix /   _ \/ _   \    Olivier Allard-Jacquin
       /   / \  / \   \   Web:  http://olivieraj.free.fr/
      /___/  /  \  \___\  Mail: olivieraj@???
~~~~ /////  ///\\\  \\\\\ ~~~~~~~~~~~~~~~~~~~~~~~ Linux Powered !!