Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

statut légal de la décompilation

9 réponses
Avatar
Thierry Mella
Bonsoir à tous,

Je précise tout de suite que ce message n'est pas un troll.

Je suis mû par une honnête curiosité envers ce problème et
ai été *stupéfait* de voir qu'il existait des livres sur la
décompilation, p.ex. dans le monde windows.

<http://www.amazon.fr/Reversing-Secrets-Engineering-Eldad-Eilam/dp/0764574817/ref=pd_ecc_rvi_1/171-7977651-8681064?ie=UTF8&qid=1192910604&sr=1-4>

Je pensais, à tort peut-être, que cela était interdit.

D'où ma question: quel est le statut légal de la décompilation
en France (et aux states) ?

(il me semble que le "reverse engineering" est utilisé par
les entreprises pour vérifier qu'il n'y a pas de violation
de brevets p.ex. ...)

La revue "MISC" avait traité le sujet il y a quelques années
mais n'avait pris pour exemple que le monde windows.

--> existe-t-il de la doc pour la décompilation sur Mac OS X ?
(si c'est légal évidemment !!)

Je précise que c'est la curiosité, le défi technique qui me motive
et pas l'envie de pirater à tout berzingue (ce dont je serai bien
incapable, dans l'état actuel de mes connaissances ... :-) )

Cordialement,

Thierry

9 réponses

Avatar
junk
Thierry Mella wrote:

D'où ma question: quel est le statut légal de la décompilation
en France (et aux states) ?


Le procédé consistant à décompiler un exécutable n'a rien d'illégal.

Par contre, copier du code des concurrents est certainement illégal.

Tout dépend donc du code et surtout de ce que tu en fais.

Un bon décompilateur Java : http://www.kpdus.com/jad.html

--
Nicolas Seriot

Avatar
Thierry Mella
Nicolas Seriot wrote:
Thierry Mella wrote:


D'où ma question: quel est le statut légal de la décompilation
en France (et aux states) ?



Le procédé consistant à décompiler un exécutable n'a rien d'illégal.

Par contre, copier du code des concurrents est certainement illégal.

Tout dépend donc du code et surtout de ce que tu en fais.

Un bon décompilateur Java : http://www.kpdus.com/jad.html



Bravo pour le courage d'avoir répondu ! :-)

Existe-t-il aussi des décompilateurs pour d'autres langages ?
(C / C++ / Objective-C / Pascal, etc...)

D'avance MMerci pour ta réponse,
Thierry


Avatar
Franck
Thierry Mella wrote:
Existe-t-il aussi des décompilateurs pour d'autres langages ?
(C / C++ / Objective-C / Pascal, etc...)


Sans doute.

Par contre le problème, c'est qu'un décompilateur pour un language ne
suffit pas, il faut aussi qu'il soit adapté au compilateur qui a généré
le binaire... En effet le code binaire généré pour du C++ par exemple,
est différent si la compilation a été effectuée par gcc ou le compilo de
Visual C++

Donc pour que le décompilateur retrouve ses petits, il faut qu'il soit
adapté au language *et* au compilateur...

Avatar
Vincent Lefevre
Dans l'article <1i6xfap.1fmp5bqf0s48wN%,
Nicolas Seriot écrit:

Thierry Mella wrote:

D'où ma question: quel est le statut légal de la décompilation
en France (et aux states) ?


Le procédé consistant à décompiler un exécutable n'a rien d'illégal.


Sauf si la licence l'interdit. Mais selon la loi française, la
décompilation (et reverse engineering) est autorisée et ne peut
pas être interdite sous certaines conditions, e.g. à des fins
d'interopérabilité.

--
Vincent Lefèvre - Web: <http://www.vinc17.org/&gt;
100% accessible validated (X)HTML - Blog: <http://www.vinc17.org/blog/&gt;
Work: CR INRIA - computer arithmetic / Arenaire project (LIP, ENS-Lyon)


Avatar
junk
Vincent Lefevre <vincent+ wrote:

Le procédé consistant à décompiler un exécutable n'a rien d'illégal.


Sauf si la licence l'interdit. Mais selon la loi française, la
décompilation (et reverse engineering) est autorisée et ne peut
pas être interdite sous certaines conditions, e.g. à des fins
d'interopérabilité.


Oui. Ce qui permet de rappeler que la license n'est pas la loi ; ce
n'est pas parce qu'une clause figure dans une license qu'un tribunal
doit la faire respecter.

--
Nicolas Seriot
http://seriot.ch


Avatar
junk
Thierry Mella wrote:

Existe-t-il aussi des décompilateurs pour d'autres langages ?
(C / C++ / Objective-C / Pascal, etc...)


Je n'en connais pas. Comme dit Frank, cela dépend du compilateur
utilisé.

Il y a par contre d'autres procédés de reverse-engineering que la
décompilation.

En Objective-C par exemple, on peut utiliser class-dump pour générer les
fichiers .h à partir d'un binaire.

Cela renseignera sur l'architecture du logiciel, mais pas sur son
implémentation exacte.

--
Nicolas Seriot
http://seriot.ch

Avatar
pmanet
Nicolas Seriot wrote:

Oui. Ce qui permet de rappeler que la license n'est pas la loi ; ce
n'est pas parce qu'une clause figure dans une license qu'un tribunal
doit la faire respecter.


et ce n'est pas parce qu'on a rompu le scotch qui scelle le CD que tous
les alineéa de la licence s'appliquent
et ce n'est pas parce qu'on a cliqué sur "j'accepte" le contrat de
licence qu'on est obligé de le respecter.

En France, pour l'instant, la loi reste supérieure au contrat, meme si
notre bien aimé Nicolas essaie de s'y attaquer.
--
www.D-L-S.org

Avatar
Anthony Gelibert
On 2007-11-05 09:16:28 +0100, Franck <franck+ said:

Thierry Mella wrote:
Existe-t-il aussi des décompilateurs pour d'autres langages ?
(C / C++ / Objective-C / Pascal, etc...)



Sans doute.

Par contre le problème, c'est qu'un décompilateur pour un language ne
suffit pas, il faut aussi qu'il soit adapté au compilateur qui a généré
le binaire... En effet le code binaire généré pour du C++ par exemple,
est différent si la compilation a été effectuée par gcc ou le compilo de
Visual C++

Donc pour que le décompilateur retrouve ses petits, il faut qu'il soit
adapté au language *et* au compilateur...



Tout dépends ce que tu appelle décompilation, si la décompilation c'est
le passage :
binaire -> code source alors tu ne peux le faire que sur des langages
le permettant, Java est un bon exemple car la génération qui est faite
est celle d'un bytecode (et non de l'assembleur pur) ce qui permet de
le reverser. Il en est de même pour tous les languages interprété ou
tournant sur des machines virtuels.
binaire -> assembleur alors tu peux le faire sur n'importe quel binaire
dans la mesure ou tu vas obtenir l'ensemble de toutes les instruction
assembleurs et que cela ne dépends pas du language. Quelque soit le
language utilisé et le compilateur, tu vas arriver à un binaire avec
des sections bien définis et une partie contenant le code en assembleur.
Avatar
Patrick V
Thierry Mella a écrit :
Je suis mû par une honnête curiosité envers ce problème et
ai été *stupéfait* de voir qu'il existait des livres sur la
décompilation, p.ex. dans le monde windows.

<http://www.amazon.fr/Reversing-Secrets-Engineering-Eldad-Eilam/dp/0764574817/ref=pd_ecc_rvi_1/171-7977651-8681064?ie=UTF8&qid92910604&sr=1-4&gt;

Je pensais, à tort peut-être, que cela était interdit.

D'où ma question: quel est le statut légal de la décompilation
en France (et aux states) ?



La question eut été plus à sa place sur fr.misc.droit vers lequel je
redirige (pour la partie légale).

En Europe, la décompilation à fins d'interopérabilité - uniquement pour
cela et s'il n'est pas possible de trouver l'information autrement - est
explicitement autorisée par la directive 91/250/CEE du 14 mai 1991
concernant la protection juridique des programmes d'ordinateur (cf
article 6). Elle ne peut être faite que par une personne ayant
légalement accès au programme.

Aux USA, je ne saurais dire si il y a une loi fédérale, mais il est
certain qu'il y a eu des condamnations sanctionnant des décompilations.

A noter que le fait que ce soit explicitement autorisé dans certains cas
par une directive ne veut pas dire que c'est interdit dans les autres
cas. Faute de texte européen, ça va dépendre des lois nationales.

En France, je ne vois pas ce qui l'interdirait, à part la licence.

(il me semble que le "reverse engineering" est utilisé par
les entreprises pour vérifier qu'il n'y a pas de violation
de brevets p.ex. ...)



De mémoire, il y avait eu un gros cas comme ça aux USA, mais je ne me
rappelle plus quelles sociétés (il me semble que le méchant était
Microsoft) : une société A avait prouvé une violation de brevet par B en
décompilant, porté l'affaire en justice, suite à quoi B avait été
lourdement condamnée à rembourser A mais A avait été aussi condamnée -
bien plus légèrement - à rembourser B pour avoir décompilé.