SlideShare une entreprise Scribd logo
1  sur  21
PROG5 - Projet
ANNÉE 2022-2023
GROUPE 13 :
• BENTAZI bouchra
• EL BAHARAOUI boutaina
• ALSABR Ibrahim
• PIQUERET Vassili
• Zouine Sanaa
• Djaghloul ayoub
sommaire
• Présentation générale du projet
• Première phase
• Deuxième phase
• Problématique
• Conclusion
Présentation générale du projet
• INTRODUCTION
• LE BUT DU PROJET
Introduction
• La compilation et l'édition de liens sont deux étapes importantes dans le processus de création
d'un programme exécutable à partir de code source .
• La compilation consiste à traduire le code source en un code binaire compréhensible par la
machine. Cette étape est réalisée par le compilateur. Une fois le code source compilé, l'édition
de liens (ou "linking" en anglais) consiste à combiner les différents fichiers binaires générés par
le compilateur en un seul fichier exécutable et résout les références entre les différentes
parties du programme .
• La réimplantation, quant à elle, est le processus de modification de la structure de code d'un
programme ou d'un système pour en améliorer les performances, la lisibilité ou la
maintenabilité. Elle peut être utilisée pour réorganiser le code, supprimer des inefficacités ou
encore ajouter de nouvelles fonctionnalités.
Voici quelques exemples d'édition de liens :
 Correction d'erreurs :
si un programme contient une référence à
une variable qui n'existe pas, l'édition de liens
peut être utilisée pour mettre à jour le lien
afin de référencer une variable existante.
 Mise à jour de programmes ou de systèmes:
lorsqu'un programme ou un système est
mis à jour, il peut être nécessaire de modifier
les liens vers des fonctions ou des objets qui
ont été modifiés ou supprimés dans la
nouvelle version,
 Ajout de nouvelles fonctionnalités :
pour ajouter de nouvelles fonctionnalités à
un programme ou à un système, il peut être
nécessaire de créer de nouveaux liens vers des
fonctions ou des objets définis dans le
nouveau code.
Voici quelques exemples de réimplantation:
 Regroupement de fonctions ou de variables liées dans
des modules ou des fichiers séparés :
En regroupant les fonctions et les variables qui ont un
lien logique entre elles, il est possible de rendre le code
plus lisible et plus facile à maintenir.
 Suppression de code inutile ou redondant :
En enlevant du code qui n'est plus utilisé ou qui est
redondant, il est possible d'améliorer les performances
du programme ou du système et de rendre le code plus
facile à comprendre.
PS:
• La réimplantation peut être réalisée à n'importe quelle étape
du développement d'un programme ou d'un système, et n'a
pas nécessairement besoin d'être liée à l'édition de liens.
• Il est toutefois possible que la réimplantation d'un programme
ou d'un système entraîne des modifications qui nécessitent
une édition de liens ultérieure.
But du projet
• Un projet sur l'édition de liens et la réimplantation pourrait consister en l'analyse d'un
programme ou d'un système existant, l’identification de problèmes ou d'opportunités
d'amélioration, et la mise en œuvre de modifications pour résoudre ces problèmes ou ajouter
de nouvelles fonctionnalités.
• Le but du projet est de mettre en place une partie d'un éditeur de liens, pour des
fichiers ELF-32 bits plus précisément la phase de fusion qui est effectuée par l'éditeur
de liens. Le projet est organisé en étapes et comprend la programmation de divers
outils intermédiaires pour mieux comprendre les concepts clés et faciliter la répartition
des tâches.
Les fichiers ELF
• ELF (Exécutable and Linking Format) est un format de fichier binaire développé
par l’USL (Unix System Laboratories) . il contient du code exécutable et les
donnes nécessaires pour exécuter un programme. Chaque fichier ELF
commence par un en-tête suivi d'une section de données et de références. Ce
format est flexible dans la conception et n'est pas limité à une architecture ou
un processeur particulier.
Structure d’un Fichier ELF
Program header table
ELF header
.text
.rodata
Section header table
.data
....
Phase
ETAPE 1 : AFFICHAGE
DE L’EN-TÊTE
ETAPE 2: AFFICHAGE
DE LA TABLE DES
SECTIONS
Etape 3 : : Affichage du contenu d’une section
Ici on a mis les adresses pour chaque ligne au début de chaque ligne
et on avance avec 16 octets donc 16 en décimale
(address += 16  pour chaque ligne) et après il va afficher le contenu en
HEXA et a la fin il va afficher le contenu en ASCII .
Etape 4 : Affichage de la table des symboles
Etape 5 : Affichage des tables de réimplantation
• L'affichage des tables de réimplantation est généralement utilisé pour visualiser les relations
entre les sections d'un programme exécutable.
• Les tables de réimplantation sont des structures de données qui permettent de connecter
les sections d'un programme exécutable à leurs positions relatives dans la mémoire.
Extrait de l’automatisation de test
Phase
ETAPE 6
FUSION ET RENUMÉROTATION DES SECTIONS
Dans cette étape on a afficher les sections du deuxième fichier en avant et dans notre
parcours d'affichage si on trouve une section présente dans le premier fichier (le même
nom a l’aide du fonction qui rechercher les sections par nom) on va faire la somme des
tailles des deux sections (size) . par rapport l’offset les résultats sont faux car on est
besoin de créer un buffer qui stocke ces sections pour arriver a des résultats justes.
Et après on va afficher le reste des sections depuis le premier fichier (les sections qui
n'ont pas présentes dans le deuxième).
L’affichage de l’exécution :
Problématique
Conclusion
MERCI POUR VOTRE ATTENTION

Contenu connexe

Similaire à projet_prog5.pptx

PowerShell - Retours d'expériences
PowerShell - Retours d'expériencesPowerShell - Retours d'expériences
PowerShell - Retours d'expériencesRan Mellul
 
X-Analysis Professional - FR
X-Analysis Professional - FRX-Analysis Professional - FR
X-Analysis Professional - FRFresche Solutions
 
Tp3 - Application SOA avec BPEL
Tp3 - Application SOA avec BPELTp3 - Application SOA avec BPEL
Tp3 - Application SOA avec BPELLilia Sfaxi
 
#J2Code2018 - Mettez du feu à vos applications avec CodeIgniter
#J2Code2018 - Mettez du feu à vos applications avec CodeIgniter#J2Code2018 - Mettez du feu à vos applications avec CodeIgniter
#J2Code2018 - Mettez du feu à vos applications avec CodeIgniterAtsé François-Xavier KOBON
 
Développement de plug in sous eclipse
Développement de plug in sous eclipseDéveloppement de plug in sous eclipse
Développement de plug in sous eclipseISIG
 
X-Analysis Professional - version française
X-Analysis Professional - version françaiseX-Analysis Professional - version française
X-Analysis Professional - version françaiseFresche Solutions
 
Chapitre 0_ Introduction à la compilation.pdf
Chapitre 0_ Introduction à la compilation.pdfChapitre 0_ Introduction à la compilation.pdf
Chapitre 0_ Introduction à la compilation.pdfbenfifiaymen36
 
Introduction au Génie Logiciel
Introduction au Génie LogicielIntroduction au Génie Logiciel
Introduction au Génie Logicielguest0032c8
 
Dodi_Mbuta_La création d'un web service : « Note Reminder » _ Dodi Mbuta
Dodi_Mbuta_La création d'un web service : « Note Reminder » _ Dodi MbutaDodi_Mbuta_La création d'un web service : « Note Reminder » _ Dodi Mbuta
Dodi_Mbuta_La création d'un web service : « Note Reminder » _ Dodi MbutaDaniella Mbuta
 
Concept de l’Intégration Continue
Concept de l’Intégration ContinueConcept de l’Intégration Continue
Concept de l’Intégration ContinueFrédéric Sagez
 
Composer FeatureIDE for Sequence diagrams
Composer FeatureIDE for Sequence diagrams Composer FeatureIDE for Sequence diagrams
Composer FeatureIDE for Sequence diagrams Oussema ElAbed
 
Qualité Logiciel - Outils Open Source pour Java et Web
Qualité Logiciel - Outils Open Source pour Java et WebQualité Logiciel - Outils Open Source pour Java et Web
Qualité Logiciel - Outils Open Source pour Java et WebChristophe Rochefolle
 

Similaire à projet_prog5.pptx (20)

X-Audit - FR
X-Audit - FRX-Audit - FR
X-Audit - FR
 
PowerShell - Retours d'expériences
PowerShell - Retours d'expériencesPowerShell - Retours d'expériences
PowerShell - Retours d'expériences
 
X-Analysis Professional - FR
X-Analysis Professional - FRX-Analysis Professional - FR
X-Analysis Professional - FR
 
Tp3 - Application SOA avec BPEL
Tp3 - Application SOA avec BPELTp3 - Application SOA avec BPEL
Tp3 - Application SOA avec BPEL
 
#J2Code2018 - Mettez du feu à vos applications avec CodeIgniter
#J2Code2018 - Mettez du feu à vos applications avec CodeIgniter#J2Code2018 - Mettez du feu à vos applications avec CodeIgniter
#J2Code2018 - Mettez du feu à vos applications avec CodeIgniter
 
Développement de plug in sous eclipse
Développement de plug in sous eclipseDéveloppement de plug in sous eclipse
Développement de plug in sous eclipse
 
X-Analysis Professional - version française
X-Analysis Professional - version françaiseX-Analysis Professional - version française
X-Analysis Professional - version française
 
Chapitre 0_ Introduction à la compilation.pdf
Chapitre 0_ Introduction à la compilation.pdfChapitre 0_ Introduction à la compilation.pdf
Chapitre 0_ Introduction à la compilation.pdf
 
Chapitre 1
Chapitre 1Chapitre 1
Chapitre 1
 
Etude des Frameworks PHP
Etude des Frameworks PHPEtude des Frameworks PHP
Etude des Frameworks PHP
 
Introduction au Génie Logiciel
Introduction au Génie LogicielIntroduction au Génie Logiciel
Introduction au Génie Logiciel
 
Architecture .net
Architecture  .netArchitecture  .net
Architecture .net
 
Dodi_Mbuta_La création d'un web service : « Note Reminder » _ Dodi Mbuta
Dodi_Mbuta_La création d'un web service : « Note Reminder » _ Dodi MbutaDodi_Mbuta_La création d'un web service : « Note Reminder » _ Dodi Mbuta
Dodi_Mbuta_La création d'un web service : « Note Reminder » _ Dodi Mbuta
 
Ch1-Généralités.pdf
Ch1-Généralités.pdfCh1-Généralités.pdf
Ch1-Généralités.pdf
 
Concept de l’Intégration Continue
Concept de l’Intégration ContinueConcept de l’Intégration Continue
Concept de l’Intégration Continue
 
Composer FeatureIDE for Sequence diagrams
Composer FeatureIDE for Sequence diagrams Composer FeatureIDE for Sequence diagrams
Composer FeatureIDE for Sequence diagrams
 
Qualité Logiciel - Outils Open Source pour Java et Web
Qualité Logiciel - Outils Open Source pour Java et WebQualité Logiciel - Outils Open Source pour Java et Web
Qualité Logiciel - Outils Open Source pour Java et Web
 
Catalogue PFE 2019
Catalogue PFE 2019Catalogue PFE 2019
Catalogue PFE 2019
 
Sonar-Hodson-Maven
Sonar-Hodson-MavenSonar-Hodson-Maven
Sonar-Hodson-Maven
 
040401+seminar+gelo+diro.ppt
040401+seminar+gelo+diro.ppt040401+seminar+gelo+diro.ppt
040401+seminar+gelo+diro.ppt
 

Dernier

Cours-de-Ponts Cours de Ponts Principes généraux - Conception Méthodes de con...
Cours-de-Ponts Cours de Ponts Principes généraux - Conception Méthodes de con...Cours-de-Ponts Cours de Ponts Principes généraux - Conception Méthodes de con...
Cours-de-Ponts Cours de Ponts Principes généraux - Conception Méthodes de con...maach1
 
Câblage, installation et paramétrage d’un réseau informatique.pdf
Câblage, installation et paramétrage d’un réseau informatique.pdfCâblage, installation et paramétrage d’un réseau informatique.pdf
Câblage, installation et paramétrage d’un réseau informatique.pdfmia884611
 
CHAPITRE 2 VARIABLE ALEATOIRE probabilité.ppt
CHAPITRE 2 VARIABLE ALEATOIRE probabilité.pptCHAPITRE 2 VARIABLE ALEATOIRE probabilité.ppt
CHAPITRE 2 VARIABLE ALEATOIRE probabilité.pptbentaha1011
 
présentation sur la logistique (4).
présentation     sur la  logistique (4).présentation     sur la  logistique (4).
présentation sur la logistique (4).FatimaEzzahra753100
 
Actions du vent sur les bâtiments selon lEurocode 1 – Partie 1-4.pdf
Actions du vent sur les bâtiments selon lEurocode 1 – Partie 1-4.pdfActions du vent sur les bâtiments selon lEurocode 1 – Partie 1-4.pdf
Actions du vent sur les bâtiments selon lEurocode 1 – Partie 1-4.pdfalainfahed961
 
SciencesPo_Aix_InnovationPédagogique_Atelier_APC.pdf
SciencesPo_Aix_InnovationPédagogique_Atelier_APC.pdfSciencesPo_Aix_InnovationPédagogique_Atelier_APC.pdf
SciencesPo_Aix_InnovationPédagogique_Atelier_APC.pdfSKennel
 

Dernier (8)

Cours-de-Ponts Cours de Ponts Principes généraux - Conception Méthodes de con...
Cours-de-Ponts Cours de Ponts Principes généraux - Conception Méthodes de con...Cours-de-Ponts Cours de Ponts Principes généraux - Conception Méthodes de con...
Cours-de-Ponts Cours de Ponts Principes généraux - Conception Méthodes de con...
 
CAP2ER_GC_Presentation_Outil_20240422.pptx
CAP2ER_GC_Presentation_Outil_20240422.pptxCAP2ER_GC_Presentation_Outil_20240422.pptx
CAP2ER_GC_Presentation_Outil_20240422.pptx
 
Câblage, installation et paramétrage d’un réseau informatique.pdf
Câblage, installation et paramétrage d’un réseau informatique.pdfCâblage, installation et paramétrage d’un réseau informatique.pdf
Câblage, installation et paramétrage d’un réseau informatique.pdf
 
CHAPITRE 2 VARIABLE ALEATOIRE probabilité.ppt
CHAPITRE 2 VARIABLE ALEATOIRE probabilité.pptCHAPITRE 2 VARIABLE ALEATOIRE probabilité.ppt
CHAPITRE 2 VARIABLE ALEATOIRE probabilité.ppt
 
présentation sur la logistique (4).
présentation     sur la  logistique (4).présentation     sur la  logistique (4).
présentation sur la logistique (4).
 
Note agro-climatique n°2 - 17 Avril 2024
Note agro-climatique n°2 - 17 Avril 2024Note agro-climatique n°2 - 17 Avril 2024
Note agro-climatique n°2 - 17 Avril 2024
 
Actions du vent sur les bâtiments selon lEurocode 1 – Partie 1-4.pdf
Actions du vent sur les bâtiments selon lEurocode 1 – Partie 1-4.pdfActions du vent sur les bâtiments selon lEurocode 1 – Partie 1-4.pdf
Actions du vent sur les bâtiments selon lEurocode 1 – Partie 1-4.pdf
 
SciencesPo_Aix_InnovationPédagogique_Atelier_APC.pdf
SciencesPo_Aix_InnovationPédagogique_Atelier_APC.pdfSciencesPo_Aix_InnovationPédagogique_Atelier_APC.pdf
SciencesPo_Aix_InnovationPédagogique_Atelier_APC.pdf
 

projet_prog5.pptx

  • 1. PROG5 - Projet ANNÉE 2022-2023 GROUPE 13 : • BENTAZI bouchra • EL BAHARAOUI boutaina • ALSABR Ibrahim • PIQUERET Vassili • Zouine Sanaa • Djaghloul ayoub
  • 2. sommaire • Présentation générale du projet • Première phase • Deuxième phase • Problématique • Conclusion
  • 3. Présentation générale du projet • INTRODUCTION • LE BUT DU PROJET
  • 4. Introduction • La compilation et l'édition de liens sont deux étapes importantes dans le processus de création d'un programme exécutable à partir de code source . • La compilation consiste à traduire le code source en un code binaire compréhensible par la machine. Cette étape est réalisée par le compilateur. Une fois le code source compilé, l'édition de liens (ou "linking" en anglais) consiste à combiner les différents fichiers binaires générés par le compilateur en un seul fichier exécutable et résout les références entre les différentes parties du programme . • La réimplantation, quant à elle, est le processus de modification de la structure de code d'un programme ou d'un système pour en améliorer les performances, la lisibilité ou la maintenabilité. Elle peut être utilisée pour réorganiser le code, supprimer des inefficacités ou encore ajouter de nouvelles fonctionnalités.
  • 5. Voici quelques exemples d'édition de liens :  Correction d'erreurs : si un programme contient une référence à une variable qui n'existe pas, l'édition de liens peut être utilisée pour mettre à jour le lien afin de référencer une variable existante.  Mise à jour de programmes ou de systèmes: lorsqu'un programme ou un système est mis à jour, il peut être nécessaire de modifier les liens vers des fonctions ou des objets qui ont été modifiés ou supprimés dans la nouvelle version,  Ajout de nouvelles fonctionnalités : pour ajouter de nouvelles fonctionnalités à un programme ou à un système, il peut être nécessaire de créer de nouveaux liens vers des fonctions ou des objets définis dans le nouveau code. Voici quelques exemples de réimplantation:  Regroupement de fonctions ou de variables liées dans des modules ou des fichiers séparés : En regroupant les fonctions et les variables qui ont un lien logique entre elles, il est possible de rendre le code plus lisible et plus facile à maintenir.  Suppression de code inutile ou redondant : En enlevant du code qui n'est plus utilisé ou qui est redondant, il est possible d'améliorer les performances du programme ou du système et de rendre le code plus facile à comprendre. PS: • La réimplantation peut être réalisée à n'importe quelle étape du développement d'un programme ou d'un système, et n'a pas nécessairement besoin d'être liée à l'édition de liens. • Il est toutefois possible que la réimplantation d'un programme ou d'un système entraîne des modifications qui nécessitent une édition de liens ultérieure.
  • 6. But du projet • Un projet sur l'édition de liens et la réimplantation pourrait consister en l'analyse d'un programme ou d'un système existant, l’identification de problèmes ou d'opportunités d'amélioration, et la mise en œuvre de modifications pour résoudre ces problèmes ou ajouter de nouvelles fonctionnalités. • Le but du projet est de mettre en place une partie d'un éditeur de liens, pour des fichiers ELF-32 bits plus précisément la phase de fusion qui est effectuée par l'éditeur de liens. Le projet est organisé en étapes et comprend la programmation de divers outils intermédiaires pour mieux comprendre les concepts clés et faciliter la répartition des tâches.
  • 7. Les fichiers ELF • ELF (Exécutable and Linking Format) est un format de fichier binaire développé par l’USL (Unix System Laboratories) . il contient du code exécutable et les donnes nécessaires pour exécuter un programme. Chaque fichier ELF commence par un en-tête suivi d'une section de données et de références. Ce format est flexible dans la conception et n'est pas limité à une architecture ou un processeur particulier.
  • 8. Structure d’un Fichier ELF Program header table ELF header .text .rodata Section header table .data ....
  • 10. ETAPE 1 : AFFICHAGE DE L’EN-TÊTE
  • 11. ETAPE 2: AFFICHAGE DE LA TABLE DES SECTIONS
  • 12. Etape 3 : : Affichage du contenu d’une section Ici on a mis les adresses pour chaque ligne au début de chaque ligne et on avance avec 16 octets donc 16 en décimale (address += 16  pour chaque ligne) et après il va afficher le contenu en HEXA et a la fin il va afficher le contenu en ASCII .
  • 13. Etape 4 : Affichage de la table des symboles
  • 14. Etape 5 : Affichage des tables de réimplantation • L'affichage des tables de réimplantation est généralement utilisé pour visualiser les relations entre les sections d'un programme exécutable. • Les tables de réimplantation sont des structures de données qui permettent de connecter les sections d'un programme exécutable à leurs positions relatives dans la mémoire.
  • 16. Phase
  • 17. ETAPE 6 FUSION ET RENUMÉROTATION DES SECTIONS
  • 18. Dans cette étape on a afficher les sections du deuxième fichier en avant et dans notre parcours d'affichage si on trouve une section présente dans le premier fichier (le même nom a l’aide du fonction qui rechercher les sections par nom) on va faire la somme des tailles des deux sections (size) . par rapport l’offset les résultats sont faux car on est besoin de créer un buffer qui stocke ces sections pour arriver a des résultats justes. Et après on va afficher le reste des sections depuis le premier fichier (les sections qui n'ont pas présentes dans le deuxième). L’affichage de l’exécution :
  • 21. MERCI POUR VOTRE ATTENTION