Décompilation

Décompilation

Décompilateur

Page d'aide sur l'homonymie Ne pas confondre avec un désassembleur, qui permet de traduire du code machine en langage d'assemblage.

Un décompilateur est un outil servant à reconstituer, partiellement ou totalement, le code source d’un logiciel à partir d’un programme exécutable alors dans un format binaire.

Sommaire

Utilisation

La décompilation est une technique de rétro-ingénierie ou d'ingénierie-inverse. Elle peut servir au portage et à l'adaptation d'une application dont le code source n'est pas disponible, à la réalisation de l'interopérabilité, à la traduction, à l'analyse et la vérification du fonctionnement d'un programme, et encore au débogage du programme.

Le principe du décompilateur est donc d'étudier ou tester le fonctionnement de ce logiciel afin de déterminer les idées et principes qui sont à la base de n'importe quel élément du logiciel lorsqu'on effectue toute opération de chargement, d'affichage, d'exécution, de transmission ou de stockage du logiciel.

Les logiciels dont le code source est disponible ne nécessitent pas l'utilisation d'un décompilateur.

La décompilation est un problème difficile et d'un strict point de vue théorique, impossible[réf. nécessaire]. Cependant, il est possible de retrouver un certain nombre d'informations sur le code source initial à partir du code compilé. La décompilation est un outil assisté d'aide à la rétro-ingénierie. Un décompilateur fonctionnant de manière entièrement automatique n'est pas réalisable.

Technique

Un décompilateur est un compilateur fonctionnant à l'envers. Il analyse (parse) le binaire, dans un premier temps. Il doit également transformer les instructions de saut conditionnel en éléments de programmation structurée switch, while et for. La dernière étape consiste à écrire les fichiers de source.

Le code est toutefois généralement peu lisible, car il ne suit plus les règles appliquées en développement logiciel, les commentaires d'origine sont en particulier manquants.

Contraintes légales

La décompilation est généralement explicitement non autorisée par la licence d'utilisation de certains logiciels propriétaires. Elle est parfois interdite par des lois, dans certains pays. Dans certains cas, le recours à la rétro-ingénierie est autorisée dans un but d'interopérabilité.

Ce qu'en dit la loi française

Chapitre II : Droits patrimoniaux

Article L122-6

(Loi nº 94-361 du 10 mai 1994 art. 4 Journal Officiel du 11 mai 1994)

Sous réserve des dispositions de l'article L. 122-6-1, le droit d'exploitation appartenant à l'auteur d'un logiciel comprend le droit d'effectuer et d'autoriser :
1º La reproduction permanente ou provisoire d'un logiciel en tout ou partie par tout moyen et sous toute forme. Dans la mesure où le chargement, l'affichage, l'exécution, la transmission ou le stockage de ce logiciel nécessitent une reproduction, ces actes ne sont possibles qu'avec l'autorisation de l'auteur ;
2º La traduction, l'adaptation, l'arrangement ou toute autre modification d'un logiciel et la reproduction du logiciel en résultant ;
3º La mise sur le marché à titre onéreux ou gratuit, y compris la location, du ou des exemplaires d'un logiciel par tout procédé. Toutefois, la première vente d'un exemplaire d'un logiciel dans le territoire d'un État membre de la Communauté européenne ou d'un État partie à l'accord sur l'Espace économique européen par l'auteur ou avec son consentement épuise le droit de mise sur le marché de cet exemplaire dans tous les États membres à l'exception du droit d'autoriser la location ultérieure d'un exemplaire.


Article L122-6-1

(inséré par Loi nº 94-361 du 10 mai 1994 art. 5 I Journal Officiel du 11 mai 1994)

I. Les actes prévus aux 1º et 2º de l'article L. 122-6 ne sont pas soumis à l'autorisation de l'auteur lorsqu'ils sont nécessaires pour permettre l'utilisation du logiciel, conformément à sa destination, par la personne ayant le droit de l'utiliser, y compris pour corriger des erreurs.
Toutefois, l'auteur est habilité à se réserver par contrat le droit de corriger les erreurs et de déterminer les modalités particulières auxquelles seront soumis les actes prévus aux 1º et 2º de l'article L. 122-6, nécessaires pour permettre l'utilisation du logiciel, conformément à sa destination, par la personne ayant le droit de l'utiliser.
II. La personne ayant le droit d'utiliser le logiciel peut faire une copie de sauvegarde lorsque celle-ci est nécessaire pour préserver l'utilisation du logiciel.
III. La personne ayant le droit d'utiliser le logiciel peut sans l'autorisation de l'auteur observer, étudier ou tester le fonctionnement de ce logiciel afin de déterminer les idées et principes qui sont à la base de n'importe quel élément du logiciel lorsqu'elle effectue toute opération de chargement, d'affichage, d'exécution, de transmission ou de stockage du logiciel qu'elle est en droit d'effectuer.
IV. La reproduction du code du logiciel ou la traduction de la forme de ce code n'est pas soumise à l'autorisation de l'auteur lorsque la reproduction ou la traduction au sens du 1º ou du 2º de l'article L. 122-6 est indispensable pour obtenir les informations nécessaires à l'interopérabilité d'un logiciel créé de façon indépendante avec d'autres logiciels, sous réserve que soient réunies les conditions suivantes :
1º Ces actes sont accomplis par la personne ayant le droit d'utiliser un exemplaire du logiciel ou pour son compte par une personne habilitée à cette fin ;
2º Les informations nécessaires à l'interopérabilité n'ont pas déjà été rendues facilement et rapidement accessibles aux personnes mentionnées au 1º ci-dessus ;
3º Et ces actes sont limités aux parties du logiciel d'origine nécessaires à cette interopérabilité.
Les informations ainsi obtenues ne peuvent être :
1º Ni utilisées à des fins autres que la réalisation de l'interopérabilité du logiciel créé de façon indépendante ;
2º Ni communiquées à des tiers sauf si cela est nécessaire à l'interopérabilité du logiciel créé de façon indépendante ;
3º Ni utilisées pour la mise au point, la production ou la commercialisation d'un logiciel dont l'expression est substantiellement similaire ou pour tout autre acte portant atteinte au droit d'auteur.
V. Le présent article ne saurait être interprété comme permettant de porter atteinte à l'exploitation normale du logiciel ou de causer un préjudice injustifié aux intérêts légitimes de l'auteur.
Toute stipulation contraire aux dispositions prévues aux II, III et IV du présent article est nulle et non avenue.

Voir aussi

Wiktprintable without text.svg

Voir « décompilateur » sur le Wiktionnaire.

Liens externes

  • (en) The DeCompilation Wiki - Un site de référence (sous forme de Wiki) sur la question de la décompilation : histoire, recherche, décompilateurs existants, etc.
  • Portail de la programmation informatique Portail de la programmation informatique
Ce document provient de « D%C3%A9compilateur ».

Wikimedia Foundation. 2010.

Contenu soumis à la licence CC-BY-SA. Source : Article Décompilation de Wikipédia en français (auteurs)

Игры ⚽ Поможем написать реферат

Regardez d'autres dictionnaires:

  • decompilation — dekompiliavimas statusas T sritis informatika apibrėžtis Sukompiliuoto kodo pavertimas ↑pirminiu tekstu (1). Paprastai apsiribojama tuo, kad dekompiliuotas tekstas būtų tik artimas tam, kuris buvo prieš kompiliavimą, nes gauti tikslų tekstą,… …   Enciklopedinis kompiuterijos žodynas

  • decompilation — noun a) The act, or the result of decompiling b) The output of a decompiler …   Wiktionary

  • décompilation — ● n. f. ►DEBUG Action consistant à décompiler un programme. C est une rétrotechnique: à partir du code binaire, on cherche à obtenir le code source …   Dictionnaire d'informatique francophone

  • Decompiler — A decompiler is the name given to a computer program that performs, as far as possible, the reverse operation to that of a compiler. That is, it translates a file containing information at a relatively low level of abstraction (usually designed… …   Wikipedia

  • Decompilateur — Décompilateur  Ne pas confondre avec un désassembleur, qui permet de traduire du code machine en langage d assemblage. Un décompilateur est un outil servant à reconstituer, partiellement ou totalement, le code source d’un logiciel à partir… …   Wikipédia en Français

  • Décompilateur —  Ne pas confondre avec un désassembleur, qui permet de traduire du code machine en langage d assemblage. Un décompilateur est un outil servant à reconstituer, partiellement ou totalement, le code source d’un logiciel à partir d’un programme… …   Wikipédia en Français

  • Copyright law of the United Kingdom — The modern concept of copyright originated in the United Kingdom, in the year 1710, with the Statute of Anne. The current copyright law of the United Kingdom is to be found in the Copyright, Designs and Patents Act 1988 (the 1988 Act), as amended …   Wikipedia

  • Dekompilieren — Der Begriff Dekompilierer oder englisch Decompiler bezeichnet ein Computerprogramm, das aus den Datenbytes der Maschinensprache oder manchmal auch aus Daten im Objektcode wieder lesbaren Quellcode in einer Hochsprache erzeugt. Seine Arbeitsweise… …   Deutsch Wikipedia

  • Source code — For the 2011 film, see Source Code. Not to be confused with source coding. An illustration of Java source code with prologue comments indicated in red, inline comments indicated in green, and program code indicated in blue In computer science,… …   Wikipedia

  • PCBoard Programming Executable — PCBoard Programming Executables (known as PPEs) were used to modify and enhance bulletin board systems running PCBoard. They were programmed in PCBoard Programming Language (PPL). PPL itself is a lot like the BASIC programming language, but… …   Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”