Derniers journaux de bmc :
- [03/05@13:39] Faites gaffe à vos sociétés, je fagocite ! (attention, humour)
- [03/05@09:30] Thunderbird et filtre de messages
- [26/04@19:56] Backends de sites d'actu en tout genre
- [29/02@04:42] Beuuuuuuuh
- [18/02@23:28] Debian et XFree 4.3
- [17/12@18:44] Openoffice
- [14/12@12:00] Saddam capturé
- [05/11@22:03] Esound
- [31/10@10:16] Mutt et réponse à un mail sans sujet
- [17/10@15:45] Postfix et relayhost multiple
- [13/10@11:28] Enceintes 2.1
- [02/10@13:32] Cookies
- [26/09@17:22] Pourquoi c'est vert ?
- [25/07@16:41] Postfix TLS relay
- [23/07@23:22] Site d'information synthétique
- [09/06@17:17] TV + portable
- [26/05@16:58] Xgraph et sortie postscript en couleur
- [30/04@08:52] Zsh compctl
- [31/03@16:49] Ordonnanceur 2.5.65 et 2.5.66 tout pas bô
- [28/03@13:13] Police GTK2 sans GNOME2
Journal : Un .exe sous Linux ?
Posté par bmc () le 11 mai 2004C'est confectionné sous Mono. Première fois que je vois un truc en gtk-sharp.
Bon, c'est alors qu'un rapide ps me sort qqs lignes du type :
/usr/bin/mono /usr/share/dotnet/muine/muine.exe
Outre l'utilisation du nom dotnet, qui pourra faire l'objet d'attaques par la suite, l'extension .exe m'a surpris. Unixien de la première heure (hum), je ne me laisse pas impressionner par une extension.
Un petit file plus tard, je deviens encore plus perplexe :
$ file /usr/share/dotnet/muine/muine.exe
/usr/share/dotnet/muine/muine.exe: MS Windows PE 32-bit Intel 80386 console executable
$
La curiosité l'emportant, je vim le bidule, et là, horreur, qu'est-ce que je vois ?
« This program cannot be run in DOS mode. »
Je suis sur le cul. Mono, en fait c'est un bidule qui nous met des .exe ? C'est la fin du ELF ? Merci de bien vouloir m'expliquer.
PS : le meilleur pour la fin :
$ ls /usr/share/dotnet/muine/
AmazonSearchService.dll muine.exe
$
> Lire le journal (12 commentaires, moyenne: 3,6).
Peut etre une piste...
Il me semble que .NET permet de creer des binaires avec le runtime necessaire collé dans le binaire, ou alors un bootstrap binaire pour lancer l'interpreteur/JIT .net... me souviens plus tres bien. En tout cas ca expliquerais pourquoi le tout est dans un PE-i386, y'aurait juste de quoi lancer le JIT sur une section .data avec tout le code IL (Intermediate Language iirc).
-
[^]Re: Peut etre une piste...
Posté par bmc () le 11/05/2004 à 22:32. (lien). Évalué à 4.Heu... c'est intéressant, mais en Français ça donne quoi ? :)
Un PE-i386, c'est quoi ? Un « conteneur » ? C'est un bidule qui enrobe le code lui-même, qui serait dans une section un peu plus loin ? Ils embarquent carrément l'interpréteur dans l'exécutable ?
Ouiiiiiiiiin, j'ai rien capté :)-
[^]Re: Peut etre une piste...
Posté par Wawet76 (page perso, ) le 11/05/2004 à 23:45. (lien). Évalué à 5.Il dit que c'est peut-être comme un .exe auto-extractible que peuvent faire les trucs comme Winzip : ça contient à la fois l'exe de dezip et les données.
Sous Linux, tu peux techniquement decompresser la partie donnée normalement.
-
[^]Re: Peut etre une piste...
Posté par Edouard Gomez (page perso, ) le 12/05/2004 à 07:35. (lien). Évalué à 4.Un PE-i386, c'est quoi ? Un « conteneur » ?
C'est un format de binaire reconnu par les OS win32, en tres gros, PE-i386 est l'equivalent des fichiers ELF sur Linux. Mais tu as bien raison de parler de conteneur, car apres tout un binaire n'est qu'une archive avec plusieurs section ayant chacune leur role (exe, data, ro data, bss etc...). C'est pourquoi je parlais de code IL dans une section .data, qui aurait été passé au JIT par un bout de code placé dans une section exe (une sorte de bootstrap).
Sur un windows, le schema serait le suivant:
1. Win32 charge la partie exe
2. la partie exe charge une section .data ou se trouve le code IL
3. il recherche la presence d'un JIT .net dans la base de registre (supposition)
4. il passe le code IL au JIT et attend patiemment que le JIT lui rende la main.
Un petit peu comme le shebang #!/bin/sh en debut d'un script Bourne Shell.
-
-
[^]Re: Peut etre une piste...
Posté par Ramón Perez (page perso, ) le 11/05/2004 à 22:39. (lien). Évalué à 9.>En tout cas ca expliquerais pourquoi le tout est dans un PE-i386, y'aurait juste de quoi lancer le JIT sur une section .data avec tout le code IL
Comment peux-tu dire de telles choses ici !
Il y a des enfants qui nous lisent, tu sais.-
[^]Re: Peut etre une piste...
Posté par Fabio Parisi (page perso, ) le 11/05/2004 à 22:52. (lien). Évalué à 3.PE-i386 c le format des binaires executables sous Windows, l'equivalent du format ELF sous linux (unix?).
-
Muine
Muine utilise Amazon comme base de données d'info et d'image http://muine.gooeylinux.org/faq.shtml(...)
mauvais idée amha (légal ?) mais probablement très efficace...
-
[^]Re: Muine
Posté par manatane () le 11/05/2004 à 22:56. (lien). Évalué à 2.Amazon comme Google offre une api SOAP pour accéder à leur service, quand à la légalité .... la licence est là : http://associates.amazon.com/exec/panama/associates/join/developer/(...) avec un 3) You may not sell, redistribute, sublicense or transfer all or any portion of the Amazon Properties j'ignore comment celà s'applique...
Compatibilite
Ca ne serait pas, par hasard, pour assurer la compatibilite des binaires avec Windows ?
Ca doit être portable tout ça quand même, si tu fais un binaire qui n'est pas un .exe, Windows aura du mal à le lancer...
-
[^]Re: Compatibilite
Posté par Pascal Terjan (Jabber id, page perso, ) le 12/05/2004 à 07:45. (lien). Évalué à 2.Heu en quoi un executable windows est-il plus portable que de l'ELF ?
-
[^]Re: Compatibilite
Posté par allcolor (Jabber id, page perso, ) le 12/05/2004 à 08:04. (lien). Évalué à 2.Ben je pense pas que la vm .net de microsoft sache lire un prog en IL dans un autre conteneur que exe, donc à ce niveau oui elf n'est pas portable pour ça. De plus je suppose que le format binaire des appli .net est défini dans les normes déposées à l'ecma, donc il n'ont peut-être pas eu le choix du type de conteneur.
--
All those moments will be lost in time, like tears in the rain.-
[^]Re: Compatibilite
Posté par TImaniac (page perso, ) le 12/05/2004 à 08:36. (lien). Évalué à 3.Non non la machine virtuel .NET de Microsoft est parfaitement capable de lire un prog en IL depuis un autre conteneur, les .dll par exemple, qui sont identiques dans leur contenu aux .exe (dans le monde .NET), sans point d'entrée. Tu peux t'amuser à mettre l'extension que tu veux si celà te chante. Le fait de créer un exécutable .exe permet comme dit plus haut de charger le programme par le JIT sans que l'utilisateur est besoin de faire une commande du genre "mono monprog" sous Windows et ainsi l'utilisateur lambda ne voit pas la différence... Ils auraient aussi pu choisir une autre extension, mais là encore l'utilisateur lambda, faut pas lui changer ses habitudes... Mono compile effectivement un programme du même type que .NET par soucis de compatibilité, c'est tout.
Evidemment sous nunux celà fait bizzare.
-
-

Les journaux sont destinés à des informations qui ne sont pas suffisamment intéressantes
pour être validées en dépêche (sinon n'hésitez pas à proposer votre information en
dépêche), qui sont sans rapport avec Linux ou le libre, ou simplement pour donner votre
avis. Si vous désirez poser une question, merci d'utiliser 

Cette discussion est archivée, il n'est plus possible de laisser des commentaires.
Note : les commentaires appartiennent à ceux qui les ont postés. Nous n'en sommes pas responsables.