Précédent   Forum FS Generation > Futura-Techno : les forums de l'informatique et des technologies > Informatique > Logiciel - Software - Open Source
Mot de passe oublié ? Inscrivez-vous !


Réponse
 
Outils de la discussion Modes d'affichage
Vieux 20/06/2008, 19h56   #1
 
Date d'inscription: mars 2007
Âge: 19
Messages: 143
Lightbulb dlls + exe => exe (unique)

Bonsoir a tous!
j'ai une question
Est il possible de rassembler en un bloc une application ??
je m'explique pour firefox par exemple, il y a firefox.exe + les dll + pleins d'autres trucs et je voudrais savoir s'il est possible de "compresser le tout" dans une unique application ou executable (je ne parle pas de .zip ou .rar ni d'autoexecutable) mais de rassembler le tout en un unique executable qui lancerait le programme normalement.
Je vous remercie
Memnon est déconnecté   Réponse avec citation
Alt Aujourd'hui
Publicité

Beitrag Liens sponsorisés

   
Vieux 21/06/2008, 10h21   #2
 
Date d'inscription: juillet 2005
Localisation: Liège -Belgique
Âge: 58
Messages: 161
Re : dlls + exe => exe (unique)

Bonjour Memnom,
Ta question est pour le moins saugrenue. En effet, lorsque les auteurs de logiciels écrivent leurs programmes, c'est avec l'idée de pouvoir continuer à le développer le plus facilement possible.
Pour ce faire, ils morcèlent leurs paquets de lignes de code (des centaines de milliers !) en plusieurs blocs qui auront des extentions particulières qui aideront à reconnaître les types de "paquets".
Chaque "paquet" sera un ensemble d'outils spécifiques à une action ou un groupe d'actions. La mise à niveau d'un tel groupe d'action sera aisée puisqu'il y a relativement peu de lignes de code à modifier.
Si un programme était écrit en un seul "paquet", je te laisse imaginer les problèmes pour retrouver une partie du code et la modifier.

Cette manière de programmer permet également de créer des programmes qui peuvent tournenr sur différentes configurations matérielles simplement en allant chercher le/les "paquets" indispensables et en omettant d'installer les autres. c'est autant de pace gagnée sur le disque dur de l'utilisateur.

Pour répondre à ta question : sauf si tu as le code source, c'est-à-dire le listing complet qu'a écrit le créateur du programme, il t'est impossible de recréer un programme contenant tous les fichiers annexes nécessaires à son bon fonctionnement.

Si un langage comme le C, mais bien d'autres également, ont développé des méthodes de codages dites "orientée objet", c'est justement pour faciliter le travail de codage mais aussi celui de la maintenance et de la mise à niveau des logiciels. Il est plus aisé de s'y retrouver dans dix "petits" programmes que dans un seul énorme.

A+
__________________
Cogito ergo sum !
Papy Octet est déconnecté   Réponse avec citation
Vieux 21/06/2008, 14h35   #3
 
Date d'inscription: mars 2006
Âge: 62
Messages: 642
Re : dlls + exe => exe (unique)

Bonjour,

J'imagine que la question avait un but pratique par exemple pour une sauvegarde de programme. Comment s'assurer qu'on a pas oublié une dll dans un coin perdu!
__________________
Les rides sont faites d'atomes pour qui le temps n'existe pas.
alovesupreme est déconnecté   Réponse avec citation
Vieux 21/06/2008, 20h01   #4
 
Date d'inscription: juillet 2005
Localisation: Liège -Belgique
Âge: 58
Messages: 161
Re : dlls + exe => exe (unique)

Bonne question, je vous remercie de l'avoir posée.

Mais aussi comment savoir quels sont les fichiers inscrits sur le disque dur lors de l'installation d'un programme et comment savoir quelles dll ont été modifiées ?

Là, c'est la boite à malices !
__________________
Cogito ergo sum !
Papy Octet est déconnecté   Réponse avec citation
Vieux 23/06/2008, 11h42   #5
 
Date d'inscription: mars 2007
Âge: 19
Messages: 143
Re : dlls + exe => exe (unique)

Bonjour a tous!
Merci pour tes explications Papy Octet.
Wii c'est d'ordre pratique, c'est pour avoir tout dans un seul endroit. Donc, si j'ai bien compris, il est impossible de tout rassembler sauf si j'ai les codes sources...j'avais penser à une double compilation... la premiere faite par les programmeurs, avec des fichiers morcelés puis une autre au dessus pour rassembler tout ça.
Memnon est déconnecté   Réponse avec citation
Vieux 23/06/2008, 19h35   #6
 
Date d'inscription: janvier 2008
Messages: 910
Re : dlls + exe => exe (unique)

Citation:
Pour répondre à ta question : sauf si tu as le code source, c'est-à-dire le listing complet qu'a écrit le créateur du programme, il t'est impossible de recréer un programme contenant tous les fichiers annexes nécessaires à son bon fonctionnement.
Si c'est possible, et heureusement. Sinon comment ferait le système d'exploitation pour tout charger en mémoire et mapper les bonnes adresses des DLL ?

Après ce n'est clairement pas une opération triviale. La maniere de le faire que je vois (sans réfléchir à la propreté) :
- parcourir la table d'import de l'executable pour rechercher les DLLS.
- faire un bete copier / coller des dll dans des nouvelles sections de l'executable (1 section = 1DLL)
- développer un code qui hook le chargement de DLL, et qui au lieu de demander à windows de charger la DLL XXX s'occupe de la récupérer dans la bonne section, la mappe en mémoire et la patch à chaud pour corriger les adresses.

Ca pourrait être un petit projet bien fun, je vais garder ca dans un coin de ma tête

Sinon l'un des gros interet des DLL, c'est de ne pas avoir le meme code chargé 36000x en mémoire : chaque DLL est chargée une seule fois en mémoire. Si un composant veut par exemple afficher une page html en utilisant le moteur de rendu de IE, il ne va pas charger IE.dll (ou quelque soit son nom) si celui-ci est déjà en mémoire (ce qui est souvent le cas )
__________________
The only limiting factor of the Linux operating system, is his user. - Linus Torvalds
Towl est déconnecté   Réponse avec citation
Vieux 24/06/2008, 20h54   #7
 
Date d'inscription: mars 2007
Âge: 19
Messages: 143
Re : dlls + exe => exe (unique)

et c'est quoi le code?? Il est en quoi??java, C, C++...?
Memnon est déconnecté   Réponse avec citation
Vieux 24/06/2008, 22h13   #8
 
Date d'inscription: janvier 2008
Messages: 910
Re : dlls + exe => exe (unique)

Euh, je comprend pas ta question la.
Le code de quoi ?
__________________
The only limiting factor of the Linux operating system, is his user. - Linus Torvalds
Towl est déconnecté   Réponse avec citation
Vieux 25/06/2008, 20h32   #9
 
Date d'inscription: mars 2007
Âge: 19
Messages: 143
Re : dlls + exe => exe (unique)

Citation:
Envoyé par Towl Voir le message
développer un code qui hook le chargement de DLL, et qui au lieu de demander à windows de charger la DLL XXX s'occupe de la récupérer dans la bonne section, la mappe en mémoire et la patch à chaud pour corriger les adresses.
ce code la

Dernière modification par yoda1234 ; 26/06/2008 à 07h21. Motif: Réparation balise Quote
Memnon est déconnecté   Réponse avec citation
Vieux 25/06/2008, 21h10   #10
 
Date d'inscription: janvier 2008
Messages: 910
Re : dlls + exe => exe (unique)

Citation:
java, C, C++...?
Aucun de ceux la en assembleur, avec possibilité d'écrire quelques bout de code en C
__________________
The only limiting factor of the Linux operating system, is his user. - Linus Torvalds
Towl est déconnecté   Réponse avec citation
Vieux 27/06/2008, 11h38   #11
 
Date d'inscription: mars 2007
Âge: 19
Messages: 143
Re : dlls + exe => exe (unique)

ah...
en effet la je ne sais vraiment pas faire...
On fait comment??
Memnon est déconnecté   Réponse avec citation
Vieux 27/06/2008, 18h16   #12
 
Date d'inscription: janvier 2008
Messages: 910
Re : dlls + exe => exe (unique)

Hum... honnêtement ? pas facile.

Faut avoir de bonnes connaissances du C coté programmation systeme, bien connaitre le fonctionnement de l'OS (chargement de dlls, format de l'executable), avoir une de bonnes notions de l'assembleur x86...

Et puis faut beaucoup lire les articles liés à ce sujets, lire les codes correspondant (ne pas avoir peur de lire les blogs chinois, on comprends rien à ce qu'ils disent, mais leur code est tres propre et compréhensible)..

Bref, ca se fait pas comme ca du jour au lendemain
__________________
The only limiting factor of the Linux operating system, is his user. - Linus Torvalds
Towl est déconnecté   Réponse avec citation
Vieux 27/06/2008, 18h52   #13
 
Date d'inscription: mars 2007
Âge: 19
Messages: 143
Re : dlls + exe => exe (unique)

Citation:
Envoyé par Towl Voir le message
Hum... honnêtement ? pas facile.

Faut avoir de bonnes connaissances du C coté programmation systeme, bien connaitre le fonctionnement de l'OS (chargement de dlls, format de l'executable), avoir une de bonnes notions de l'assembleur x86...

Et puis faut beaucoup lire les articles liés à ce sujets, lire les codes correspondant (ne pas avoir peur de lire les blogs chinois, on comprends rien à ce qu'ils disent, mais leur code est tres propre et compréhensible)..

Bref, ca se fait pas comme ca du jour au lendemain
J'ai quelques connaissances en C mais le reste... bon je pense que c'est hors de portée pour moi pour le moment

Merci de m'avoir répondu
Memnon est déconnecté   Réponse avec citation
Vieux 27/06/2008, 23h31   #14
 
Date d'inscription: mars 2006
Âge: 62
Messages: 642
Re : dlls + exe => exe (unique)

Bonsoir,

Par curiosité, quand on lance un exe comment trouve t il l'emplacement des dll sur le disque (on a pu défragmenter donc changé les emplacements) ? est ce qu'll recherche d'après les noms de dll existant sur le disque?
__________________
Les rides sont faites d'atomes pour qui le temps n'existe pas.
alovesupreme est déconnecté   Réponse avec citation
Vieux 28/06/2008, 00h09   #15
 
Date d'inscription: janvier 2008
Messages: 910
Re : dlls + exe => exe (unique)

Un petit exemple / analyse valant mieux qu'un long discours

En partant du principe que tu as un executable standard (comprendre sans aucune protection ni autre), celui-ci dispose d'une section .rdata contenant une table d'import et une table d'export.
Dans la table d'import, tu as la liste des fonctions externe dont il va avoir besoin, ainsi que le nom de la DLL.
Par ex (voir img), on voit que Putty.exe va importer
- RegCloseKey
- RegCreateKeyA
- RegSetValueExA
- RegOpenKeyA
- RegQueryValueExA
- RegDeleteKeyA
- RegEnumKeyA
Ces fonctions sont incluses dans ADVAPI32.dll

Et la, tu t'aperçois d'une limitation du systeme : la dll est référencée par son nom, pas de n° de version ou autre (d'ou certains problèmes de DLL trop récente / vieille qui pourrissent un systeme en remplacant celles d'origine).

ensuite, la recherche des DLL s'effecture d'abord dans le repertoire de l'executable, ensuite dans %systemroot%\system32, et enfin dans %path% (pas tout a fait sur de l'ordre / inclusion des deux derniers). Donc aucun soucis la dessus en cas de défragmentation
Miniatures attachées
dlls-exe-exe-unique-putty_import_table.jpg  
__________________
The only limiting factor of the Linux operating system, is his user. - Linus Torvalds

Dernière modification par Towl ; 28/06/2008 à 00h12.
Towl est déconnecté   Réponse avec citation
Vieux 30/06/2008, 18h50   #16
 
Date d'inscription: mars 2007
Âge: 19
Messages: 143
Re : dlls + exe => exe (unique)

oula! Ca a l'air compliqué tout ca
Memnon est déconnecté   Réponse avec citation
Vieux 03/07/2008, 17h10   #17
 
Date d'inscription: mars 2007
Âge: 19
Messages: 143
Re : dlls + exe => exe (unique)

Bonjour a tous!
Il n'existe pas un logiciel qui est capable de faire ca??
Memnon est déconnecté   Réponse avec citation
Vieux 03/07/2008, 19h25   #18
 
Date d'inscription: janvier 2008
Messages: 910
Re : dlls + exe => exe (unique)

Pas a ma connaissance. Et ca serait dangereux de toute facon. La dll kernel32.dll (dont quasiment toute appli dépend) est différente sur un Windows XP SP3, SP2, francais, anglais... donc tu ne pourrais utiliser ton programme que sur un PC avec exactement la même conf. Donc pas d'interet
__________________
The only limiting factor of the Linux operating system, is his user. - Linus Torvalds
Towl est déconnecté   Réponse avec citation










Réponse


Tags
exe

Outils de la discussion
Modes d'affichage

Règles de messages
Vous ne pouvez pas créer de nouvelles discussions
Vous ne pouvez pas envoyer des réponses
Vous ne pouvez pas envoyer des pièces jointes
Vous ne pouvez pas modifier vos messages

Les balises BB sont activées : oui
Les smileys sont activés : oui
La balise [IMG] est activée : oui
Le code HTML peut être employé : non
Trackbacks are non
Pingbacks are non
Refbacks are non

Discussions similaires
Discussion Auteur Forum Réponses Dernier message
ntoskrnl.exe richardroy126 Internet - Réseau - Sécurité générale 1 05/04/2007 07h02
Iexplore.exe *VaLeNtInE* Internet - Réseau - Sécurité générale 31 13/04/2006 16h09
Javac.exe vae- Logiciel - Software - Open Source 2 19/09/2005 18h27
wmplayer.exe JP53 Logiciel - Software - Open Source 1 06/10/2004 09h11
wuauclt.exe cyberbozer Logiciel - Software - Open Source 6 26/08/2004 14h30


Les dernières actualités
13/10 17:59 - En bref : les Garriott, astronautes de père en fils
13/10 17:31 - Le Soleil n'est pas rond, la faute à son champ magnétique
13/10 16:53 - En bref : Open Office 3.0 est sorti
13/10 15:36 - Climatiseur solaire : la plus grande installation européenne en Allemagne
13/10 13:33 - Le premier réseau informatique géant avec cryptage quantique
13/10 11:35 - Peut-on déceler en radio les immenses cordes cosmiques ?
13/10 09:37 - Google Lunar X Prize : deux nouvelles équipes dans la course

Fuseau horaire GMT +2. Il est actuellement 05h34.


Édité par : vBulletin®
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd. Tous droits réservés.